AVX-512. Add vperm[it]2 insns support.
[gcc.git] / gcc / ChangeLog
1 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3 Anna Tikhonova <anna.tikhonova@intel.com>
4 Ilya Tocar <ilya.tocar@intel.com>
5 Andrey Turetskiy <andrey.turetskiy@intel.com>
6 Ilya Verbin <ilya.verbin@intel.com>
7 Kirill Yukhin <kirill.yukhin@intel.com>
8 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9
10 * config/i386/sse.md
11 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
12 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
13 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
14 New.
15 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
16 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
17 iterator.
18 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
19 New.
20 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
21 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
22 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
23 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
24 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
25 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
26 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
27 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
28 iterator.
29 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
30 New.
31 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
32 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
33 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
34
35 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
36
37 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
38 to access removed nodes.
39
40 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
41
42 PR tree-optimization/63186
43 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
44 (mark_nonssa_use): Likewise.
45 (verify_non_ssa_vars): Verify all header blocks for label
46 definitions.
47
48 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
49 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
50 Anna Tikhonova <anna.tikhonova@intel.com>
51 Ilya Tocar <ilya.tocar@intel.com>
52 Andrey Turetskiy <andrey.turetskiy@intel.com>
53 Ilya Verbin <ilya.verbin@intel.com>
54 Kirill Yukhin <kirill.yukhin@intel.com>
55 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
56
57 * config/i386/sse.md
58 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
59 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
60 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
61 "<avx2_avx512f>_permvar<mode><mask_name>".
62 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
63 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
64 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
65 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
66 Ditto.
67 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
68 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
69 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
70 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
71
72 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
73
74 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
75 V2DF, V4SF, DF, and DI modes.
76 (vsx_fmav2df2): Likewise.
77 (vsx_float_fix_<mode>2): Likewise.
78 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
79
80 2014-09-10 Xinliang David Li <davidxl@google.com>
81
82 PR target/63209
83 * config/arm/arm.md (movcond_addsi): Handle case where source
84 and target operands are the same.
85
86 2014-09-10 David Malcolm <dmalcolm@redhat.com>
87
88 * final.c (this_is_asm_operands): Strengthen this variable from
89 rtx to const rtx_insn *.
90 * output.h (this_is_asm_operands): Likewise.
91 * rtl-error.c (location_for_asm): Strengthen param "insn" from
92 const_rtx to const rtx_insn *.
93 (diagnostic_for_asm): Likewise.
94 * rtl-error.h (error_for_asm): Likewise.
95 (warning_for_asm): Likewise.
96
97 2014-09-10 David Malcolm <dmalcolm@redhat.com>
98
99 * genextract.c (print_header): When writing out insn_extract to
100 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
101 * recog.h (insn_extract): Strengthen the param from rtx to
102 rtx_insn *.
103
104 2014-09-10 Mike Stump <mikestump@comcast.net>
105
106 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
107 8.6.1.
108
109 2014-09-10 Martin Jambor <mjambor@suse.cz>
110
111 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
112 (analyze): Do not set analyze flag if expand_thunk returns false;.
113 (create_wrapper): Likewise.
114 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
115
116 2014-09-10 Martin Jambor <mjambor@suse.cz>
117
118 PR ipa/61654
119 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
120 new decl properly. Analyze the new thunk if it is expanded.
121
122 2014-09-10 Andreas Schwab <schwab@suse.de>
123
124 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
125 [USED_FOR_TARGET]: Define.
126
127 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
128
129 * config/mips/mips.c (mips_secondary_reload_class): Handle
130 regno < 0 case.
131
132 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
133
134 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
135 assignment.
136
137 2014-09-10 Jakub Jelinek <jakub@redhat.com>
138
139 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
140 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
141 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
142 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
143 flag_delete_null_pointer_checks for them.
144 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
145 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
146 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
147 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
148 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
149 stmt's iterator.
150 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
151 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
152 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
153 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
154 * doc/invoke.texi (-fsanitize=nonnull-attribute,
155 -fsanitize=returns-nonnull-attribute): Document.
156
157 * ubsan.h (struct ubsan_mismatch_data): Removed.
158 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
159 * ubsan.c (ubsan_source_location): For unknown locations,
160 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
161 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
162 Allow more than one location and arbitrary extra arguments passed
163 in ... instead of through MISMATCH pointer.
164 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
165 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
166 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
167 callers.
168
169 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
170 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
171 Anna Tikhonova <anna.tikhonova@intel.com>
172 Ilya Tocar <ilya.tocar@intel.com>
173 Andrey Turetskiy <andrey.turetskiy@intel.com>
174 Ilya Verbin <ilya.verbin@intel.com>
175 Kirill Yukhin <kirill.yukhin@intel.com>
176 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
177
178 * config/i386/sse.md
179 (define_mode_iterator VI48F): New.
180 (define_insn "<avx512>_compress<mode>_mask"): Rename from
181 "avx512f_compress<mode>_mask" and update mode iterator.
182 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
183 "avx512f_compressstore<mode>_mask" and update mode iterator.
184 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
185 "avx512f_expand<mode>_maskz" and update mode iterator.
186 (define_insn "<avx512>_expand<mode>_mask"): Rename from
187 "avx512f_expand<mode>_mask" and update mode iterator.
188
189 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
190 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
191 Anna Tikhonova <anna.tikhonova@intel.com>
192 Ilya Tocar <ilya.tocar@intel.com>
193 Andrey Turetskiy <andrey.turetskiy@intel.com>
194 Ilya Verbin <ilya.verbin@intel.com>
195 Kirill Yukhin <kirill.yukhin@intel.com>
196 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
197
198 * config/i386/i386.c
199 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
200 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
201 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
202 avx512dq_rangepv4sf_mask.
203 * config/i386/sse.md
204 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
205 UNSPEC_RANGE.
206 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
207 (define_insn "reduces<mode>"): Ditto.
208 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
209 Ditto.
210 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
211 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
212 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
213
214 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
215 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
216 Anna Tikhonova <anna.tikhonova@intel.com>
217 Ilya Tocar <ilya.tocar@intel.com>
218 Andrey Turetskiy <andrey.turetskiy@intel.com>
219 Ilya Verbin <ilya.verbin@intel.com>
220 Kirill Yukhin <kirill.yukhin@intel.com>
221 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
222
223 * config/i386/i386.c
224 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
225 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
226 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
227 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
228 avx512vl_getmantv2df_mask.
229 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
230 avx512f_vgetmantv4sf_round.
231 * config/i386/sse.md
232 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
233 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
234 mode iterator.
235 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
236 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
237 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
238 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
239 iterator..
240 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
241 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
242 update mode iterator.
243 (define_expand
244 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
245 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
246 mode iterator.
247 (define_insn
248 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
249 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
250 update mode iterator.
251 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
252 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
253 iterator..
254 (define_insn
255 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
256 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
257 mode iterator..
258 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
259 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
260 update mode iterator.
261 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
262 "avx512f_getmant<mode><round_saeonly_name>".
263
264 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
265
266 PR ipa/63166
267 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
268
269 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
270 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
271 Anna Tikhonova <anna.tikhonova@intel.com>
272 Ilya Tocar <ilya.tocar@intel.com>
273 Andrey Turetskiy <andrey.turetskiy@intel.com>
274 Ilya Verbin <ilya.verbin@intel.com>
275 Kirill Yukhin <kirill.yukhin@intel.com>
276 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
277
278 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
279 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
280 (define_mode_iterator FMAMODE_AVX512): New.
281 (define_mode_iterator FMAMODE): Remove conditions.
282 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
283 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
284 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
285 mode iterator.
286 (define_mode_iterator FMAMODE_NOVF512): Remove.
287 (define_insn "*fma_fmadd_<mode>"): Rename from
288 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
289 FMAMODE mode iterator.
290 (define_mode_iterator VF_SF_AVX512VL): New.
291 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
292 Use VF_SF_AVX512VL mode iterator.
293 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
294 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
295 iterator.
296 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
297 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
298 iterator.
299 (define_insn "*fma_fmsub_<mode>"): Rename from
300 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
301 FMAMODE mode iterator.
302 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
303 Use VF_SF_AVX512VL mode iterator.
304 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
305 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
306 iterator.
307 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
308 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
309 iterator.
310 (define_insn "*fma_fnmadd_<mode>"): Rename from
311 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
312 use FMAMODE mode iterator.
313 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
314 Use VF_SF_AVX512VL mode iterator.
315 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
316 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
317 iterator.
318 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
319 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
320 iterator.
321 (define_insn "*fma_fnmsub_<mode>"): Rename from
322 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
323 FMAMODE mode iterator.
324 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
325 Use VF_SF_AVX512VL mode iterator.
326 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
327 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
328 iterator.
329 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
330 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
331 iterator.
332 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
333 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
334 use VF_AVX512VL mode iterator.
335 (define_insn "*fma_fmaddsub_<mode>"): Rename from
336 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
337 remove subst usage.
338 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
339 Use VF_SF_AVX512VL mode iterator.
340 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
341 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
342 iterator.
343 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
344 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
345 iterator.
346 (define_insn "*fma_fmsubadd_<mode>"): Rename from
347 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
348 remove usage of subst.
349 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
350 Use VF_SF_AVX512VL mode iterator.
351 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
352 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
353 iterator.
354 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
355 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
356 iterator.
357
358 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
359
360 Revert r213751:
361 * calls.c (precompute_arguments): Check
362 promoted_for_signed_and_unsigned_p and set the promoted mode.
363 (promoted_for_signed_and_unsigned_p): New function.
364 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
365 and set the promoted mode.
366 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
367 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
368 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
369
370 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
371
372 * opth-gen.awk: Generate mapping from cpp message reasons to the
373 options that enable them.
374 * doc/options.texi (CppReason): Document.
375
376 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
377
378 * doc/invoke.texi (Wnormalized=): Update.
379
380 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
381
382 PR target/63195
383 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
384 operands. Split off the constant operand alternative to ...
385 (*bool<mode>3_imm): New.
386
387 2014-09-09 David Malcolm <dmalcolm@redhat.com>
388
389 * rtl.h (single_set_2): Strengthen first param from const_rtx to
390 const rtx_insn *, and move prototype to above...
391 (single_set): ...this. Convert this from a macro to an inline
392 function, enforcing the requirement that the param is a const
393 rtx_insn *.
394 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
395
396 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
397 Strengthen both params from rtx to rtx_insn *.
398 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
399 Likewise; introduce locals "producer_set", "consumer_set", using
400 them in place of "producer" and "consumer" when dealing with SET
401 rather than insn.
402 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
403 when invoking single_set in region guarded by INSN_P.
404 (avr_out_bitop): Likewise.
405 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
406 region guarded by GET_CODE check, using methods to strengthen
407 local "this_insn" from rtx to rtx_insn *, and for clarity.
408 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
409 Strengthen local "insn" from rtx to rtx_insn *.
410 (define_insn_and_split "xload<mode>_A"): Likewise.
411 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
412 "insn".
413 (find_load): Likewise for return type.
414 (workaround_speculation): Likewise for both locals named
415 "load_insn".
416 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
417 local "cc0_user".
418 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
419 for local "prev".
420 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
421 param 2.
422 * config/h8300/h8300.c (notice_update_cc): Likewise.
423 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
424 "insn" and "dep_insn".
425 (exact_store_load_dependency): Likewise for both params.
426 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
427 since this now clashes with inline function. Instead, delay
428 calling single_set until the point where its needed, and then
429 assign the result to "compare_set" and rework the conditional that
430 follows.
431 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
432 local "last" from rtx to rtx_insn *.
433 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
434 second param.
435 (mips_store_data_bypass_p): Likewise for both params.
436 * config/mips/mips.c (mips_load_store_insns): Likewise for second
437 param.
438 (mips_store_data_bypass_p): Likewise for both params.
439 (mips_orphaned_high_part_p): Likewise for param "insn".
440 * config/mn10300/mn10300.c (extract_bundle): Likewise.
441 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
442 Introduce local rtx "insn2_pat".
443 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
444 "ninsn".
445 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
446 Introduce local rtx "set", using it in place of "insn" for the
447 result of single_set. This appears to fix a bug, since the call
448 to find_regno_note on a SET does nothing.
449 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
450 params from rtx to rtx_insn *.
451 (set_to_load_agen): Likewise.
452 * config/s390/s390.c (s390_label_align): Likewise for local
453 "prev_insn". Introduce new rtx locals "set" and "src", using
454 them in place of "prev_insn" for the results of single_set
455 and SET_SRC respectively.
456 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
457 Introduce new rtx local "set" using in place of "jump" for the
458 result of single_set. Use SET_SRC (set) rather than plain
459 XEXP (set, 1).
460 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
461 rtx to rtx_insn *.
462 (noncall_uses_reg): Likewise.
463 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
464 guarded by GET_CODE check, using its methods for clarity, and to
465 enable strengthening local "this_insn" from rtx to rtx_insn *.
466 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
467 "insn" from rtx to rtx_insn *.
468 (define_expand "umulhisi3"): Likewise.
469 (define_expand "smulsi3_highpart"): Likewise.
470 (define_expand "umulsi3_highpart"): Likewise.
471 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
472 local "after". Replace GET_CODE check with a dyn_cast,
473 introducing new local rtx_sequence * "seq", using insn method for
474 typesafety.
475
476 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
477 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
478 place of "insn" once we're dealing with patterns rather than the
479 input insn.
480 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
481 (scan_trace): Likewise for local "elt", updating lookups within
482 sequence to use insn method rather than element method.
483 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
484 to rtx_insn *.
485 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
486 * ifcvt.c (noce_try_abs): Likewise for local "insn".
487 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
488 invoking single_set.
489 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
490 "insn" from rtx to rtx_insn *.
491 (skip_usage_debug_insns): Likewise for return type, adding a
492 checked cast.
493 (check_secondary_memory_needed_p): Likewise for local "insn".
494 (inherit_reload_reg): Likewise.
495 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
496 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
497 checked casts.
498 (store_data_bypass_p): Likewise for both params.
499 (if_test_bypass_p): Likewise.
500 * recog.h (store_data_bypass_p): Likewise for both params.
501 (if_test_bypass_p): Likewise.
502 * reload.c (find_equiv_reg): Likewise for local "where".
503 * reorg.c (delete_jump): Likewise for param "insn".
504 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
505 to const rtx_insn *.
506 * store-motion.c (replace_store_insn): Likewise for param "del".
507 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
508 and use its methods for clarity, and to strengthen local "del"
509 from rtx to rtx_insn *.
510 (build_store_vectors): Use insn method of "st" when calling
511 replace_store_insn for typesafety and clarity.
512
513 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
514
515 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
516 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
517 on how to make it legal in future.
518
519 2014-09-09 David Malcolm <dmalcolm@redhat.com>
520
521 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
522 to rtx_insn *.
523 (restinsn): Likewise.
524 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
525 Likewise for param.
526 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
527 Likewise.
528 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
529 first param.
530 (arc_hazard): Likewise for both params.
531 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
532 checked casts to rtx_sequence * and uses of the insn method for
533 type-safety.
534 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
535 (arc_adjust_insn_length): Likewise for param "insn".
536 (struct insn_length_parameters_s): Likewise for first param of
537 "get_variants" callback field.
538 (arc_get_insn_variants): Likewise for first param and local
539 "inner". Replace a check of GET_CODE with a dyn_cast to
540 rtx_sequence *, using methods for type-safety and clarity.
541 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
542 rtx_sequence * and uses of the insn method for type-safety when
543 invoking arc_adjust_insn_length.
544 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
545 for param.
546 (arm_address_offset_is_imm): Likewise.
547 (struct tune_params): Likewise for params 1 and 3 of the
548 "sched_adjust_cost" callback field.
549 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
550 params 1 and 3 ("insn" and "dep").
551 (xscale_sched_adjust_cost): Likewise.
552 (fa726te_sched_adjust_cost): Likewise.
553 (cortexa7_older_only): Likewise for param "insn".
554 (cortexa7_younger): Likewise.
555 (arm_attr_length_move_neon): Likewise.
556 (arm_address_offset_is_imm): Likewise.
557 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
558 * config/avr/avr.c (avr_notice_update_cc): Likewise.
559 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
560 (workaround_speculation): Likewise for local "last_condjump".
561 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
562 (shadow_or_blockage_p): Likewise.
563 (get_unit_reqs): Likewise.
564 (get_unit_operand_masks): Likewise.
565 (c6x_registers_update): Likewise.
566 (returning_call_p): Likewise.
567 (can_use_callp): Likewise.
568 (convert_to_callp): Likewise.
569 (find_last_same_clock): Likwise for local "t".
570 (reorg_split_calls): Likewise for local "shadow".
571 (hwloop_pattern_reg): Likewise for param "insn".
572 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
573 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
574 (frv_extract_membar): Likewise.
575 (frv_optimize_membar_local): Strengthen param "last_membar" from
576 rtx * to rtx_insn **.
577 (frv_optimize_membar_global): Strengthen param "membar" from rtx
578 to rtx_insn *.
579 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
580 to rtx_insn **.
581 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
582 both params from rtx to rtx_insn *.
583 (ia64_ld_address_bypass_p): Likewise.
584 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
585 "insn".
586 (ia64_safe_type): Likewise.
587 (group_barrier_needed): Likewise.
588 (safe_group_barrier_needed): Likewise.
589 (ia64_single_set): Likewise.
590 (is_load_p): Likewise.
591 (record_memory_reference): Likewise.
592 (get_mode_no_for_insn): Likewise.
593 (important_for_bundling_p): Likewise.
594 (unknown_for_bundling_p): Likewise.
595 (ia64_st_address_bypass_p): Likewise for both params.
596 (ia64_ld_address_bypass_p): Likewise.
597 (expand_vselect): Introduce new local rtx_insn * "insn", using it
598 in place of rtx "x" after the emit_insn call.
599 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
600 Strengthen param from rtx to rtx_insn *.
601 (ix86_agi_dependent): Likewise for both params.
602 (ix86_attr_length_immediate_default): Likewise for param 1.
603 (ix86_attr_length_address_default): Likewise for param.
604 (ix86_attr_length_vex_default): Likewise for param 1.
605 * config/i386/i386.c (ix86_attr_length_immediate_default):
606 Likewise for param "insn".
607 (ix86_attr_length_address_default): Likewise.
608 (ix86_attr_length_vex_default): Likewise.
609 (ix86_agi_dependent): Likewise for both params.
610 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
611 (vselect_insn): Likewise for this variable.
612 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
613 for param 1.
614 (m68k_sched_attr_opy_type): Likewise.
615 * config/m68k/m68k.c (sched_get_operand): Likewise.
616 (sched_attr_op_type): Likewise.
617 (m68k_sched_attr_opx_type): Likewise.
618 (m68k_sched_attr_opy_type): Likewise.
619 (sched_get_reg_operand): Likewise.
620 (sched_get_mem_operand): Likewise.
621 (m68k_sched_address_bypass_p): Likewise for both params.
622 (sched_get_indexed_address_scale): Likewise.
623 (m68k_sched_indexed_address_bypass_p): Likewise.
624 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
625 (m68k_sched_indexed_address_bypass_p): Likewise.
626 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
627 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
628 removing another.
629 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
630 params from rtx to rtx_insn *.
631 (mips_fmadd_bypass): Likewise.
632 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
633 (mips_linked_madd_p): Likewise.
634 (mips_macc_chains_last_hilo): Likewise for this variable.
635 (mips_macc_chains_record): Likewise for param.
636 (vr4130_last_insn): Likewise for this variable.
637 (vr4130_swap_insns_p): Likewise for both params.
638 (mips_ls2_variable_issue): Likewise for param.
639 (mips_need_noat_wrapper_p): Likewise for param "insn".
640 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
641 in place of "x" after the emit_insn.
642 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
643 params from rtx to rtx_insn *.
644 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
645 (pa_combine_instructions): Introduce local "par" for result of
646 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
647 to make_insn_raw.
648 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
649 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
650 (rl78_alloc_physical_registers_op1): Likewise.
651 (rl78_alloc_physical_registers_op2): Likewise.
652 (rl78_alloc_physical_registers_ro1): Likewise.
653 (rl78_alloc_physical_registers_cmp): Likewise.
654 (rl78_alloc_physical_registers_umul): Likewise.
655 (rl78_alloc_address_registers_macax): Likewise.
656 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
657 * config/s390/predicates.md (execute_operation): Likewise for
658 local "insn".
659 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
660 params.
661 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
662 (addr_generation_dependency_p): Likewise for param "insn".
663 (s390_agen_dep_p): Likewise for both params.
664 (s390_fpload_toreg): Likewise for param "insn".
665 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
666 * config/sh/sh.c (sh_loop_align): Likewise for param and local
667 "next".
668 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
669 * config/sh/sh_treg_combine.cc
670 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
671 and local "i".
672 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
673 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
674 "and_insn", "load", "shift".
675 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
676 "insn".
677 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
678 for XEXP (note, 0) of the REG_CC_SETTER note.
679 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
680 rtx_insn *, eliminating a checked cast made redundant by this.
681 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
682 to rtx_insn *.
683 * genattr.c (main): When writing out the prototype to
684 const_num_delay_slots, strengthen the param from rtx to
685 rtx_insn *.
686 * genattrtab.c (write_const_num_delay_slots): Likewise when
687 writing out the implementation of const_num_delay_slots.
688 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
689 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
690 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
691 favor of new rtx locals "src" and "set" and new local rtx_insn *
692 "insn" and "seq".
693 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
694 to rtx_insn *.
695 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
696 locals "cond", "if_then_else", "set" and new rtx_insn * locals
697 "insn" and "seq".
698 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
699 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
700 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
701 the top-level scope, replacing with new more tightly-scoped rtx
702 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
703 "new_insn", "copy_of_insn_b", and make local rtx "set" more
704 tightly-scoped.
705 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
706 rtx_insn *.
707 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
708 "move_insn".
709 (ira_setup_alts): Likewise for param "insn".
710 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
711 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
712 and an rtx_insn *.
713 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
714 new more-tightly scoped rtx locals "add3_insn", "insn",
715 "add2_insn" and rtx_insn * "move_insn".
716 * postreload-gcse.c (eliminate_partially_redundant_load): Add
717 checked cast on result of gen_move_insn when invoking
718 extract_insn.
719 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
720 rtx_insn *.
721 (verify_changes): Add a checked cast on "object" when invoking
722 insn_invalid_p.
723 (extract_insn_cached): Strengthen param "insn" from rtx to
724 rtx_insn *.
725 (extract_constrain_insn_cached): Likewise.
726 (extract_insn): Likewise.
727 * recog.h (insn_invalid_p): Likewise for param 1.
728 (recog_memoized): Likewise for param.
729 (extract_insn): Likewise.
730 (extract_constrain_insn_cached): Likewise.
731 (extract_insn_cached): Likewise.
732 * reload.c (can_reload_into): Likewise for local "test_insn".
733 * reload.h (cleanup_subreg_operands): Likewise for param.
734 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
735 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
736 result of emit_insn. Remove a checked cast made redundant by this
737 change.
738 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
739 rtx to rtx_insn *.
740 * sel-sched.c (get_reg_class): Likewise.
741
742 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
743 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
744
745 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
746 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
747 Define.
748 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
749
750 2014-09-09 David Malcolm <dmalcolm@redhat.com>
751
752 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
753 const rtx_insn *, and from rtx to rtx_insn * for the other
754 overloaded variant.
755 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
756 INSN_LOCATION, since we know INSN_P holds.
757 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
758 (insn_file): Likewise.
759 (insn_scope): Likewise.
760 (insn_location): Likewise.
761
762 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
763 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
764 for the result of gen_load_const_gp.
765 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
766 param from rtx to rtx_insn *.
767 * config/rs6000/rs6000.c (output_call): Likewise.
768 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
769 introducing a checked cast to rtx_sequence * and use of the insn
770 method.
771 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
772 from rtx to rtx_insn *.
773 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
774 (insn_line): Likewise.
775 (insn_file): Likewise.
776 (insn_location): Likewise.
777 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
778 from rtx to rtx_insn *.
779 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
780 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
781 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
782 via a checked cast.
783 * reorg.c (relax_delay_slots): Strengthen locals named "after"
784 from rtx to rtx_insn *; use methods of "pat" for type-safety.
785
786 2014-09-09 David Malcolm <dmalcolm@redhat.com>
787
788 * combine.c (try_combine): Eliminate checked cast on result of
789 gen_rtx_INSN.
790 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
791 autogenerated one by strengthening the return type and params 2 and 3
792 from rtx to rtx_insn *, and by naming the params.
793 * gengenrtl.c (special_rtx): Add INSN to those that are
794 special-cased.
795 * rtl.h (gen_rtx_INSN): New prototype.
796
797 2014-09-09 David Malcolm <dmalcolm@redhat.com>
798
799 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
800 than NULL_RTX.
801 (no_equiv): Likewise.
802 (update_equiv_regs): Likewise.
803 (setup_reg_equiv): Likewise. Strengthen locals "elem",
804 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
805 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
806 clarity.
807 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
808 from rtx to rtx_insn_list *.
809 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
810 rtx_insn_list * and use methods for clarity and typesafety.
811 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
812 "list".
813 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
814 redundant check on INSN_P (insns): this cannot hold, as "insns" is
815 an INSN_LIST, not an insn.
816 (reverse_equiv_p): Strengthen local "insns" from rtx to
817 rtx_insn_list * and use methods for clarity and typesafety.
818 (contains_reloaded_insn_p): Likewise for local "list".
819
820 2014-09-09 Jiong Wang <jiong.wang@arm.com>
821
822 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
823 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
824 (arm_builtin_vectorized_function): Likewise.
825 * config/arm/arm_neon_builtins.def: New macro for copysignf.
826 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
827
828 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
829
830 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
831 * builtins.h (default_target_builtins): Likewise.
832 * gcse.h (default_target_gcse): Likewise.
833 * target-globals.h (target_globals): Add a destructor. Convert
834 void-pointer fields back to their real type and change from
835 GTY((atomic)) to GTY((skip)).
836 (restore_target_globals): Remove casts accordingly.
837 * target-globals.c (save_target_globals): Use XCNEW rather than
838 ggc_internal_cleared_alloc to allocate non-GC structures.
839 Use ggc_cleared_alloc to allocate the target_globals structure
840 itself.
841 (target_globals::~target_globals): Define.
842
843 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
844
845 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
846 mnemonic instead of fldmfdd.
847 * config/arm/arm.c (vfp_output_fstmd): Rename to...
848 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
849 Output vpush when address register is SP.
850 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
851 (vfp_output_vstmd): ... This.
852 * config/arm/vfp.md (push_multi_vfp): Update call to
853 vfp_output_vstmd.
854
855 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
856
857 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
858
859 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
860
861 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
862 (*sqrtdf2_vfp): Likewise.
863 (*cmpsf_vfp): Likewise.
864 (*cmpsf_trap_vfp): Likewise.
865 (*cmpdf_vfp): Likewise.
866 (*cmpdf_trap_vfp): Likewise.
867
868 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
869
870 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
871 (*truncdfsf2_vfp): Likewise.
872 (*truncsisf2_vfp): Likewise.
873 (*truncsidf2_vfp): Likewise.
874 (fixuns_truncsfsi2): Likewise.
875 (fixuns_truncdfsi2): Likewise.
876 (*floatsisf2_vfp): Likewise.
877 (*floatsidf2_vfp): Likewise.
878 (floatunssisf2): Likewise.
879 (floatunssidf2): Likewise.
880
881 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
882
883 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
884 (*muldf3_vfp): Likewise.
885 (*mulsf3negsf_vfp): Likewise.
886 (*muldf3negdf_vfp): Likewise.
887 (*mulsf3addsf_vfp): Likewise.
888 (*muldf3adddf_vfp): Likewise.
889 (*mulsf3subsf_vfp): Likewise.
890 (*muldf3subdf_vfp): Likewise.
891 (*mulsf3negsfaddsf_vfp): Likewise.
892 (*fmuldf3negdfadddf_vfp): Likewise.
893 (*mulsf3negsfsubsf_vfp): Likewise.
894 (*muldf3negdfsubdf_vfp): Likewise.
895
896 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
897
898 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
899 (*absdf2_vfp): Likewise.
900 (*negsf2_vfp): Likewise.
901 (*negdf2_vfp): Likewise.
902 (*addsf3_vfp): Likewise.
903 (*adddf3_vfp): Likewise.
904 (*subsf3_vfp): Likewise.
905 (*subdf3_vfp): Likewise.
906 (*divsf3_vfp): Likewise.
907 (*divdf3_vfp): Likewise.
908
909 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
910
911 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
912 multiple.
913 (arm_print_operand): Don't convert real values to decimal
914 representation in default case.
915 (fp_immediate_constant): Delete.
916 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
917 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
918 syntax.
919 (*thumb2_movsi_vfp): Likewise.
920 (*movdi_vfp): Likewise.
921 (*movdi_vfp_cortexa8): Likewise.
922 (*movhf_vfp_neon): Likewise.
923 (*movhf_vfp): Likewise.
924 (*movsf_vfp): Likewise.
925 (*thumb2_movsf_vfp): Likewise.
926 (*movdf_vfp): Likewise.
927 (*thumb2_movdf_vfp): Likewise.
928 (*movsfcc_vfp): Likewise.
929 (*thumb2_movsfcc_vfp): Likewise.
930 (*movdfcc_vfp): Likewise.
931 (*thumb2_movdfcc_vfp): Likewise.
932
933 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
934
935 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
936 (-mtune): Likewise.
937 (-mcpu): Likewise.
938
939 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
940
941 PR target/61749
942 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
943 Use qualifier_immediate for last operand. Rename to...
944 (aarch64_types_ternop_lane_qualifiers): ... This.
945 (TYPES_QUADOP): Rename to...
946 (TYPES_TERNOP_LANE): ... This.
947 (aarch64_simd_expand_args): Return const0_rtx when encountering user
948 error. Change return of 0 to return of NULL_RTX.
949 (aarch64_crc32_expand_builtin): Likewise.
950 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
951 ICE when expanding unknown builtin.
952 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
953 TERNOP_LANE qualifiers.
954 (sqdmlsl_lane): Likewise.
955 (sqdmlal_laneq): Likewise.
956 (sqdmlsl_laneq): Likewise.
957 (sqdmlal2_lane): Likewise.
958 (sqdmlsl2_lane): Likewise.
959 (sqdmlal2_laneq): Likewise.
960 (sqdmlsl2_laneq): Likewise.
961
962 2014-09-09 Nick Clifton <nickc@redhat.com>
963
964 * doc/invoke.texi (Optimization Options): Add missing @gol to the
965 end of a line.
966 (S/390 and zSeries Options): Remove superfluous word from the
967 description of the -mhotpatch option.
968
969 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
970
971 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
972 * ira.c: #include "shrink-wrap.h"
973 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
974 * ifcvt.c: #include "shrink-wrap.h"
975 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
976
977 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
978
979 * common/config/picochip/picochip-common.c: Remove.
980 * config.gcc: Remove support for picochip.
981 * config/picochip/constraints.md: Remove.
982 * config/picochip/dfa_space.md: Remove.
983 * config/picochip/dfa_speed.md: Remove.
984 * config/picochip/picochip-protos.h: Remove.
985 * config/picochip/picochip.c: Remove.
986 * config/picochip/picochip.h: Remove.
987 * config/picochip/picochip.md: Remove.
988 * config/picochip/picochip.opt: Remove.
989 * config/picochip/predicates.md: Remove.
990 * config/picochip/t-picochip: Remove.
991 * doc/md.texi: Don't document picochi.
992
993 2014-09-08 David Malcolm <dmalcolm@redhat.com>
994
995 * basic-block.h (control_flow_insn_p): Strengthen param from
996 const_rtx to const rtx_insn *.
997 * cfgbuild.c (control_flow_insn_p): Likewise.
998
999 2014-09-08 David Malcolm <dmalcolm@redhat.com>
1000
1001 * gcse.c (modify_mem_list): Strengthen this variable from
1002 vec<rtx> * to vec<rtx_insn *> *.
1003 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
1004 vec<rtx_insn *>.
1005 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
1006 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
1007 (record_last_mem_set_info): Strengthen param "insn" from rtx to
1008 rtx_insn *.
1009 (record_last_set_info): Likewise for local "last_set_insn".
1010
1011 2014-09-08 DJ Delorie <dj@redhat.com>
1012
1013 * doc/invoke.texi (MSP430 Options): Add -minrt.
1014
1015 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1016
1017 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
1018 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
1019 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
1020 handling SH_SPLAT.
1021 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
1022 of extracted lane.
1023 (adjust_splat): New function.
1024 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
1025 (dump_swap_insn_table): Add case for SH_SPLAT.
1026
1027 2014-09-08 Richard Biener <rguenther@suse.de>
1028
1029 PR ipa/63196
1030 * tree-inline.c (copy_loops): The source loop header should
1031 always be non-NULL.
1032 (tree_function_versioning): If loops need fixup after removing
1033 unreachable blocks fix them.
1034 * omp-low.c (simd_clone_adjust): Do not add incr block to
1035 loop under construction.
1036
1037 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
1038
1039 * config/aarch64/aarch64-builtins.c
1040 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
1041
1042 2014-09-08 Joseph Myers <joseph@codesourcery.com>
1043
1044 * config/i386/cygming.h (TF_SIZE): Remove.
1045 * config/i386/darwin.h (TF_SIZE): Remove.
1046 * config/i386/dragonfly.h (TF_SIZE): Remove.
1047 * config/i386/freebsd.h (TF_SIZE): Remove.
1048 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
1049 * config/i386/openbsdelf.h (TF_SIZE): Remove.
1050 * config/i386/sol2.h (TF_SIZE): Remove.
1051 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
1052 * config/ia64/linux.h (TF_SIZE): Remove.
1053 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
1054 * doc/tm.texi: Regenerate.
1055 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
1056
1057 2014-09-08 Joseph Myers <joseph@codesourcery.com>
1058
1059 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
1060 Remove.
1061 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
1062 Remove.
1063 * doc/tm.texi: Regenerate.
1064 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
1065 Poison.
1066 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
1067 * config/cris/cris.h (__make_dp): Remove.
1068
1069 2014-09-08 Richard Biener <rguenther@suse.de>
1070
1071 PR bootstrap/63204
1072 * cfgloop.c (mark_loop_for_removal): Track former header
1073 unconditionally.
1074 * cfgloop.h (struct loop): Add former_header member unconditionally.
1075 * loop-init.c (fix_loop_structure): Enable bogus loop removal
1076 diagnostic unconditionally.
1077
1078 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
1079
1080 PR target/63190
1081 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
1082 constraint for operand0 and remove write only modifier from operand3.
1083
1084 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
1085
1086 PR rtl-optimization/62208
1087 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
1088 rather than const0_rtx in eq/ne-xor simplifications.
1089
1090 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
1091
1092 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
1093 (arc_output_mi_thunk): Likewise.
1094
1095 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
1096 arguments to silence bogus warning.
1097
1098 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
1099
1100 PR middle-end/63171
1101 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
1102
1103 2014-09-06 Tom de Vries <tom@codesourcery.com>
1104
1105 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
1106 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
1107 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
1108
1109 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
1110
1111 PR target/63188
1112 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
1113 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
1114
1115 2014-09-05 Easwaran Raman <eraman@google.com>
1116
1117 PR rtl-optimization/62146
1118 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
1119 hoisted instruction unconditional.
1120
1121 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
1122
1123 PR target/63187
1124 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
1125 Do not allow any_mask_operand for operands[2].
1126 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
1127
1128 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1129
1130 * config/arc/arc.c (arc_print_operand): Use insn method of
1131 final_sequence for type-safety.
1132 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
1133 "insn" from rtx to rtx_insn *.
1134 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
1135 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
1136 Likewise for locals "branch", "label".
1137 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
1138 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
1139 (same_cmp_following_p): Likewise for locals "i2", "i3".
1140 * config/sh/sh_optimize_sett_clrt.cc
1141 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
1142 param "cbranch_insn".
1143 * function.c (convert_jumps_to_returns): Likewis for local "jump".
1144 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
1145 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
1146 const rtx_insn *.
1147 (condjump_p): Likewise.
1148 (condjump_in_parallel_p): Likewise.
1149 (pc_set): Likewise.
1150 (any_uncondjump_p): Likewise.
1151 (any_condjump_p): Likewise.
1152 (condjump_label): Likewise.
1153 (returnjump_p): Strengthen param "insn" from rtx to
1154 const rtx_insn *.
1155 (onlyjump_p): Strengthen param "insn" from const_rtx to
1156 const rtx_insn *.
1157 (jump_to_label_p): Likewise.
1158 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
1159 (invert_jump): Likewise.
1160 * reorg.c (simplejump_or_return_p): Add checked cast when calling
1161 simplejump_p.
1162 (get_jump_flags): Strengthen param "insn" from rtx to
1163 const rtx_insn *.
1164 (get_branch_condition): Likewise.
1165 (condition_dominates_p): Likewise.
1166 (make_return_insns): Move declaration of local "pat" earlier, to
1167 after we've handled NONJUMP_INSN_P and non-sequences, using its
1168 methods to simplify the code and for type-safety.
1169 * rtl.h (find_constant_src): Strengthen param from const_rtx to
1170 const rtx_insn *.
1171 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
1172 (condjump_p): Strengthen param from const_rtx to
1173 const rtx_insn *.
1174 (any_condjump_p): Likewise.
1175 (any_uncondjump_p): Likewise.
1176 (pc_set): Likewise.
1177 (condjump_label): Likewise.
1178 (simplejump_p): Likewise.
1179 (returnjump_p): Likewise.
1180 (onlyjump_p): Likewise.
1181 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
1182 (invert_jump): Likewise.
1183 (condjump_in_parallel_p): Strengthen param from const_rtx to
1184 const rtx_insn *.
1185 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
1186 to const rtx_insn *.
1187 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
1188 to const rtx_insn *.
1189 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
1190
1191 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1192
1193 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
1194 above the conditional, and convert the check on GET_CODE to a
1195 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
1196 the conditional. Simplify the conditional by using methods of
1197 "trial_seq".
1198
1199 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1200
1201 * haifa-sched.c (check_clobbered_conditions): Strengthen local
1202 "link" from rtx to rtx_insn_list *, and use its methods for
1203 clarity and type-safety.
1204 (toggle_cancelled_flags): Likewise.
1205 (restore_last_backtrack_point): Likewise.
1206 (queue_to_ready): Use insn method of "link" in one place.
1207 (schedule_block): Strengthen local "link" from rtx to
1208 rtx_insn_list *, and use its methods for clarity and type-safety.
1209
1210 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1211
1212 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
1213 param "insn" from const_rtx to const rtx_insn *.
1214 (sched_get_reverse_condition_uncached): Likewise.
1215 (sched_get_condition_with_rev): Likewise.
1216 (sched_has_condition_p): Likewise.
1217 (sched_insns_conditions_mutex_p): Likewise for both params.
1218 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
1219 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
1220 (setup_insn_reg_uses): Move local "list" to be more tightly
1221 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
1222 its methods for clarity and type-safety.
1223 (sched_analyze_1): Strengthen local "pending" from rtx to
1224 rtx_insn_list *, and local "pending_mem" from rtx to
1225 rtx_expr_list *. Use methods of each for clarity and type-safety.
1226 (sched_analyze_2): Likewise.
1227 (sched_analyze_insn): Likewise.
1228
1229 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
1230 param from const_rtx to const rtx_insn *.
1231 (sched_insns_conditions_mutex_p): Likewise for both params.
1232 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
1233 param.
1234
1235 * system.h (CONST_CAST_RTX_INSN): New macro.
1236
1237 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1238
1239 * recog.c (peep2_attempt): Strengthen return type from rtx to
1240 rtx_insn *.
1241 (peep2_update_life): Likewise for params "last", "prev", removing
1242 a checked cast made redundant by this.
1243 (peephole2_optimize): Likewise for local "last".
1244
1245 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1246
1247 * basic-block.h (set_block_for_insn): Eliminate this macro in
1248 favor of...
1249 * rtl.h (set_block_for_insn): New inline function, imposing the
1250 requirement that the "insn" param is an rtx_insn *.
1251
1252 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1253
1254 * caller-save.c (setup_save_areas): Strengthen local "insn" from
1255 rtx to rtx_insn *.
1256 * final.c (get_call_reg_set_usage): Likewise for first param,
1257 eliminating a checked cast.
1258 * regs.h (get_call_reg_set_usage): Likewise for first param.
1259 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
1260 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
1261 cast, replacing references to "x" with "call_insn" where
1262 appropriate.
1263 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
1264 rtx_insn *, adding a checked cast.
1265
1266 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1267
1268 * output.h (final_scan_insn): Strengthen first param from rtx to
1269 rtx_insn *.
1270
1271 * final.c (final_scan_insn): Likewise, renaming it back from
1272 "uncast_insn" to "insn", eliminating the checked cast.
1273
1274 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
1275 "vec" with an rtx_sequence * "seq", taking a copy of
1276 "final_sequence", and using methods of "seq" for clarity, and for
1277 type-safety in the calls to final_scan_insn.
1278 * config/mips/mips.c (mips_output_conditional_branch): Use methods
1279 of "final_sequence" for clarity, and for type-safety in the call to
1280 final_scan_insn.
1281 * config/sh/sh.c (print_slot): Strengthen param from rtx to
1282 rtx_sequence * and rename from "insn" to "seq".
1283
1284 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1285
1286 * jump.c (delete_related_insns): Introduce a new local "table" by
1287 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
1288 get_labels method of "table" to simplify access to the labels in
1289 the jump table.
1290
1291 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1292
1293 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
1294 f_minmaxs, f_minmaxd types.
1295
1296 2014-09-05 Richard Biener <rguenther@suse.de>
1297
1298 * cfgloop.c (mark_loop_for_removal): Record former header
1299 when ENABLE_CHECKING.
1300 * cfgloop.h (strut loop): Add former_header member when
1301 ENABLE_CHECKING.
1302 * loop-init.c (fix_loop_structure): Sanity check loops
1303 marked for removal if they re-appeared.
1304
1305 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1306
1307 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
1308 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
1309
1310 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
1311 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
1312 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
1313 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
1314 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
1315 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
1316 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
1317 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
1318 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
1319 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
1320 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
1321 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
1322 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
1323 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
1324 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
1325 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
1326 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
1327 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
1328 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
1329 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
1330 with int{32,16,8}_t.
1331
1332 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1333
1334 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
1335 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
1336 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
1337 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
1338 Remove temporary __asm__ and reimplement.
1339
1340 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1341
1342 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
1343 handling cmge, cmgt, cmeq, cmtst.
1344
1345 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
1346 cmlt, cmgeu, cmgtu, cmtst): Remove.
1347
1348 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
1349 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
1350 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
1351 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
1352
1353 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1354
1355 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
1356 TYPES_TST): Define.
1357 (aarch64_fold_builtin): Update pattern for cmtst.
1358
1359 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
1360 Declare.
1361
1362 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
1363
1364 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
1365 Switch operands, separate out more cases, refactor.
1366
1367 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
1368
1369 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
1370 argument; rename old version to...
1371 (aarch64_const_vec_all_same_in_range_p): ...this.
1372 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
1373
1374 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
1375
1376 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1377
1378 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
1379 Remove qualifier_const_pointer, update comment.
1380
1381 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1382
1383 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
1384
1385 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1386
1387 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
1388 varargs with pointer parameter.
1389 (aarch64_simd_expand_builtin): pass pointer into previous.
1390
1391 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1392
1393 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
1394 alus_ext.
1395
1396 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1397
1398 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
1399 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
1400 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
1401 Replace temporary asm with call to builtin.
1402 (vrbit_p8, vrbitq_p8): New functions.
1403
1404 2014-09-05 Richard Biener <rguenther@suse.de>
1405
1406 * cfgloop.c (mark_loop_for_removal): New function.
1407 * cfgloop.h (mark_loop_for_removal): Declare.
1408 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
1409 (merge_blocks): Likewise.
1410 (duplicate_block): Likewise.
1411 * except.c (sjlj_emit_dispatch_table): Likewise.
1412 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
1413 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
1414 (thread_through_loop_header): Likewise.
1415
1416 2014-09-05 Richard Biener <rguenther@suse.de>
1417
1418 PR middle-end/63148
1419 * fold-const.c (try_move_mult_to_index): Remove.
1420 (fold_binary_loc): Do not call it.
1421 * tree-data-ref.c (dr_analyze_indices): Strip conversions
1422 from the base object again.
1423
1424 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
1425
1426 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
1427 DImode.
1428
1429 2014-09-05 Bin Cheng <bin.cheng@arm.com>
1430
1431 PR target/55701
1432 * config/arm/arm.md (setmem): New pattern.
1433 * config/arm/arm-protos.h (struct tune_params): New fields.
1434 (arm_gen_setmem): New prototype.
1435 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
1436 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
1437 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
1438 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
1439 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
1440 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
1441 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
1442 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
1443 (arm_const_inline_cost): New function.
1444 (arm_block_set_max_insns): New function.
1445 (arm_block_set_non_vect_profit_p): New function.
1446 (arm_block_set_vect_profit_p): New function.
1447 (arm_block_set_unaligned_vect): New function.
1448 (arm_block_set_aligned_vect): New function.
1449 (arm_block_set_unaligned_non_vect): New function.
1450 (arm_block_set_aligned_non_vect): New function.
1451 (arm_block_set_vect, arm_gen_setmem): New functions.
1452
1453 2014-09-05 Bin Cheng <bin.cheng@arm.com>
1454
1455 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
1456
1457 2014-09-05 Bin Cheng <bin.cheng@arm.com>
1458
1459 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
1460
1461 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
1462
1463 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
1464 an rtx.
1465 * valtrack.h: Adjust.
1466
1467 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
1468
1469 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
1470 an rtx.
1471 (emit_jump_insn_before_noloc): Likewise.
1472 (emit_call_insn_before_noloc): Likewise.
1473 (emit_label_before): Likewise.
1474 (emit_label_after): Likewise.
1475 (emit_insn_before_setloc): Likewise.
1476 (emit_jump_insn_before_setloc): Likewise.
1477 (emit_call_insn_before_setloc): Likewise.
1478 (emit_call_insn_before): Likewise.
1479 * rtl.h: Adjust.
1480
1481 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1482
1483 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
1484 rtx_insn *, eliminating a checked cast.
1485
1486 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1487
1488 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
1489 const_rtx to const rtx_insn *.
1490 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
1491 cast.
1492
1493 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1494
1495 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
1496 fixup_args_size_notes.
1497 * expr.c (fixup_args_size_notes): Strengthen first two params from
1498 rtx to rtx_insn *, eliminating a checked cast.
1499 * rtl.h (fixup_args_size_notes): Strengthen first two params from
1500 rtx to rtx_insn *.
1501
1502 2014-09-05 David Malcolm <dmalcolm@redhat.com>
1503
1504 * haifa-sched.c (get_ready_element): Strengthen return type from
1505 rtx to rtx_insn *.
1506 * sched-int.h (get_ready_element): Likewise.
1507
1508 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
1509
1510 PR target/63165
1511 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
1512 indexed_or_indirect_operand instead of memory_operand.
1513 (floatsi<mode>2_lfiwzx_mem): Ditto.
1514
1515 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
1516
1517 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
1518 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
1519 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
1520
1521 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
1522
1523 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
1524 rtx.
1525 (get_last_nonnote_insn): Likewise.
1526 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
1527 * resource.c (find_basic_block): Likewise.
1528 * rtl.h: Adjust.
1529 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
1530 const_rtx.
1531
1532 2014-09-04 David Malcolm <dmalcolm@redhat.com>
1533
1534 * genattr.c (main): Within the prototype of insn_latency written
1535 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
1536 * genautomata.c (output_internal_maximal_insn_latency_func):
1537 Within the implementation of insn_latency written out to
1538 insn-automata.c, strengthen both params from rtx to rtx_insn *,
1539 eliminating a pair of checked casts.
1540
1541 2014-09-04 David Malcolm <dmalcolm@redhat.com>
1542
1543 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
1544 rtx_insn *.
1545
1546 * rtl.h (eh_returnjump_p): Likewise.
1547
1548 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
1549
1550 * Makefile.in (TAGS): Handle constructs in timevar.def.
1551
1552 2014-09-04 Guozhi Wei <carrot@google.com>
1553
1554 PR target/62040
1555 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
1556 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
1557 it into two patterns.
1558 (move_lo_quad_internal_be_<mode>): Likewise.
1559
1560 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
1561
1562 * doc/options.texi: Document that Var and Init are required if CPP
1563 is given.
1564 * optc-gen.awk: Require Var and Init if CPP is given.
1565 * common.opt (Wpedantic): Use Init.
1566
1567 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1568
1569 * config/rs6000/rs6000.c (special_handling_values): Add
1570 SH_EXTRACT.
1571 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
1572 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
1573 as swappable with special handling SH_EXTRACT. Remove
1574 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
1575 optimization.
1576 (adjust_extract): New function.
1577 (handle_special_swappables): Add default to case statement; add
1578 case for SH_EXTRACT that calls adjust_extract.
1579 (dump_swap_insn_table): Handle SH_EXTRACT.
1580
1581 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1582
1583 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
1584 selection of 0th memory doubleword, regardless of endianness.
1585
1586 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1587
1588 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
1589
1590 2014-09-04 Alan Modra <amodra@gmail.com>
1591
1592 PR debug/60655
1593 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
1594 can't be output.
1595
1596 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
1597
1598 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
1599 * targhooks.c (default_dwarf_frame_reg_mode): New function.
1600 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
1601 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
1602 * doc/tm.texi: Regenerate.
1603 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
1604 selection logic to default_dwarf_frame_reg_mode.
1605
1606 2014-09-03 Marek Polacek <polacek@redhat.com>
1607
1608 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
1609 by -Wall.
1610
1611 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
1612
1613 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
1614 the automodified register.
1615
1616 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
1617
1618 * output.h (get_some_local_dynamic_name): Declare.
1619 * final.c (some_local_dynamic_name): New variable.
1620 (get_some_local_dynamic_name): New function.
1621 (final_end_function): Clear some_local_dynamic_name.
1622 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
1623 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
1624 (print_operand): Report an error if '%&' is used inappropriately.
1625 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
1626 (get_some_local_dynamic_name_1): Delete.
1627 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
1628 (rs6000_get_some_local_dynamic_name): Delete.
1629 (rs6000_get_some_local_dynamic_name_1): Delete.
1630 (print_operand): Report an error if '%&' is used inappropriately.
1631 * config/s390/s390.c (machine_function): Remove some_ld_name.
1632 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
1633 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
1634 * config/sparc/sparc.c: Include rtl-iter.h.
1635 (machine_function): Remove some_ld_name.
1636 (sparc_print_operand): Report an error if '%&' is used inappropriately.
1637 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
1638
1639 2014-09-03 Richard Henderson <rth@redhat.com>
1640
1641 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
1642 (aarch64_popwb_pair_reg): Remove.
1643 (aarch64_set_frame_expr): Remove.
1644 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
1645 the restore ops performed by the insns generated.
1646 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
1647 insn. Perform the calls_eh_return addition later; do not attempt to
1648 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
1649 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
1650 special markup at all. Load cfun->machine->frame.hard_fp_offset
1651 into a local variable.
1652 (aarch64_frame_pointer_required): Don't check calls_alloca.
1653
1654 2014-09-03 Richard Biener <rguenther@suse.de>
1655
1656 * opts.c (default_options_optimization): Adjust
1657 max-combine-insns to 2 for -Og.
1658
1659 2014-09-03 Martin Jambor <mjambor@suse.cz>
1660
1661 PR ipa/62015
1662 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
1663 pass-trough jump functions correctly.
1664
1665 2014-09-03 Martin Jambor <mjambor@suse.cz>
1666
1667 PR ipa/61986
1668 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
1669 created replacements in ascending order of offsets.
1670 (known_aggs_to_agg_replacement_list): Likewise.
1671
1672 2014-09-03 Martin Liska <mliska@suse.cz>
1673
1674 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
1675 is set to set uninitialized value for vnresult.
1676
1677 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1678
1679 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
1680 for TARGET_MUST_PASS_IN_STACK.
1681
1682 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1683
1684 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
1685 for TARGET_ARG_PARTIAL_BYTES.
1686
1687 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1688
1689 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
1690 instructions for varargs implementation.
1691 (nds32_expand_epilogue): Emit stack adjustment instructions for
1692 varargs implementation.
1693
1694 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1695
1696 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
1697 optimization detection.
1698
1699 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1700
1701 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
1702 arguments.
1703 (nds32_function_arg_advance): Deal with nameless arguments.
1704 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
1705 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
1706 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
1707
1708 2014-09-03 Richard Biener <rguenther@suse.de>
1709
1710 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
1711 (struct bb_bitmap_sets): Remove deferred member.
1712 (BB_DEFERRED): Remove.
1713 (defer_or_phi_translate_block): Remove.
1714 (compute_antic_aux): Remove deferring of blocks, assert
1715 proper iteration order.
1716 (compute_antic): Do not set BB_DEFERRED.
1717 (eliminate): Allocate el_avail of proper size initially.
1718
1719 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1720
1721 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
1722 according to the value of crtl->args.pretend_args_size.
1723
1724 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1725
1726 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
1727 varargs information.
1728
1729 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1730
1731 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
1732 implementation for TARGET_SETUP_INCOMING_VARARGS.
1733 (nds32_strict_argument_naming): Refine comment.
1734 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
1735 Define for future implementation.
1736
1737 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
1738
1739 * config/i386/adxintrin.h (_subborrow_u32): New.
1740 (_addcarry_u32): Ditto.
1741 (_subborrow_u64): Ditto.
1742 (_addcarry_u64): Ditto.
1743 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
1744 IX86_BUILTIN_SBB64.
1745 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
1746 __builtin_ia32_sbb_u64
1747
1748 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1749
1750 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
1751 GPR-specific stuff.
1752 (nds32_function_arg_advance): Likewise.
1753 (nds32_init_cumulative_args): Likewise.
1754 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
1755 (NDS32_FIRST_GPR_REGNUM): Define.
1756 (NDS32_LAST_GPR_REGNUM): Define.
1757 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
1758 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
1759 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
1760 (machine_function): Use GRP-specific stuff.
1761
1762 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1763
1764 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
1765 (nds32_expand_epilogue): Likewise.
1766 (nds32_expand_prologue_v3push): Likewise.
1767 (nds32_expand_epilogue_v3pop): Likewise.
1768
1769 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1770
1771 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
1772 v3push/v3pop for variadic function.
1773 * config/nds32/nds32.md (prologue, epilogue): Likewise.
1774
1775 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1776
1777 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
1778 Check rtx for varargs implementation.
1779 (nds32_output_stack_pop): Likewise.
1780 * config/nds32/nds32-protos.h: Have a rtx argument for
1781 nds32_output_stack_push and nds32_output_stack_pop.
1782 * config/nds32/nds32.md: Likewise.
1783
1784 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1785
1786 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
1787 to check if FUNC is an interrupt service routine.
1788 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
1789
1790 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1791
1792 * config/nds32/nds32.h (machine_function): Add some fields for variadic
1793 arguments implementation.
1794
1795 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1796
1797 * config/nds32/nds32-predicates.c
1798 (nds32_valid_stack_push_pop): Rename to ...
1799 (nds32_valid_stack_push_pop_p): ... this.
1800 * config/nds32/nds32-protos.h: Likewise.
1801 * config/nds32/predicates.md: Likewise.
1802
1803 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1804
1805 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
1806 (nds32_emit_stack_v3push): ... this.
1807 (nds32_gen_stack_v3pop): Rename to ...
1808 (nds32_emit_stack_v3pop): ... this and consider CFA restore
1809 information.
1810
1811 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1812
1813 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
1814 (nds32_emit_stack_push_multiple): ... this.
1815 (nds32_gen_stack_pop_multiple): Rename to ...
1816 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
1817 information.
1818
1819 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1820
1821 PR target/61078
1822 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
1823 and add a second splitter to handle the remaining cases.
1824
1825 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
1826
1827 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
1828
1829 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
1830
1831 * cfgexpand.c (label_rtx_for_bb): Change type to
1832 hash_map<basic_block, rtx_code_label *> *.
1833 (expand_gimple_basic_block): Adjust.
1834 (pass_expand::execute): Likewise.
1835
1836 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
1837
1838 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
1839 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
1840 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
1841 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
1842 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
1843 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
1844 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
1845 of rtx.
1846
1847 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
1848
1849 * alloc-pool.c: Include coretypes.h.
1850 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
1851 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
1852 hash_set instead of htab.
1853 * ggc-page.c (in_gc): New variable.
1854 (ggc_free): Do nothing if a collection is taking place.
1855 (ggc_collect): Set in_gc appropriately.
1856 * ggc.h (gt_ggc_mx(const char *)): New function.
1857 (gt_pch_nx(const char *)): Likewise.
1858 (gt_ggc_mx(int)): Likewise.
1859 (gt_pch_nx(int)): Likewise.
1860 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
1861 (hash_map::hash_entry::pch_nx): Likewise.
1862 (hash_map::hash_entry::pch_nx_helper): Likewise.
1863 (hash_map::hash_map): Adjust.
1864 (hash_map::create_ggc): New function.
1865 (gt_ggc_mx): Likewise.
1866 (gt_pch_nx): Likewise.
1867 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
1868 (default_hashset_traits::pch_nx): Likewise.
1869 (hash_set::hash_entry::ggc_mx): Likewise.
1870 (hash_set::hash_entry::pch_nx): Likewise.
1871 (hash_set::hash_entry::pch_nx_helper): Likewise.
1872 (hash_set::hash_set): Adjust.
1873 (hash_set::create_ggc): New function.
1874 (hash_set::elements): Likewise.
1875 (gt_ggc_mx): Likewise.
1876 (gt_pch_nx): Likewise.
1877 * hash-table.h (hash_table::hash_table): Adjust.
1878 (hash_table::m_ggc): New member.
1879 (hash_table::~hash_table): Adjust.
1880 (hash_table::expand): Likewise.
1881 (hash_table::empty): Likewise.
1882 (gt_ggc_mx): New function.
1883 (hashtab_entry_note_pointers): Likewise.
1884 (gt_pch_nx): Likewise.
1885
1886 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1887
1888 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
1889 built-in definition.
1890 (XVCVUXDDP_SCALE): Likewise.
1891 (XVCVDPSXDS_SCALE): Likewise.
1892 (XVCVDPUXDS_SCALE): Likewise.
1893 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1894 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
1895 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
1896 VSX_BUILTIN_XVCVDPUXDS_SCALE.
1897 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
1898 prototype.
1899 * config/rs6000/rs6000.c (real.h): New include.
1900 (rs6000_scale_v2df): New function.
1901 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
1902 (UNSPEC_VSX_XVCVUXDDP): Likewise.
1903 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
1904 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
1905 (vsx_xvcvsxddp_scale): New define_expand.
1906 (vsx_xvcvsxddp): New define_insn.
1907 (vsx_xvcvuxddp_scale): New define_expand.
1908 (vsx_xvcvuxddp): New define_insn.
1909 (vsx_xvcvdpsxds_scale): New define_expand.
1910 (vsx_xvcvdpsxds): New define_insn.
1911 (vsx_xvcvdpuxds_scale): New define_expand.
1912 (vsx_xvcvdpuxds): New define_insn.
1913 * doc/extend.texi (vec_ctf): Add new prototypes.
1914 (vec_cts): Likewise.
1915 (vec_ctu): Likewise.
1916 (vec_splat): Likewise.
1917 (vec_div): Likewise.
1918 (vec_mul): Likewise.
1919
1920 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1921
1922 PR target/62275
1923 * config/arm/neon.md
1924 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
1925 <v_cmp_result>): New pattern.
1926 * config/arm/iterators.md (NEON_VCVT): New int iterator.
1927 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
1928 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
1929 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
1930 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
1931 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
1932
1933 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1934
1935 PR target/62275
1936 * config/arm/iterators.md (FIXUORS): New code iterator.
1937 (VCVT): New int iterator.
1938 (su_optab): New code attribute.
1939 (su): Likewise.
1940 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
1941
1942 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1943
1944 * config/aarch64/predicates.md (aarch64_comparison_operation):
1945 New special predicate.
1946 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
1947 aarch64_comparison_operation instead of matching an operator.
1948 Update operand numbers.
1949 (csinc3<mode>_insn): Likewise.
1950 (*csinv3<mode>_insn): Likewise.
1951 (*csneg3<mode>_insn): Likewise.
1952 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
1953 * config/aarch64/aarch64.c (aarch64_get_condition_code):
1954 Return -1 instead of aborting on invalid condition codes.
1955 (aarch64_print_operand): Update aarch64_get_condition_code callsites
1956 to assert that the returned condition code is valid.
1957 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
1958
1959 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
1960
1961 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
1962 tree.def, and gimple.def
1963
1964 2014-09-02 Jakub Jelinek <jakub@redhat.com>
1965 Balaji V. Iyer <balaji.v.iyer@intel.com>
1966 Igor Zamyatin <igor.zamyatin@intel.com>
1967
1968 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
1969 (__cilkrts_cilk_for_64): Likewise.
1970 * cilk-common.c (declare_cilk_for_builtin): New function.
1971 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
1972 __cilkrts_cilk_for_64 bultins.
1973 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
1974 CILK_TI_F_LOOP_64.
1975 (cilk_for_32_fndecl): New define.
1976 (cilk_for_64_fndecl): Likewise.
1977 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
1978 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
1979 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
1980 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
1981 GF_OMP_FOR_COMBINED_INTO.
1982 * gimplify.c (gimplify_scan_omp_clauses): Added
1983 OMP_CLAUSE__CILK_FOR_COUNT_ case.
1984 (gimplify_adjust_omp_clauses): Ditto.
1985 (gimplify_omp_for): Added CILK_FOR case.
1986 (gimplify_expr): Ditto.
1987 * omp-low.c: Include cilk.h.
1988 (extract_omp_for_data): Set appropriate kind for
1989 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
1990 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
1991 (create_omp_child_function_name): Added second argument to handle
1992 cilk_for case.
1993 (cilk_for_check_loop_diff_type): New function.
1994 (expand_cilk_for_call): Likewise.
1995 (expand_cilk_for): Likewise.
1996 (create_omp_child_function): Set cilk_for_count; handle the cases when
1997 it is true; call create_omp_child_function_name with second argument.
1998 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
1999 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
2000 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
2001 * tree-nested.c (convert_nonlocal_omp_clauses): Added
2002 OMP_CLAUSE__CILK_FOR_COUNT_ case.
2003 (convert_local_omp_clauses): Ditto.
2004 * tree-pretty-print.c (dump_omp_clause): Added
2005 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
2006 (dump_generic_node): Added CILK_FOR case.
2007 * tree.c (omp_clause_num_ops): New element
2008 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
2009 (omp_clause_code_name): New element _Cilk_for_count_.
2010 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
2011 * tree.def: Add tree code for CILK_FOR.
2012
2013 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
2014
2015 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
2016 (ppc403-compare): Add "exts with dot" case.
2017 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
2018 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
2019 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
2020 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
2021 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
2022 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
2023 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
2024 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
2025 cell-cmp-microcoded): Similarly.
2026 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
2027 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
2028 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
2029 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
2030 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
2031 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
2032 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
2033 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
2034 (power6-compare): Add "exts with dot" case.
2035 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
2036 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
2037 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
2038
2039 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
2040 if avoiding Cell microcode.
2041 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
2042 (is_cracked_insn): Ditto.
2043 (insn_must_be_first_in_group): Ditto.
2044 * config/rs6000/rs6000.md (dot): Adjust comment.
2045 (cell_micro): Handle exts+dot.
2046 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
2047 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
2048 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
2049 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
2050 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
2051 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
2052 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
2053
2054 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
2055
2056 * config/rs6000/rs6000.md (QHSI): Delete.
2057 (EXTQI, EXTHI, EXTSI): New mode iterators.
2058 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
2059 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
2060 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
2061 9 anonymous instructions, and 8 splitters): Delete.
2062 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
2063 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
2064 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
2065 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
2066 *zero_extendsi<mode>2_dot2): New.
2067
2068 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
2069
2070 * config/rs6000/rs6000.md (any_extend): New code iterator.
2071 (u, su): New code attributes.
2072 (dmode, DMODE): New mode attributes.
2073 (<su>mul<mode>3_highpart): New.
2074 (*<su>mul<mode>3_highpart): New.
2075 (<su>mulsi3_highpart_le): New.
2076 (<su>muldi3_highpart_le): New.
2077 (<su>mulsi3_highpart_64): New.
2078 (<u>mul<mode><dmode>3): New.
2079 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
2080 splitters): Delete.
2081 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
2082 splitters): Delete.
2083
2084 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
2085
2086 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
2087 *mulsi3_internal2, and two splitters): Delete.
2088 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
2089 Delete.
2090 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
2091
2092 2014-09-02 Richard Biener <rguenther@suse.de>
2093
2094 PR tree-optimization/62695
2095 * tree-ssa-structalias.c (find_func_clobbers): Add missing
2096 vector truncate.
2097
2098 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
2099
2100 PR target/62312
2101 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
2102
2103 2014-09-01 Andi Kleen <ak@linux.intel.com>
2104
2105 * file-find.c (add_prefix_begin): Add.
2106 (do_add_prefix): Rename from add_prefix with first argument.
2107 (add_prefix): Add new wrapper.
2108 * file-find.h (add_prefix_begin): Add.
2109 * gcc-ar.c (main): Support -B option.
2110
2111 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
2112
2113 * genemit.c: Include dumpfile.h.
2114 (gen_split): Print name of splitter function to dump file.
2115
2116 2014-09-01 Richard Biener <rguenther@suse.de>
2117
2118 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
2119 Use stack auto_vecs for constraint expressions.
2120 (find_func_aliases_for_call): Likewise.
2121 (find_func_aliases): Likewise.
2122 (find_func_clobbers): Likewise.
2123
2124 2014-09-01 Richard Biener <rguenther@suse.de>
2125
2126 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
2127 operands vector in most cases. Remove redundant code.
2128
2129 2014-09-01 Olivier Hainque <hainque@adacore.com>
2130
2131 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
2132 $WIND_BASE instead of designating a harcoded arbitrary home dir.
2133 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
2134
2135 2014-09-01 Richard Biener <rguenther@suse.de>
2136
2137 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
2138 copy_reference_ops_from_call, vn_nary_op_compute_hash,
2139 vn_reference_compute_hash, vn_reference_insert): Remove.
2140 (vn_reference_lookup_call): New function.
2141 * tree-ssa-sccvn.c (vn_reference_compute_hash,
2142 copy_reference_ops_from_ref, copy_reference_ops_from_call,
2143 vn_reference_insert, vn_nary_op_compute_hash): Make static.
2144 (create_reference_ops_from_call): Remove.
2145 (vn_reference_lookup_3): Properly update shared_lookup_references.
2146 (vn_reference_lookup_pieces): Assert that we updated
2147 shared_lookup_references properly.
2148 (vn_reference_lookup): Likewise.
2149 (vn_reference_lookup_call): New function.
2150 (visit_reference_op_call): Use it. Avoid re-building the
2151 reference ops.
2152 (visit_reference_op_load): Remove redundant lookup.
2153 (visit_reference_op_store): Perform special tail-merging work
2154 only when possibly doing tail-merging.
2155 (visit_use): Likewise.
2156 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
2157
2158 2014-09-01 Jakub Jelinek <jakub@redhat.com>
2159
2160 PR target/62025
2161 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
2162 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
2163 (find_inc): Revert 2014-08-13 change.
2164
2165 2014-09-01 Marek Polacek <polacek@redhat.com>
2166
2167 PR middle-end/61903
2168 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
2169 Change the type of V to unsigned HOST_WIDE_INT.
2170
2171 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
2172
2173 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
2174 the size of byte markers.
2175 (do_shift_rotate): Fix confusion between host, target and marker byte
2176 size.
2177 (verify_symbolic_number_p): Likewise.
2178 (find_bswap_or_nop_1): Likewise.
2179 (find_bswap_or_nop): Likewise.
2180
2181 2014-09-01 Olivier Hainque <hainque@adacore.com>
2182
2183 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
2184 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
2185
2186 2014-09-01 Jakub Jelinek <jakub@redhat.com>
2187
2188 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
2189 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
2190 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
2191
2192 2014-09-01 Yury Gribov <y.gribov@samsung.com>
2193
2194 PR sanitizer/61897
2195 PR sanitizer/62140
2196 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
2197 (build_check_stmt): Likewise.
2198 (instrument_strlen_call): Likewise.
2199 (asan_expand_check_ifn): Likewise and fix types.
2200 (maybe_cast_to_ptrmode): New function.
2201
2202 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2203
2204 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
2205
2206 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
2207
2208 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
2209
2210 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
2211
2212 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
2213 prefix to function labels when generating fast indirect calls.
2214
2215 2014-08-30 David Malcolm <dmalcolm@redhat.com>
2216
2217 PR bootstrap/62304
2218
2219 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
2220 param back from rtx_insn * to rtx. Rename param from "label" to
2221 "label_or_return", reintroducing "label" as an rtx_insn * after
2222 we've ensured it's not a RETURN.
2223 (first_active_target_insn): Likewise for return type and param;
2224 add a checked cast to rtx_insn * once we've ensured "insn" is not
2225 a RETURN.
2226 (steal_delay_list_from_target): Convert param "pnew_thread" back
2227 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
2228 with JUMP_LABEL.
2229 (own_thread_p): Convert param "thread" back from an rtx_insn * to
2230 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
2231 cast once we've established we're not dealing with a RETURN,
2232 renaming subsequent uses of "thread" to "thread_insn".
2233 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
2234 to JUMP_LABEL.
2235 (follow_jumps): Convert return type and param "label" from
2236 rtx_insn * back to rtx. Move initialization of "value" to after
2237 the handling for ANY_RETURN_P, adding a checked cast there to
2238 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
2239 rename to "this_label_or_return", reintroducing "this_label" as
2240 an rtx_insn * once we've handled the case where it could be an
2241 ANY_RETURN_P.
2242 (fill_slots_from_thread): Rename param "thread" to
2243 "thread_or_return", converting from an rtx_insn * back to an rtx.
2244 Reintroduce name "thread" as an rtx_insn * local with a checked
2245 cast once we've handled the case of it being an ANY_RETURN_P.
2246 Convert local "new_thread" from an rtx_insn * back to an rtx.
2247 Add a checked cast when assigning to "trial" from "new_thread".
2248 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
2249 checked cast to rtx_insn * from "new_thread" when invoking
2250 get_label_before.
2251 (fill_eager_delay_slots): Convert locals "target_label",
2252 "insn_at_target" from rtx_insn * back to rtx.
2253 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
2254 (relax_delay_slots): Convert locals "trial", "target_label" from
2255 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
2256 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
2257 invoking update_block.
2258 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
2259 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
2260
2261 * resource.h (mark_target_live_regs): Undo erroneous conversion
2262 of second param of r214693, converting it back from rtx_insn * to
2263 rtx, since it could be a RETURN.
2264
2265 * resource.c (find_dead_or_set_registers): Similarly, convert
2266 param "jump_target" back from an rtx_insn ** to an rtx *, as we
2267 could be writing back a RETURN. Rename local rtx_insn * "next" to
2268 "next_insn", and introduce "lab_or_return" as a local rtx,
2269 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
2270 (mark_target_live_regs): Undo erroneous conversion
2271 of second param of r214693, converting it back from rtx_insn * to
2272 rtx, since it could be a RETURN. Rename it from "target" to
2273 "target_maybe_return", reintroducing the name "target" as a local
2274 rtx_insn * with a checked cast, after we've handled the case of
2275 ANY_RETURN_P.
2276
2277 2014-08-29 DJ Delorie <dj@redhat.com>
2278
2279 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
2280 pointer size up to a power of two.
2281 * defaults.h (DWARF2_ADDR_SIZE): Round up.
2282 (POINTER_SIZE_UNITS): New, rounded up value.
2283 * dwarf2asm.c (size_of_encoded_value): Use it.
2284 (dw2_output_indirect_constant_1): Likewise.
2285 * expmed.c (init_expmed_one_conv): We now know the sizes of
2286 partial int modes.
2287 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
2288 * optabs.c (expand_float): Use precision, not size.
2289 (expand_fix): Likewise.
2290 * simplify-rtx (simplify_unary_operation_1): Likewise.
2291 * tree-dfa.c (get_ref_base_and_extent): Likewise.
2292 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
2293 (default_assemble_integer) Likewise.
2294 (dump_tm_clone_pairs): Likewise.
2295 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
2296 * var-tracking.c (adjust_mems): Allow partial-int modes also.
2297 (prepare_call_arguments): Likewise.
2298 * stor-layout.c (finalize_type_size): Preserve precision.
2299 (layout_type): Use precision, not size.
2300
2301 * expr.c (convert_move): If the target has an explicit converter,
2302 use it.
2303
2304 2014-08-29 David Malcolm <dmalcolm@redhat.com>
2305
2306 * gdbinit.in: Skip various inline functions in rtl.h when
2307 stepping.
2308
2309 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
2310
2311 PR bootstrap/62301
2312 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
2313
2314 2014-08-29 Richard Biener <rguenther@suse.de>
2315
2316 PR tree-optimization/62291
2317 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
2318 exactly the vector size needed and use quick_push.
2319 (phi_translate_1): Adjust comment.
2320 (valid_in_sets): Remove block argument and remove pointless
2321 checking of NAMEs.
2322 (dependent_clean): Adjust for removal of block argument.
2323 (clean): Likewise.
2324 (compute_antic_aux): Likewise.
2325 (compute_partial_antic_aux): Likewise.
2326
2327 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
2328 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2329 Anna Tikhonova <anna.tikhonova@intel.com>
2330 Ilya Tocar <ilya.tocar@intel.com>
2331 Andrey Turetskiy <andrey.turetskiy@intel.com>
2332 Ilya Verbin <ilya.verbin@intel.com>
2333 Kirill Yukhin <kirill.yukhin@intel.com>
2334 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2335
2336 * config/i386/sse.md
2337 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
2338 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
2339 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
2340 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
2341
2342 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
2343 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2344 Anna Tikhonova <anna.tikhonova@intel.com>
2345 Ilya Tocar <ilya.tocar@intel.com>
2346 Andrey Turetskiy <andrey.turetskiy@intel.com>
2347 Ilya Verbin <ilya.verbin@intel.com>
2348 Kirill Yukhin <kirill.yukhin@intel.com>
2349 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2350
2351 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
2352 * config/i386/sse.md
2353 (define_mode_iterator VI4_128_8_256): New.
2354 (define_mode_iterator VI2_128_4_256): Ditto.
2355 (define_mode_iterator PMOV_DST_MODE): Rename into
2356 (define_mode_iterator PMOV_DST_MODE_1): this.
2357 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
2358 Use PMOV_DST_MODE_1 mode iterator.
2359 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
2360 Ditto.
2361 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
2362 Ditto.
2363 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
2364 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
2365 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
2366 (define_mode_iterator PMOV_DST_MODE_2): New.
2367 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
2368 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
2369 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
2370 Ditto.
2371 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
2372 (define_mode_attr pmov_dst_3): Ditto.
2373 (define_mode_attr pmov_dst_zeroed_3): Ditto.
2374 (define_mode_attr pmov_suff_3): Ditto.
2375 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
2376 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
2377 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
2378 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
2379 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
2380 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
2381 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
2382 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
2383 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
2384 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
2385 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
2386 (define_mode_attr pmov_dst_4): Ditto.
2387 (define_mode_attr pmov_dst_zeroed_4): Ditto.
2388 (define_mode_attr pmov_suff_4): Ditto.
2389 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
2390 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
2391 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
2392 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
2393 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
2394 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
2395 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
2396 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
2397 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
2398 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
2399 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
2400
2401 2014-08-29 Richard Biener <rguenther@suse.de>
2402
2403 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
2404 NON_LVALUE_EXPR in gimple.
2405
2406 2014-08-29 Richard Biener <rguenther@suse.de>
2407
2408 PR middle-end/62292
2409 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
2410 from previous refactoring.
2411 (gimple_fold_builtin_strncpy): Likewise.
2412
2413 2014-08-29 David Malcolm <dmalcolm@redhat.com>
2414
2415 PR bootstrap/62300
2416 * function.c (assign_parm_setup_reg): Remove erroneous checked
2417 cast to rtx_insn * on result of gen_extend_insn in favor of
2418 introducing a new local rtx "pat".
2419
2420 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2421
2422 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
2423 to silence warning.
2424 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
2425
2426 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2427
2428 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
2429 (next_insn): Likewise.
2430 * emit-rtl.c (next_insn): Likewise.
2431 (previous_insn): Likewise.
2432 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
2433 "insn" and "next" from rtx to rtx_insn *.
2434 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
2435 "insn", "insn1", "vliw_start", "prologue_end_note",
2436 "last_insn_in_packet".
2437
2438 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2439
2440 * shrink-wrap.h (active_insn_between): Strengthen both params from
2441 rtx to rtx_insn *.
2442 * function.c (active_insn_between): Likewise.
2443
2444 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2445
2446 * genattr.c (main): When writing out insn-attr.h, strengthen param
2447 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
2448 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
2449 writing out the definition of dfa_clear_single_insn_cache to the
2450 generated insn-automata.c
2451
2452 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2453
2454 * resource.h (clear_hashed_info_for_insn): Strengthen param from
2455 rtx to rtx_insn *.
2456 (incr_ticks_for_insn): Likewise.
2457 (init_resource_info): Likewise.
2458
2459 * resource.c (init_resource_info): Likewise.
2460 (clear_hashed_info_for_insn): Likewise.
2461 (incr_ticks_for_insn): Likewise.
2462
2463 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
2464 rtx to rtx_insn *.
2465 (steal_delay_list_from_target): Use methods of "seq".
2466 (try_merge_delay_insns): Use methods of "merged_insns".
2467 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
2468 (reorg_redirect_jump): Likewise for param "jump".
2469
2470 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2471
2472 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
2473 rtx to rtx_insn *.
2474 * config/s390/s390.c (s390_split_branches): Eliminate top-level
2475 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
2476 "set_insn".
2477 (s390_mainpool_finish): In three places, split out a local rtx
2478 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
2479 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
2480 and split another local rtx "insn" out into rtx "pat" and
2481 rtx_insn * "insn".
2482 * config/sh/sh.c (output_branchy_insn): Rather than working
2483 directly on operands[9], introduce local rtx_code_label *
2484 variables named "lab" in two places, working on them, and then
2485 assigning them to operands[9], so that the intervening operations
2486 are known by the type system to be on insns.
2487
2488 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2489
2490 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
2491 const rtx_insn *.
2492
2493 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
2494 in invocation of INSN_HAS_LOCATION.
2495
2496 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2497
2498 * config/rs6000/altivec.h (vec_xl): New #define.
2499 (vec_xst): Likewise.
2500 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
2501 (XXSPLTD_V2DI): Likewise.
2502 (DIV_V2DI): Likewise.
2503 (UDIV_V2DI): Likewise.
2504 (MUL_V2DI): Likewise.
2505 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2506 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
2507 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
2508 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
2509 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
2510 (UNSPEC_VSX_DIVSD): Likewise.
2511 (UNSPEC_VSX_DIVUD): Likewise.
2512 (UNSPEC_VSX_MULSD): Likewise.
2513 (vsx_mul_v2di): New insn-and-split.
2514 (vsx_div_v2di): Likewise.
2515 (vsx_udiv_v2di): Likewise.
2516 (vsx_xxspltd_<mode>): New insn.
2517
2518 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2519
2520 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
2521 NEXT_INSN.
2522 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
2523 (NEXT_INSN): Likewise.
2524 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
2525 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
2526 const rtx_insn *.
2527 (no_labels_between_p): Likewise for both params.
2528
2529 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
2530 cast when using NEXT_INSN on operands[2].
2531 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
2532 "insn" from rtx to rtx_insn *, adding a checked cast.
2533 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
2534 rtx_insn *.
2535 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
2536 for third param.
2537 (arc_text_label): Likewise for param "insn".
2538 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
2539 "insn".
2540 (arc_ccfsm_record_condition): Likewise for param "jump".
2541 (arc_text_label): Likewise for local "label".
2542 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
2543 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
2544 a method for typesafety. Add a checked cast.
2545 * config/arc/constraints.md (Clb): Add a checked cast when getting
2546 the CODE_LABEL from a LABEL_REF.
2547 * config/arm/arm.c (require_pic_register): Strengthen locals
2548 "seq", "insn" from rtx to rtx_insn *.
2549 (create_fix_barrier): Likewise for locals "selected", "next".
2550 (thumb1_reorg): Likewise for locals "prev", "insn".
2551 (arm_expand_prologue): Likewise for local "last".
2552 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
2553 operands[0].
2554 (thumb2_output_casesi): Likewise for operands[2].
2555 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
2556 strengthen local "insn" from rtx to rtx_insn *.
2557 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
2558 type and param "insn".
2559 (find_prev_insn_start): Likewise.
2560 (hwloop_optimize): Likewise for locals "insn", "last_insn",
2561 "prev".
2562 (gen_one_bundle): Likewise for loal "t".
2563 (find_load): Likewise for param "insn".
2564 (workaround_speculation): Likewise for locals "insn", "next",
2565 "target", "next_tgt".
2566 * config/c6x/c6x.c (assign_reservations): Likewise for both params
2567 and for locals "insn", "within", "last".
2568 (count_unit_reqs): Likewise for params "head", "tail" and local
2569 "insn".
2570 (try_rename_operands): Likewise for params "head", "tail".
2571 (reshuffle_units): Likewise for locals "head", "tail", "insn".
2572 (struct c6x_sched_context): Likewise for fields
2573 "last_scheduled_insn", "last_scheduled_iter0".
2574 (init_sched_state): Replace NULL_RTX with NULL.
2575 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
2576 to rtx_insn *.
2577 (undo_split_delayed_nonbranch): Likewise for param and for local
2578 "prev".
2579 (conditionalize_after_sched): Likewise for local "insn".
2580 (bb_earliest_end_cycle): Likewise.
2581 (filter_insns_above): Likewise for locals "insn", "next".
2582 (hwloop_optimize): Remove redundant checked cast.
2583 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
2584 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
2585 NULL_RTX with NULL.
2586 (cris_simple_epilogue): Likewise.
2587 (cris_expand_prologue): Likewise.
2588 (cris_expand_epilogue): Likewise.
2589 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
2590 local "insn" from rtx to rtx_insn *.
2591 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
2592 (struct frv_packet_group): Likewise for the elements within array
2593 fields "insns", "sorted", and for field "nop".
2594 (frv_packet): Likewise for the elements within array field
2595 "insns".
2596 (frv_add_insn_to_packet): Likewise for param "insn".
2597 (frv_insert_nop_in_packet): Likewise for param "insn" and local
2598 "last".
2599 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
2600 (frv_sort_insn_group_1): Likewise for local "insn".
2601 (frv_optimize_membar_local): Likewise.
2602 (frv_align_label): Likewise for locals "x", "last", "barrier",
2603 "label".
2604 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
2605 local.
2606 (ia64_sched_init): Likewise for local "insn".
2607 (scheduled_good_insn): Likewise for param "last".
2608 (struct _ia64_sched_context): Likewise for field
2609 "last_scheduled_insn".
2610 (ia64_init_sched_context): Replace NULL_RTX with NULL.
2611 (struct bundle_state): Likewise for field "insn".
2612 (issue_nops_and_insn): Likewise for param "insn".
2613 (get_next_important_insn): Likewise for return type and both
2614 params.
2615 (ia64_add_bundle_selector_before): Likewise for param "insn".
2616 (bundling): Likewise for params "prev_head_insn", "tail" and
2617 locals "insn", "next_insn", "b". Eliminate top-level local rtx
2618 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
2619 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
2620 Strengthen final param from rtx to rtx_insn *.
2621 (iq2000_move_1word): Likewise for second param.
2622 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
2623 param "cur_insn" and local "next_insn".
2624 (iq2000_move_1word): Likewise for param "insn".
2625 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
2626 casts when using NEXT_INSN on operands[1].
2627 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
2628 "insn" from rtx to rtx_insn *.
2629 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
2630 "x", introducing local rtx_insn * "insn" for when working with the
2631 CODE_LABEL of the LABEL_REF.
2632 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
2633 rtx_insn *.
2634 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
2635 param.
2636 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
2637 type.
2638 (conditionalize_block): Likewise for return type and param.
2639 (mcore_is_dead): Likewise for param "first" and local "insn".
2640 (emit_new_cond_insn): Likewise for return type.
2641 (conditionalize_block): Likewise for return type, param, and
2642 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
2643 "newinsn".
2644 (conditionalize_optimization): Likewise for local "insn".
2645 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
2646 using NEXT_INSN.
2647 * config/microblaze/microblaze.md: Add checked casts when using
2648 NEXT_INSN.
2649 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
2650 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
2651 and rtx_insn * "insn".
2652 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
2653 checked cast when using NEXT_INSN on operands[2].
2654 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
2655 local "insn" from rtx to rtx_insn *.
2656 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
2657 Likewise.
2658 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
2659 Add a checked cast when using NEXT_INSN on operands[1].
2660 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
2661 rtx to rtx_insn *.
2662 (pa_output_cbranch): Likewise for final param.
2663 (pa_output_lbranch): Likewise for second param.
2664 (pa_output_bb): Likewise for third param.
2665 (pa_output_bvb): Likewise.
2666 (pa_output_dbra): Likewise for second param.
2667 (pa_output_movb): Likewise.
2668 (pa_output_parallel_movb): Likewise.
2669 (pa_output_parallel_addb): Likewise.
2670 (pa_output_millicode_call): Likewise for first param.
2671 (pa_output_mul_insn): Likewise for second param.
2672 (pa_output_div_insn): Likewise for third param.
2673 (pa_output_mod_insn): Likewise for second param.
2674 (pa_jump_in_call_delay): Likewise for param.
2675 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
2676 (pa_output_div_insn): Likewise.
2677 (pa_output_mod_insn): Likewise.
2678 (pa_output_cbranch): Likewise.
2679 (pa_output_lbranch): Likewise.
2680 (pa_output_bb): Likewise.
2681 (pa_output_bvb): Likewise.
2682 (pa_output_dbra): Likewise.
2683 (pa_output_movb): Likewise.
2684 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
2685 to simplify and for typesafety.
2686 (pa_output_call): Use method of rtx_sequence *.
2687 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
2688 (pa_jump_in_call_delay): Likewise.
2689 (pa_output_parallel_movb): Likewise.
2690 (pa_output_parallel_addb): Likewise.
2691 (pa_following_call): Likewise.
2692 (pa_combine_instructions): Likewise for locals "anchor",
2693 "floater".
2694 (pa_can_combine_p): Likewise for params "anchor", "floater" and
2695 locals "start", "end".
2696 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
2697 param "insn" and local "local_insn".
2698 (picochip_final_prescan_insn): Likewise for local "local_insn".
2699 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
2700 local "insn".
2701 (uses_TOC): Likewise.
2702 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
2703 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
2704 splitting out to more tightly-scoped locals, 3 as rtx and one as
2705 rtx_insn *.
2706 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
2707 to rtx_insn *.
2708 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
2709 where needed.
2710 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
2711 to rtx_insn *.
2712 (fixup_addr_diff_vecs): Likewise.
2713 (reg_unused_after): Likewise for param 2.
2714 (sh_can_redirect_branch): Likewise for both params.
2715 (check_use_sfunc_addr): Likewise for param 1.
2716 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
2717 (find_barrier): Likewise for local "last_got".
2718 (gen_block_redirect): Likewise for return type, param "jump" and
2719 locals "prev", "scan", "next", "insn".
2720 (struct far_branch): Likewise for fields "near_label",
2721 "insert_place", "far_label".
2722 (gen_far_branch): Likewise for local "jump".
2723 (fixup_addr_diff_vecs): Likewise for param "first" and locals
2724 "insn", "prev".
2725 (barrier_align): Likewise for param and for locals "prev", "x".
2726 Introduce local rtx_sequence * "prev_seq" and use insn method for
2727 typesafety and clarity.
2728 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
2729 (get_dest_uid): Likewise for local "dest".
2730 (split_branches): Likewise for locals "next", "beyond", "label",
2731 "block", "far_label". Add checked casts when assigning to
2732 bp->far_label and "far_label".
2733 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
2734 (sequence_insn_p): Likewise.
2735 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
2736 more loop-scoped rtx "insn" when walking LABEL_REFS.
2737 (sh_can_redirect_branch): Strengthen both params from rtx to
2738 rtx_insn *.
2739 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
2740 new local rtx_sequence * "seq" via a dyn_cast, and use a method
2741 for clarity and typesafety.
2742 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
2743 "insn" from rtx to rtx_insn *.
2744 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
2745 when using NEXT_INSN on the CODE_LABEL in operands[2].
2746 (define_insn "casesi_worker_2"): Likewise.
2747 (define_insn "casesi_shift_media"): Likewise.
2748 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
2749 operands[3].
2750 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
2751 Strengthen field "insn" from rtx to rtx_insn *.
2752 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
2753 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
2754 param "start_insn" and local "start_insn".
2755 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
2756 field "insn".
2757 (find_set_of_reg_bb): Likewise for param "insn".
2758 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
2759 (trace_reg_uses): Likewise for param "start_insn".
2760 (sh_treg_combine::cbranch_trace): Likewise for field
2761 "cbranch_insn".
2762 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
2763 param "insn".
2764 (sh_treg_combine::record_set_of_reg): Likewise for param
2765 "start_insn" and local "i".
2766 (sh_treg_combine::can_remove_cstore): Likewise for local
2767 "prev_insn".
2768 (sh_treg_combine::try_optimize_cbranch): Likewise for param
2769 "insn".
2770 (sh_treg_combine::execute): Likewise for local "i".
2771 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
2772 param.
2773 (sparc_check_64): Likewise for second param.
2774 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
2775 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
2776 dyn_cast, using its insn method for typesafety and clarity.
2777 (empty_delay_slot): Strengthen param "insn" from rtx to
2778 rtx_insn *.
2779 (set_extends): Likewise.
2780 (sparc_check_64): Likewise.
2781 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
2782 for locals "seq", "last_insn".
2783 (combine_bnp): Likewise for param "insn".
2784 (xstormy16_reorg): Likewise for local "insn".
2785 * config/v850/v850.c (substitute_ep_register): Likewise for params
2786 "first_insn", "last_insn" and local "insn".
2787 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
2788 elements of "regs" array, and local "insn".
2789 * except.c (emit_note_eh_region_end): Likewise for param "insn".
2790 * final.c (final_sequence): Strengthen this global from rtx to
2791 rtx_sequence *.
2792 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
2793 rtx_insn *.
2794 (final_scan_insn): Update assignment to "final_sequence" to be
2795 from "seq", the cast version of "body", for type-safety.
2796 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
2797 "insns" from rtx to rtx_insn *.
2798 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
2799 * genattr.c (main): When writing out generated insn-attr.h,
2800 strengthen params 1 and 3 of eligible_for_delay,
2801 eligible_for_annul_true, eligible_for_annul_false from rtx to
2802 rtx_insn *.
2803 * genattrtab.c (write_eligible_delay): Likewise when writing out
2804 generated insn-attrtab.c; also local "insn" the generated
2805 functions.
2806 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
2807 to rtx_insn *.
2808 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
2809 "start_label" from rtx to rtx_insn *.
2810 * ira.c (decrease_live_ranges_number): Likewise for local "p".
2811 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
2812 "insns" and local "insn".
2813 (validate_equiv_mem): Likewise for param "start" and local "insn".
2814 (memref_used_between_p): Likewise for params "start", "end" and
2815 local "insn".
2816 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
2817 final param.
2818 * loop-doloop.c (doloop_optimize): Within region guarded by
2819 INSN_P (doloop_pat), introduce a new local rtx_insn *
2820 "doloop_insn" via a checked cast, and use it for typesafety,
2821 eventually writing the value back into doloop_pat.
2822 * output.h (final_sequence): Strengthen this global from rtx to
2823 rtx_sequence *.
2824 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
2825 reintroducing "insn" as an rtx_insn * via a checked cast.
2826 Strengthen param "attempt" and local "new_insn"from rtx to
2827 rtx_insn *.
2828 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
2829 to rtx_insn *.
2830 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
2831 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
2832 "p" in favor of more tightly-scoped replacements, sometimes rtx
2833 and sometimes rtx_insn *, as appropriate.
2834 (delete_output_reload): Eliminate top-level rtx "i1", splitting
2835 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
2836 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
2837 local "trial" from rtx to rtx_insn *.
2838 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
2839 rtx to rtx_insn *. Strenghten local "pat" from rtx to
2840 rtx_sequence * and use methods for clarity and typesafety.
2841 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
2842 rtx to rtx_insn *. Strenghten local "li" from rtx to
2843 rtx_insn_list * and use its methods for clarity and typesafety.
2844 (steal_delay_list_from_target): Strengthen param "insn" from rtx
2845 to rtx_insn *.
2846 (steal_delay_list_from_fallthrough): Likewise.
2847 (try_merge_delay_insns): Likewise for param "thread" and locals
2848 "trial", "next_trial", "delay_insn".
2849 (redundant_insn): Likewise for param "target" and local "trial".
2850 (own_thread_p): Likewise for param "thread" and locals
2851 "active_insn", "insn".
2852 (get_label_before): Likewise for param "insn".
2853 (fill_simple_delay_slots): Likewise for local "new_label"; use
2854 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
2855 (label_before_next_insn): Strengthen return type and local "insn"
2856 from rtx to rtx_insn *.
2857 (relax_delay_slots): Likewise for locals "other", "tmp".
2858 (make_return_insns): Likewise for param "first" and locals "insn",
2859 "jump_insn", "prev". Move declaration of "pat" to its assignment
2860 and strengthen from rtx to rtx_sequence *. Use its methods for
2861 clarity and typesafety.
2862 * rtlanal.c (no_labels_between_p): Strengthen params from
2863 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
2864 rtx_insn *.
2865 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
2866 from const_rtx to const rtx_insn *.
2867 (reg_set_between_p): Rename param "from_insn" to
2868 "uncast_from_insn", and reintroduce "from_insn" as a
2869 const rtx_insn * via a checked cast.
2870 (modified_between_p): Likewise for param "start" as "uncast_start".
2871 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
2872 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
2873 "tmp", head" from rtx to rtx_insn *.
2874 (recompute_rev_top_order): Likewise for local "insn".
2875 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
2876 * store-motion.c (build_store_vectors): Likewise for local "insn".
2877 Strengthen local "st" from rtx to rtx_insn_list * and use methods
2878 for clarity and typesafety.
2879 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
2880 rtx to rtx_insn *.
2881 (computation_cost): Likewise for local "seq".
2882 (get_address_cost): Likewise.
2883
2884 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2885
2886 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
2887 const rtx_insn *.
2888 (label_is_jump_target_p): Likewise for second param.
2889
2890 * rtlanal.c (tablejump_p): Likewise for param "insn".
2891 (label_is_jump_target_p): Likewise for param "jump_insn".
2892
2893 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2894
2895 * rtl.h (find_first_parameter_load): Strengthen return type and
2896 both params from rtx to rtx_insn *.
2897 * rtlanal.c (find_first_parameter_load): Strengthen return type,
2898 both params and locals "before", "first_set" from rtx to
2899 rtx_insn *. Remove now-redundant cast.
2900 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
2901
2902 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2903
2904 * rtl.h (find_last_value): Delete.
2905 * rtlanal.c (find_last_value): Delete.
2906
2907 2014-08-28 David Malcolm <dmalcolm@redhat.com>
2908
2909 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
2910 from rtx to rtx_insn *.
2911 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
2912 rtx "note" with new local rtx_insn * "new_head" when calculating
2913 head insn of new basic block.
2914 * combine.c (combine_split_insns): Strengthen return type and local
2915 "ret" from rtx to rtx_insn *.
2916 (likely_spilled_retval_p): Likewise for locals "use" and "p".
2917 (try_combine): Eliminate local "m_split", splitting into new
2918 locals "m_split_insn" and "m_split_pat".
2919 (find_split_point): Strengthen local "seq" from rtx into
2920 rtx_insn *.
2921 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
2922 locals "label", "branch".
2923 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
2924 for local "insn".
2925 (define_expand "umulsi3_highpart"): Likewise for local "insn".
2926 * dse.c (note_add_store_info): Likewise for fields "first",
2927 "current".
2928 (note_add_store): Likewise for local "insn".
2929 (emit_inc_dec_insn_before): Likewise for locals "insn",
2930 "new_insn", "cur".
2931 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
2932 (replace_read): Likewise for locals "insns", "this_insn".
2933 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
2934 (notice_eh_throw): Likewise for param "insn".
2935 (before_next_cfi_note): Likewise for return type, param, and local
2936 "prev".
2937 (connect_traces): Likewise for local "note".
2938 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
2939 (verify_rtl_sharing): Likewise.
2940 (unshare_all_rtl_in_chain): Likewise for param "insn".
2941 (get_first_nonnote_insn): Likewise for local "insn".
2942 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
2943 "seq" and use its methods to clarify things.
2944 (next_insn): Strengthen return type from rtx to rtx_insn *.
2945 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
2946 local rtx_insn * using a checked cast, dropping a checked cast
2947 made redundant by this change. Use a cast to and method of
2948 rtx_sequence to clarify the code.
2949 (previous_insn): Rename param "insn" to "uncast_insn" and
2950 reintroduce "insn" as a local rtx_insn * using a checked cast,
2951 dropping a checked cast made redundant by this change. Use a cast
2952 to and method of rtx_sequence to clarify the code.
2953 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
2954 reintroduce "insn" as a local rtx_insn * using a checked cast,
2955 dropping a checked cast made redundant by this change.
2956 (next_nonnote_insn_bb): Likewise.
2957 (prev_nonnote_insn): Likewise.
2958 (prev_nonnote_insn_bb): Likewise.
2959 (next_nondebug_insn): Likewise.
2960 (prev_nondebug_insn): Likewise.
2961 (next_nonnote_nondebug_insn): Likewise.
2962 (prev_nonnote_nondebug_insn): Likewise.
2963 (next_real_insn): Likewise.
2964 (prev_real_insn): Likewise.
2965 (next_active_insn): Likewise.
2966 (prev_active_insn): Likewise.
2967 (next_cc0_user): Likewise. Use rtx_sequence and a method for
2968 clarity.
2969 (prev_cc0_setter): Likewise.
2970 (try_split): Rename param "trial" to "uncast_trial" and
2971 reintroduce "insn" as a local rtx_insn * using a checked cast,
2972 dropping checked casts made redundant by this change.
2973 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
2974 rtx to rtx_insn *.
2975 (remove_insn): Rename param "insn" to "uncast_insn" and
2976 reintroduce "insn" as a local rtx_insn * using a checked cast.
2977 (emit_pattern_after_setloc): Likewise for param "after", as
2978 "uncast_after".
2979 (emit_pattern_after): Likewise. Strengthen local "prev" from
2980 rtx to rtx_insn *.
2981 (emit_pattern_before_setloc): Rename param "before" to
2982 "uncast_before" and reintroduce "before" as a local rtx_insn *
2983 using a checked cast. Strengthen locals "first", "last" from
2984 rtx to rtx_insn *.
2985 (emit_pattern_before): Likewise rename/cast param "before" to
2986 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
2987 * except.c (copy_reg_eh_region_note_forward): Strengthen param
2988 "first" and local "insn" from rtx to rtx_insn *.
2989 (copy_reg_eh_region_note_backward): Likewise for param "last"
2990 and local "insn".
2991 * expr.c (fixup_args_size_notes): Rename param "last" to
2992 "uncast_last" and reintroduce "last" as a local rtx_insn *
2993 using a checked cast. Strengthen local "insn" from rtx to
2994 rtx_insn *.
2995 * function.c (set_insn_locations): Strengthen param "insn" from
2996 rtx to rtx_insn *.
2997 (record_insns): Likewise for param "insns" and local "tmp".
2998 (active_insn_between): Rename param "tail" to
2999 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
3000 using a checked cast.
3001 (thread_prologue_and_epilogue_insns): Split out top-level local
3002 rtx "seq" into three different rtx_insn * locals. Strengthen
3003 local "prologue_seq" from rtx to rtx_insn *.
3004 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
3005 from rtx to rtx_insn *.
3006 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
3007 (priority): Likewise for locals "prev_first", "twin".
3008 (setup_insn_max_reg_pressure): Likewise for param "after".
3009 (sched_setup_bb_reg_pressure_info): Likewise.
3010 (no_real_insns_p): Strengthen params from const_rtx to
3011 const rtx_insn *.
3012 (schedule_block): Strengthen local "next_tail" from rtx to
3013 rtx_insn *.
3014 * ifcvt.c (find_active_insn_before): Strengthen return type and
3015 param "insn" from rtx to rtx_insn *.
3016 (find_active_insn_after): Likewise.
3017 (cond_exec_process_insns): Likewise for param "start" and local "insn".
3018 (cond_exec_process_if_block): Likewise for locals "then_start",
3019 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
3020 (noce_process_if_block): Likewise for local "jump".
3021 (merge_if_block): Likewise for two locals named "end".
3022 (cond_exec_find_if_block): Likewise for local "last_insn".
3023 * jump.c (delete_related_insns): Rename param "insn" to
3024 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
3025 checked cast. Strengthen local "p" from rtx to rtx_insn *.
3026 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
3027 NULL.
3028 (split_reg): Likewise.
3029 * lra.c (lra_process_new_insns): Likewise.
3030 * modulo-sched.c (permute_partial_schedule): Strengthen param
3031 "last" from rtx to rtx_insn *.
3032 * optabs.c (add_equal_note): Likewise for param "insns" and local
3033 "last_insn".
3034 (expand_binop_directly): Add checked casts to rtx_insn * within
3035 NEXT_INSN (pat) uses.
3036 (expand_unop_direct): Likewise.
3037 (maybe_emit_unop_insn): Likewise.
3038 * recog.c (peep2_attempt): Strengthen locals "last",
3039 "before_try", "x" from rtx to rtx_insn *.
3040 * reorg.c (optimize_skip): Strengthen return type and local
3041 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
3042 and locals "trial", "next_trial" from rtx to rtx_insn *.
3043 * resource.c (next_insn_no_annul): Strengthen return type and
3044 param "insn" from rtx to rtx_insn *. Use a cast to and method of
3045 rtx_sequence to clarify the code.
3046 (mark_referenced_resources): Add a checked cast to rtx_insn *
3047 within PREV_INSN (x).
3048 (find_dead_or_set_registers): Strengthen return type, param
3049 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
3050 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
3051 to rtx_insn **.
3052 (mark_target_live_regs): Strengthen params "insns" and "target",
3053 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
3054 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
3055 the code.
3056 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
3057 from rtx to rtx_insn *.
3058 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
3059 from rtx to rtx_insn *.
3060 (copy_reg_eh_region_note_backward): Likewise.
3061 (unshare_all_rtl_in_chain): Likewise for sole param.
3062 (dump_rtl_slim): Strengthen second and third params from const_rtx
3063 to const rtx_insn *.
3064 * sched-deps.c (sched_free_deps): Strengthen params "head" and
3065 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
3066 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
3067 "next_tail" from rtx to rtx_insn *.
3068 (begin_move_insn): Likewise for local "next".
3069 * sched-int.h (sched_free_deps): Likewise for first and second
3070 params.
3071 (no_real_insns_p): Strengthen both params from const_rtx to
3072 const rtx_insn *.
3073 (sched_setup_bb_reg_pressure_info): Strengthen second params from
3074 rtx to rtx_insn *.
3075 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
3076 "next_tail".
3077 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
3078 and locals "insn", "tail" from const_rtx to const rtx_insn *.
3079 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
3080 rtx_insn *.
3081 (debug_rtl_slim): Strengthen params "first" and "last" from
3082 const_rtx to const rtx_insn *.
3083 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
3084 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
3085 (convert_to_simple_return): Likewise for param "returnjump".
3086 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
3087 "prologue_seq".
3088 (convert_to_simple_return): Likewise for param "returnjump".
3089 * valtrack.c (propagate_for_debug): Likewise for params
3090 "insn", "last".
3091 * valtrack.h (propagate_for_debug): Likewise for second param.
3092
3093 2014-08-28 David Malcolm <dmalcolm@redhat.com>
3094
3095 * output.h (insn_current_reference_address): Strengthen param
3096 from rtx to rtx_insn *.
3097 * final.c (insn_current_reference_address): Likewise.
3098
3099 2014-08-28 David Malcolm <dmalcolm@redhat.com>
3100
3101 * basic-block.h (inside_basic_block_p): Strengthen param from
3102 const_rtx to const rtx_insn *.
3103 * cfgbuild.c (inside_basic_block_p): Likewise.
3104
3105 2014-08-28 David Malcolm <dmalcolm@redhat.com>
3106
3107 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
3108 rtx_insn *.
3109 (get_trace_info): Likewise for param "insn".
3110 (save_point_p): Likewise.
3111 (maybe_record_trace_start): Likewise for both params.
3112 (maybe_record_trace_start_abnormal): Likewise.
3113 (create_trace_edges): Likewise for sole param and for three of the
3114 locals named "lab".
3115 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
3116 to rtx_insn *, and update a call to pat->element to pat->insn.
3117
3118 2014-08-28 David Malcolm <dmalcolm@redhat.com>
3119
3120 * function.h (struct expr_status): Convert field "x_forced_labels"
3121 from rtx_expr_list * to rtx_insn_list *.
3122
3123 * cfgbuild.c (make_edges): Convert local "x" from an
3124 rtx_expr_list * to an rtx_insn_list *, replacing use of
3125 "element" method with "insn" method.
3126 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
3127 * except.c (sjlj_emit_dispatch_table): Replace use of
3128 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
3129 forced_labels.
3130 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
3131 rtx_expr_list * to an rtx_insn_list *, replacing use of
3132 "element" method with "insn" method.
3133 * reload1.c (set_initial_label_offsets): Likewise for local "x".
3134 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
3135 rtx_insn *, adding a checked cast. Replace use of
3136 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
3137 forced_labels.
3138 (expand_label): Likewise for local "label_r".
3139
3140 2014-08-28 David Malcolm <dmalcolm@redhat.com>
3141
3142 * function.h (struct rtl_data): Convert field
3143 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
3144 rtx_insn_list *.
3145 * rtl.h (remove_node_from_insn_list): New prototype.
3146
3147 * builtins.c (expand_builtin): When prepending to
3148 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
3149 gen_rtx_EXPR_LIST.
3150 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
3151 to rtx_insn_list *, and use its "insn" method rather than
3152 "element" method.
3153 * cfgrtl.c (delete_insn): Use new function
3154 remove_node_from_insn_list rather than
3155 remove_node_from_expr_list.
3156 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
3157 to rtx_insn_list *, and use its "insn" method rather than
3158 "element" method.
3159 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
3160 * reload1.c (set_initial_label_offsets): Likewise for local "x".
3161 * rtlanal.c (remove_node_from_insn_list): New function, adapted
3162 from remove_node_from_expr_list.
3163 * stmt.c (expand_label): When prepending to
3164 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
3165 gen_rtx_EXPR_LIST.
3166
3167 2014-08-28 David Malcolm <dmalcolm@redhat.com>
3168
3169 * function.h (struct rtl_data): Strengthen fields "x_return_label"
3170 and "x_naked_return_label" from rtx to rtx_code_label *.
3171
3172 2014-08-28 David Malcolm <dmalcolm@redhat.com>
3173
3174 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
3175 (SET_NEXT_INSN): Likewise.
3176 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
3177
3178 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
3179 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
3180 to split out the SEQUENCE from local "bundle", strengthening the
3181 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
3182 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
3183 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
3184 and the type of the elements of the "slot" array from rtx to
3185 rtx_insn *.
3186 (reorg_split_calls): Likewise for locals "insn" and "next", and
3187 the type of the elements of the "slot" array.
3188
3189 * config/frv/frv.c (frv_nops): Likewise for the elements of this
3190 array.
3191 (frv_function_prologue): Likewise for locals "insn", "next",
3192 "last_call".
3193 (frv_register_nop): Introduce a local "nop_insn" to be the
3194 rtx_insn * containing rtx "nop".
3195
3196 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
3197 used as an insn and sometimes as a pattern, so rename it to
3198 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
3199 using it where dealing with the core insn.
3200
3201 * config/picochip/picochip.c (reorder_var_tracking_notes):
3202 Strengthen locals "insn", "next", "last_insn", "queue",
3203 "next_queue", "prev" from rtx to rtx_insn *.
3204
3205 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
3206 the second param is an rtx_insn ** rather than an rtx **.
3207 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
3208 from rtx to rtx_sequence *, and introduce local named "sequence",
3209 using methods of rtx_sequence to clarify the code.
3210 (remove_insn): Introduce local rtx_sequence * named "sequence" and
3211 use its methods.
3212 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
3213 Rename param "after" to "uncast_after", reintroducing "after" as a
3214 local rtx_insn * with a checked cast.
3215 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
3216 reintroducing "after" as a local rtx_insn * with a checked cast.
3217 Strengthen local "last" from rtx to rtx_insn * and remove the
3218 now-redundant checked casts.
3219 (copy_delay_slot_insn): Strengthen return type and param from rtx
3220 to rtx_insn *.
3221
3222 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
3223 "last" from rtx to rtx_insn *.
3224
3225 2014-08-28 David Malcolm <dmalcolm@redhat.com>
3226
3227 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
3228 param from rtx to rtx_insn *.
3229
3230 * emit-rtl.c (copy_delay_slot_insn): Likewise.
3231
3232 * reorg.c (skip_consecutive_labels): Strengthen return type, param
3233 and local "insn" from rtx to rtx_insn *.
3234 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
3235 (unfilled_slots_next): Likewise.
3236 (function_return_label): Strengthen from rtx to rtx_code_label *.
3237 (function_simple_return_label): Likewise.
3238 (first_active_target_insn): Strengthen return type and param from
3239 rtx to rtx_insn *.
3240 (find_end_label): Strengthen return type from rtx to
3241 rtx_code_label *; strengthen locals as appropriate.
3242 (emit_delay_sequence): Strengthen return type, param "insn" and
3243 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
3244 and local "li" from rtx to rtx_insn_list *, using methods of
3245 rtx_insn_list for clarity and typesafety.
3246 (add_to_delay_list): Strengthen return type and param "insn" from
3247 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
3248 rtx_insn_list * and use methods of rtx_insn_list.
3249 (delete_from_delay_slot): Strengthen return type, param "insn",
3250 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
3251 Strengthen local "seq" from rtx to rtx_sequence *, and local
3252 "delay_list" from rtx to rtx_insn_list *, using methods of
3253 rtx_sequence for clarity and type-safety.
3254 (delete_scheduled_jump): Add checked cast when invoking
3255 delete_from_delay_slot. Strengthen local "trial" from rtx to
3256 rtx_insn *.
3257 (optimize_skip): Strengthen return type and local "delay_list"
3258 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
3259 rtx_insn *.
3260 (steal_delay_list_from_target): Strengthen return type, param
3261 "delay_list" and local "new_delay_list" from rtx to
3262 rtx_insn_list *. Strengthen param "seq" from rtx to
3263 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
3264 rtx_insn **.
3265 Split out local "temp" into multiple more-tightly scoped locals:
3266 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
3267 of rtx_insn_list and rtx_sequence for clarity and typesafety.
3268 Strengthen locals named "trial" from rtx to rtx_insn *.
3269 (steal_delay_list_from_fallthrough): Strengthen return type and
3270 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
3271 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
3272 Strengthen local "trial" from rtx to rtx_insn *.
3273 (try_merge_delay_insns): Strength local "merged_insns" from rtx
3274 to rtx_insn_list * and use its methods. Strengthen local "pat"
3275 from rtx to rtx_sequence * and use its methods. Strengthen locals
3276 "dtrial" and "new_rtx" from rtx to rtx_insn *.
3277 (get_label_before): Strengthen return type and local "label" from
3278 rtx to rtx_insn *.
3279 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
3280 "next_trial", "next", prev". Strengthen local "delay_list" from
3281 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
3282 rtx_insn **.
3283 (follow_jumps): Strengthen return type, param "label" and locals
3284 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
3285 (fill_slots_from_thread): Strengthen return type, param
3286 "delay_list" from rtx to rtx_insn_list *. Strengthen params
3287 "insn", "thread", "opposite_thread" and locals "new_thread",
3288 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
3289 "sequence" from a checked cast to rtx_sequence so that we can call
3290 steal_delay_list_from_target and steal_delay_list_from_fallthrough
3291 with an rtx_sequence *.
3292 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
3293 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
3294 Strengthen local "delay_list" from rtx to rtx_insn_list *.
3295 (relax_delay_slots): Strengthen param "first" and locals "insn",
3296 "next", "trial", "delay_insn", "target_label" from rtx to
3297 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
3298 Introduce a local "trial_seq" for PATTERN (trial) of type
3299 rtx_sequence *, in both cases using methods of rtx_sequence.
3300 (dbr_schedule): Strengthen param "first" and locals "insn",
3301 "next", "epilogue_insn" from rtx to rtx_insn *.
3302
3303 2014-08-28 Richard Biener <rguenther@suse.de>
3304
3305 PR tree-optimization/62283
3306 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3307 Do not peel loops for alignment where the vector loop likely
3308 doesn't run at least VF times.
3309
3310 2014-08-28 Bin Cheng <bin.cheng@arm.com>
3311
3312 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
3313 important_candidates. Consider all important candidates if
3314 IVS doesn't give any result. Remove check on ivs->upto.
3315 (try_add_cand_for): Call iv_ca_add_use only once.
3316
3317 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
3318 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3319 Anna Tikhonova <anna.tikhonova@intel.com>
3320 Ilya Tocar <ilya.tocar@intel.com>
3321 Andrey Turetskiy <andrey.turetskiy@intel.com>
3322 Ilya Verbin <ilya.verbin@intel.com>
3323 Kirill Yukhin <kirill.yukhin@intel.com>
3324 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3325
3326 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
3327 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
3328 masking.
3329 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
3330 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
3331 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
3332 (define_insn "*mul<mode>3"): Add EVEX version.
3333
3334 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
3335 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3336 Anna Tikhonova <anna.tikhonova@intel.com>
3337 Ilya Tocar <ilya.tocar@intel.com>
3338 Andrey Turetskiy <andrey.turetskiy@intel.com>
3339 Ilya Verbin <ilya.verbin@intel.com>
3340 Kirill Yukhin <kirill.yukhin@intel.com>
3341 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3342
3343 * config/i386/sse.md
3344 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
3345 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
3346 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
3347 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
3348 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
3349 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
3350 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
3351 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
3352 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
3353 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
3354 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
3355 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
3356 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
3357 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
3358 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
3359 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
3360
3361 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
3362 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3363 Anna Tikhonova <anna.tikhonova@intel.com>
3364 Ilya Tocar <ilya.tocar@intel.com>
3365 Andrey Turetskiy <andrey.turetskiy@intel.com>
3366 Ilya Verbin <ilya.verbin@intel.com>
3367 Kirill Yukhin <kirill.yukhin@intel.com>
3368 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3369
3370 * config/i386/sse.md
3371 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
3372 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
3373 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
3374
3375 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
3376 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3377 Anna Tikhonova <anna.tikhonova@intel.com>
3378 Ilya Tocar <ilya.tocar@intel.com>
3379 Andrey Turetskiy <andrey.turetskiy@intel.com>
3380 Ilya Verbin <ilya.verbin@intel.com>
3381 Kirill Yukhin <kirill.yukhin@intel.com>
3382 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3383
3384 * config/i386/sse.md
3385 (define_mode_iterator VI128_256): New.
3386 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
3387
3388 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
3389 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3390 Anna Tikhonova <anna.tikhonova@intel.com>
3391 Ilya Tocar <ilya.tocar@intel.com>
3392 Andrey Turetskiy <andrey.turetskiy@intel.com>
3393 Ilya Verbin <ilya.verbin@intel.com>
3394 Kirill Yukhin <kirill.yukhin@intel.com>
3395 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3396
3397 * config/i386/sse.md
3398 (define_mode_iterator VI8_256_512): New.
3399 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
3400 Ditto.
3401 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
3402 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
3403 Ditto.
3404 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
3405
3406 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3407
3408 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
3409 pointer to the cumulative reloc value and return the value for
3410 this reloc instead.
3411 (compute_reloc_for_rtx): Take a const_rtx. Call
3412 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
3413 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
3414 for_each_rtx for the CONST case.
3415
3416 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3417
3418 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
3419 (mark_constants_in_pattern): ...this new function to iterate over
3420 all the subrtxes.
3421 (mark_constants): Update accordingly.
3422
3423 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3424
3425 * varasm.c: Include rtl-iter.h.
3426 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
3427 Remove the pointer to the cumulative hashval_t and just return
3428 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
3429 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
3430 Accumulate the hashval_ts here instead of const_rtx_hash_1.
3431
3432 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3433
3434 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
3435 Give real type of data parameter. Remove return value.
3436 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
3437 to iterate over subrtxes.
3438
3439 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3440
3441 * var-tracking.c (use_narrower_mode_test): Turn from being a
3442 for_each_rtx callback to being a function that examines each
3443 subrtx itself.
3444 (adjust_mems): Update accordingly.
3445
3446 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3447
3448 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
3449 callback to being a function that examines each subrtx itself.
3450 Remove handling of null rtxes.
3451 (add_uses): Update accordingly.
3452
3453 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3454
3455 * var-tracking.c: Include rtl-iter.h.
3456 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
3457 to being a function that examines each subrtx itself.
3458 (use_type): Update accordingly.
3459
3460 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3461
3462 * store-motion.c: Include rtl-iter.h.
3463 (extract_mentioned_regs_1): Delete.
3464 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
3465 for_each_rtx to iterate over subrtxes.
3466
3467 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3468
3469 * sel-sched.c: Include rtl-iter.h
3470 (count_occurrences_1): Delete.
3471 (count_occurrences_equiv): Turn rtxes into const_rtxes.
3472 Use FOR_EACH_SUBRTX rather than for_each_rtx.
3473
3474 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3475
3476 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
3477 * rtlanal.c (tls_referenced_p_1): Delete.
3478 (tls_referenced_p): Take a const_rtx rather than an rtx.
3479 Use FOR_EACH_SUBRTX rather than for_each_rtx.
3480
3481 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3482
3483 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
3484 (for_each_inc_dec): Take an rtx rather than an rtx *.
3485 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
3486 (cselib_record_sets): Likewise.
3487 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
3488 (check_for_inc_dec): Likewise.
3489 * rtlanal.c (for_each_inc_dec_ops): Delete.
3490 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
3491 rather than a pointer to the memory address. Replace
3492 for_each_inc_dec_ops argument with separate function and data
3493 arguments. Abort on non-autoinc addresses.
3494 (for_each_inc_dec_find_mem): Delete.
3495 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
3496 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
3497
3498 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3499
3500 * rtl.h (find_all_hard_regs): Declare.
3501 * rtlanal.c (find_all_hard_regs): New function.
3502 (record_hard_reg_uses_1): Delete.
3503 (record_hard_reg_uses): Use find_all_hard_regs.
3504
3505 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3506
3507 * rtl.h (replace_label_data): Delete.
3508 (replace_label): Take the old label, new label and update-nuses flag
3509 as direct arguments. Return void.
3510 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
3511 * rtlanal.c (replace_label): Update interface as above. Handle
3512 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
3513 iterator. Use FOR_EACH_SUBRTX_PTR.
3514
3515 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3516
3517 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
3518 with const_rtx parameters.
3519 * varasm.c (get_pool_constant): Likewise.
3520 * rtlanal.c (rtx_referenced_p_1): Delete.
3521 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
3522 Assert that the rtx we're looking for is nonnull. Allow searches
3523 for constant pool SYMBOL_REFs.
3524
3525 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3526
3527 * reload1.c: Include rtl-iter.h.
3528 (note_reg_elim_costly): Turn from being a for_each_rtx callback
3529 to being a function that examines each subrtx itself.
3530 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
3531
3532 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3533
3534 * regcprop.c (cprop_find_used_regs_1): Delete.
3535 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
3536
3537 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3538
3539 * regcprop.c: Include rtl-iter.h.
3540 (kill_value): Take a const_rtx.
3541 (kill_autoinc_value): Turn from being a for_each_rtx callback
3542 to being a function that examines each subrtx itself.
3543 (copyprop_hardreg_forward_1): Update accordingly.
3544
3545 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3546
3547 * reg-stack.c: Include rtl-iter.h.
3548 (subst_stack_regs_in_debug_insn): Delete.
3549 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
3550 instead of for_each_rtx.
3551
3552 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3553
3554 * lower-subreg.c (find_decomposable_subregs): Turn from being
3555 a for_each_rtx callback to being a function that examines each
3556 subrtx itself. Remove handling of null rtxes.
3557 (decompose_multiword_subregs): Update accordingly.
3558
3559 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3560
3561 * lower-subreg.c (adjust_decomposed_uses): Delete.
3562 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
3563 Remove handling of null rtxes.
3564
3565 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3566
3567 * lower-subreg.c: Include rtl-iter.h.
3568 (resolve_subreg_use): Turn from being a for_each_rtx callback
3569 to being a function that examines each subrtx itself. Remove
3570 handling of null rtxes.
3571 (resolve_reg_notes, resolve_simple_move): Update accordingly.
3572 (decompose_multiword_subregs): Likewise.
3573
3574 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3575
3576 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
3577 to being a function that examines each subrtx itself.
3578 (simplify_using_condition, simplify_using_initial_values): Update
3579 accordingly.
3580
3581 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3582
3583 * loop-iv.c: Include rtl-iter.h.
3584 (find_single_def_src): New function.
3585 (replace_single_def_regs): Turn from being a for_each_rtx callback
3586 to being a function that examines each subrtx itself.
3587 (replace_in_expr, simplify_using_initial_values): Update accordingly.
3588
3589 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3590
3591 * jump.c (eh_returnjump_p_1): Delete.
3592 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
3593 Remove handling of null rtxes.
3594
3595 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3596
3597 * jump.c: Include rtl-iter.h.
3598 (returnjump_p_1): Delete.
3599 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
3600 Remove handling of null rtxes.
3601
3602 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3603
3604 * ira.c: Include rtl-iter.h.
3605 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
3606 to being a function that examines each subrtx itself. Remove
3607 handling of null rtxes.
3608 (update_equiv_regs): Update call accordingly.
3609
3610 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3611
3612 * fwprop.c: Include rtl-iter.h.
3613 (varying_mem_p): Turn from being a for_each_rtx callback to being
3614 a function that examines each subrtx itself.
3615 (propagate_rtx): Update accordingly.
3616
3617 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3618
3619 * function.c: Include rtl-iter.h
3620 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
3621 callback to being a function that examines each subrtx itself.
3622 Return the changed flag.
3623 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
3624 (instantiate_virtual_regs): Update calls accordingly.
3625
3626 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3627
3628 * final.c: Include rtl-iter.h.
3629 (mark_symbol_ref_as_used): Delete.
3630 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
3631 for_each_rtx.
3632
3633 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3634
3635 * emit-rtl.c: Include rtl-iter.h.
3636 (find_auto_inc): Turn from being a for_each_rtx callback to being
3637 a function that examines each subrtx itself. Assume the first operand
3638 to an RTX_AUTOINC is the automodified register.
3639 (try_split): Update call accordingly.
3640
3641 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3642
3643 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
3644 Return a bool, inverting the result so that 0/false means "not ok".
3645 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
3646 subrtxes of a CONST.
3647 (mem_loc_descriptor, add_const_value_attribute)
3648 (resolve_addr_in_expr): Update calls accordingly.
3649
3650 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3651
3652 * dwarf2out.c: Include rtl-iter.h.
3653 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
3654 Remove unused data parameter. Return a bool, inverting the result
3655 so that 0/false means "not ok".
3656 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
3657 instead of for_each_rtx.
3658
3659 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3660
3661 * dse.c: Include rtl-iter.h.
3662 (check_mem_read_rtx): Change void * parameter to real type.
3663 Remove return value.
3664 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
3665 for_each_rtx. Don't handle null rtxes.
3666
3667 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3668
3669 * df-problems.c: Include rtl-iter.h.
3670 (find_memory): Turn from being a for_each_rtx callback to being
3671 a function that examines each subrtx itself. Continue to look for
3672 volatile references even after a nonvolatile one has been found.
3673 (can_move_insns_across): Update calls accordingly.
3674
3675 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3676
3677 * ddg.c (walk_mems_2, walk_mems_1): Delete.
3678 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
3679 to iterate over subrtxes. Return a bool rather than an int.
3680
3681 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3682
3683 * ddg.c: Include rtl-iter.h.
3684 (mark_mem_use_1): Rename to...
3685 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
3686 instead of for_each_rtx.
3687 (mem_read_insn_p): Update accordingly.
3688
3689 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3690
3691 * cse.c (change_cc_mode_args): Delete.
3692 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
3693 a function that examines each subrtx itself. Take the fields of
3694 change_cc_mode_args as argument and return void.
3695 (cse_change_cc_mode_insn): Update calls accordingly.
3696
3697 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3698
3699 * cse.c (is_dead_reg): Change argument to const_rtx.
3700 (dead_debug_insn_data): Delete.
3701 (is_dead_debug_insn): Expand commentary. Turn from being a
3702 for_each_rtx callback to being a function that examines
3703 each subrtx itself. Take the fields of dead_debug_insn_data
3704 as argument.
3705 (delete_trivially_dead_insns): Update call accordingly.
3706
3707 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3708
3709 * cse.c (check_for_label_ref): Move earlier in file. Turn from
3710 being a for_each_rtx callback to being a function that examines
3711 each subrtx itself.
3712 (cse_extended_basic_block): Update call accordingly.
3713
3714 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3715
3716 * cse.c (check_dependence_data): Delete.
3717 (check_dependence): Change from being a for_each_rtx callback to being
3718 a function that examines all subrtxes itself. Don't handle null rtxes.
3719 (invalidate): Update call accordingly.
3720
3721 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3722
3723 * cse.c: Include rtl-iter.h.
3724 (approx_reg_cost_1): Delete.
3725 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
3726 Don't handle null rtxes.
3727
3728 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3729
3730 * cfgcleanup.c: Include rtl-iter.h.
3731 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
3732 to being a function that examines each subrtx itself.
3733 (thread_jump): Update accordingly.
3734
3735 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3736
3737 * combine-stack-adj.c: Include rtl-iter.h.
3738 (record_stack_refs_data): Delete.
3739 (record_stack_refs): Turn from being a for_each_rtx callback
3740 to being a function that examines each subrtx itself.
3741 Take a pointer to the reflist. Invert sense of return value
3742 so that true means success and false means failure. Don't
3743 handle null rtxes.
3744 (combine_stack_adjustments_for_block): Update accordingly.
3745
3746 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3747
3748 * combine.c (record_truncated_value): Turn from being a for_each_rtx
3749 callback to a function that takes an rtx and returns a bool
3750 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
3751 for_each_rtx.
3752
3753 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3754
3755 * combine.c: Include rtl-iter.h.
3756 (unmentioned_reg_p_1): Delete.
3757 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
3758 Don't handle null rtxes.
3759
3760 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3761
3762 * calls.c: Include rtl-iter.h.
3763 (internal_arg_pointer_based_exp_1): Delete.
3764 (internal_arg_pointer_based_exp): Take a const_rtx.
3765 Use FOR_EACH_SUBRTX to iterate over subrtxes.
3766
3767 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3768
3769 * caller-save.c: Include rtl-iter.h.
3770 (add_used_regs_1): Delete.
3771 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
3772 to iterate over subrtxes. Assert that any remaining pseudos
3773 have been spilled.
3774
3775 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3776
3777 * bt-load.c: Include rtl-iter.h.
3778 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
3779 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
3780 to iterate over subrtxes.
3781 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
3782 find_btr_use rather than btr_referenced_p.
3783
3784 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3785
3786 * alias.c: Include rtl-iter.h.
3787 (refs_newer_value_cb): Delete.
3788 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
3789
3790 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
3791
3792 * rtl-iter.h: New file.
3793 * rtlanal.c: Include it.
3794 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
3795 (generic_subrtx_iterator <T>::add_single_to_queue)
3796 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
3797 (generic_subrtx_iterator <T>::free_array): New functions.
3798 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
3799 (generic_subrtx_iterator <const_rtx_accessor>)
3800 (generic_subrtx_iterator <rtx_var_accessor>
3801 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
3802 (setup_reg_subrtx_bounds): New function.
3803 (init_rtlanal): Call it.
3804
3805 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
3806
3807 PR target/62261
3808 * config/sh/sh.md (ashlsi3): Handle negative shift count for
3809 TARGET_SHMEDIA.
3810 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
3811
3812 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
3813
3814 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
3815
3816 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3817
3818 * rtl.h (JUMP_LABEL_AS_INSN): New.
3819
3820 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3821
3822 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
3823 rtx_expr_list **.
3824 (alloc_EXPR_LIST): Strengthen return type from rtx to
3825 rtx_expr_list *.
3826 (remove_free_EXPR_LIST_node): Likewise for param.
3827 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
3828 from rtx to rtx_expr_list *.
3829 * sched-int.h (struct deps_desc): Strengthen fields
3830 "pending_read_mems" and "pending_write_mems" from rtx to
3831 rtx_expr_list *.
3832
3833 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
3834 rtx to rtx_expr_list *.
3835 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
3836 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
3837 rtx_expr_list **.
3838 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
3839 from rtx to rtx_expr_list *.
3840 * loop-iv.c (simplify_using_initial_values): Strengthen local
3841 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
3842 "pnote_next" from rtx * to rtx_expr_list **.
3843 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
3844 param "exprp" from rtx * to rtx_expr_list **.
3845 (add_insn_mem_dependence): Strengthen local "mem_list" from
3846 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
3847 to rtx_expr_list *.
3848 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
3849 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
3850 param "old_mems_p" from rtx * to rtx_expr_list **.
3851 * var-tracking.c (struct adjust_mem_data): Strengthen field
3852 "side_effects" from rtx to rtx_expr_list *.
3853 (adjust_insn): Replace NULL_RTX with NULL when assigning to
3854 rtx_expr_list *.
3855 (prepare_call_arguments): Likewise.
3856
3857 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3858
3859 * function.h (struct rtl_data): Strengthen field
3860 "x_stack_slot_list" from rtx to rtx_expr_list *.
3861
3862 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
3863 when assigning to stack_slot_list.
3864
3865 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3866
3867 * function.h (struct rtl_data): Strengthen field
3868 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
3869 * rtl.h (remove_node_from_expr_list): Strengthen second param from
3870 rtx * to rtx_expr_list **.
3871
3872 * cfgbuild.c (make_edges): In loop over
3873 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
3874 rtx_expr_list *, and use methods of the latter class to clarify
3875 the code.
3876 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
3877 rtx_expr_list *, and use methods of the latter class to clarify
3878 the code.
3879 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
3880 * reload1.c (set_initial_label_offsets): Likewise for local "x".
3881 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
3882 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
3883 to rtx_expr_list *. Use methods of the latter class to clarify
3884 the code.
3885
3886 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3887
3888 * function.h (struct expr_status): Strengthen field
3889 "x_forced_labels" from rtx to rtx_expr_list *.
3890
3891 * cfgbuild.c (make_edges): Split local "x" into two locals,
3892 strengthening one from rtx to rtx_expr_list *, and using methods
3893 of said class.
3894 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
3895 loop over forced_labels, introduce strengthen it from rtx to
3896 rtx_expr_list *, using methods to clarify the code.
3897 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
3898 to rtx_expr_list *, using methods of said class to clarify the
3899 code.
3900 * reload1.c (set_initial_label_offsets): Split local "x" into two
3901 per-loop variables, strengthening the first from rtx to
3902 rtx_expr_list * and using methods.
3903
3904 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3905
3906 * coretypes.h (class rtx_expr_list): Add forward declaration.
3907 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
3908 * gengenrtl.c (special_rtx): Add EXPR_LIST.
3909 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
3910 invariant: GET_CODE (X) == EXPR_LIST.
3911 (is_a_helper <rtx_expr_list *>::test): New.
3912 (rtx_expr_list::next): New.
3913 (rtx_expr_list::element): New.
3914 (gen_rtx_EXPR_LIST): New.
3915
3916 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3917
3918 * varasm.c (mark_constants): Convert a GET_CODE check into a
3919 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
3920 Use methods of rtx_sequence to clarify the code.
3921
3922 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3923
3924 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
3925 local "seq" via a checked cast, and use methods of rtx_sequence
3926 to simplify the code.
3927
3928 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3929
3930 * resource.c (mark_referenced_resources): Strengthen local
3931 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
3932 using methods of rtx_sequence to clarify the code.
3933 (find_dead_or_set_registers): Within the switch statement, convert
3934 a GET_CODE check to a dyn_cast, introducing local "seq". Within
3935 the JUMP_P handling, introduce another local "seq", adding a
3936 checked cast to rtx_sequence *. In both cases, use methods of
3937 rtx_sequence to clarify the code.
3938 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
3939 via a checked cast, and use methods of rtx_sequence to simplify
3940 the code.
3941
3942 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3943
3944 * reorg.c (redundant_insn): In two places in the function, replace
3945 a check of GET_CODE with a dyn_cast, introducing local "seq", and
3946 usings methods of rtx_sequence to clarify the code.
3947
3948 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3949
3950 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
3951 local "seq" with a checked cast, and use methods of rtx_sequence
3952 to clarify the code.
3953
3954 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3955
3956 * function.c (contains): Introduce local "seq" for PATTERN (insn),
3957 with a checked cast, in the region for where we know it's a
3958 SEQUENCE. Use methods of rtx_sequence.
3959
3960 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3961
3962 * final.c (get_attr_length_1): Replace GET_CODE check with a
3963 dyn_cast, introducing local "seq" and the use of methods of
3964 rtx_sequence.
3965 (shorten_branches): Likewise, introducing local "body_seq".
3966 Strengthen local "inner_insn" from rtx to rtx_insn *.
3967 (reemit_insn_block_notes): Replace GET_CODE check with a
3968 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
3969 Use methods of rtx_sequence.
3970 (final_scan_insn): Likewise, introducing local "seq" for when
3971 "body" is known to be a SEQUENCE, using its methods.
3972
3973 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3974
3975 * except.c (can_throw_external): Strengthen local "seq" from rtx
3976 to rtx_sequence *. Use methods of rtx_sequence.
3977 (insn_nothrow_p): Likewise.
3978
3979 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3980
3981 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
3982 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
3983 Use methods of rtx_sequence.
3984 (scan_trace): Likewise for local "pat".
3985
3986 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3987
3988 * coretypes.h (class rtx_sequence): Add forward declaration.
3989 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
3990 invariant: GET_CODE (X) == SEQUENCE.
3991 (is_a_helper <rtx_sequence *>::test): New.
3992 (is_a_helper <const rtx_sequence *>::test): New.
3993 (rtx_sequence::len): New.
3994 (rtx_sequence::element): New.
3995 (rtx_sequence::insn): New.
3996
3997 2014-08-27 David Malcolm <dmalcolm@redhat.com>
3998
3999 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
4000 rtx_insn_list **.
4001 (alloc_INSN_LIST): Strengthen return type from rtx to
4002 rtx_insn_list *.
4003 (copy_INSN_LIST): Likewise for return type and param.
4004 (concat_INSN_LIST): Likewise for both params and return type.
4005 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
4006 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
4007 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
4008 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
4009
4010 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
4011 "implicit_sets", "control_uses", "clobbers" from rtx to
4012 rtx_insn_list *.
4013 (struct deps_desc): Likewise for fields "pending_read_insns",
4014 "pending_write_insns", "pending_jump_insns",
4015 "last_pending_memory_flush", "last_function_call",
4016 "last_function_call_may_noreturn", "sched_before_next_call",
4017 "sched_before_next_jump".
4018 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
4019 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
4020
4021 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
4022 from rtx to rtx_insn_list *.
4023 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
4024 rtx_insn_list *.
4025
4026 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
4027 to rtx_insn_list **.
4028 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
4029 rtx_insn_list *.
4030 (queue_insn): Likewise for local "link".
4031 (struct haifa_saved_data): Strengthen field "insn_queue" from
4032 rtx * to rtx_insn_list **.
4033 (save_backtrack_point): Update allocation of save->insn_queue to
4034 reflect the strengthening of elements from rtx to rtx_insn_list *.
4035 (queue_to_ready): Strengthen local "link" from rtx to
4036 rtx_insn_list *; use methods "next" and "insn" when traversing the
4037 list.
4038 (early_queue_to_ready): Likewise for locals "link", "next_link",
4039 "prev_link".
4040 (schedule_block): Update allocation of insn_queue to reflect the
4041 strengthening of elements from rtx to rtx_insn_list *. Strengthen
4042 local "link" from rtx to rtx_insn_list *, and use methods when
4043 working it.
4044 (add_to_speculative_block): Strengthen locals "twins" and
4045 "next_node" from rtx to rtx_insn_list *, and use methods when
4046 working with them. Strengthen local "twin" from rtx to
4047 rtx_insn *, eliminating a checked cast.
4048 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
4049 from rtx to rtx_insn_list *, and use methods when working with
4050 them.
4051
4052 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
4053 from rtx to rtx_insn_list *, adding a checked cast.
4054 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
4055 rtx_insn_list **.
4056 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
4057 "newlink" from rtx to rtx_insn_list *. Strengthen local
4058 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
4059 from rtx to rtx_insn *.
4060 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
4061 from rtx to rtx_insn_list *. Use methods of the latter class.
4062 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
4063 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
4064 (remove_free_INSN_LIST_node): Strengthen return type and local
4065 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
4066 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
4067 rtx_insn_list *, using "insn" method.
4068
4069 * sched-deps.c (add_dependence_list): Strengthen param "list"
4070 from rtx to rtx_insn_list *, and use methods when working with it.
4071 (add_dependence_list_and_free): Strengthen param "listp" from
4072 rtx * to rtx_insn_list **.
4073 (remove_from_dependence_list): Strenghten param "listp" from rtx *
4074 to rtx_insn_list **, and use methods when working with *listp.
4075 (remove_from_both_dependence_lists): Strengthen param "listp" from
4076 rtx * to rtx_insn_list **
4077 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
4078 to rtx_insn_list **. Eliminate local "link", in favor of two new
4079 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
4080 respectively.
4081 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
4082 by introducing local "cond_deps".
4083 (remove_from_deps): Strengthen param "insn" from rtx to
4084 rtx_insn *.
4085
4086 * sched-rgn.c (concat_insn_mem_list): Strengthen param
4087 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
4088 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
4089 Use methods of rtx_insn_list.
4090
4091 * store-motion.c (struct st_expr): Strengthen fields
4092 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
4093 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
4094 rtx_insn_list *.
4095 (find_moveable_store): Split out "tmp" into multiple more-tightly
4096 scoped locals. Use methods of rtx_insn_list *.
4097 (compute_store_table): Strengthen local "tmp" from rtx to
4098 rtx_insn *. Use methods of rtx_insn_list *.
4099
4100 2014-08-27 David Malcolm <dmalcolm@redhat.com>
4101
4102 * coretypes.h (class rtx_insn_list): Add forward declaration.
4103 * rtl.h (class rtx_insn_list): New subclass of rtx_def
4104 (is_a_helper <rtx_insn_list *>::test): New.
4105 (rtx_insn_list::next): New.
4106 (rtx_insn_list::insn): New.
4107 (gen_rtx_INSN_LIST): Add prototype.
4108 * emit-rtl.c (gen_rtx_INSN_LIST): New.
4109 * gengenrtl.c (special_rtx): Add INSN_LIST.
4110
4111 2014-08-27 David Malcolm <dmalcolm@redhat.com>
4112
4113 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
4114 "prev" from rtx to rtx_insn *.
4115
4116 2014-08-27 David Malcolm <dmalcolm@redhat.com>
4117
4118 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
4119 functions. Require merely an rtx for now, not an rtx_insn *.
4120 (BLOCK_FOR_INSN): Likewise.
4121 (INSN_LOCATION): Likewise.
4122 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
4123
4124 2014-08-27 David Malcolm <dmalcolm@redhat.com>
4125
4126 * rtl.h (PATTERN): Convert this macro into a pair of inline
4127 functions, for now, requiring const_rtx and rtx.
4128
4129 2014-08-27 David Malcolm <dmalcolm@redhat.com>
4130
4131 * target.def (unwind_emit): Strengthen param "insn" from rtx to
4132 rtx_insn *.
4133 (final_postscan_insn): Likewise.
4134 (adjust_cost): Likewise.
4135 (adjust_priority): Likewise.
4136 (variable_issue): Likewise.
4137 (macro_fusion_pair_p): Likewise.
4138 (dfa_post_cycle_insn): Likewise.
4139 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
4140 (first_cycle_multipass_issue): Likewise.
4141 (dfa_new_cycle): Likewise.
4142 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
4143 (speculate_insn): Likewise for param "insn".
4144 (gen_spec_check): Likewise for params "insn" and "label".
4145 (get_insn_spec_ds): Likewise for param "insn".
4146 (get_insn_checked_ds): Likewise.
4147 (dispatch_do): Likewise.
4148 (dispatch): Likewise.
4149 (cannot_copy_insn_p): Likewise.
4150 (invalid_within_doloop): Likewise.
4151 (legitimate_combined_insn): Likewise.
4152 (needed): Likewise.
4153 (after): Likewise.
4154
4155 * doc/tm.texi: Automatically updated to reflect changes to
4156 target.def.
4157
4158 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
4159 working with insn.
4160 (schedule_block): Likewise.
4161 (sched_init): Likewise.
4162 (sched_speculate_insn): Strengthen param "insn" from rtx to
4163 rtx_insn *.
4164 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
4165 working with insn.
4166 * hooks.c (hook_bool_rtx_true): Rename to...
4167 hook_bool_rtx_insn_true): ...this, and strengthen first param from
4168 rtx to rtx_insn *.
4169 (hook_constcharptr_const_rtx_null): Rename to...
4170 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
4171 first param from const_rtx to const rtx_insn *.
4172 (hook_bool_rtx_int_false): Rename to...
4173 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
4174 param from rtx to rtx_insn *.
4175 (hook_void_rtx_int): Rename to...
4176 (hook_void_rtx_insn_int): ...this, and strengthen first param from
4177 rtx to rtx_insn *.
4178
4179 * hooks.h (hook_bool_rtx_true): Rename to...
4180 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
4181 rtx to rtx_insn *.
4182 (hook_bool_rtx_int_false): Rename to...
4183 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
4184 param from rtx to rtx_insn *.
4185 (hook_void_rtx_int): Rename to...
4186 (hook_void_rtx_insn_int): ...this, and strengthen first param from
4187 rtx to rtx_insn *.
4188 (hook_constcharptr_const_rtx_null): Rename to...
4189 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
4190 first param from const_rtx to const rtx_insn *.
4191
4192 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
4193 and local "prev" from rtx to rtx_insn *.
4194
4195 * sched-int.h (sched_speculate_insn): Strengthen first param from
4196 rtx to rtx_insn *.
4197
4198 * sel-sched.c (create_speculation_check): Likewise for local "label".
4199 * targhooks.c (default_invalid_within_doloop): Strengthen param
4200 "insn" from const_rtx to const rtx_insn *.
4201 * targhooks.h (default_invalid_within_doloop): Strengthen param
4202 from const_rtx to const rtx_insn *.
4203
4204 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
4205 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
4206
4207 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
4208 "insn".
4209 (arc_invalid_within_doloop): Likewise, with const.
4210
4211 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
4212 (arm_cannot_copy_insn_p): Likewise for param "insn".
4213 (arm_unwind_emit): Likewise.
4214
4215 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
4216 "dep_insn".
4217
4218 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
4219 (c6x_variable_issue): Likewise. Removed now-redundant checked
4220 cast.
4221 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
4222
4223 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
4224 Likewise for param "insn".
4225 (epiphany_mode_after): Likewise.
4226 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
4227 params "insn", "dep_insn".
4228 (epiphany_mode_needed): Likewise for param "insn".
4229 (epiphany_mode_after): Likewise.
4230
4231 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
4232 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
4233 (ix86_avx_u128_mode_needed): Likewise.
4234 (ix86_i387_mode_needed): Likewise.
4235 (ix86_mode_needed): Likewise.
4236 (ix86_avx_u128_mode_after): Likewise.
4237 (ix86_mode_after): Likewise.
4238 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
4239 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
4240 (ix86_adjust_priority): Likewise for param "insn".
4241 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
4242 (do_dispatch): Likewise.
4243 (has_dispatch): Likewise.
4244 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
4245
4246 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
4247 reflect renaming of default hook implementation from
4248 hook_constcharptr_const_rtx_null to
4249 hook_constcharptr_const_rtx_insn_null.
4250 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
4251 rtx to rtx_insn *.
4252 (ia64_variable_issue): Likewise for param "insn".
4253 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
4254 (ia64_dfa_new_cycle): Likewise.
4255 (ia64_get_insn_spec_ds): Likewise.
4256 (ia64_get_insn_checked_ds): Likewise.
4257 (ia64_speculate_insn): Likewise.
4258 (ia64_gen_spec_check): Likewise for params "insn", "label".
4259 (ia64_asm_unwind_emit): Likewise for param "insn".
4260
4261 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
4262
4263 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
4264 "insn", "def_insn".
4265 (m68k_sched_variable_issue): Likewise for param "insn".
4266
4267 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
4268 "def_insn".
4269
4270 * config/microblaze/microblaze.c (microblaze_adjust_cost):
4271 Likewise for params "insn", "dep".
4272
4273 * config/mips/mips.c (mips_adjust_cost): Likewise.
4274 (mips_variable_issue): Likewise for param "insn".
4275 (mips_final_postscan_insn): Likewise.
4276
4277 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
4278 for params "insn", "dep".
4279
4280 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
4281 "dep_insn".
4282 (pa_adjust_priority): Likewise for param "insn".
4283
4284 * config/picochip/picochip.c (picochip_sched_adjust_cost):
4285 Likewise for params "insn", "dep_insn".
4286
4287 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
4288 param "insn".
4289 (rs6000_variable_issue): Likewise.
4290 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
4291 (rs6000_debug_adjust_cost): Likewise.
4292 (rs6000_adjust_priority): Likewise for param "insn".
4293 (rs6000_use_sched_lookahead_guard): Likewise.
4294 (get_next_active_insn): Likewise for return type and both params.
4295 (redefine_groups): Likewise for params "prev_head_insn", "tail"
4296 and locals "insn", "next_insn".
4297 (pad_groups): Likewise.
4298
4299 * config/s390/s390.c (s390_adjust_priority): Likewise for param
4300 "insn".
4301 (s390_cannot_copy_insn_p): Likewise.
4302 (s390_sched_variable_issue): Likewise for third param, eliminating
4303 checked cast.
4304 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
4305 default hook implementation from hook_constcharptr_const_rtx_null
4306 to hook_constcharptr_const_rtx_insn_null.
4307
4308 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
4309 from rtx to rtx_insn *.
4310 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
4311 (sh_variable_issue): Likewise for param "insn".
4312 (sh_dfa_new_cycle): Likewise.
4313 (sh_mode_needed): Likewise.
4314 (sh_mode_after): Likewise.
4315
4316 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
4317 params "insn", "dep_insn".
4318 (hypersparc_adjust_cost): Likewise.
4319 (sparc_adjust_cost): Likewise.
4320
4321 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
4322 param, eliminated checked cast.
4323 (spu_sched_adjust_cost): Likewise for first and third params.
4324
4325 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
4326 params "insn" and "dep_insn" from rtx to rtx_insn *.
4327
4328 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
4329
4330 2014-08-27 David Malcolm <dmalcolm@redhat.com>
4331
4332 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
4333 (set_is_load_p): ...this, updating to work on a SET pattern rather
4334 than an insn.
4335 (is_store_insn): Rename to...
4336 (set_is_store_p): ...this, updating to work on a SET pattern
4337 rather than an insn.
4338 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
4339 top of function to where it is needed. Rewrite the bogus
4340 condition that checks for "insn" and "dep" being PARALLEL to
4341 instead use single_set, introducing locals "insn_set" and
4342 "dep_set". Given that we only ever returned "cost" for a non-pair
4343 of SETs, bail out early if we don't have a pair of SET.
4344 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
4345 use the new locals "insn_set" and "dep_set", and update calls to
4346 is_load_insn and is_store_insn to be calls to set_is_load_p and
4347 set_is_store_p.
4348
4349 2014-08-27 Guozhi Wei <carrot@google.com>
4350
4351 PR target/62262
4352 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
4353 amount before using it.
4354
4355 2014-08-27 Richard Biener <rguenther@suse.de>
4356
4357 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
4358 get_maxval_strlen inside a more useful API.
4359 (gimple_fold_builtin_with_strlen): Remove and fold into ...
4360 (gimple_fold_builtin): ... caller.
4361 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
4362 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
4363 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
4364 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
4365 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
4366 gimple_fold_builtin_sprintf): Adjust to compute maxval
4367 themselves.
4368
4369 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
4370
4371 PR other/62248
4372 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
4373
4374 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
4375 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4376 Anna Tikhonova <anna.tikhonova@intel.com>
4377 Ilya Tocar <ilya.tocar@intel.com>
4378 Andrey Turetskiy <andrey.turetskiy@intel.com>
4379 Ilya Verbin <ilya.verbin@intel.com>
4380 Kirill Yukhin <kirill.yukhin@intel.com>
4381 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4382
4383 * config/i386/sse.md
4384 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
4385 Use `concat_tg_mode' attribute to determine asm register size.
4386
4387 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
4388 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4389 Anna Tikhonova <anna.tikhonova@intel.com>
4390 Ilya Tocar <ilya.tocar@intel.com>
4391 Andrey Turetskiy <andrey.turetskiy@intel.com>
4392 Ilya Verbin <ilya.verbin@intel.com>
4393 Kirill Yukhin <kirill.yukhin@intel.com>
4394 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4395
4396 * config/i386/sse.md
4397 (define_mode_iterator VI48_AVX512VL): New.
4398 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
4399 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
4400 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
4401 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
4402 with VI1): Change mode iterator.
4403 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
4404 with VI_ULOADSTORE_BW_AVX512VL): New.
4405 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
4406 with VI_ULOADSTORE_F_AVX512VL): Ditto.
4407 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
4408 with VI1): Change mode iterator.
4409 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
4410 with VI_ULOADSTORE_BW_AVX512VL): New.
4411 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
4412 with VI_ULOADSTORE_F_AVX512VL): Ditto.
4413 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
4414 with VI1): Change mode iterator.
4415 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
4416 with VI_ULOADSTORE_BW_AVX512VL): New.
4417 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
4418 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
4419 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
4420 (define_insn "<avx512>_storedqu<mode>_mask" with
4421 VI48_AVX512VL): New.
4422 (define_insn "<avx512>_storedqu<mode>_mask" with
4423 VI12_AVX512VL): Ditto.
4424
4425 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
4426 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4427 Anna Tikhonova <anna.tikhonova@intel.com>
4428 Ilya Tocar <ilya.tocar@intel.com>
4429 Andrey Turetskiy <andrey.turetskiy@intel.com>
4430 Ilya Verbin <ilya.verbin@intel.com>
4431 Kirill Yukhin <kirill.yukhin@intel.com>
4432 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4433
4434 * config/i386/sse.md
4435 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
4436 (define_mode_iterator VI48_AVX512BW): New.
4437 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
4438 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
4439 with VI48_AVX2_48_AVX512F): New.
4440 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
4441 with VI2_AVX512VL): Ditto.
4442
4443 2014-08-27 Richard Biener <rguenther@suse.de>
4444
4445 PR middle-end/62239
4446 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
4447 (fold_builtin_3): Do not fold strcat_chk here.
4448 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
4449 from builtins.c.
4450 (gimple_fold_builtin): Fold strcat_chk here.
4451
4452 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
4453
4454 * dwarf2out.h (dwarf2out_decl): Remove prototype.
4455 * dwarf2out.c (dwarf2out_decl): Make static.
4456
4457 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
4458
4459 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
4460
4461 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4462
4463 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
4464 from rtx to rtx_insn *.
4465 (cselib_lookup_from_insn): Likewise for final param.
4466 (cselib_subst_to_values_from_insn): Likewise.
4467 (cselib_add_permanent_equiv): Likewise.
4468
4469 * cselib.c (cselib_current_insn): Likewise for this variable.
4470 (cselib_subst_to_values_from_insn): Likewise for param "insn".
4471 (cselib_lookup_from_insn): Likewise.
4472 (cselib_add_permanent_equiv): Likewise for param "insn" and local
4473 "save_cselib_current_insn".
4474 (cselib_process_insn): Replace use of NULL_RTX with NULL.
4475
4476 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
4477 from rtx to rtx_insn *.
4478
4479 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4480
4481 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
4482 rtx_insn *.
4483
4484 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4485
4486 * df.h (df_dump_insn_problem_function): Strengthen first param of
4487 this callback from const_rtx to const rtx_insn *.
4488 (struct df_insn_info): Strengthen field "insn" from rtx to
4489 rtx_insn *.
4490 (DF_REF_INSN): Eliminate this function, reinstating the older
4491 macro definition.
4492 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
4493 (df_reg_defined): Likewise.
4494 (df_find_use): Likewise.
4495 (df_reg_used): Likewise.
4496 (df_dump_insn_top): Strengthen param 1 from const_rtx to
4497 const rtx_insn *.
4498 (df_dump_insn_bottom): Likewise.
4499 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
4500 (df_insn_debug_regno): Likewise.
4501 (debug_df_insn): Likewise.
4502 (df_rd_simulate_one_insn): Likewise for param 2.
4503 (df_word_lr_simulate_defs): Likewise for param 1.
4504 (df_word_lr_simulate_uses): Likewise.
4505 (df_md_simulate_one_insn): Likewise for param 2.
4506 (df_simulate_find_noclobber_defs): Likewise for param 1.
4507 (df_simulate_find_defs): Likewise.
4508 (df_simulate_defs): Likewise.
4509 (df_simulate_uses): Likewise.
4510 (df_simulate_one_insn_backwards): Likewise for param 2.
4511 (df_simulate_one_insn_forwards): Likewise.
4512 (df_uses_create): Likewise for param 2.
4513 (df_insn_create_insn_record): Likewise for param 1.
4514 (df_insn_delete): Likewise.
4515 (df_insn_rescan): Likewise.
4516 (df_insn_rescan_debug_internal): Likewise.
4517 (df_insn_change_bb): Likewise.
4518 (df_notes_rescan): Likewise.
4519 * rtl.h (remove_death): Likewise for param 2.
4520 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
4521 const rtx_insn *.
4522 * sched-int.h (reemit_notes): Strengthen param from rtx to
4523 rtx_insn *.
4524 * valtrack.h (propagate_for_debug): Likewise for param 1.
4525
4526 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
4527 local "tmp_rtx" from const_rtx to const rtx_insn *.
4528 * combine.c (remove_death): Strengthen param "insn" from rtx to
4529 rtx_insn *.
4530 (move_deaths): Likewise for local "where_dead".
4531 * cse.c (delete_trivially_dead_insns): Introduce local
4532 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
4533 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
4534 rtx_insn *.
4535 (df_reg_defined): Likewise.
4536 (df_find_use): Likewise.
4537 (df_reg_used): Likewise.
4538 (df_dump_insn_problem_data): Strengthen param "insn" from
4539 const_rtx to const rtx_insn *.
4540 (df_dump_insn_top): Likewise.
4541 (df_dump_insn_bottom): Likewise.
4542 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
4543 (df_insn_debug_regno): Likewise.
4544 (debug_df_insn): Likewise.
4545 (DF_REF_INSN): Delete.
4546 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
4547 from rtx to rtx_insn *.
4548 (df_chain_insn_top_dump): Strengthen param "insn" from
4549 const_rtx to const rtx_insn *.
4550 (df_chain_insn_bottom_dump): Likewise.
4551 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
4552 rtx_insn *.
4553 (df_word_lr_simulate_uses): Likewise.
4554 (df_print_note): Likewise.
4555 (df_remove_dead_and_unused_notes): Likewise.
4556 (df_set_unused_notes_for_mw): Likewise.
4557 (df_set_dead_notes_for_mw): Likewise.
4558 (df_create_unused_note): Likewise.
4559 (df_simulate_find_defs): Likewise.
4560 (df_simulate_find_uses): Likewise.
4561 (df_simulate_find_noclobber_defs): Likewise.
4562 (df_simulate_defs): Likewise.
4563 (df_simulate_uses): Likewise.
4564 (df_simulate_one_insn_backwards): Likewise.
4565 (df_simulate_one_insn_forwards): Likewise.
4566 (df_md_simulate_one_insn): Likewise.
4567 * df-scan.c (df_uses_create): Likewise.
4568 (df_insn_create_insn_record): Likewise.
4569 (df_insn_delete): Likewise.
4570 (df_insn_rescan): Likewise.
4571 (df_insn_rescan_debug_internal): Likewise.
4572 (df_insn_change_bb): Likewise.
4573 (df_notes_rescan): Likewise.
4574 (df_refs_add_to_chains): Likewise.
4575 (df_insn_refs_verify): Likewise.
4576 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
4577 when invoking df_insn_delete.
4578 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
4579 (set_unique_reg_note): Add checked cast.
4580 * final.c (cleanup_subreg_operands): Likewise.
4581 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
4582 "insn" from rtx to rtx_insn *.
4583 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
4584 "last" from rtx to rtx_insn *.
4585 * ira-emit.c (change_regs_in_insn): New function.
4586 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
4587 Invoke change_regs_in_insn rather than change_regs.
4588 * ira.c (update_equiv_regs): Strengthen locals "insn",
4589 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
4590 for_each_rtx_in_insn rather than for_each_rtx.
4591 * recog.c (confirm_change_group): Add checked casts.
4592 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
4593 Add checked cast.
4594 (peep2_fill_buffer): Add checked cast.
4595 * rtlanal.c (remove_note): Likewise.
4596 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
4597 locals "next" "end" from rtx to rtx_insn *.
4598
4599 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4600
4601 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
4602 to rtx_insn *.
4603 (struct reg_use_data): Likewise for field "insn".
4604 (insn_cost): Likewise for param.
4605 (real_insn_for_shadow): Likewise for return type and param.
4606 (increase_insn_priority): Likewise for param 1.
4607 (debug_dependencies): Likewise for both params.
4608
4609 * haifa-sched.c (insn_delay): Likewise for param "insn".
4610 (real_insn_for_shadow): Likewise for return type and param "insn".
4611 (update_insn_after_change): Likewise for param "insn".
4612 (recompute_todo_spec): Likewise for param "next" and locals "pro",
4613 "other".
4614 (insn_cost): Likewise for param "insn".
4615 (increase_insn_priority): Likewise.
4616 (calculate_reg_deaths): Likewise.
4617 (setup_insn_reg_pressure_info): Likewise.
4618 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
4619 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
4620 (model_recompute): Likewise.
4621 (must_restore_pattern_p): Likewise for param "next".
4622 (model_excess_cost): Likewise for param "insn".
4623 (queue_remove): Likewise.
4624 (adjust_priority): Likewise for param "prev".
4625 (update_register_pressure): Likewise for param "insn".
4626 (setup_insn_max_reg_pressure): Likewise for local "insn".
4627 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
4628 (model_add_to_schedule): Likewise.
4629 (model_reset_queue_indices): Likewise for local "insn".
4630 (unschedule_insns_until): Strengthen local "recompute_vec" from
4631 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
4632 "con" from rtx to rtx_insn *.
4633 (restore_last_backtrack_point): Likewise for both locals "x". Add
4634 checked casts.
4635 (estimate_insn_tick): Likewise for param "insn".
4636 (commit_schedule): Likewise for params "prev_head", "tail" and
4637 local "x".
4638 (verify_shadows): Likewise for locals "i1", "i2".
4639 (dump_insn_stream): Likewise for params "head", "tail" and locals
4640 "next_tail", "insn".
4641 (schedule_block): Likewise for locals "insn", "x". Add a checked
4642 cast.
4643 (fix_inter_tick): Likewise for params "head", "tail".
4644 (create_check_block_twin): Likewise for local "jump".
4645 (haifa_change_pattern): Likewise for param "insn".
4646 (haifa_speculate_insn): Likewise.
4647 (dump_new_block_header): Likewise for params "head", "tail".
4648 (fix_jump_move): Likewise for param "jump".
4649 (move_block_after_check): Likewise.
4650 (sched_init_insn_luid): Likewise for param "insn".
4651 (sched_init_luids): Likewise for local "insn".
4652 (insn_luid): Likewise for param "insn".
4653 (init_h_i_d): Likewise.
4654 (haifa_init_h_i_d): Likewise for local "insn".
4655 (haifa_init_insn): Likewise for param "insn".
4656 * sched-deps.c (add_dependence): Likewise for local "real_pro",
4657 "other".
4658 (create_insn_reg_use): Likewise for param "insn".
4659 (setup_insn_reg_uses): Likewise. Add a checked cast.
4660 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
4661 "tail" from rtx to rtx_insn *.
4662 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
4663 "insn", "next_tail".
4664
4665 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4666
4667 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
4668 from rtx to rtx_insn *.
4669 (model_add_to_schedule): Likewise for locals "start", "end",
4670 "iter".
4671
4672 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4673
4674 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
4675 rtx_insn *.
4676 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
4677 "to" and locals "insn", "next", "copy". Remove now-redundant
4678 checked cast.
4679
4680 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4681
4682 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
4683 rtx_insn * and param 4 from rtx * to rtx_insn **.
4684 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
4685 param 2 from rtx * to rtx_insn **.
4686
4687 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
4688 rtx_insn * and final param from rtx * to rtx_insn **.
4689
4690 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
4691 from rtx to rtx_insn *.
4692 (try_head_merge_bb): Likewise for both locals named "move_upto".
4693 * df-problems.c (can_move_insns_across): Likewise for params
4694 "from", "to", "across_from", "across_to" and locals "insn",
4695 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
4696 rtx_insn **.
4697 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
4698 from rtx to rtx_insn *.
4699 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
4700 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
4701 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
4702 rtx_insn *.
4703 (noce_try_abs): Likewise.
4704 (noce_get_condition): Likewise for param "jump". Strengthen param
4705 "earliest" from rtx * to rtx_insn **.
4706 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
4707 rtx_insn *.
4708 (find_cond_trap): Likewise.
4709 (dead_or_predicable): Likewise for local "earliest".
4710 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
4711 checked cast.
4712 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
4713 and local "prev". Strengthen param "earliest" from rtx * to
4714 rtx_insn **.
4715 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
4716 Strengthen param "earliest" from rtx * to rtx_insn **.
4717
4718 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4719
4720 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
4721 "to" and local "insn" from rtx to rtx_insn *.
4722
4723 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4724
4725 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
4726 from rtx to rtx_insn *.
4727 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
4728 (code_motion_path_driver): Likewise for local "last_insn".
4729 (simplify_changed_insns): Likewise for local "insn".
4730
4731 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4732
4733 * rtl.h (push_to_sequence): Strengthen param from rtx to
4734 rtx_insn *.
4735 (push_to_sequence2): Likewise for both params.
4736 (delete_insns_since): Likewise for param.
4737 (reorder_insns_nobb): Likewise for all three params.
4738 (set_new_first_and_last_insn): Likewise for both params.
4739
4740 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
4741 rtx_insn *. Remove now-redundant cast.
4742 (set_last_insn): Likewise.
4743
4744 * builtins.c (expand_builtin_return): Strengthen local
4745 "call_fusage" from rtx to rtx_insn *.
4746 * cfgrtl.c (create_basic_block_structure): Likewise for local
4747 "after".
4748 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
4749 "first", "last" and local "insn".
4750 (delete_insns_since): Likewise for param "from".
4751 (reorder_insns_nobb): Likewise for params "from", "to", "after"
4752 and local "x".
4753 (push_to_sequence): Likewise for param "first" and local "last".
4754 (push_to_sequence2): Likewise for params "first" and "last".
4755 * lra.c (emit_add3_insn): Likewise for local "last".
4756 (lra_emit_add): Likewise.
4757 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
4758 "last_insn".
4759 (process_address_1): Likewise for locals "insn", last".
4760 * modulo-sched.c (ps_first_note): Likewise for return type.
4761 * optabs.c (expand_binop_directly): Likewise for param "last".
4762
4763 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4764
4765 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
4766 to rtx_insn*.
4767 * emit-rtl.c (get_last_insn_anywhere): Likewise.
4768
4769 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4770
4771 * function.h (struct sequence_stack): Strengthen fields "first"
4772 and "last" from rtx to rtx_insn *.
4773 (struct emit_status): Likewise for fields "x_first_insn" and
4774 "x_last_insn".
4775
4776 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
4777 (set_first_insn): Add checked cast.
4778 (get_last_insn): Remove now-redundant checked cast.
4779 (set_last_insn): Add checked cast.
4780
4781 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
4782 "saved_first" and "saved_last" from rtx to rtx_insn *.
4783
4784 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4785
4786 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
4787 (unlink_insn_chain): Strengthen both params from rtx to
4788 rtx_insn *.
4789
4790 * cfgrtl.c (cfg_layout_function_header): Likewise for this
4791 variable.
4792 (unlink_insn_chain): Likewise for params "first" and "last".
4793 Remove now-redundant checked cast.
4794 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
4795 (fixup_reorder_chain): Strengthen local "insn" from rtx to
4796 rtx_insn *.
4797 * emit-rtl.c (link_insn_into_chain): Likewise for all three
4798 params.
4799 (add_insn): Likewise for param "insn" and local "prev".
4800 (add_insn_after_nobb): Likewise for both params and local "next".
4801 (add_insn_before_nobb): Likewise for both params and local "prev".
4802 (add_insn_after): Rename param "after" to "uncast_after",
4803 introducing local "after" with another checked cast.
4804 (add_insn_before): Rename params "insn" and "before", giving them
4805 "uncast_" prefixes, adding the old names back using checked casts.
4806 (emit_note_after): Likewise for param "after".
4807 (emit_note_before): Likewise for param "before".
4808 (emit_label): Add a checked cast.
4809
4810 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4811
4812 * cselib.h (cselib_record_sets_hook): Strengthen initial param
4813 "insn" from rtx to rtx_insn *.
4814
4815 * cselib.c (cselib_record_sets_hook): Likewise.
4816
4817 * var-tracking.c (add_with_sets): Likewise, renaming back from
4818 "uncast_insn" to "insn" and eliminating the checked cast from rtx
4819 to rtx_insn *.
4820
4821 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4822
4823 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
4824 and "header_" from rtx to rtx_insn *.
4825 (struct basic_block_d): Likewise for field "head_" within "x"
4826 field of union basic_block_il_dependent.
4827 (BB_HEAD): Drop function...
4828 (SET_BB_HEAD): ...and this function in favor of...
4829 (BB_HEAD): ...reinstate macro.
4830 (BB_END): Drop function...
4831 (SET_BB_END): ...and this function in favor of...
4832 (BB_END): ...reinstate macro.
4833 (BB_HEADER): Drop function...
4834 (SET_BB_HEADER): ...and this function in favor of...
4835 (BB_HEADER): ...reinstate macro.
4836
4837 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
4838 (fix_crossing_unconditional_branches): Likewise.
4839 * caller-save.c (save_call_clobbered_regs): Likewise.
4840 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
4841 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
4842 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
4843 (merge_blocks_move_successor_nojumps): Likewise.
4844 (outgoing_edges_match): Update use of for_each_rtx to
4845 for_each_rtx_in_insn.
4846 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
4847 (expand_gimple_cond): Likewise.
4848 (expand_gimple_tailcall): Likewise.
4849 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
4850 SET_BB_END.
4851 (construct_exit_block): Drop use of SET_BB_END.
4852 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
4853 rtx_insn *.
4854 (delete_insn): Rename param "insn" to "uncast_insn", introducing
4855 a new local "insn" with a checked cast to rtx_insn *. Drop use of
4856 SET_BB_HEAD and SET_BB_END.
4857 (create_basic_block_structure): Drop use of SET_BB_HEAD and
4858 SET_BB_END.
4859 (rtl_delete_block): Drop use of SET_BB_HEAD.
4860 (rtl_split_block): Drop use of SET_BB_END.
4861 (emit_nop_for_unique_locus_between): Likewise.
4862 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
4863 (block_label): Drop use of SET_BB_HEAD.
4864 (fixup_abnormal_edges): Drop use of SET_BB_END.
4865 (record_effective_endpoints): Drop use of SET_BB_HEADER.
4866 (relink_block_chain): Likewise.
4867 (fixup_reorder_chain): Drop use of SET_BB_END.
4868 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
4869 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
4870 rtx_insn **. Drop use of SET_BB_HEADER.
4871 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
4872 SET_BB_HEAD.
4873 (BB_HEAD): Delete this function.
4874 (SET_BB_HEAD): Likewise.
4875 (BB_END): Likewise.
4876 (SET_BB_END): Likewise.
4877 (BB_HEADER): Likewise.
4878 (SET_BB_HEADER): Likewise.
4879 * emit-rtl.c (add_insn_after): Rename param "insn" to
4880 "uncast_insn", adding a new local "insn" and a checked cast to
4881 rtx_insn *. Drop use of SET_BB_END.
4882 (remove_insn): Strengthen locals "next" and "prev" from rtx to
4883 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
4884 (reorder_insns): Drop use of SET_BB_END.
4885 (emit_insn_after_1): Strengthen param "first" and locals "last",
4886 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
4887 (emit_pattern_after_noloc): Add checked cast.
4888 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
4889 (restore_other_notes): Likewise.
4890 (move_insn): Likewise.
4891 (sched_extend_bb): Likewise.
4892 (fix_jump_move): Likewise.
4893 * ifcvt.c (noce_process_if_block): Likewise.
4894 (dead_or_predicable): Likewise.
4895 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
4896 * reg-stack.c (change_stack): Drop use of SET_BB_END.
4897 * sel-sched-ir.c (sel_move_insn): Likewise.
4898 * sel-sched.c (move_nop_to_previous_block): Likewise.
4899
4900 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
4901 SET_BB_END.
4902 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
4903
4904 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4905
4906 * basic-block.h (create_basic_block_structure): Strengthen params
4907 1 "head" and 2 "end" from rtx to rtx_insn *.
4908 * cfgrtl.c (create_basic_block_structure): Likewise.
4909 (rtl_create_basic_block): Update casts from void * to rtx to
4910 rtx_insn *, so that we can pass them as rtx_insn * to
4911 create_basic_block_structure.
4912 * sel-sched-ir.c (sel_create_basic_block): Likewise.
4913
4914 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4915
4916 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
4917 rtx_insn **.
4918 (check_for_inc_dec): Strengthen param "insn" from rtx to
4919 rtx_insn *.
4920
4921 * cselib.h (cselib_process_insn): Likewise.
4922
4923 * cselib.c (cselib_record_sets): Likewise.
4924 (cselib_process_insn): Likewise.
4925
4926 * dse.c (struct insn_info): Likewise for field "insn".
4927 (check_for_inc_dec_1): Likewise for local "insn".
4928 (check_for_inc_dec): Likewise for param "insn".
4929 (scan_insn): Likewise.
4930 (dse_step1): Likewise for local "insn".
4931
4932 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
4933 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
4934
4935 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4936
4937 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
4938 from rtx to rtx_insn *.
4939 (DEP_PRO): Delete this function and...
4940 (SET_DEP_PRO): ...this function in favor of...
4941 (DEP_PRO): ...reinstate this macro.
4942 (DEP_CON): Delete this function and...
4943 (SET_DEP_CON): ...this function in favor of...
4944 (DEP_CON): ...reinstate this old macro.
4945 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
4946 (init_dep): Likewise.
4947 (set_priorities): Likewise for both params.
4948 (sd_copy_back_deps): Likewise for params 1 and 2.
4949
4950 * haifa-sched.c (priority): Likewise for param "insn" and local
4951 "next".
4952 (set_priorities): Likewise for params "head" and "tail" and local
4953 "insn".
4954 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
4955 local "consumer".
4956 (add_to_speculative_block): Add a checked cast.
4957 (create_check_block_twin): Drop use of SET_DEP_CON.
4958 (add_jump_dependencies): Strengthen params "insn" and "jump" from
4959 rtx to rtx_insn *.
4960
4961 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
4962 Drop use of SET_DEP_PRO
4963 (init_dep): Strengthen params "pro" and "con" from rtx to
4964 rtx_insn *.
4965 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
4966 use of SET_DEP_CON.
4967 (DEP_PRO): Delete.
4968 (DEP_CON): Delete.
4969 (SET_DEP_PRO): Delete.
4970 (SET_DEP_CON): Delete.
4971
4972 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4973
4974 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
4975 from rtx to rtx_insn *.
4976 (VINSN_INSN_RTX): Eliminate rvalue function and...
4977 (SET_VINSN_INSN): ...lvalue function in favor of...
4978 (VINSN_INSN_RTX): reinstate this old macro.
4979
4980 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
4981 in favor of VINSN_INSN_RTX.
4982 (VINSN_INSN_RTX): Delete this function.
4983 (SET_VINSN_INSN_RTX): Likewise.
4984
4985 2014-08-26 David Malcolm <dmalcolm@redhat.com>
4986
4987 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
4988 (BND_TO): Delete this function and...
4989 (SET_BND_TO): ...this functions in favor of...
4990 (BND_TO): ...reinstating this macro.
4991 (struct _fence): Strengthen field "executing_insns" from
4992 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
4993 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
4994 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
4995 and param "insn" from rtx to insn_t.
4996 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
4997 rtx_insn *.
4998
4999 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
5000 vec<rtx_insn *> .
5001 (rtx_vec_t): Likewise.
5002 (struct sched_deps_info_def): Strengthen param of "start_insn"
5003 callback from rtx to rtx_insn *. Likewise for param "insn2" of
5004 "note_mem_dep" callback and first param of "note_dep" callback.
5005
5006 * haifa-sched.c (add_to_speculative_block): Strengthen param
5007 "insn" from rtx to rtx_insn *.
5008 (clear_priorities): Likewise.
5009 (calc_priorities): Likewise for local "insn".
5010
5011 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
5012 Remove redundant checked cast.
5013 (haifa_note_mem_dep): Likewise for param "pending_insn".
5014 (haifa_note_dep): Likewise for param "elem".
5015 (note_mem_dep): Likewise for param "e".
5016 (sched_analyze_1): Add checked casts.
5017 (sched_analyze_2): Likewise.
5018
5019 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
5020 from rtx to rtx_insn *.
5021 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
5022 from vec<rtx> * to vec<rtx_insn *> *.
5023
5024 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
5025 scaffolding.
5026 (flist_add): Strengthen param "executing_insns" from
5027 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
5028 (advance_deps_context): Remove now-redundant checked cast.
5029 (init_fences): Replace uses of NULL_RTX with NULL.
5030 (merge_fences): Strengthen params "last_scheduled_insn" and
5031 "sched_next" from rtx to rtx_insn * and "executing_insns" from
5032 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
5033 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
5034 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
5035 an instruction, rather than doing double-duty as a pattern.
5036 (return_nop_to_pool): Update for change of insn_t.
5037 (deps_init_id): Remove now-redundant checked cast.
5038 (struct sched_scan_info_def): Strengthen param of "init_insn"
5039 callback from rtx to insn_t.
5040 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
5041 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
5042 NULL.
5043 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
5044 "end" from rtx to rtx_insn *.
5045 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
5046 (rtx insn_rtx, bool force_unique_p)
5047 (BND_TO): Delete function.
5048 (SET_BND_TO): Delete function.
5049
5050 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
5051 rtx to rtx_insn *.
5052 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
5053 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
5054 rtx to rtx_insn *.
5055 (undo_transformations): Likewise for param "insn".
5056 (update_liveness_on_insn): Likewise.
5057 (compute_live_below_insn): Likewise for param "insn" and local
5058 "succ".
5059 (update_data_sets): Likewise for param "insn".
5060 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
5061 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
5062 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
5063 rtx_insn *.
5064 (move_cond_jump): Likewise for param "insn".
5065 (move_cond_jump): Drop use of SET_BND_TO.
5066 (compute_av_set_on_boundaries): Likewise.
5067 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
5068 (update_and_record_unavailable_insns): Strengthen local "bb_end"
5069 from rtx to rtx_insn *.
5070 (maybe_emit_renaming_copy): Likewise for param "insn".
5071 (maybe_emit_speculative_check): Likewise.
5072 (handle_emitting_transformations): Likewise.
5073 (remove_insn_from_stream): Likewise.
5074 (code_motion_process_successors): Strengthen local "succ" from rtx
5075 to insn_t.
5076
5077 2014-08-26 David Malcolm <dmalcolm@redhat.com>
5078
5079 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
5080 ilist_t, not _xlist_t;
5081 (ILIST_INSN): Define in terms of new union field "insn".
5082 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
5083 _XLIST_NEXT.
5084 (struct _list_node): Add new field "insn" to the union, of type
5085 insn_t.
5086 (ilist_add): Replace macro with an inline function, requiring an
5087 insn_t.
5088 (ilist_remove): Define this macro directly in terms of
5089 _list_remove, rather than indirectly via _xlist_remove.
5090 (ilist_clear): Likewise, in terms of _list_clear rather than
5091 _xlist_clear.
5092 (ilist_is_in_p): Replace macro with an inline function, requiring
5093 an insn_t.
5094 (_list_iter_cond_insn): New function.
5095 (ilist_iter_remove): Define this macro directly in terms of
5096 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
5097 (ilist_iterator): Define directly in terms of _list_iterator
5098 rather than indirectly through _xlist_iterator.
5099 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
5100 than in terms of _FOR_EACH_X.
5101 (FOR_EACH_INSN_1): Likewise.
5102
5103 2014-08-26 Joseph Myers <joseph@codesourcery.com>
5104
5105 PR target/60606
5106 PR target/61330
5107 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
5108 DECL_HARD_REGISTER and return for invalid register specifications.
5109 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
5110 DECL_HARD_REGISTER, call expand_one_error_var.
5111 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
5112 CC_REGNUM with non-MODE_CC modes.
5113 (arm_regno_class): Return NO_REGS for PC_REGNUM.
5114
5115 2014-08-26 Marek Polacek <polacek@redhat.com>
5116
5117 PR c/61271
5118 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
5119
5120 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
5121
5122 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
5123 qi cost; add di cost.
5124 (cortexa57_addrcost_table): Likewise.
5125
5126 2014-08-26 Marek Polacek <polacek@redhat.com>
5127
5128 PR c/61271
5129 * expr.c (is_aligning_offset): Remove logical not.
5130
5131 2014-08-26 Marek Polacek <polacek@redhat.com>
5132
5133 PR c/61271
5134 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
5135 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
5136
5137 2014-08-26 Richard Biener <rguenther@suse.de>
5138
5139 PR tree-optimization/62175
5140 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5141 expand possibly trapping operations.
5142
5143 2014-08-26 David Malcolm <dmalcolm@redhat.com>
5144
5145 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
5146 "insn" from rtx to rtx_insn *.
5147 (permute_load): Likewise for param "insn".
5148 (permute_store): Likewise.
5149 (handle_special_swappables): Likewise for local "insn".
5150 (replace_swap_with_copy): Likewise for locals "insn" and
5151 "new_insn".
5152 (rs6000_analyze_swaps): Likewise for local "insn".
5153
5154 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5155
5156 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
5157 to rtx_insn *.
5158
5159 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5160
5161 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
5162 "note_list" from rtx to rtx_insn *.
5163 (BB_NOTE_LIST): Replace this function and...
5164 (SET_BB_NOTE_LIST): ...this function with...
5165 (BB_NOTE_LIST): ...the former macro implementation.
5166
5167 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
5168 local "from_start" from rtx to rtx_insn *. Strengthen param
5169 "to_endp" from rtx * to rtx_insn **.
5170
5171 * haifa-sched.c (concat_note_lists): Likewise.
5172 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
5173 BB_NOTE_LIST.
5174 (sel_restore_notes): Likewise.
5175 (move_bb_info): Likewise.
5176 (BB_NOTE_LIST): Delete this function.
5177 (SET_BB_NOTE_LIST): Delete this function.
5178 * sel-sched.c (create_block_for_bookkeeping): Eliminate
5179 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
5180
5181 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5182
5183 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
5184 from rtx * to rtx_insn **.
5185 (reorder2): Likewise.
5186 (dependencies_evaluation_hook): Strengthen params "head", "tail"
5187 from rtx to rtx_insn *.
5188
5189 * doc/tm.texi: Update mechanically for above change to target.def.
5190
5191 * sched-int.h (note_list): Strengthen this variable from rtx to
5192 rtx_insn *.
5193 (remove_notes): Likewise for both params.
5194 (restore_other_notes): Likewise for return type and first param.
5195 (struct ready_list): Strengthen field "vec" from rtx * to
5196 rtx_insn **.
5197 (struct dep_replacement): Strenghten field "insn" from rtx to
5198 rtx_insn *.
5199 (struct deps_desc): Likewise for fields "last_debug_insn",
5200 "last_args_size".
5201 (struct haifa_sched_info): Likewise for callback field
5202 "can_schedule_ready_p"'s param, for first param of "new_ready"
5203 callback field, for both params of "rank" callback field, for
5204 first field of "print_insn" callback field (with a const), for
5205 both params of "contributes_to_priority" callback, for param
5206 of "insn_finishes_block_p" callback, for fields "prev_head",
5207 "next_tail", "head", "tail", for first param of "add_remove_insn"
5208 callback, for first param of "begin_schedule_ready" callback, for
5209 both params of "begin_move_insn" callback, and for second param
5210 of "advance_target_bb" callback.
5211 (add_dependence): Likewise for params 1 and 2.
5212 (sched_analyze): Likewise for params 2 and 3.
5213 (deps_analyze_insn): Likewise for param 2.
5214 (ready_element): Likewise for return type.
5215 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
5216 (try_ready): Strenghten param from rtx to rtx_insn *.
5217 (sched_emit_insn): Likewise for return type.
5218 (record_delay_slot_pair): Likewise for params 1 and 2.
5219 (add_delay_dependencies): Likewise for param.
5220 (contributes_to_priority): Likewise for both params.
5221 (find_modifiable_mems): Likewise.
5222
5223 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
5224 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
5225 "first_older_only_insn" from rtx to rtx_insn *.
5226 (arm_sched_reorder): Strengthen param "ready" from rtx * to
5227 rtx_insn **.
5228
5229 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
5230 "last_scheduled_iter0" from rtx to rtx_insn *.
5231 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
5232 (c6x_sched_reorder_1): Strengthen param "ready" and locals
5233 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
5234 "insn" from rtx to rtx_insn *.
5235 (c6x_sched_reorder): Strengthen param "ready" from rtx * to
5236 rtx_insn **.
5237 (c6x_sched_reorder2): Strengthen param "ready" and locals
5238 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
5239 "insn" from rtx to rtx_insn *.
5240 (c6x_variable_issue): Add a checked cast when assigning from insn
5241 to ss.last_scheduled_iter0.
5242 (split_delayed_branch): Strengthen param "insn" and local "i1"
5243 from rtx to rtx_insn *.
5244 (split_delayed_nonbranch): Likewise.
5245 (undo_split_delayed_nonbranch): Likewise for local "insn".
5246 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
5247 "entry_after", "end_packet", "head_insn", "tail_insn",
5248 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
5249 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
5250 to rtx_insn **. Remove now-redundant checked cast on last_insn,
5251 but add a checked cast on loop->start_label. Consolidate calls to
5252 avoid assigning result of gen_spkernel to "insn", now an
5253 rtx_insn *.
5254
5255 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
5256 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
5257 rtx to rtx_insn *.
5258 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
5259 rtx_insn **. Strengthen locals "top", "next" from rtx to
5260 rtx_insn *.
5261 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
5262 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
5263 (add_parameter_dependencies): Strengthen params "call", "head" and
5264 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
5265 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
5266 (add_dependee_for_func_arg): Likewise for param "arg" and local
5267 "insn".
5268 (ix86_dependencies_evaluation_hook): Likewise for params "head",
5269 "tail" and locals "insn", "first_arg".
5270
5271 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
5272 for params "head", "tail" and locals "insn", "next", "next_tail".
5273 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
5274 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
5275 "insn", "lowest", "highest" from rtx to rtx_insn *.
5276 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
5277 rtx_insn **.
5278 (ia64_sched_reorder2): Likewise.
5279
5280 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
5281 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
5282 from rtx * to rtx_insn **.
5283 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
5284 rtx_insn **.
5285 (mep_print_sched_insn): Strengthen param "insn" from rtx to
5286 rtx_insn *.
5287 (mep_sched_reorder): Strengthen param "ready" from rtx * to
5288 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
5289 to rtx_insn *.
5290
5291 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
5292 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
5293 to rtx_insn *.
5294 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
5295 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
5296 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
5297 rtx_insn **.
5298 (vr4130_reorder): Likewise.
5299 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
5300 rtx to rtx_insn *.
5301 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
5302 rtx_insn **.
5303 (mips_sched_reorder): Likewise.
5304 (mips_sched_reorder2): Likewise.
5305
5306 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
5307
5308 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
5309 Strengthen local "tmp" from rtx to rtx_insn *.
5310 (rs6000_sched_reorder2): Likewise.
5311
5312 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
5313 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
5314 (s390_sched_reorder): Strengthen param "ready" from rtx * to
5315 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
5316
5317 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
5318 "tmp2" from rtx to rtx_insn *.
5319 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
5320 Strengthen local "insn" from rtx to rtx_insn *.
5321 (ready_reorder): Strengthen param "ready" from rtx * to
5322 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
5323 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
5324 (sh_reorder2): Likewise.
5325
5326 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
5327 local "insn" from rtx to rtx_insn *.
5328
5329 * haifa-sched.c (note_list): Strengthen this variable from rtx to
5330 rtx_insn *.
5331 (scheduled_insns): Strengthen this variable from vec<rtx> to
5332 vec<rtx_insn *>.
5333 (set_modulo_params): Likewise for locals "i1", "i2".
5334 (record_delay_slot_pair): Likewise for params "i1", "i2".
5335 (add_delay_dependencies): Likewise for param "insn".
5336 (cond_clobbered_p): Likewise.
5337 (recompute_todo_spec): Likewise for local "prev".
5338 (last_scheduled_insn): Likewise for this variable.
5339 (nonscheduled_insns_begin): Likewise.
5340 (model_set_excess_costs): Strengthen param "insns" from rtx * to
5341 rtx_insn **.
5342 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
5343 rtx_insn *.
5344 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
5345 Strengthen local "insn" from rtx to rtx_insn *.
5346 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
5347 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
5348 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
5349 (ready_remove_first): Likewise for return type and local "t".
5350 (ready_element): Likewise for return type.
5351 (ready_remove): Likewise for return type and local "t".
5352 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
5353 (check_clobbered_conditions): Strengthen local "x" from rtx to
5354 rtx_insn *, adding a checked cast.
5355 (schedule_insn): Likewise for param "insn".
5356 (remove_notes): Likewise for params "head", "tail" and locals
5357 "next_tail", "insn", "next".
5358 (struct haifa_saved_data): Likewise for fields
5359 "last_scheduled_insn", "nonscheduled_insns_begin".
5360 (save_backtrack_point): Update for change to field "vec" of
5361 struct ready_list.
5362 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
5363 rtx_insn **.
5364 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
5365 from rtx to rtx_insn *
5366 (resolve_dependencies): Strengthen param "insn" from rtx to
5367 rtx_insn *
5368 (restore_other_notes): Likewise for return type, for param "head"
5369 and local "note_head".
5370 (undo_all_replacements): Likewise for local "insn".
5371 (first_nonscheduled_insn): Likewise for return type and local "insn".
5372 (queue_to_ready): Likewise for local "insn", adding checked casts.
5373 (early_queue_to_ready): Likewise for local "insn".
5374 (debug_ready_list_1): Strengthen local "p" from rtx * to
5375 rtx_insn **.
5376 (move_insn): Strengthen param "insn" and local "note" from rtx to
5377 rtx_insn *
5378 (insn_finishes_cycle_p): Likewise for param "insn".
5379 (max_issue): Likewise for local "insn".
5380 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
5381 to rtx_insn **.
5382 (commit_schedule): Strengthen param "prev_head" and local "insn"
5383 from rtx to rtx_insn *
5384 (prune_ready_list): Likewise for local "insn".
5385 (schedule_block): Likewise for locals "prev_head", "head", "tail",
5386 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
5387 (set_priorities): Likewise for local "prev_head".
5388 (try_ready): Likewise for param "next".
5389 (fix_tick_ready): Likewise.
5390 (change_queue_index): Likewise.
5391 (sched_extend_ready_list): Update for change to field "vec" of
5392 struct ready_list.
5393 (generate_recovery_code): Strengthen param "insn" from rtx to
5394 rtx_insn *.
5395 (begin_speculative_block): Likewise.
5396 (create_check_block_twin): Likewise for param "insn" and locals
5397 "label", "check", "twin". Introduce local "check_pat" to avoid
5398 "check" being used as a plain rtx before being used as an insn.
5399 (fix_recovery_deps): Add a checked cast to rtx_insn * when
5400 extracting elements from ready_list.
5401 (sched_remove_insn): Strengthen param "insn" from rtx to
5402 rtx_insn *.
5403 (sched_emit_insn): Likewise for return type.
5404 (ready_remove_first_dispatch): Likewise for return type and local
5405 "insn".
5406
5407 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
5408
5409 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
5410 const rtx_insn *.
5411
5412 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
5413 from rtx to rtx_insn *.
5414 (add_dependence_list): Likewise for param "insn". Add a checked
5415 cast.
5416 (add_dependence_list_and_free): Strengthen param "insn" from rtx
5417 to rtx_insn *. Strengthen param "list_p" from rtx * to
5418 rtx_insn **.
5419 (chain_to_prev_insn): Strengthen param "insn" and locals
5420 "prec_nonnote", "i" from rtx to rtx_insn *.
5421 (flush_pending_lists): Likewise for param "insn".
5422 (cur_insn): Likewise for this variable.
5423 (haifa_start_insn): Add a checked cast.
5424 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
5425 (sched_analyze_reg): Likewise for param "insn".
5426 (sched_analyze_1): Likewise.
5427 (sched_analyze_2): Likewise. Add checked casts.
5428 (sched_analyze_insn): Likewise. Also for local "prev".
5429 (deps_analyze_insn): Likewise for param "insn".
5430 (sched_analyze): Likewise for params "head", "tail" and local "insn".
5431 (add_dependence_1): Likewise for params "insn", "elem".
5432 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
5433 (parse_add_or_inc): Likewise for param "insn".
5434 (find_inc): Likewise for local "inc_cand".
5435 (find_modifiable_mems): Likewise for params "head", "tail" and
5436 locals "insn", "next_tail".
5437
5438 * sched-ebb.c (init_ready_list): Likewise for local "insn".
5439 (begin_schedule_ready): Likewise for param "insn".
5440 (begin_move_insn): Likewise for params "insn" and "last".
5441 (ebb_print_insn): Strengthen param "insn" from const_rtx to
5442 const rtx_insn *.
5443 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
5444 (ebb_contributes_to_priority): Likewise for params "next", "insn".
5445 (ebb_add_remove_insn): Likewise for param "insn".
5446 (advance_target_bb): Likewise.
5447
5448 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
5449 "insn".
5450 (check_live): Likewise for param "insn".
5451 (init_ready_list): Likewise for local "insn".
5452 (can_schedule_ready_p): Likewise for param "insn".
5453 (begin_schedule_ready): Likewise.
5454 (new_ready): Likewise for param "next".
5455 (rgn_print_insn): Likewise for param "insn".
5456 (rgn_rank): Likewise for params "insn1", "insn2".
5457 (contributes_to_priority): Likewise for params "next", "insn".
5458 (rgn_insn_finishes_block_p): Likewise for param "insn".
5459 (add_branch_dependences): Likewise for params "head", "tail" and
5460 locals "insn", "last".
5461 (rgn_add_remove_insn): Likewise for param "insn".
5462 (advance_target_bb): Likewise.
5463
5464 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
5465 const_rtx to const rtx_insn *.
5466
5467 * sel-sched-dump.h (sel_print_insn): Likewise.
5468
5469 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
5470 (deps_init_id): Likewise.
5471
5472 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
5473 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
5474 rtx_insn **.
5475
5476 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5477
5478 * output.h (final_start_function): Strengthen param 1 from rtx to
5479 rtx_insn *.
5480
5481 * final.c (final_start_function): Likewise, renaming back from
5482 "uncast_first" to "first", and dropping the checked cast from rtx
5483 to rtx_insn *.
5484
5485 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5486
5487 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
5488 * final.c (final): Likewise. Rename param back from
5489 "uncast_first" to "first" and eliminate the checked cast from rtx
5490 to rtx_insn *.
5491
5492 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5493
5494 * output.h (shorten_branches): Strengthen param from rtx to
5495 rtx_insn *.
5496
5497 * final.c (shorten_branches): Likewise, renaming param back from
5498 "uncast_first" to "first", and dropping the checked cast from rtx
5499 to rtx_insn *.
5500
5501 * genattr.c (gen_attr): Likewise when writing out the prototype of
5502 shorten_branches.
5503
5504 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5505
5506 * sched-int.h (struct haifa_sched_info): Strengthen fields
5507 "prev_head" and "next_tail" from rtx to rtx_insn *.
5508
5509 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5510
5511 * rtl.h (rtx_jump_table_data::get_labels): New method.
5512 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
5513 with use of the new rtx_jump_table_data::get_labels method.
5514 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
5515 to rtx_jump_table_data *. Simplify by using get_labels method.
5516 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
5517 a dyn_cast, introducing local "table", using it to replace
5518 label-lookup logic with a get_labels method call.
5519 (patch_jump_insn): Simplify using get_labels method.
5520 * dwarf2cfi.c (create_trace_edges): Likewise.
5521 * rtlanal.c (label_is_jump_target_p): Likewise.
5522
5523 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5524
5525 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
5526 to rtx_insn *.
5527
5528 * emit-rtl.c (unshare_all_rtl_1): Likewise.
5529 (unshare_all_rtl_again): Likewise, also for local "p".
5530
5531 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5532
5533 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
5534 to rtx_insn *.
5535 * cfgrtl.c (delete_insn_and_edges): Likewise.
5536
5537 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5538
5539 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
5540 from rtx to rtx_insn *.
5541
5542 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
5543
5544 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5545
5546 * function.c (thread_prologue_and_epilogue_insns): Likewise for
5547 locals "returnjump", "epilogue_end", "insn", "next".
5548
5549 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
5550 "returnjump" from rtx * to rtx_insn **.
5551 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
5552
5553 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5554
5555 * basic-block.h (struct edge_def). Strengthen "r" within
5556 union edge_def_insns from rtx to rtx_insn *.
5557
5558 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
5559 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
5560 rtx_insn *.
5561 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
5562 from rtx to rtx_insn *.
5563 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
5564 rtx_insn *.
5565 * postreload-gcse.c (reg_killed_on_edge): Likewise.
5566 (reg_used_on_edge): Likewise.
5567 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
5568 (gt_pch_nx): New overload for rtx_insn *&.
5569 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
5570 from rtx to rtx_insn *.
5571
5572 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5573
5574 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
5575 from rtx to rtx_insn *.
5576 (BB_FOOTER): Replace function with access macro.
5577 (SET_BB_FOOTER): Delete.
5578
5579 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
5580 with BB_FOOTER.
5581 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
5582 (emit_barrier_after_bb): Likewise.
5583 (record_effective_endpoints): Likewise.
5584 (relink_block_chain): Likewise.
5585 (fixup_fallthru_exit_predecessor): Likewise.
5586 (cfg_layout_duplicate_bb): Likewise.
5587 (cfg_layout_split_block): Likewise.
5588 (cfg_layout_delete_block): Likewise.
5589 (cfg_layout_merge_blocks): Likewise.
5590 (BB_FOOTER): Delete function.
5591 (SET_BB_FOOTER): Delete function.
5592 * combine.c (update_cfg_for_uncondjump): Replace uses of
5593 SET_BB_FOOTER with BB_FOOTER.
5594
5595 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5596
5597 * except.h (struct eh_landing_pad_d): Strengthen field
5598 "landing_pad" from rtx to rtx_code_label *.
5599
5600 * except.c (sjlj_emit_dispatch_table): Likewise for param
5601 "dispatch_label"
5602 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
5603
5604 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5605
5606 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
5607 first param from rtx to rtx_insn *.
5608 * config/xtensa/xtensa.c (struct machine_function): Likewise for
5609 field "set_frame_ptr_insn".
5610 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
5611 "csend" from rtx to rtx_code_label *.
5612 (xtensa_expand_atomic): Likewise for local "csloop".
5613 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
5614 rtx_insn *.
5615 (xtensa_call_tls_desc): Likewise for return type and locals
5616 "call_insn", "insns".
5617 (xtensa_legitimize_tls_address): Likewise for local "insns".
5618 (xtensa_expand_prologue): Likewise for locals "insn", "first".
5619
5620 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5621
5622 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
5623 first param from rtx to rtx_insn *.
5624 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
5625 "insn".
5626
5627 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5628
5629 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
5630 Strengthen param 1 from rtx to rtx_insn *.
5631 (tilepro_output_cbranch): Likewise.
5632 (tilepro_adjust_insn_length): Likewise.
5633 (tilepro_final_prescan_insn): Likewise for sole param.
5634
5635 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
5636 Likewise for local "last".
5637 (cbranch_predicted_p): Likewise for param "insn".
5638 (tilepro_output_simple_cbranch_with_opcode): Likewise.
5639 (tilepro_output_cbranch_with_opcode): Likewise.
5640 (tilepro_output_cbranch): Likewise.
5641 (frame_emit_load): Likewise for return type and locals "seq",
5642 "insn".
5643 (emit_sp_adjust): Likewise for return type and local "insn".
5644 (tilepro_expand_epilogue): Likewise for locals "last_insn",
5645 "insn".
5646 (tilepro_adjust_insn_length): Likewise for param "insn".
5647 (next_insn_to_bundle): Likewise for return type and params
5648 "r", "end".
5649 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
5650 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
5651 local "new_insns".
5652 (match_addli_pcrel): Likewise for param "insn".
5653 (replace_addli_pcrel): Likewise.
5654 (match_auli_pcrel): Likewise.
5655 (replace_auli_pcrel): Likewise.
5656 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
5657 "next_insn".
5658 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
5659 "queue", "next_queue", "prev".
5660 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
5661 (tilepro_final_prescan_insn): Likewise for param "insn".
5662
5663 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5664
5665 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
5666 Strengthen param 1 from rtx to rtx_insn *.
5667 (tilegx_output_cbranch): Likewise.
5668 (tilegx_adjust_insn_length): Likewise.
5669 (tilegx_final_prescan_insn): Likewise for sole param.
5670
5671 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
5672 or local "last".
5673 (cbranch_predicted_p): Likewise for param "insn".
5674 (tilegx_output_simple_cbranch_with_opcode): Likewise.
5675 (tilegx_output_cbranch_with_opcode): Likewise.
5676 (tilegx_output_cbranch): Likewise.
5677 (frame_emit_load): Likewise for return type.
5678 (set_frame_related_p): Likewise for locals "seq", "insn".
5679 (emit_sp_adjust): Likewise for return type, and for local "insn".
5680 Introduce local "pat" for use in place of "insn" where the latter
5681 isn't an instruction.
5682 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
5683 from rtx to rtx_insn *.
5684 (tilegx_adjust_insn_length): Likewise for param "insn".
5685 (next_insn_to_bundle): Likewise for return type and params "r" and
5686 "end".
5687 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
5688 "end".
5689 (replace_insns): Likewise for params "old_insn", "new_insns".
5690 (replace_mov_pcrel_step1): Likewise for param "insn" and local
5691 "new_insns".
5692 (replace_mov_pcrel_step2): Likewise.
5693 (replace_mov_pcrel_step3): Likewise.
5694 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
5695 "next_insn".
5696 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
5697 "queue", "next_queue", "prev".
5698 (tilegx_output_mi_thunk): Likewise for local "insn".
5699 (tilegx_final_prescan_insn): Likewise for param "insn".
5700
5701 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5702
5703 * config/spu/spu.c (frame_emit_store): Strengthen return type from
5704 rtx to rtx_insn *.
5705 (frame_emit_load): Likewise.
5706 (frame_emit_add_imm): Likewise, also for local "insn".
5707 (spu_expand_prologue): Likewise for local "insn".
5708 (struct spu_bb_info): Likewise for field "prop_jump".
5709 (emit_nop_for_insn): Likewise for param "insn" and local
5710 "new_insn".
5711 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
5712 "hbr_insn".
5713 (spu_emit_branch_hint): Likewise for params "before", "branch" and
5714 locals "hint", "insn".
5715 (get_branch_target): Likewise for param "branch".
5716 (insn_clobbers_hbr): Likewise for param "insn".
5717 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
5718 locals "insn", "before_4", "before_16".
5719 (insert_hbrp): Likewise for local "insn".
5720 (spu_machine_dependent_reorg): Likewise for locals "branch",
5721 "insn", "next", "bbend".
5722 (uses_ls_unit): Likewise for param "insn".
5723 (get_pipe): Likewise.
5724 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
5725 introducing a checked cast.
5726 (spu_sched_adjust_cost): Likewise for params "insn" and
5727 "dep_insn".
5728 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
5729 (spu_sms_res_mii): Likewise.
5730
5731 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5732
5733 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
5734 from rtx to rtx_insn *.
5735 (output_cbranch): Likewise for param 6.
5736 (output_return): Likewise for param 1.
5737 (output_sibcall): Likewise.
5738 (output_v8plus_shift): Likewise.
5739 (output_v8plus_mult): Likewise.
5740 (output_v9branch): Likewise for param 7.
5741 (output_cbcond): Likewise for param 3.
5742
5743 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
5744 for local "insn".
5745 (sparc_legitimize_pic_address): Likewise.
5746 (sparc_emit_call_insn): Likewise.
5747 (emit_save_or_restore_regs): Likewise.
5748 (emit_window_save): Likewise for return type and local "insn".
5749 (sparc_expand_prologue): Likewise for local "insn".
5750 (sparc_flat_expand_prologue): Likewise.
5751 (output_return): Likewise for param "insn".
5752 (output_sibcall): Likewise for param "insn" and local "delay".
5753 (output_ubranch): Likewise for param "insn".
5754 (output_cbranch): Likewise.
5755 (output_cbcond): Likewise.
5756 (output_v9branch): Likewise.
5757 (output_v8plus_shift): Likewise.
5758 (sparc_output_mi_thunk): Likewise for local "insn".
5759 (get_some_local_dynamic_name): Likewise.
5760 (output_v8plus_mult): Likewise for param "insn".
5761
5762 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5763
5764 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
5765 from rtx to rtx_insn *.
5766 (output_branchy_insn): Likewise for param 3.
5767 (output_far_jump): Likewise for param 1.
5768 (final_prescan_insn): Likewise.
5769 (sh_insn_length_adjustment): Likewise for sole param.
5770
5771 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
5772 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
5773 rtx_code_label *.
5774 (sh_emit_compare_and_set): Likewise for local "lab".
5775 (output_far_jump): Strengthen param "insn" and local "prev" from
5776 rtx to rtx_insn *.
5777 (output_branchy_insn): Likewise for param "insn" and local
5778 "next_insn".
5779 (output_ieee_ccmpeq): Likewise for param "insn".
5780 (struct label_ref_list_d): Strengthen field "label" from rtx to
5781 rtx_code_label *.
5782 (pool_node): Likewise.
5783 (pool_window_label): Likewise for this global.
5784 (add_constant): Likewise for return type and locals "lab", "new_rtx".
5785 (dump_table): Strengthen params "start", "barrier" and local
5786 "scan" from rtx to rtx_insn *.
5787 (broken_move): Likewise for param "insn".
5788 (untangle_mova): Likewise for params "first_mova" and "new_mova".
5789 Strengthen param "first_mova" from rtx * to rtx_insn **.
5790 (mova_p): Likewise for param "insn".
5791 (fixup_mova): Likewise for param "mova".
5792 (find_barrier): Likewise for return type, params "mova" and
5793 "from", and locals "barrier_before_mova", "found_barrier",
5794 "good_barrier", "orig", "last_symoff", "next". Strengthen local
5795 "label" from rtx to rtx_code_label *.
5796 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
5797 rtx to rtx_insn *.
5798 (sh_reorg): Likewise for locals "link", "scan", "barrier".
5799 (split_branches): Likewise for param "first" and local "insn".
5800 (final_prescan_insn): Likewise for param "insn".
5801 (sequence_insn_p): Likewise for locals "prev", "next".
5802 (sh_insn_length_adjustment): Likewise for param "insn".
5803 (sh_can_redirect_branch): Likewise for local "insn".
5804 (find_r0_life_regions): Likewise for locals "end", "insn".
5805 (sh_output_mi_thunk): Likewise for local "insns".
5806
5807 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5808
5809 * config/score/score.c (score_output_mi_thunk): Strengthen local
5810 "insn" from rtx to rtx_insn *.
5811 (score_prologue): Likewise.
5812
5813 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5814
5815 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
5816 1 from rtx to rtx_insn *.
5817 (s390_emit_jump): Likewise for return type.
5818 (s390_emit_call): Likewise.
5819 (s390_load_got): Likewise.
5820
5821 * config/s390/s390.c (last_scheduled_insn): Likewise for this
5822 variable.
5823 (s390_match_ccmode): Likewise for param "insn".
5824 (s390_emit_jump): Likewise for return type.
5825 (s390_split_branches): Likewise for local "label".
5826 (struct constant): Strengthen field "label" from rtx to
5827 rtx_code_label *.
5828 (struct constant_pool): Likewise for field "label". Strengthen
5829 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
5830 rtx_insn *.
5831 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
5832 insns.
5833 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
5834 (s390_end_pool): Likewise.
5835 (s390_dump_pool): Likewise for local "insn".
5836 (s390_mainpool_start): Likewise.
5837 (s390_chunkify_start): Likewise.
5838 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
5839 with insns. Strengthen locals "label", "jump", "barrier", "next",
5840 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
5841 (s390_chunkify_finish): Strengthen local "insn" from rtx to
5842 rtx_insn *.
5843 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
5844 "jump", "label", "next_insn".
5845 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
5846 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
5847 "tbegin_insn".
5848 (s390_load_got): Likewise for return type and local "insns".
5849 (s390_save_gprs_to_fprs): Likewise for local "insn".
5850 (s390_restore_gprs_from_fprs): Likewise.
5851 (pass_s390_early_mach::execute): Likewise.
5852 (s390_emit_prologue): Likewise for local "insns".
5853 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
5854 rtx_code_label *.
5855 (s390_emit_call): Strengthen return type and local "insn" from
5856 rtx to rtx_insn *.
5857 (s390_emit_tpf_eh_return): Likewise for local "insn".
5858 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
5859 "next_insn", introducing locals "s_pat", "rpat" to allow this.
5860 (s390_fix_long_loop_prediction): Likewise for param "insn" and
5861 local "cur_insn".
5862 (s390_non_addr_reg_read_p): Likewise for param "insn".
5863 (find_cond_jump): Likewise for return type and param "insn".
5864 (s390_swap_cmp): Likewise for param "insn".
5865 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
5866 "prev_insn", "next_insn".
5867 (s390_reorg): Likewise for locals "insn", "target".
5868 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
5869 (s390_sched_variable_issue): For now, rename param "insn" to
5870 "uncast_insn", introducing a checked cast.
5871 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
5872 insn.
5873 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
5874 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
5875
5876 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5877
5878 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
5879 param from rtx to rtx_insn *.
5880 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
5881
5882 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5883
5884 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
5885 4 from rtx to rtx_insn *.
5886 (rs6000_final_prescan_insn): Likewise for first param.
5887 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
5888 local "insn".
5889 (rs6000_get_some_local_dynamic_name): Likewise.
5890 (output_cbranch): Likewise for param "insn".
5891 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
5892 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
5893 (rs6000_emit_allocate_stack): Likewise for local "insn".
5894 (load_cr_save): Likewise.
5895 (restore_saved_cr): Likewise.
5896 (restore_saved_lr): Likewise.
5897 (emit_cfa_restores): Likewise.
5898 (rs6000_output_function_epilogue): Likewise for locals "insn" and
5899 "deleted_debug_label".
5900 (rs6000_output_mi_thunk): Likewise for local "insn".
5901 (rs6000_final_prescan_insn): Likewise for param "insn".
5902
5903 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5904
5905 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
5906 Strengthen param "insn" from rtx to rtx_insn *.
5907 * config/picochip/picochip.c (picochip_current_prescan_insn):
5908 Likewise for this variable.
5909 (picochip_final_prescan_insn): Likewise for param "insn".
5910
5911 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5912
5913 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
5914 from rtx to rtx_insn *.
5915 (pa_output_indirect_call): Likewise.
5916 (pa_adjust_insn_length): Likewise.
5917 (pa_attr_length_millicode_call): Likewise.
5918 (pa_attr_length_call): Likewise.
5919 (pa_attr_length_indirect_call): Likewise.
5920
5921 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
5922 "insn".
5923 (pa_attr_length_millicode_call): Likewise.
5924 (pa_attr_length_call): Likewise.
5925 (pa_output_call): Likewise.
5926 (pa_attr_length_indirect_call): Likewise.
5927 (pa_output_indirect_call): Likewise.
5928
5929 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5930
5931 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
5932 Strengthen first param from rtx to rtx_insn *.
5933 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
5934 param "insn".
5935
5936 2014-08-25 David Malcolm <dmalcolm@redhat.com>
5937
5938 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
5939 type from rtx to rtx_insn *.
5940 (mips_expand_call): Likewise.
5941 (mips_adjust_insn_length): Likewise for first param.
5942 (mips_output_conditional_branch): Likewise.
5943 (mips_output_order_conditional_branch): Likewise.
5944 (mips_final_prescan_insn): Likewise.
5945
5946 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
5947 rtx_insn * for the SEQUENCE case.
5948 (SEQ_END): Likewise.
5949 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
5950 (mips_emit_call_insn): Likewise, also for local "insn".
5951 (mips16_gp_pseudo_reg): Likewise for local "scan".
5952 (mips16_build_call_stub): Likewise for return type and for local
5953 "insn". Introduce a new local "pattern" so that "insn" can indeed
5954 be an insn.
5955 (mips_expand_call): Strengthen return type and local "insn" from
5956 rtx to rtx_insn *.
5957 (mips_block_move_loop): Strengthen local "label" from rtx to
5958 rtx_code_label *.
5959 (mips_expand_synci_loop): Likewise for locals "label",
5960 "end_label".
5961 (mips_set_frame_expr): Strengthen local "insn" from rtx to
5962 rtx_insn *.
5963 (mips16e_collect_argument_saves): Likewise for locals "insn",
5964 "next".
5965 (mips_find_gp_ref): Likewise for param of callback for "pred"
5966 param, and for local "insn".
5967 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
5968 (mips_insn_has_flexible_gp_ref_p): Likewise.
5969 (mips_epilogue_emit_cfa_restores): Likewise for return type and
5970 local "insn".
5971 (mips_epilogue_set_cfa): Likewise for local "insn".
5972 (mips_expand_epilogue): Likewise.
5973 (mips_adjust_insn_length): Likewise for param "insn".
5974 (mips_output_conditional_branch): Likewise.
5975 (mips_output_order_conditional_branch): Likewise.
5976 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
5977 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
5978 "falu2_turn_enabled_insn".
5979 (mips_builtin_branch_and_move): Strengthen locals "true_label",
5980 "done_label" from rtx to rtx_code_label *.
5981 (struct mips16_constant): Likewise for field "label".
5982 (mips16_add_constant): Likewise for return type.
5983 (mips16_emit_constants_1): Strengthen return type and param "insn"
5984 from rtx to rtx_insn *.
5985 (mips16_emit_constants): Likewise for param "insn".
5986 (mips16_insn_length): Likewise.
5987 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
5988 to rtx_code_label *.
5989 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
5990 from rtx to rtx_insn *.
5991 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
5992 "jump". Strengthen local "label" from rtx to rtx_code_label *.
5993 (r10k_simplify_address): Strengthen param "insn" and local
5994 "def_insn" from rtx to rtx_insn *.
5995 (r10k_safe_address_p): Strengthen param "insn" from rtx to
5996 rtx_insn *.
5997 (r10k_needs_protection_p_1): Update target type of cast of data
5998 from to rtx to rtx_insn *.
5999 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
6000 rtx * to rtx_insn **.
6001 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
6002 rtx_insn *.
6003 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
6004 (mips_call_expr_from_insn): Likewise for param "insn".
6005 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
6006 (mips_find_pic_call_symbol): Likewise for param "insn".
6007 (mips_annotate_pic_calls): Likewise for local "insn".
6008 (mips_sim_insn): Likewise for this variable.
6009 (struct mips_sim): Likewise for field "insn" within elements of
6010 last_set array.
6011 (mips_sim_wait_reg): Likewise for param "insn".
6012 (mips_sim_wait_regs): Likewise.
6013 (mips_sim_wait_units): Likewise.
6014 (mips_sim_wait_insn): Likewise.
6015 (mips_sim_issue_insn): Likewise.
6016 (mips_sim_finish_insn): Likewise.
6017 (mips_seq_time): Likewise for param "seq" and local "insn".
6018 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
6019 locals "first", "second".
6020 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
6021 "last", "last2", "next".
6022 (mips_avoid_hazard): Likewise for params "after", "insn".
6023 (mips_reorg_process_insns): Likewise for locals "insn",
6024 "last_insn", "subinsn", "next_insn".
6025 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
6026 (mips16_split_long_branches): Likewise for locals "insn" "jump",
6027 "jump_sequence".
6028 (mips_output_mi_thunk): Likewise for local "insn".
6029 (mips_final_prescan_insn): Likewise for param "insn".
6030
6031 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6032
6033 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
6034 Strengthen return type and local "insns" from rtx to rtx_insn *.
6035 (microblaze_legitimize_tls_address): Likewise for local "insns".
6036 (microblaze_block_move_loop): Strengthen local "label" from rtx
6037 to rtx_code_label *.
6038 (microblaze_expand_prologue): Strengthen two locals named "insn"
6039 from rtx to rtx_insn *.
6040 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
6041 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
6042 "insn". Strengthen locals "div_label", "div_end_label" from rtx
6043 to rtx_code_label *.
6044
6045 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6046
6047 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
6048 param from rtx to rtx_insn *.
6049 (mep_reuse_lo): Likewise for third param.
6050 (mep_use_post_modify_p): Likewise for first param.
6051 (mep_core_address_length): Likewise.
6052 (mep_cop_address_length): Likewise.
6053 (mep_final_prescan_insn): Likewise.
6054 (mep_store_data_bypass_p): Likewise for both params.
6055 (mep_mul_hilo_bypass_p): Likewise.
6056 (mep_ipipe_ldc_p): Likewise for param.
6057
6058 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
6059 (mep_rewrite_mult): Likewise.
6060 (mep_rewrite_mulsi3): Likewise.
6061 (mep_rewrite_maddsi3): Likewise.
6062 (mep_reuse_lo_p_1): Likewise.
6063 (mep_reuse_lo_p): Likewise.
6064 (mep_frame_expr): Likewise.
6065 (mep_make_parallel): Likewise for both params.
6066 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
6067 local "insn".
6068 (mep_use_post_modify_p): Likewise for param "insn".
6069 (mep_core_address_length): Likewise.
6070 (mep_cop_address_length): Likewise.
6071 (mep_reg_set_in_function): Likewise for local "insn".
6072 (mep_asm_without_operands_p): Likewise.
6073 (F): Likewise for return type and param "x".
6074 (add_constant): Likewise for local "insn".
6075 (maybe_dead_move): Likewise for return type and local "insn".
6076 (mep_expand_prologue): Likewise for local "insn".
6077 (mep_final_prescan_insn): Likewise for param "insn".
6078 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
6079 "next", "follow", "x".
6080 (mep_insert_repeat_label_last): Likewise for return type, param
6081 "last_insn", and locals "next", "prev". Strengthen param "label"
6082 from rtx to rtx_code_label *.
6083 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
6084 rtx_insn *.
6085 (struct mep_doloop_end): Likewise for fields "insn" and
6086 "fallthrough".
6087 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
6088 Strengthen local "repeat_label" from rtx to rtx_code_label *.
6089 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
6090 rtx_insn *.
6091 (mep_invert_branch): Likewise for params "insn" and "after".
6092 (mep_reorg_erepeat): Likewise for param "insns" and locals
6093 "insn", "prev", "new_last", "barrier", "user". Strengthen local
6094 "l" from rtx to rtx_code_label *.
6095 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
6096 from rtx to rtx_insn *.
6097 (mep_reorg_addcombine): Likewise for param "insns" and locals
6098 "i", "n".
6099 (add_sp_insn_p): Likewise for param "insn".
6100 (mep_reorg_noframe): Likewise for param "insns" and locals
6101 "start_frame_insn", "end_frame_insn", "next".
6102 (mep_reorg): Likewise for local "insns".
6103 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
6104 cast.
6105 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
6106 (mep_mul_hilo_bypass_p): Likewise.
6107 (mep_ipipe_ldc_p): Likewise for param "insn".
6108 (mep_make_bundle): Likewise for return type, param "cop" and local
6109 "insn", splitting out the latter into a new local "seq" for when it
6110 is a SEQUENCE rather than an insn.
6111 (core_insn_p): Likewise for param "insn".
6112 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
6113 "last", "first", "note", "prev", "core_insn".
6114
6115 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6116
6117 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
6118 rtx to rtx_insn *.
6119 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
6120 (m68k_final_prescan_insn): Likewise for first param.
6121
6122 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
6123 (m68k_set_frame_related): Likewise for param "insn".
6124 (output_btst): Likewise for param "insn".
6125 (m68k_final_prescan_insn): Likewise.
6126 (m68k_move_to_reg): Likewise for local "insn".
6127 (m68k_call_tls_get_addr): Likewise for local "insns".
6128 (m68k_call_m68k_read_tp): Likewise.
6129 (strict_low_part_peephole_ok): Likewise for param "first_insn".
6130 (m68k_output_mi_thunk): Likewise for local "insn".
6131
6132 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6133
6134 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
6135 first param from rtx to rtx_insn *.
6136 (iq2000_adjust_insn_length): Likewise.
6137 (iq2000_output_conditional_branch): Likewise.
6138 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
6139 "insn" and local "nop_insn".
6140 (iq2000_annotate_frame_insn): Likewise for param "insn".
6141 (iq2000_expand_prologue): Likewise for both locals "insn".
6142 (iq2000_adjust_insn_length): Likewise for param "insn".
6143 (iq2000_output_conditional_branch): Likewise.
6144
6145 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6146
6147 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
6148 "insns" from rtx to rtx_insn *.
6149 (ia64_emit_cond_move): Likewise for locals "insn", "first".
6150 (struct spill_fill_data): Likewise for field "init_after" and for
6151 elements of array field "prev_insn".
6152 (spill_restore_mem): Likewise for locals "insn", "first".
6153 (do_spill): Likewise for local "insn".
6154 (do_restore): Likewise.
6155 (ia64_expand_prologue): Likewise.
6156 (ia64_expand_epilogue): Likewise.
6157 (emit_insn_group_barriers): Likewise for locals "insn",
6158 "last_label".
6159 (emit_all_insn_group_barriers): Likewise for locals "insn",
6160 "last".
6161 (dfa_stop_insn): Likewise for this global.
6162 (dfa_pre_cycle_insn): Likewise.
6163 (ia64_nop): Likewise.
6164 (final_emit_insn_group_barriers): Likewise for locals "insn",
6165 "last".
6166 (emit_predicate_relation_info): Likewise for locals "head", "n",
6167 "insn", "b", "a".
6168 (ia64_reorg): Likewise for local "insn".
6169 (ia64_output_mi_thunk): Likewise.
6170 (expand_vec_perm_interleave_2): Likewise for local "seq".
6171
6172 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6173
6174 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
6175 param 1 "insn" from rtx to rtx_insn *.
6176 (ix86_use_lea_for_mov): Likewise.
6177 (ix86_avoid_lea_for_addr): Likewise.
6178 (ix86_split_lea_for_addr): Likewise.
6179 (ix86_lea_for_add_ok): Likewise.
6180 (ix86_output_call_insn): Likewise.
6181
6182 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
6183 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
6184 (ix86_output_function_epilogue): Likewise for locals "insn",
6185 "deleted_debug_label".
6186 (legitimize_tls_address): Likewise for local "insn".
6187 (get_some_local_dynamic_name): Likewise.
6188 (increase_distance): Likewise for params "prev", "next".
6189 (distance_non_agu_define_in_bb): Likewise for params "insn",
6190 "start" and locals "prev", "next".
6191 (distance_non_agu_define): Likewise for param "insn".
6192 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
6193 locals "next", "prev".
6194 (distance_agu_use): Likewise for param "insn".
6195 (ix86_lea_outperforms): Likewise.
6196 (ix86_ok_to_clobber_flags): Likewise.
6197 (ix86_avoid_lea_for_add): Likewise.
6198 (ix86_use_lea_for_mov): Likewise.
6199 (ix86_avoid_lea_for_addr): Likewise.
6200 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
6201 (ix86_split_lea_for_addr): Likewise for param "insn".
6202 (ix86_lea_for_add_ok): Likewise for param "insn".
6203 (ix86_expand_carry_flag_compare): Likewise for local
6204 "compare_seq".
6205 (ix86_expand_int_movcc): Likewise.
6206 (ix86_output_call_insn): Likewise for param "insn".
6207 (ix86_output_call_insn): Likewise for local "i".
6208 (x86_output_mi_thunk): Introduce local "insn", using it in place
6209 of "tmp" when dealing with insns.
6210 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
6211 "start".
6212 (ix86_pad_returns): Likewise for locals "ret", "prev".
6213 (ix86_count_insn_bb): Likewise for local "insn".
6214 (ix86_pad_short_function): Likewise for locals "ret", "insn".
6215 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
6216 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
6217 (expand_vec_perm_interleave2): Likewise for local "seq".
6218 (expand_vec_perm_vperm2f128_vblend): Likewise.
6219 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
6220 call to for_each_rtx with for_each_rtx_in_insn.
6221
6222 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6223
6224 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
6225 "label" from rtx to rtx_code_label *.
6226 (ix86_expand_prologue): Likewise.
6227 (ix86_expand_split_stack_prologue): Likewise for locals "label",
6228 "varargs_label".
6229 (ix86_split_idivmod): Likewise for locals "end_label" and
6230 "qimode_label".
6231 (ix86_expand_branch): Likewise for local "label2".
6232 (ix86_expand_aligntest): Likewise for return type and local "label".
6233 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
6234 "top_label".
6235 (expand_movmem_epilogue): Likewise for the various locals named
6236 "label".
6237 (expand_setmem_epilogue): Likewise.
6238 (expand_small_movmem_or_setmem): Likewise for local "label".
6239 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
6240 Strengthen param "done_label" from rtx * to rtx_code_label **.
6241 Strengthen locals "loop_label" and "label" from rtx to
6242 rtx_code_label *.
6243 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
6244 Likewise for locals "loop_label", "label".
6245 (ix86_expand_set_or_movmem): Likewise for locals "label",
6246 "jump_around_label", "hot_label".
6247 (ix86_expand_strlensi_unroll_1): Likewise for locals
6248 "align_2_label", align_3_label", "align_4_label", "end_0_label",
6249 "end_2_label".
6250 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
6251 (void ix86_emit_i387_log1p): Likewise for locals "label1",
6252 "label2", "jump_label".
6253 (ix86_expand_sse_compare_and_jump): Likewise for return type and
6254 local "label".
6255 (ix86_expand_lfloorceil): Likewise for local "label".
6256 (ix86_expand_rint): Likewise.
6257 (ix86_expand_floorceildf_32): Likewise.
6258 (ix86_expand_floorceil): Likewise.
6259 (ix86_expand_rounddf_32): Likewise.
6260 (ix86_expand_trunc): Likewise.
6261 (ix86_expand_truncdf_32): Likewise.
6262 (ix86_expand_round): Likewise.
6263
6264 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6265
6266 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
6267 first param from rtx to rtx_insn *.
6268 (h8300_insn_length_from_table): Likewise.
6269 * config/h8300/h8300.c (F): Likewise for return type and param
6270 "x".
6271 (Fpa): Add a checked cast to rtx_insn *.
6272 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
6273 rtx_insn *.
6274 (final_prescan_insn): Likewise for param "insn".
6275 (h8300_binary_length): Likewise.
6276 (h8300_insn_length_from_table): Likewise.
6277
6278 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6279
6280 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
6281 Strengthen first param "insn" from rtx to rtx_insn *.
6282
6283 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
6284 Likewise.
6285 (frame_insn): Likewise for return type. Introduce local "insn"
6286 for use in place of local "x" for use as an rtx_insn *.
6287 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
6288 (epiphany_expand_prologue): Likewise for local "insn".
6289 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
6290 * config/epiphany/resolve-sw-modes.c
6291 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
6292 "seq".
6293
6294 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6295
6296 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
6297 param from rtx to rtx_insn *.
6298 (c6x_final_prescan_insn): Likewise for first param.
6299
6300 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
6301 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
6302 (c6x_expand_compare): Strengthen local "insns" from rtx to
6303 rtx_insn *.
6304 (c6x_get_unit_specifier): Likewise for param "insn".
6305 (c6x_print_unit_specifier_field): Likewise.
6306 (c6x_final_prescan_insn): Likewise.
6307 (emit_add_sp_const): Likewise for local "insn".
6308 (c6x_expand_prologue): Likewise.
6309
6310 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6311
6312 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
6313 param 1 from rtx to rtx_insn *.
6314 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
6315 the various locals named "insn".
6316 (expand_epilogue_reg_restore): Likewise.
6317 (frame_related_constant_load): Likewise.
6318 (add_to_reg): Likewise.
6319 (emit_link_insn): Likewise.
6320 (do_link): Likewise.
6321 (expand_interrupt_handler_prologue): Likewise.
6322 (branch_dest): Likewise for param "branch".
6323 (asm_conditional_branch): Likewise for param "insn".
6324 (gen_one_bundle): Likewise for elements of param "slot" and local
6325 "t".
6326 (bfin_gen_bundles): Likewise for locals "insn", "next" and
6327 elements of local "slot".
6328 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
6329 "queue", "next_queue", "prev".
6330 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
6331 (add_sched_insns_for_speculation): Likewise for local "insn".
6332
6333 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6334
6335 * config/avr/avr-protos.h (output_movqi): Strengthen first param
6336 from rtx to rtx_insn *.
6337 (output_movhi): Likewise.
6338 (output_movsisf): Likewise.
6339 (avr_out_tstsi): Likewise.
6340 (avr_out_tsthi): Likewise.
6341 (avr_out_tstpsi): Likewise.
6342 (avr_out_compare): Likewise.
6343 (avr_out_compare64): Likewise.
6344 (avr_out_movpsi): Likewise.
6345 (ashlqi3_out): Likewise.
6346 (ashlhi3_out): Likewise.
6347 (ashlsi3_out): Likewise.
6348 (ashrqi3_out): Likewise.
6349 (ashrhi3_out): Likewise.
6350 (ashrsi3_out): Likewise.
6351 (lshrqi3_out): Likewise.
6352 (lshrhi3_out): Likewise.
6353 (lshrsi3_out): Likewise.
6354 (avr_out_ashlpsi3): Likewise.
6355 (avr_out_ashrpsi3): Likewise.
6356 (avr_out_lshrpsi3): Likewise.
6357 (avr_out_fract): Likewise.
6358 (avr_out_sbxx_branch): Likewise.
6359 (avr_out_round): Likewise.
6360 (avr_out_xload): Likewise.
6361 (avr_out_movmem): Likewise.
6362 (adjust_insn_length): Likewise.
6363 (avr_out_lpm): Likewise.
6364 (reg_unused_after): Likewise.
6365 (_reg_unused_after): Likewise.
6366 (avr_jump_mode): Likewise for second param.
6367 (jump_over_one_insn): Likewise for first param.
6368 (avr_final_prescan_insn): Likewise.
6369 (out_shift_with_cnt): Likewise for second param.
6370
6371 * config/avr/avr.c (get_sequence_length): Likewise for param
6372 "insns" and local "insn".
6373 (emit_push_byte): Likewise for local "insn".
6374 (emit_push_sfr): Likewise.
6375 (avr_prologue_setup_frame): Likewise for locals "insn",
6376 "fp_plus_insns", "sp_plus_insns".
6377 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
6378 "sp_plus_insns".
6379 (avr_jump_mode): Likewise for param "insn".
6380 (avr_final_prescan_insn): Likewise.
6381 (avr_find_unused_d_reg): Likewise.
6382 (avr_out_lpm_no_lpmx): Likewise.
6383 (avr_out_lpm): Likewise.
6384 (avr_out_xload): Likewise.
6385 (output_movqi): Likewise.
6386 (output_movhi): Likewise.
6387 (out_movqi_r_mr): Likewise.
6388 (out_movhi_r_mr): Likewise.
6389 (out_movsi_r_mr): Likewise.
6390 (out_movsi_mr_r): Likewise.
6391 (output_movsisf): Likewise.
6392 (avr_out_load_psi): Likewise.
6393 (avr_out_store_psi): Likewise.
6394 (avr_out_movpsi): Likewise.
6395 (out_movqi_mr_r): Likewise.
6396 (avr_out_movhi_mr_r_xmega): Likewise.
6397 (out_movhi_mr_r): Likewise.
6398 (compare_condition): Likewise for param "insn" and local "next".
6399 (compare_sign_p): Likewise for param "insn".
6400 (compare_diff_p): Likewise.
6401 (compare_eq_p): Likewise.
6402 (avr_out_compare): Likewise.
6403 (avr_out_compare64): Likewise.
6404 (avr_out_tsthi): Likewise.
6405 (avr_out_tstpsi): Likewise.
6406 (avr_out_tstsi): Likewise.
6407 (out_shift_with_cnt): Likewise.
6408 (ashlqi3_out): Likewise.
6409 (ashlhi3_out): Likewise.
6410 (avr_out_ashlpsi3): Likewise.
6411 (ashlsi3_out): Likewise.
6412 (ashrqi3_out): Likewise.
6413 (ashrhi3_out): Likewise.
6414 (avr_out_ashrpsi3): Likewise.
6415 (ashrsi3_out): Likewise.
6416 (lshrqi3_out): Likewise.
6417 (lshrhi3_out): Likewise.
6418 (avr_out_lshrpsi3): Likewise.
6419 (lshrsi3_out): Likewise.
6420 (avr_out_fract): Likewise.
6421 (avr_out_round): Likewise.
6422 (avr_adjust_insn_length): Likewise.
6423 (reg_unused_after): Likewise.
6424 (_reg_unused_after): Likewise.
6425 (avr_compare_pattern): Likewise.
6426 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
6427 and locals "branch1", "branch2", "insn2", "jump".
6428 (avr_reorg): Likewise for local "insn".
6429 (avr_2word_insn_p): Likewise for param "insn".
6430 (jump_over_one_insn_p): Likewise.
6431 (avr_out_sbxx_branch): Likewise.
6432 (avr_out_movmem): Likewise.
6433
6434 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6435
6436 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
6437 param from rtx to rtx_insn *.
6438 (thumb1_final_prescan_insn): Likewise.
6439 (thumb2_final_prescan_insn): Likewise.
6440
6441 * config/arm/arm.c (emit_set_insn): Strengthen return type from
6442 rtx to rtx_insn *.
6443 (struct minipool_node): Likewise for field "insn".
6444 (dump_minipool): Likewise for param "scan".
6445 (create_fix_barrier): Likewise for local "from". Strengthen local
6446 "label" from rtx to rtx_code_label *.
6447 (push_minipool_barrier): Strengthen param "insn" from rtx to
6448 rtx_insn *.
6449 (push_minipool_fix): Likewise.
6450 (note_invalid_constants): Likewise.
6451 (thumb2_reorg): Likewise for local "insn".
6452 (arm_reorg): Likewise.
6453 (thumb2_final_prescan_insn): Likewise for param
6454 "insn" and local "first_insn".
6455 (arm_final_prescan_insn): Likewise for param "insn" and locals
6456 "start_insn", "this_insn".
6457 (arm_debugger_arg_offset): Likewise for param "insn".
6458 (thumb1_emit_multi_reg_push): Likewise for return type and local
6459 "insn".
6460 (thumb1_final_prescan_insn): Likewise for param "insn".
6461 (thumb_far_jump_used_p): Likewise for local "insn".
6462 (thumb1_expand_prologue): Likewise.
6463 (arm_expand_epilogue_apcs_frame): Likewise.
6464 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
6465 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
6466 from rtx to rtx_code_label *.
6467 (arm_split_atomic_op): Likewise for local "label".
6468 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
6469
6470 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6471
6472 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
6473 first param from rtx to rtx_insn *.
6474 (arc_verify_short): Likewise.
6475 (arc_short_long): Likewise.
6476 (arc_need_delay): Likewise.
6477
6478 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
6479 "target_insn".
6480 (arc_ccfsm_advance): Likewise for param "insn" and locals
6481 "start_insn", "this_insn".
6482 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
6483 (arc_ccfsm_post_advance): Likewise for param "insn".
6484 (arc_next_active_insn): Likewise for return type and param "insn".
6485 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
6486 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
6487 (output_short_suffix): Likewise for local "insn".
6488 (arc_final_prescan_insn): Likewise for param "insn". Remove
6489 now-redundant checked cast.
6490 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
6491 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
6492 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
6493 for use where lc_set became an insn.
6494 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
6495 rtx to rtx_insn *.
6496 (arc_get_insn_variants): Likewise for local "prev".
6497 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
6498 "next".
6499 (arc_predicate_delay_insns): Likewise for local "insn".
6500 (arc_pad_return): Likewise for local "prev". For now, add a
6501 checked cast when extracting the insn from "final_sequence".
6502 (arc_short_long): Likewise for param "insn".
6503 (arc_need_delay): Likewise for param "insn" and local "next".
6504 (arc_label_align): Likewise for locals "prev", "next".
6505
6506 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6507
6508 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
6509 "insn" from rtx to rtx_insn *.
6510 (alpha_gp_save_rtx): Likewise for local "seq".
6511 (alpha_instantiate_decls): Likewise for local "top".
6512 (get_some_local_dynamic_name): Likewise for local "insn".
6513 (alpha_does_function_need_gp): Likewise.
6514 (set_frame_related_p): Likewise for return type and for locals
6515 "seq" and "insn".
6516 (emit_frame_store_1): Likewise for local "insn".
6517 (alpha_expand_prologue): Likewise for locals "insn", "seq".
6518 (alpha_end_function): Likewise for local "insn".
6519 (alpha_output_mi_thunk_osf): Likewise.
6520 (alphaev4_insn_pipe): Likewise for param "insn".
6521 (alphaev5_insn_pipe): Likewise.
6522 (alphaev4_next_group): Likewise for return type and param 1
6523 "insn".
6524 (alphaev5_next_group): Likewise.
6525 (alpha_align_insns_1): Likewise for return type and param 1 of
6526 callback param "next_group", and for locals "i", "next", "prev",
6527 "where", "where2", "insn".
6528
6529 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
6530
6531 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
6532 rather than modifying the stmt.
6533
6534 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6535
6536 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
6537 cgraph_state conversion.
6538
6539 2014-08-25 David Malcolm <dmalcolm@redhat.com>
6540
6541 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
6542 Strengthen local "insns" from rtx to rtx_insn *.
6543 (aarch64_set_frame_expr): Likewise for local "insn".
6544 (aarch64_save_or_restore_fprs): Likewise.
6545 (aarch64_save_or_restore_callee_save_registers): Likewise.
6546 (aarch64_expand_prologue): Likewise.
6547 (aarch64_expand_epilogue): Likewise.
6548 (aarch64_output_mi_thunk): Likewise.
6549 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
6550 "label2" from rtx to rtx_code_label *.
6551 (aarch64_split_atomic_op): Likewise for local "label".
6552
6553 2014-08-25 Martin Liska <mliska@suse.cz>
6554
6555 * cgraph.h (symtab_node):
6556 (bool needed_p (void)): created from decide_is_symbol_needed
6557 (bool referred_to_p (void)): created from referred_to_p
6558 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
6559 * cgraph.h (cgraph_node):
6560 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
6561 (void expand (void)): created from expand_function
6562 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
6563 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
6564 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
6565 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
6566 * cgraph.h (varpool_node):
6567 (static void add (tree decl): created from varpool_add_new_variable
6568 * cgraph.h (cgraph_edge):
6569 void remove (void);
6570 (void remove_caller (void)): created from cgraph_edge_remove_caller
6571 (void remove_callee (void)): created from cgraph_edge_remove_callee
6572 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
6573 created from cgraph_set_call_stmt
6574 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
6575 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
6576 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
6577 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
6578 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
6579 created from cgraph_speculative_call_info
6580 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
6581 int freq_scale, bool update_original)): created from cgraph_clone_edge
6582 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
6583 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
6584 (bool recursive_p (void)): created from cgraph_edge_recursive_p
6585 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
6586 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
6587 (static void rebuild_references (void)): created from cgraph_rebuild_references
6588 * cgraph.h (symbol_table):
6589 (create_reference): renamed from add_reference
6590 (maybe_create_reference): renamed from maybe_add_reference
6591 (void register_symbol (symtab_node *node)): new function
6592 (void clear_asm_symbols (void)): new function
6593 (void unregister (symtab_node *node)): new function
6594 (void release_symbol (cgraph_node *node, int uid)): new function
6595 (cgraph_node * allocate_cgraph_symbol (void)): new function
6596 (void initialize (void)): created from cgraph_init
6597 (symtab_node *first_symbol (void)):new function
6598 (asm_node *first_asm_symbol (void)):new function
6599 (symtab_node *first_defined_symbol (void)):new function
6600 (varpool_node *first_variable (void)):new function
6601 (varpool_node *next_variable (varpool_node *node)):new function
6602 (varpool_node *first_static_initializer (void)):new function
6603 (varpool_node *next_static_initializer (varpool_node *node)):new function
6604 (varpool_node *first_defined_variable (void)):new function
6605 (varpool_node *next_defined_variable (varpool_node *node)):new function
6606 (cgraph_node *first_defined_function (void)):new function
6607 (cgraph_node *next_defined_function (cgraph_node *node)):new function
6608 (cgraph_node *first_function (void)):new function
6609 (cgraph_node *next_function (cgraph_node *node)):new function
6610 (cgraph_node *first_function_with_gimple_body (void)):new function
6611 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
6612 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
6613 created from symtab_remove_unreachable_nodes
6614 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
6615 (void process_new_functions (void)): created from cgraph_process_new_functions
6616 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
6617 (bool output_variables (void)): created from varpool_node::output_variables
6618 (void output_asm_statements (void)): created from output_asm_statements
6619 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
6620 (void compile (void)): created from compile
6621 (void output_weakrefs (void)): created from output_weakrefs
6622 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
6623 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
6624 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
6625 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
6626 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
6627 created from cgraph_next_function_with_gimple_body
6628 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
6629 created from cgraph_remove_edge_removal_hook
6630 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
6631 created from cgraph_add_node_removal_hook
6632 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
6633 created from cgraph_remove_node_removal_hook
6634 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
6635 created from varpool_add_node_removal_hook
6636 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
6637 created from varpool_remove_node_removal_hook
6638 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
6639 created from cgraph_add_function_insertion_hook
6640 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
6641 created from cgraph_remove_function_insertion_hook
6642 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
6643 created from varpool_add_variable_insertion_hook
6644 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
6645 created from varpool_remove_variable_insertion_hook
6646 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
6647 created from cgraph_add_edge_duplication_hook
6648 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
6649 created from cgraph_remove_edge_duplication_hook
6650 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
6651 created from cgraph_add_node_duplication_hook
6652 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
6653 created from cgraph_remove_node_duplication_hook
6654 (void call_edge_removal_hooks (cgraph_edge *e)):
6655 created from cgraph_call_edge_removal_hooks
6656 (void call_cgraph_insertion_hooks (cgraph_node *node)):
6657 created from call_function_insertion_hooks
6658 (void call_cgraph_removal_hooks (cgraph_node *node)):
6659 created from cgraph_call_node_removal_hooks
6660 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
6661 created from cgraph_node::call_duplication_hooks
6662 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
6663 created from cgraph_call_edge_duplication_hooks
6664 (void call_varpool_removal_hooks (varpool_node *node)):
6665 created from varpool_call_node_removal_hooks
6666 (void call_varpool_insertion_hooks (varpool_node *node)):
6667 created from varpool_call_variable_insertion_hooks
6668 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
6669 created from insert_to_assembler_name_hash
6670 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
6671 created from unlink_from_assembler_name_hash
6672 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
6673 created from symtab_prevail_in_asm_name_hash
6674 (void symtab_initialize_asm_name_hash (void)):
6675 created from symtab_initialize_asm_name_hash
6676 (void change_decl_assembler_name (tree decl, tree name)):
6677 created from change_decl_assembler_name
6678 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
6679 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
6680 created from decl_assembler_name_hash
6681 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
6682 created from decl_assembler_name_equal
6683 (static hashval_t hash_node_by_assembler_name (const void *p)):
6684 created from hash_node_by_assembler_name
6685 (static int eq_assembler_name (const void *p1, const void *p2)):
6686 created from eq_assembler_name
6687
6688 2014-08-25 Marek Polacek <polacek@redhat.com>
6689
6690 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
6691
6692 2014-08-25 Petr Murzin <petr.murzin@intel.com>
6693
6694 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
6695 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
6696 SWI1248_AVX512BW mode iterator.
6697
6698 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
6699
6700 PR target/62111
6701 * config/sh/predicates.md (general_extend_operand): Disable
6702 TRUNCATE before reload completes.
6703
6704 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
6705
6706 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
6707
6708 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
6709
6710 PR target/61996
6711 * config/sh/sh.opt (musermode): Allow negative form.
6712 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
6713 targets that don't support it.
6714 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
6715 Document -mno-usermode option.
6716
6717 2014-08-24 Kito Cheng <kito@0xlab.org>
6718
6719 * system.h (CALLER_SAVE_PROFITABLE): Poison.
6720 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
6721 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
6722 * doc/tm.texi: Regenerate.
6723
6724 2014-08-24 Kito Cheng <kito@0xlab.org>
6725
6726 * ira.c: Fix typo in comment.
6727
6728 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
6729
6730 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
6731 Deprecate c++1y. Change language to reflect greater confidence in C++14.
6732
6733 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
6734
6735 PR target/62038
6736 * config/pa/pa.c (pa_output_function_epilogue): Don't set
6737 last_address when the current function is a thunk.
6738 (pa_asm_output_mi_thunk): When we don't have named sections or they
6739 are not being used, check that thunk can reach the stub table with a
6740 short branch.
6741
6742 2014-08-23 David Malcolm <dmalcolm@redhat.com>
6743
6744 * web.c (union_match_dups): Strengthen param "insn" from rtx to
6745 rtx_insn *.
6746 (pass_web::execute): Likewise for local "insn".
6747
6748 2014-08-23 David Malcolm <dmalcolm@redhat.com>
6749
6750 * var-tracking.c (struct micro_operation_def): Strengthen field
6751 "insn" from rtx to rtx_insn *.
6752 (struct emit_note_data_def): Likewise.
6753 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
6754 (vt_stack_adjustments): Likewise for local "insn".
6755 (adjust_insn): Likewise for param "insn".
6756 (val_store): Likewise.
6757 (val_resolve): Likewise.
6758 (struct count_use_info): Likewise for field "insn".
6759 (log_op_type): Likewise for param "insn".
6760 (reverse_op): Likewise.
6761 (prepare_call_arguments): Likewise.
6762 (add_with_sets): The initial param takes an insn, but we can't
6763 yet strengthen it from rtx to rtx_insn * since it's used as a
6764 cselib_record_sets_hook callback. For now rename initial param
6765 from "insn" to "uncast_insn", and introduce a local "insn" of
6766 the stronger rtx_insn * type, with a checked cast.
6767 (compute_bb_dataflow): Strengthen local "insn" from rtx to
6768 rtx_insn *.
6769 (emit_note_insn_var_location): Likewise.
6770 (emit_notes_for_changes): Likewise.
6771 (emit_notes_for_differences): Likewise.
6772 (next_non_note_insn_var_location): Likewise for return type and
6773 for param "insn".
6774 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
6775 (vt_initialize): Likewise for local "insn".
6776 (delete_debug_insns): Likewise for locals "insn" and "next".
6777
6778 2014-08-23 David Malcolm <dmalcolm@redhat.com>
6779
6780 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
6781 rtx_insn *.
6782 (mark_constant_pool): Likewise for local "insn".
6783
6784 2014-08-23 David Malcolm <dmalcolm@redhat.com>
6785
6786 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
6787 rtx to rtx_insn *.
6788 (dead_debug_promote_uses): Likewise.
6789 (dead_debug_insert_temp): Likewise.
6790
6791 2014-08-23 David Malcolm <dmalcolm@redhat.com>
6792
6793 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
6794 from const_rtx to const rtx_insn *.
6795 (store_killed_after): Likewise. Strengthen locals "last", "act"
6796 from rtx to rtx_insn *.
6797 (store_killed_before): Strengthen param "insn" from const_rtx to
6798 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
6799 (find_moveable_store): Strengthen param "insn" from rtx to
6800 rtx_insn *.
6801 (compute_store_table): Likewise for local "insn".
6802 (insert_insn_start_basic_block): Likewise for param "insn" and
6803 locals "prev", "before", "insn".
6804 (insert_store): For now, add a checked cast to rtx_insn * on the
6805 result of gen_move_insn.
6806 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
6807 to rtx_insn *.
6808 (replace_store_insn): Likewise. For now, add a checked cast to
6809 rtx_insn * on the result of gen_move_insn.
6810
6811 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6812
6813 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
6814 rtx_insn *.
6815 (expand_sjlj_dispatch_table): Likewise.
6816
6817 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6818
6819 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
6820 "insn" from rtx to rtx_insn *.
6821
6822 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6823
6824 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
6825 "insn" from rtx to rtx_insn *.
6826 (dup_block_and_redirect): Likewise for param 3 "before".
6827
6828 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
6829 from rtx to rtx_insn *.
6830 (move_insn_for_shrink_wrap): Likewise.
6831 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
6832 (dup_block_and_redirect): Likewise for param "before" and local
6833 "insn".
6834 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
6835 "end".
6836 (convert_to_simple_return): Likewise for local "start".
6837
6838 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
6839 Strengthen local "insn" from rtx to rtx_insn *, for use when
6840 invoking requires_stack_frame_p.
6841
6842 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6843
6844 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
6845 rtx_insn *.
6846 (speculate_expr): Likewise for locals "orig_insn_rtx",
6847 "spec_insn_rtx".
6848 (eq_transformed_insns): Likewise for locals "i1", "i2".
6849 (check_for_new_jump): Likewise for return type and local "end".
6850 (find_new_jump): Likewise for return type and local "jump".
6851 (sel_split_edge): Likewise for local "jump".
6852 (sel_create_recovery_block): Likewise.
6853 (sel_redirect_edge_and_branch_force): Likewise.
6854 (sel_redirect_edge_and_branch): Likewise.
6855
6856 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6857
6858 * sel-sched.c (substitute_reg_in_expr): Strengthen local
6859 "new_insn" from rtx to rtx_insn *.
6860 (create_insn_rtx_with_rhs): Likewise for return type and for local
6861 "insn_rtx".
6862 (create_insn_rtx_with_lhs): Likewise.
6863 (create_speculation_check): Likewise for local "insn_rtx".
6864 (implicit_clobber_conflict_p): Likewise for local "insn".
6865 (get_expr_cost): Likewise.
6866 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
6867 (move_cond_jump): Likewise for locals "next", "prev", "link",
6868 "head", "from", "to".
6869
6870 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6871
6872 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
6873 "next" from rtx to rtx_insn *.
6874 (find_conditional_protection): Likewise for local "next".
6875 (is_conditionally_protected): Likewise for local "insn1".
6876 (is_pfree): Likewise for locals "insn1", "insn2".
6877
6878 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6879
6880 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
6881 from rtx to rtx_insn *.
6882
6883 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
6884 locals "insn1", "insn2" from rtx to rtx_insn *.
6885 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
6886 locals "insn", "prev", "last_jump", "next_tail".
6887 (schedule_ebb): Likewise for params "head", "tail".
6888 (schedule_ebbs): Likewise for locals "tail", "head".
6889
6890 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
6891 to rtx_insn on "last_insn" in one of the invocations of
6892 schedule_ebb.
6893
6894 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6895
6896 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
6897 "elem", "insn" from rtx to rtx_insn *.
6898 (change_spec_dep_to_hard): Likewise.
6899 (get_back_and_forw_lists): Likewise for local "con".
6900 (sd_add_dep): Likewise for locals "elem", "insn".
6901 (sd_resolve_dep): Likewise for locals "pro", "con".
6902 (sd_unresolve_dep): Likewise.
6903 (sd_delete_dep): Likewise.
6904 (chain_to_prev_insn): Likewise for local "pro".
6905 (find_inc): Likewise for locals "pro", "con".
6906
6907 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6908
6909 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
6910 to rtx_insn *.
6911 (reg_set_between_p): Strengthen local "insn" from const_rtx to
6912 const rtx_insn *.
6913 (modified_between_p): Strengthen local "insn" from rtx to
6914 rtx_insn *.
6915 (remove_reg_equal_equiv_notes_for_regno): Likewise.
6916 (keep_with_call_p): Strengthen local "i2" from const_rtx to
6917 const rtx_insn *.
6918
6919 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6920
6921 * resource.c (next_insn_no_annul): Strengthen local "next" from
6922 rtx to rtx_insn *.
6923 (mark_referenced_resources): Likewise for local "insn".
6924
6925 2014-08-22 David Malcolm <dmalcolm@redhat.com>
6926
6927 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
6928 to rtx_insn *.
6929 (find_reloads): Likewise for param 1.
6930 (subst_reloads): Likewise for sole param.
6931 (find_equiv_reg): Likwise for param 2.
6932 (regno_clobbered_p): Likwise for param 2.
6933 (reload): Likewise for param 1.
6934
6935 * caller-save.c (save_call_clobbered_regs): Strengthen local
6936 "insn" from rtx to rtx_insn *.
6937 (insert_one_insn): Likewise for local "insn".
6938
6939 * reload.c (this_insn): Likewise for this global.
6940 (find_reloads): Likewise for param "insn".
6941 (find_reloads_toplev): Likewise.
6942 (find_reloads_address): Likewise.
6943 (subst_reg_equivs): Likewise.
6944 (update_auto_inc_notes): Likewise.
6945 (find_reloads_address_1): Likewise.
6946 (find_reloads_subreg_address): Likewise.
6947 (subst_reloads): Likewise.
6948 (find_equiv_reg): Likewise, also for local "p".
6949 (regno_clobbered_p): Likewise for param "insn".
6950
6951 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
6952 array.
6953 (spill_reg_store): Likewise for the elements of this array.
6954 (remove_init_insns): Likewise for local "equiv_insn".
6955 (will_delete_init_insn_p): Likewise for param "insn".
6956 (reload): Likewise for param ""first" and local "insn".
6957 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
6958 rtx_insn *.
6959 (calculate_elim_costs_all_insns): Likewise.
6960 (delete_caller_save_insns): Likewise.
6961 (spill_failure): Likewise for param "insn".
6962 (delete_dead_insn): Likewise.
6963 (set_label_offsets): Likewise.
6964 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
6965 "prev_insn".
6966 (elimination_costs_in_insn): Likewise for param "insn".
6967 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
6968 when referring to an insn.
6969 (set_initial_label_offsets): Likewise.
6970 (set_offsets_for_label): Strengthen param "insn" from rtx to
6971 rtx_insn *.
6972 (init_eliminable_invariants): Likewise for param "first" and local
6973 "insn".
6974 (fixup_eh_region_note): Likewise for param "insn".
6975 (reload_as_needed): Likewise for locals "prev", "insn",
6976 "old_next", "old_prev", "next".
6977 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
6978 "last".
6979 (reload_inheritance_insn): Strengthen elements of this array from
6980 rtx to rtx_insn *.
6981 (failed_reload): Likewise for param "insn".
6982 (choose_reload_regs): Likewise for local "insn". Replace use of
6983 NULL_RTX with NULL when referring to an insn.
6984 (input_reload_insns): Strengthen elements of this array from rtx
6985 to rtx_insn *.
6986 (other_input_address_reload_insns): Likewise for this global.
6987 (other_input_reload_insns): Likewise for this global.
6988 (input_address_reload_insns): Likwise for the elements of this
6989 array.
6990 (inpaddr_address_reload_insns): Likwise for the elements of this
6991 array.
6992 (output_reload_insns): Likewise for the elements of this array.
6993 (output_address_reload_insns): Likewise for the elements of this
6994 array.
6995 (outaddr_address_reload_insns): Likewise for the elements of this
6996 array.
6997 (operand_reload_insns): Likewise for this global.
6998 (other_operand_reload_insns): Likewise for this global.
6999 (other_output_reload_insns): Likewise for the elements of this
7000 array.
7001 (new_spill_reg_store): Likewise for the elements of this
7002 array.
7003 (emit_input_reload_insns): Likewise for locals "insn", "temp".
7004 Strengthen local "where" from rtx * to rtx_insn **.
7005 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
7006 from rtx to rtx_insn *.
7007 (do_input_reload): Likewise for local "insn".
7008 (do_output_reload): Likewise for local "insn".
7009 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
7010 (emit_insn_if_valid_for_reload): Likewise for return type and local
7011 "last". Add checked cast to rtx_insn when returning "insn" since
7012 this has been through emit_insn.
7013 (gen_reload): Strengthen return type and locals "last", "insn", "set"
7014 from rtx to rtx_insn *. Add checked cast to rtx_insn when
7015 returning "insn" since it's been through
7016 emit_insn_if_valid_for_reload at this point.
7017 (delete_output_reload): Strengthen param "insn" and locals
7018 "output_reload_insn", "i2" from rtx to rtx_insn *.
7019 (delete_address_reloads): Likewise for params "dead_insn",
7020 "current_insn" and locals "prev", "next".
7021 (delete_address_reloads_1): Likewise for params "dead_insn",
7022 "current_insn" and locals "prev", "i2".
7023 (inc_for_reload): Likewise for locals "last", "add_insn".
7024 (add_auto_inc_notes): Strengthen param "insn" from rtx to
7025 rtx_insn *.
7026
7027 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
7028 param of this duplicate of the prototype from reload.h
7029
7030 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7031
7032 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
7033 rtx to rtx_insn *.
7034 (regstat_bb_compute_calls_crossed): Likewise.
7035
7036 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7037
7038 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
7039 to rtx_insn *.
7040 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
7041 with an insn.
7042 (regrename_analyze): Strengthen local "insn" from rtx to
7043 rtx_insn *.
7044 (scan_rtx_reg): Likewise for param "insn".
7045 (scan_rtx_address): Likewise.
7046 (scan_rtx): Likewise.
7047 (restore_operands): Likewise.
7048 (record_out_operands): Likewise.
7049 (build_def_use): Likewise for local "insn". Replace use of
7050 NULL_RTX with NULL when dealing with an insn.
7051
7052 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7053
7054 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
7055 * reginfo.c (reg_scan): Likewise, also for local "insn".
7056 (reg_scan_mark_refs): Likewise for param "insn".
7057 (init_subregs_of_mode): Likewise for local "insn".
7058
7059 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7060
7061 * regcprop.c (struct queued_debug_insn_change): Strengthen field
7062 "insn" from rtx to rtx_insn *.
7063 (replace_oldest_value_reg): Likewise for param "insn".
7064 (replace_oldest_value_addr): Likewise.
7065 (replace_oldest_value_mem): Likewise.
7066 (apply_debug_insn_changes): Likewise for local "last_insn".
7067 (copyprop_hardreg_forward_1): Likewise for local "insn".
7068
7069 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7070
7071 * reg-stack.c (next_flags_user): Strengthen return type and param
7072 "insn" from rtx to rtx_insn *.
7073 (straighten_stack): Likewise for param "insn".
7074 (check_asm_stack_operands): Likewise.
7075 (remove_regno_note): Likewise.
7076 (emit_pop_insn): Likewise for return type, param "insn", local
7077 "pop_insn".
7078 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
7079 "limit" from rtx to rtx_insn *.
7080 (swap_to_top): Likewise for param "insn".
7081 (move_for_stack_reg): Likewise.
7082 (move_nan_for_stack_reg): Likewise.
7083 (swap_rtx_condition): Likewise.
7084 (compare_for_stack_reg): Likewise.
7085 (subst_all_stack_regs_in_debug_insn): Likewise.
7086 (subst_stack_regs_pat): Likewise, and local "insn2".
7087 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
7088 rtx_insn *.
7089 (subst_stack_regs): Likewise.
7090 (change_stack): Likewise.
7091 (convert_regs_1): Likewise for locals "insn", "next".
7092
7093 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7094
7095 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
7096 rtx_insn *.
7097 (combine_set_extension): Likewise for param "curr_insn".
7098 (transform_ifelse): Likewise for param "def_insn".
7099 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
7100 from vec<rtx> * to vec<rtx_insn *> *.
7101 (is_cond_copy_insn): Likewise for param "insn".
7102 (struct ext_state): Strengthen the four vec fields from vec<rtx>
7103 to vec<rtx_insn *>.
7104 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
7105 local "def_insn" from rtx to rtx_insn *.
7106 (get_sub_rtx): Likewise for param "def_insn".
7107 (merge_def_and_ext): Likewise.
7108 (combine_reaching_defs): Likewise.
7109 (add_removable_extension): Likewise for param "insn".
7110 (find_removable_extensions): Likewise for local "insn".
7111 (find_and_remove_re): Likewise for locals "curr_insn" and
7112 "def_insn". Strengthen locals "reinsn_del_list" and
7113 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
7114
7115 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7116
7117 * recog.c (split_insn): Strengthen param "insn" and locals
7118 "first", "last" from rtx to rtx_insn *.
7119 (split_all_insns): Likewise for locals "insn", "next".
7120 (split_all_insns_noflow): Likewise.
7121
7122 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7123
7124 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
7125 const rtx_insn *.
7126 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
7127 (debug_rtx_find): Likewise for param 1 "x".
7128
7129 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
7130 const_rtx to const rtx_insn *. Likewise for local "insn".
7131 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
7132 (debug_rtx_find): Likewise for param 1 "x".
7133 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
7134 from const_rtx to const rtx_insn * within the appropriate cases of
7135 the switch statement.
7136
7137 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
7138 Strengthen local "insns" from rtx to rtx_insn * since this is
7139 passed to a call to debug_rtx_list.
7140
7141 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7142
7143 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
7144 to rtx_insn *.
7145
7146 * function.c (stack_protect_epilogue): Add checked cast to
7147 rtx_insn for now when invoking predict_insn_def.
7148
7149 * predict.c (predict_insn): Strengthen param "insn" from rtx to
7150 rtx_insn *.
7151 (predict_insn_def): Likewise.
7152 (rtl_predict_edge): Likewise for local "last_insn".
7153 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
7154 const rtx_insn *.
7155 (combine_predictions_for_insn): Strengthen param "insn" from rtx
7156 to rtx_insn *.
7157 (bb_estimate_probability_locally): Likewise for local "last_insn".
7158 (expensive_function_p): Likewise for local "insn".
7159
7160 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
7161 local "jmp", since this is used when invoking predict_insn_def.
7162
7163 2014-08-22 Marek Polacek <polacek@redhat.com>
7164
7165 PR c++/62199
7166 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
7167
7168 2014-08-22 Marek Polacek <polacek@redhat.com>
7169
7170 PR c/61271
7171 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
7172 a comparison in parens.
7173 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
7174 in parens.
7175
7176 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7177
7178 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
7179 rtx_insn *.
7180
7181 * cprop.c (fis_get_condition): Likewise.
7182
7183 * postreload.c (reload_cse_regs): Likewise for param "first".
7184 (reload_cse_simplify): Likewise for param "insn".
7185 (reload_cse_regs_1): Likewise for local "insn".
7186 (reload_cse_simplify_set): Likewise for param "insn".
7187 (reload_cse_simplify_operands): Likewise.
7188 (struct reg_use): Likewise for field "insn".
7189 (reload_combine_purge_insn_uses): Likewise for param "insn".
7190 (fixup_debug_insns): Likewise for params "from", "to" and local
7191 "insn".
7192 (try_replace_in_use): Likewise for local "use_insn".
7193 (reload_combine_recognize_const_pattern): Likewise for param
7194 "insn" and locals "add_moved_after_insn", "use_insn".
7195 (reload_combine_recognize_pattern): Likewise for param "insn" and
7196 local "prev".
7197 (reload_combine): Likewise for locals "insn", "prev".
7198 (reload_combine_note_use): Likewise for param "insn".
7199 (move2add_use_add2_insn): Likewise.
7200 (move2add_use_add3_insn): Likewise.
7201 (reload_cse_move2add): Likewise, also for local "next".
7202 (move2add_note_store): Likewise for local "insn".
7203
7204 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7205
7206 * postreload-gcse.c (struct occr): Strengthen field "insn" from
7207 rtx to rtx_insn *.
7208 (struct unoccr): Likewise.
7209 (struct modifies_mem): Likewise.
7210 (alloc_mem): Likewise for local "insn".
7211 (insert_expr_in_table): Likewise for param "insn".
7212 (dump_expr_hash_table_entry): Likewise for local "insn".
7213 (oprs_unchanged_p): Likewise for param "insn".
7214 (load_killed_in_block_p): Likewise for local "setter".
7215 (record_last_reg_set_info): Likewise for param "insn".
7216 (record_last_reg_set_info_regno): Likewise.
7217 (record_last_mem_set_info): Likewise.
7218 (record_last_set_info): Likewise for local "last_set_insn".
7219 (record_opr_changes): Likewise for param "insn".
7220 (hash_scan_set): Likewise.
7221 (compute_hash_table): Likewise for local "insn".
7222 (get_avail_load_store_reg): Likewise for param "insn".
7223 (eliminate_partially_redundant_load): Likewise, also for locals
7224 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
7225 RTX for insns.
7226 (eliminate_partially_redundant_loads): Likewise for local "insn".
7227
7228 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7229
7230 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
7231 rtx to rtx_insn *.
7232 (expand_binop): Likewise for locals "entry_last", "last", "insns"
7233 (expand_twoval_unop): Likewise for locals entry_last", "last".
7234 (expand_twoval_binop): Likewise.
7235 (expand_twoval_binop_libfunc): Likewise for local "insns".
7236 (widen_leading): Likewise for local "last".
7237 (expand_doubleword_clz): Likewise for local "seq". Strengthen
7238 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
7239 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
7240 (expand_parity): Likewise for locals "last" and "seq".
7241 (expand_ffs): Likewise for local "seq". Strengthen local
7242 "nonzero_label" from rtx to rtx_code_label *.
7243 (expand_absneg_bit): Strengthen local "insns" from rtx to
7244 rtx_insn *.
7245 (expand_unop_direct): Likewise for local "last".
7246 (expand_unop): Likewise for locals "last", "insns".
7247 (expand_abs_nojump): Likewise for local "last".
7248 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
7249 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
7250 rtx_insn *.
7251 (expand_copysign_absneg): Strengthen local "label" from rtx to
7252 rtx_code_label *.
7253 (expand_copysign_bit): Strengthen local "insns" from rtx to
7254 rtx_insn *.
7255 (struct no_conflict_data): Likewise for fields "first", "insn".
7256 (emit_libcall_block_1): Likewise for param "insns" and locals
7257 "next", "last", "insn".
7258 (emit_libcall_block): For now, add a checked cast to rtx_insn *
7259 on "insns" when invoking emit_libcall_block_1. Ultimately we
7260 want to strengthen insns itself.
7261 (prepare_cmp_insn): Strengthen local "last" from rtx to
7262 rtx_insn *.
7263 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
7264 (prepare_float_lib_cmp): Likewise for local "insns".
7265 (emit_conditional_move): Likewise for local "last".
7266 (emit_conditional_add): Likewise.
7267 (have_sub2_insn): Likewise for local "seq".
7268 (expand_float): Likewise for local "insns". Strengthen locals
7269 "label", "neglabel" from rtx to rtx_code_label *.
7270 (expand_fix): Likewise for locals "last", "insn", "insns" (to
7271 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
7272 (expand_fixed_convert): Likewise for local "insns" (to
7273 rtx_insn *).
7274 (expand_sfix_optab): Likewise for local "last".
7275 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
7276 to rtx_code_label *.
7277 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
7278 from rtx to rtx_insn *.
7279 (expand_atomic_fetch_op): Likewise for local "insn".
7280 (maybe_legitimize_operand_same_code): Likewise for local "last".
7281 (maybe_legitimize_operands): Likewise.
7282
7283 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7284
7285 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
7286 "insn" from rtx to rtx_insn *.
7287 (ps_rtl_insn): Likewise for return type.
7288 (doloop_register_get): Likewise for params "head", "tail" and
7289 locals "insn", "first_insn_not_to_check".
7290 (schedule_reg_move): Likewise for local "this_insn".
7291 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
7292 of gen_move_insn for now.
7293 (reset_sched_times): Strengthen local "insn" from rtx to
7294 rtx_insn *.
7295 (permute_partial_schedule): Likewise.
7296 (duplicate_insns_of_cycles): Likewise for local "u_insn".
7297 (dump_insn_location): Likewise for param "insn".
7298 (loop_canon_p): Likewise for local "insn".
7299 (sms_schedule): Likewise.
7300 (print_partial_schedule): Likewise.
7301 (ps_has_conflicts): Likewise.
7302
7303 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7304
7305 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
7306 "tailp" from rtx * to rtx_insn **.
7307
7308 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
7309 from rtx to rtx_insn *.
7310 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
7311 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
7312 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
7313 rtx to rtx_insn *.
7314 * modulo-sched.c (const_iteration_count): Strengthen return type
7315 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
7316 use of NULL_RTX with NULL when working with insns.
7317 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
7318 to rtx_insn *.
7319 (sms_schedule): Likewise.
7320 * sched-rgn.c (init_ready_list): Likewise, also for locals
7321 "src_head" and "src_next_tail".
7322 (compute_block_dependences): Likewise.
7323 (free_block_dependencies): Likewise.
7324 (debug_rgn_dependencies): Likewise.
7325 (free_rgn_deps): Likewise.
7326 (compute_priorities): Likewise.
7327 (schedule_region): Likewise.
7328 * sel-sched.c (find_ebb_boundaries): Likewise.
7329
7330 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
7331 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
7332
7333 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7334
7335 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
7336 from rtx to rtx_insn *.
7337 (new_seginfo): Likewise for param "insn".
7338 (create_pre_exit): Likewise for locals "last_insn",
7339 "before_return_copy", "return_copy".
7340 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
7341 "mode_set".
7342
7343 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7344
7345 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
7346 from rtx to rtx_insn *.
7347 (lra_push_insn): Likewise for 1st param.
7348 (lra_push_insn_and_update_insn_regno_info): Likewise.
7349 (lra_pop_insn): Likewise for return type.
7350 (lra_invalidate_insn_data): Likewise for 1st param.
7351 (lra_set_insn_deleted): Likewise.
7352 (lra_delete_dead_insn): Likewise.
7353 (lra_process_new_insns): Likewise for first 3 params.
7354 (lra_set_insn_recog_data): Likewise for 1st param.
7355 (lra_update_insn_recog_data): Likewise.
7356 (lra_set_used_insn_alternative): Likewise.
7357 (lra_invalidate_insn_regno_info): Likewise.
7358 (lra_update_insn_regno_info): Likewise.
7359 (lra_former_scratch_operand_p): Likewise.
7360 (lra_eliminate_regs_1): Likewise.
7361 (lra_get_insn_recog_data): Likewise.
7362
7363 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
7364 rtx to rtx_insn *.
7365
7366 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
7367 "mv1" and "mv2".
7368 (substitute_within_insn): New.
7369 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
7370 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
7371 Replace call to "substitute" with call to substitute_within_insn.
7372
7373 * lra-constraints.c (curr_insn): Strengthen from rtx to
7374 rtx_insn *.
7375 (get_equiv_with_elimination): Likewise for param "insn".
7376 (match_reload): Strengthen params "before" and "after" from rtx *
7377 to rtx_insn **.
7378 (emit_spill_move): Likewise for return type. Add a checked cast
7379 to rtx_insn * on result of gen_move_insn for now.
7380 (check_and_process_move): Likewise for local "before". Replace
7381 NULL_RTX with NULL when referring to insns.
7382 (process_addr_reg): Strengthen params "before" and "after" from
7383 rtx * to rtx_insn **.
7384 (insert_move_for_subreg): Likewise.
7385 (simplify_operand_subreg): Strengthen locals "before" and "after"
7386 from rtx to rtx_insn *.
7387 (process_address_1): Strengthen params "before" and "after" from
7388 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
7389 rtx to rtx_insn *.
7390 (process_address): Strengthen params "before" and "after" from
7391 rtx * to rtx_insn **.
7392 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
7393 (curr_insn_transform): Strengthen locals "before" and "after"
7394 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
7395 to insns.
7396 (loc_equivalence_callback): Update cast of "data", changing
7397 resulting type from rtx to rtx_insn *.
7398 (substitute_pseudo_within_insn): New.
7399 (inherit_reload_reg): Strengthen param "insn" from rtx to
7400 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
7401 NULL when referring to insns. Add a checked cast to rtx_insn *
7402 when using usage_insn to invoke lra_update_insn_regno_info.
7403 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
7404 likewise for locals "restore", "save". Add checked casts to
7405 rtx_insn * when using usage_insn to invoke
7406 lra_update_insn_regno_info and lra_process_new_insns. Replace
7407 NULL_RTX with NULL when referring to insns.
7408 (split_if_necessary): Strengthen param "insn" from rtx to
7409 rtx_insn *.
7410 (update_ebb_live_info): Likewise for params "head", "tail" and local
7411 "prev_insn".
7412 (get_last_insertion_point): Likewise for return type and local "insn".
7413 (get_live_on_other_edges): Likewise for local "last".
7414 (inherit_in_ebb): Likewise for params "head", "tail" and locals
7415 "prev_insn", "next_insn", "restore".
7416 (remove_inheritance_pseudos): Likewise for local "prev_insn".
7417 (undo_optional_reloads): Likewise for local "insn".
7418
7419 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
7420 "insn".
7421 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
7422 insns.
7423 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
7424 rtx_insn *.
7425 (spill_pseudos): Likewise for local "insn".
7426 (init_elimination): Likewise.
7427 (process_insn_for_elimination): Likewise for param "insn".
7428
7429 * lra-lives.c (curr_insn): Likewise.;
7430
7431 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
7432 (remove_pseudos): Likewise for param "insn".
7433 (spill_pseudos): Likewise for local "insn".
7434 (lra_final_code_change): Likewise for locals "insn", "curr".
7435
7436 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
7437 (lra_set_insn_deleted): Likewise.
7438 (lra_delete_dead_insn): Likewise, and for local "prev".
7439 (new_insn_reg): Likewise for param "insn".
7440 (lra_set_insn_recog_data): Likewise.
7441 (lra_update_insn_recog_data): Likewise.
7442 (lra_set_used_insn_alternative): Likewise.
7443 (get_insn_freq): Likewise.
7444 (invalidate_insn_data_regno_info): Likewise.
7445 (lra_invalidate_insn_regno_info): Likewise.
7446 (lra_update_insn_regno_info): Likewise.
7447 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
7448 vec<rtx_insn *>.
7449 (lra_push_insn_1): Strengthen param "insn" from rtx to
7450 rtx_insn *.
7451 (lra_push_insn): Likewise.
7452 (lra_push_insn_and_update_insn_regno_info): Likewise.
7453 (lra_pop_insn): Likewise for return type and local "insn".
7454 (push_insns): Likewise for params "from", "to", and local "insn".
7455 (setup_sp_offset): Likewise for params "from", "last" and locals
7456 "before", "insn".
7457 (lra_process_new_insns): Likewise for params "insn", "before",
7458 "after" and local "last".
7459 (struct sloc): Likewise for field "insn".
7460 (lra_former_scratch_operand_p): Likewise for param "insn".
7461 (remove_scratches): Likewise for locals "insn", "last".
7462 (check_rtl): Likewise for local "insn".
7463 (add_auto_inc_notes): Likewise for param "insn".
7464 (update_inc_notes): Likewise for local "insn".
7465 (lra): Replace NULL_RTX with NULL when referring to insn.
7466
7467 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7468
7469 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
7470 to rtx_insn *.
7471 (resolve_reg_notes): Likewise.
7472 (resolve_simple_move): Likewise for return type, param "insn", and
7473 locals "insns", "minsn".
7474 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
7475 (resolve_use): Likewise.
7476 (resolve_debug): Likewise.
7477 (find_decomposable_shift_zext): Likewise.
7478 (resolve_shift_zext): Likewise for return type, param "insn", and
7479 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
7480 (decompose_multiword_subregs): Likewise for local "insn",
7481 "orig_insn", "decomposed_shift", "end".
7482
7483 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7484
7485 * basic-block.h (basic_block split_edge_and_insert): Strengthen
7486 param "insns" from rtx to rtx_insn *.
7487
7488 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
7489 rtx to rtx_insn *.
7490 (struct iv_to_split): Likewise.
7491 (loop_exit_at_end_p): Likewise for local "insn".
7492 (split_edge_and_insert): Likewise for param "insns".
7493 (compare_and_jump_seq): Likewise for return type, param "cinsn",
7494 and locals "seq", "jump".
7495 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
7496 "branch_code"; update invocations of compare_and_jump_seq to
7497 eliminate NULL_RTX in favor of NULL.
7498 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
7499 rtx to rtx_insn *.
7500 (reset_debug_uses_in_loop): Likewise.
7501 (analyze_insn_to_expand_var): Likewise for param "insn".
7502 (analyze_iv_to_split_insn): Likewise.
7503 (analyze_insns_in_loop): Likewise for local "insn".
7504 (insert_base_initialization): Likewise for param
7505 "insn" and local "seq".
7506 (split_iv): Likewise for param "insn" and local "seq".
7507 (expand_var_during_unrolling): Likewise for param "insn".
7508 (insert_var_expansion_initialization): Likewise for local "seq".
7509 (combine_var_copies_in_loop_exit): Likewise.
7510 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
7511 "insn".
7512 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
7513 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
7514 "next".
7515
7516 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7517
7518 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
7519 rtx_insn *.
7520 (iv_analyze_result): Likewise.
7521 (iv_analyze_expr): Likewise.
7522 (biv_p): Likewise.
7523
7524 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
7525 local "def_insn" from rtx to rtx_insn *.
7526 (get_biv_step_1): Likewise for local "insn".
7527 (iv_analyze_expr): Likewise for param "insn".
7528 (iv_analyze_def): Likewise for local "insn".
7529 (iv_analyze_op): Likewise for param "insn".
7530 (iv_analyze): Likewise.
7531 (iv_analyze_result): Likewise.
7532 (biv_p): Likewise.
7533 (suitable_set_for_replacement): Likewise.
7534 (simplify_using_initial_values): Likewise for local "insn".
7535 (iv_number_of_iterations): Likewise for param "insn".
7536 (check_simple_exit): Add checked cast to rtx_insn when invoking
7537 iv_number_of_iterations for now (until get_condition is
7538 strengthened).
7539
7540 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
7541 "insn" from rtx to rtx_insn *.
7542 (analyze_insns_in_loop): Likewise for local "insn".
7543
7544 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7545
7546 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
7547 to rtx_insn *.
7548 (struct invariant): Likewise.
7549 (hash_invariant_expr_1): Likewise for param "insn".
7550 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
7551 (find_exits): Likewise for local "insn".
7552 (create_new_invariant): Likewise for param "insn".
7553 (check_dependencies): Likewise.
7554 (find_invariant_insn): Likewise.
7555 (record_uses): Likewise.
7556 (find_invariants_insn): Likewise.
7557 (find_invariants_bb): Likewise for local "insn".
7558 (get_pressure_class_and_nregs): Likewise for param "insn".
7559 (calculate_loop_reg_pressure): Likewise for local "insn".
7560
7561 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7562
7563 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
7564 to rtx_insn *.
7565 (add_test): Likewise for locals "seq", "jump".
7566 (doloop_modify): Likewise for locals "sequence", "jump_insn".
7567
7568 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7569
7570 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
7571 rtx_insn *.
7572 (rebuild_jump_labels_chain): Likewise for param "chain".
7573
7574 * cfgexpand.c (pass_expand::execute): Add checked cast to
7575 rtx_insn * when calling rebuild_jump_labels_chain in region where
7576 we know e->insns.r is non-NULL.
7577
7578 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
7579 rtx_insn *.
7580 (rebuild_jump_labels): Likewise.
7581 (rebuild_jump_labels_chain): Likewise for param "chain".
7582 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
7583 (init_label_info): Likewise for param "f".
7584 (maybe_propagate_label_ref): Likewise for params "jump_insn",
7585 "prev_nonjump_insn".
7586 (mark_all_labels): Likewise for param "f" and locals "insn",
7587 "prev_nonjump_insn".
7588
7589 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7590
7591 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
7592 from rtx to rtx_insn *insn.
7593 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
7594 (ira_add_allocno_copy): Likewise.
7595 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
7596 rtx to rtx_insn *.
7597 (ira_create_copy): Likewise.
7598 (ira_add_allocno_copy): Likewise.
7599 (create_bb_allocnos): Likewise for local "insn".
7600 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
7601 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
7602 process_regs_for_copy for rtx_insn * param.
7603 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
7604 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
7605 process_regs_for_copy for rtx_insn * param.
7606 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
7607 * ira-costs.c (record_reg_classes): Likewise for param "insn".
7608 (record_operand_costs): Likewise.
7609 (scan_one_insn): Likewise for return type, and for param "insn".
7610 (process_bb_for_costs): Likewise for local "insn".
7611 (process_bb_node_for_hard_reg_moves): Likewise.
7612 * ira-emit.c (struct move): Likewise for field "insn".
7613 (create_move): Eliminate use of NULL_RTX when dealing with an
7614 rtx_insn *.
7615 (emit_move_list): Strengthen return type and locals "result",
7616 "insn" from rtx to rtx_insn *insn.
7617 (emit_moves): Likewise for locals "insns", "tmp".
7618 (ira_emit): Likewise for local "insn".
7619 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
7620 "insn".
7621 (find_call_crossed_cheap_reg): Likewise.
7622 (process_bb_node_lives): Likewise for local "insn".
7623 * ira.c (decrease_live_ranges_number): Likewise.
7624 (compute_regs_asm_clobbered): Likewise.
7625 (build_insn_chain): Likewise.
7626 (find_moveable_pseudos): Likewise, also locals "def_insn",
7627 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
7628 to rtx_insn **. Add a checked cast when assigning from
7629 "closest_use" into closest_uses array in a region where we know
7630 it's a non-NULL insn.
7631 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
7632 to rtx_insn *.
7633 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
7634 "last_interesting_insn", "uin".
7635 (move_unallocated_pseudos): Likewise for locals "def_insn",
7636 "move_insn", "newinsn".
7637
7638 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7639
7640 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
7641 Strengthen locals "done_label", "do_error" from rtx to
7642 rtx_code_label *.
7643 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
7644 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
7645 rtx_code_label *.
7646 (ubsan_expand_si_overflow_neg_check): Likewise for locals
7647 "done_label", "do_error" to rtx_code_label * and local "last" to
7648 rtx_insn *.
7649 (ubsan_expand_si_overflow_mul_check): Likewise for locals
7650 "done_label", "do_error", "large_op0", "small_op0_large_op1",
7651 "one_small_one_large", "both_ops_large", "after_hipart_neg",
7652 "after_lopart_neg", "do_overflow", "hipart_different" to
7653 rtx_code_label * and local "last" to rtx_insn *.
7654
7655 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7656
7657 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
7658 "insn" and "move_insn" from rtx to rtx_insn *.
7659
7660 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7661
7662 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
7663 rtx_insn *.
7664 (cheap_bb_rtx_cost_p): Likewise.
7665 (first_active_insn): Likewise for return type and local "insn".
7666 (last_active_insn): Likewise for return type and locals "insn",
7667 "head".
7668 (struct noce_if_info): Likewise for fields "jump", "insn_a",
7669 "insn_b".
7670 (end_ifcvt_sequence): Likewise for return type and locals "insn",
7671 "seq".
7672 (noce_try_move): Likewise for local "seq".
7673 (noce_try_store_flag): Likewise.
7674 (noce_try_store_flag_constants): Likewise.
7675 (noce_try_addcc): Likewise.
7676 (noce_try_store_flag_mask): Likewise.
7677 (noce_try_cmove): Likewise.
7678 (noce_try_minmax): Likewise.
7679 (noce_try_abs): Likewise.
7680 (noce_try_sign_mask): Likewise.
7681 (noce_try_bitop): Likewise.
7682 (noce_can_store_speculate_p): Likewise for local "insn".
7683 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
7684 seq".
7685 (check_cond_move_block): Likewise for local "insn".
7686 (cond_move_convert_if_block): Likewise.
7687 (cond_move_process_if_block): Likewise for locals "seq",
7688 "loc_insn".
7689 (noce_find_if_block): Likewise for local "jump".
7690 (merge_if_block): Likewise for local "last".
7691 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
7692 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
7693 (block_has_only_trap): Likewise for return type and local "trap".
7694 (find_if_case_1): Likewise for local "jump".
7695 (dead_or_predicable): Likewise for locals "head", "end", "jump",
7696 "insn".
7697
7698 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7699
7700 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
7701 "last_insn", "loop_end" from rtx to rtx_insn *.
7702
7703 * hw-doloop.c (scan_loop): Likewise for local "insn".
7704 (discover_loop): Likewise for param "tail_insn".
7705 (discover_loops): Likewise for local "tail".
7706
7707 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
7708 cast to rtx_insn * when assigning from an rtx local to a
7709 hwloop_info's "last_insn" field.
7710
7711 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7712
7713 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
7714 (add_delay_dependencies): Strengthen local "pro" from rtx to
7715 rtx_insn *.
7716 (recompute_todo_spec): Likewise.
7717 (dep_cost_1): Likewise for locals "insn", "used".
7718 (schedule_insn): Likewise for local "dbg".
7719 (schedule_insn): Likewise for locals "pro", "next".
7720 (unschedule_insns_until): Likewise for local "con".
7721 (restore_pattern): Likewise for local "next".
7722 (estimate_insn_tick): Likewise for local "pro".
7723 (resolve_dependencies): Likewise for local "next".
7724 (fix_inter_tick): Likewise.
7725 (fix_tick_ready): Likewise for local "pro".
7726 (add_to_speculative_block): Likewise for locals "check", "twin",
7727 "pro".
7728 (sched_extend_bb): Likewise for locals "end", "insn".
7729 (init_before_recovery): Likewise for local "x".
7730 (sched_create_recovery_block): Likewise for local "barrier".
7731 (create_check_block_twin): Likewise for local "pro".
7732 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
7733 "consumer".
7734 (unlink_bb_notes): Update for change to type of bb_header.
7735 Strengthen locals "prev", "label", "note", "next" from rtx to
7736 rtx_insn *.
7737 (clear_priorities): Likewise for local "pro".
7738
7739 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7740
7741 * gcse.c (struct occr): Strengthen field "insn" from rtx to
7742 rtx_insn *.
7743 (test_insn): Likewise for this global.
7744 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
7745 const rtx_insn *.
7746 (oprs_anticipatable_p): Likewise.
7747 (oprs_available_p): Likewise.
7748 (insert_expr_in_table): Strengthen param "insn" from rtx to
7749 rtx_insn *.
7750 (hash_scan_set): Likewise.
7751 (hash_scan_clobber): Likewise.
7752 (hash_scan_call): Likewise.
7753 (hash_scan_insn): Likewise.
7754 (compute_hash_table_work): Likewise for local "insn".
7755 (process_insert_insn): Likewise for return type and local "pat".
7756 (insert_insn_end_basic_block): Likewise for locals "new_insn",
7757 "pat", "pat_end", "maybe_cc0_setter".
7758 (pre_edge_insert): Likewise for local "insn".
7759 (pre_insert_copy_insn): Likewise for param "insn".
7760 (pre_insert_copies): Likewise for local "insn".
7761 (struct set_data): Likewise for field "insn".
7762 (single_set_gcse): Likewise for param "insn".
7763 (gcse_emit_move_after): Likewise.
7764 (pre_delete): Likewise for local "insn".
7765 (update_bb_reg_pressure): Likewise for param "from" and local
7766 "insn".
7767 (should_hoist_expr_to_dom): Likewise for param "from".
7768 (hoist_code): Likewise for local "insn".
7769 (get_pressure_class_and_nregs): Likewise for param "insn".
7770 (calculate_bb_reg_pressure): Likewise for local "insn".
7771 (compute_ld_motion_mems): Likewise.
7772
7773 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7774
7775 * genpeep.c (main): Rename param back from "uncast_ins1" to
7776 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
7777 checked cast.
7778
7779 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
7780
7781 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
7782
7783 PR target/62195
7784 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
7785 documentation to state it is only for VSX operations.
7786
7787 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
7788 constraint only active if VSX.
7789
7790 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
7791 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
7792 (lfiwzx): Likewise.
7793
7794 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7795
7796 * fwprop.c (single_def_use_dom_walker::before_dom_children):
7797 Strengthen local "insn" from rtx to rtx_insn *.
7798 (use_killed_between): Likewise for param "target_insn".
7799 (all_uses_available_at): Likewise for param "target_insn" and
7800 local "next".
7801 (update_df_init): Likewise for params "def_insn", "insn".
7802 (update_df): Likewise for param "insn".
7803 (try_fwprop_subst): Likewise for param "def_insn" and local
7804 "insn".
7805 (free_load_extend): Likewise for param "insn".
7806 (forward_propagate_subreg): Likewise for param "def_insn" and
7807 local "use_insn".
7808 (forward_propagate_asm): Likewise for param "def_insn" and local
7809 "use_insn".
7810 (forward_propagate_and_simplify): Likewise for param "def_insn"
7811 and local "use_insn".
7812 (forward_propagate_into): Likewise for locals "def_insn" and
7813 "use_insn".
7814
7815 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7816
7817 * function.c (emit_initial_value_sets): Strengthen local "seq"
7818 from rtx to rtx_insn *.
7819 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
7820 local "seq".
7821 (instantiate_virtual_regs): Likewise for local "insn".
7822 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
7823 (reorder_blocks_1): Likewise for param "insns" and local "insn".
7824 (expand_function_end): Likewise for locals "insn" and "seq".
7825 (epilogue_done): Likewise for local "insn".
7826 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
7827 "last", "trial".
7828 (reposition_prologue_and_epilogue_notes): Likewise for locals
7829 "insn", "last", "note", "first".
7830 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
7831 (pass_match_asm_constraints::execute): Likewise for local "insn".
7832
7833 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7834
7835 * output.h (final_scan_insn): Strengthen return type from rtx to
7836 rtx_insn *.
7837 (final_forward_branch_p): Likewise for param.
7838 (current_output_insn): Likewise for this global.
7839
7840 * final.c (rtx debug_insn): Likewise for this variable.
7841 (current_output_insn): Likewise.
7842 (get_attr_length_1): Rename param "insn" to "uncast_insn",
7843 adding "insn" back in as an rtx_insn * with a checked cast, so
7844 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
7845 first param.
7846 (compute_alignments): Strengthen local "label" from rtx to
7847 rtx_insn *.
7848 (shorten_branches): Rename param from "first" to "uncast_first",
7849 introducing a new local rtx_insn * "first" using a checked cast to
7850 effectively strengthen "first" from rtx to rtx_insn * without
7851 affecting the type signature. Strengthen locals "insn", "seq",
7852 "next", "label" from rtx to rtx_insn *.
7853 (change_scope): Strengthen param "orig_insn" and local "insn" from
7854 rtx to rtx_insn *.
7855 (final_start_function): Rename param from "first" to "uncast_first",
7856 introducing a new local rtx_insn * "first" using a checked cast to
7857 effectively strengthen "first" from rtx to rtx_insn * without
7858 affecting the type signature. Strengthen local "insn" from rtx to
7859 rtx_insn *.
7860 (dump_basic_block_info): Strengthen param "insn" from rtx to
7861 rtx_insn *.
7862 (final): Rename param from "first" to "uncast_first",
7863 introducing a new local rtx_insn * "first" using a checked cast to
7864 effectively strengthen "first" from rtx to rtx_insn * without
7865 affecting the type signature. Strengthen locals "insn", "next"
7866 from rtx to rtx_insn *.
7867 (output_alternate_entry_point): Strengthen param "insn" from rtx to
7868 rtx_insn *.
7869 (call_from_call_insn): Strengthen param "insn" from rtx to
7870 rtx_call_insn *.
7871 (final_scan_insn): Rename param from "insn" to "uncast_insn",
7872 introducing a new local rtx_insn * "insn" using a checked cast to
7873 effectively strengthen "insn" from rtx to rtx_insn * without
7874 affecting the type signature. Strengthen return type and locals
7875 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
7876 now-redundant checked cast to rtx_insn * from both invocations of
7877 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
7878 introducing a local "call_insn" for use when invoking
7879 call_from_call_insn.
7880 (notice_source_line): Strengthen param "insn" from rtx to
7881 rtx_insn *.
7882 (leaf_function_p): Likewise for local "insn".
7883 (final_forward_branch_p): Likewise.
7884 (leaf_renumber_regs): Likewise for param "first".
7885 (rest_of_clean_state): Likewise for locals "insn" and "next".
7886 (self_recursive_call_p): Likewise for param "insn".
7887 (collect_fn_hard_reg_usage): Likewise for local "insn".
7888 (get_call_fndecl): Likewise for param "insn".
7889 (get_call_cgraph_rtl_info): Likewise.
7890 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
7891 introducing a new local rtx_insn * "insn" using a checked cast to
7892 effectively strengthen "insn" from rtx to rtx_insn * without
7893 affecting the type signature.
7894
7895 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
7896 cast when assigning from param "insn" to current_output_insn.
7897 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
7898 so that we can assign it back to current_output_insn.
7899
7900 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
7901
7902 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
7903 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
7904 atmxt540s and atmxt540sreva devices.
7905 * config/avr/avr-tables.opt: Regenerate.
7906 * config/avr/t-multilib: Regenerate.
7907 * doc/avr-mmcu.texi: Regenerate.
7908
7909 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7910
7911 * expr.c (convert_move): Strengthen local "insns" from rtx to
7912 rtx_insn *.
7913 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
7914 "top_label" from rtx to rtx_code_label *.
7915 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
7916 rtx_insn *.
7917 (emit_single_push_insn): Likewise for locals "prev", "last".
7918 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
7919 to rtx_code_label *.
7920 (store_constructor): Likewise for locals "loop_start", "loop_end".
7921 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
7922 rtx_insn *.
7923 (expand_expr_real_2): Likewise.
7924 (expand_expr_real_1): Strengthen local "label" from rtx to
7925 rtx_code_label *.
7926
7927 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7928
7929 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
7930 from rtx to rtx_insn *.
7931 (store_bit_field_1): Likewise.
7932 (extract_bit_field_1): Likewise.
7933 (expand_mult_const): Likewise for local "insns".
7934 (expmed_mult_highpart): Strengthen local "label" from rtx to
7935 rtx_code_label *.
7936 (expand_smod_pow2): Likewise.
7937 (expand_sdiv_pow2): Likewise.
7938 (expand_divmod): Strengthen locals "last", "insn" from rtx to
7939 rtx_insn *. Strengthen locals "label", "label1", "label2",
7940 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
7941 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
7942 (emit_store_flag): Likewise.
7943 (emit_store_flag_force): Strengthen local "label" from rtx to
7944 rtx_code_label *.
7945 (do_cmp_and_jump): Likewise for param "label".
7946
7947 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7948
7949 * explow.c (force_reg): Strengthen local "insn" from rtx to
7950 rtx_insn *.
7951 (adjust_stack_1): Likewise.
7952 (allocate_dynamic_stack_space): Likewise. Strengthen locals
7953 "final_label", "available_label", "space_available" from rtx to
7954 rtx_code_label *.
7955 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
7956 (anti_adjust_stack_and_probe): Likewise.
7957
7958 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7959
7960 * except.h (sjlj_emit_function_exit_after): Strengthen param
7961 "after" from rtx to rtx_insn *. This is only called with
7962 result of get_last_insn (in function.c) so type-change should be
7963 self-contained.
7964
7965 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
7966 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
7967 to rtx_insn *. These fields are only used from except.c so this
7968 type-change should be self-contained to this patch.
7969
7970 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
7971 local "last" from rtx to rtx_insn *.
7972 (dw2_build_landing_pads): Likewise for local "seq".
7973 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
7974 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
7975 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
7976 rtx to rtx_insn *.
7977 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
7978 to rtx_insn *.
7979 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
7980 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
7981 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
7982 referring to an insn. Strengthen local "dispatch_label" from
7983 rtx to rtx_code_label *.
7984 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
7985 rtx_insn *.
7986 (expand_eh_return): Strengthen local "around_label" from
7987 rtx to rtx_code_label *.
7988 (convert_to_eh_region_ranges): Strengthen locals "iter",
7989 "last_action_insn", "first_no_action_insn",
7990 "first_no_action_insn_before_switch",
7991 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
7992
7993 2014-08-22 David Malcolm <dmalcolm@redhat.com>
7994
7995 * dwarf2out.c (last_var_location_insn): Strengthen this variable
7996 from rtx to rtx_insn *.
7997 (cached_next_real_insn): Likewise.
7998 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
7999 working with insns.
8000 (dwarf2out_var_location): Strengthen locals "next_real",
8001 "next_note", "expected_next_loc_note", "last_start", "insn" from
8002 rtx to rtx_insn *.
8003
8004 2014-08-22 David Malcolm <dmalcolm@redhat.com>
8005
8006 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
8007 from rtx to rtx_insn *.
8008 (create_pseudo_cfg): Likewise for local "insn".
8009
8010 2014-08-22 David Malcolm <dmalcolm@redhat.com>
8011
8012 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
8013 from rtx to rtx_insn *.
8014 (df_bb_regno_last_def_find): Likewise.
8015
8016 * df-problems.c (df_rd_bb_local_compute): Likewise.
8017 (df_lr_bb_local_compute): Likewise.
8018 (df_live_bb_local_compute): Likewise.
8019 (df_chain_remove_problem): Likewise.
8020 (df_chain_create_bb): Likewise.
8021 (df_word_lr_bb_local_compute): Likewise.
8022 (df_remove_dead_eq_notes): Likewise for param "insn".
8023 (df_note_bb_compute): Likewise for local "insn".
8024 (simulate_backwards_to_point): Likewise.
8025 (df_md_bb_local_compute): Likewise.
8026
8027 * df-scan.c (df_scan_free_bb_info): Likewise.
8028 (df_scan_start_dump): Likewise.
8029 (df_scan_start_block): Likewise.
8030 (df_install_ref_incremental): Likewise for local "insn".
8031 (df_insn_rescan_all): Likewise.
8032 (df_reorganize_refs_by_reg_by_insn): Likewise.
8033 (df_reorganize_refs_by_insn_bb): Likewise.
8034 (df_recompute_luids): Likewise.
8035 (df_bb_refs_record): Likewise.
8036 (df_update_entry_exit_and_calls): Likewise.
8037 (df_bb_verify): Likewise.
8038
8039 2014-08-22 David Malcolm <dmalcolm@redhat.com>
8040
8041 * ddg.h (struct ddg_node): Strengthen fields "insn" and
8042 "first_note" from rtx to rtx_insn *.
8043 (get_node_of_insn): Likewise for param 2 "insn".
8044 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
8045
8046 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
8047 rtx_insn *.
8048 (mem_write_insn_p): Likewise.
8049 (mem_access_insn_p): Likewise.
8050 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
8051 (def_has_ccmode_p): Likewise for param "insn".
8052 (add_cross_iteration_register_deps): Likewise for locals
8053 "def_insn" and "use_insn".
8054 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
8055 (build_intra_loop_deps): Likewise for local "src_insn".
8056 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
8057 to rtx_insn *.
8058 (get_node_of_insn): Likewise for param "insn".
8059
8060 2014-08-22 David Malcolm <dmalcolm@redhat.com>
8061
8062 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
8063 (deletable_insn_p): Strengthen param "insn" from rtx to
8064 rtx_insn *. Add checked cast to rtx_call_insn when invoking
8065 find_call_stack_args, since this is guarded by CALL_P (insn).
8066 (marked_insn_p): Strengthen param "insn" from rtx to
8067 rtx_insn *.
8068 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
8069 invoking find_call_stack_args, since this is guarded by
8070 CALL_P (insn).
8071 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
8072 rtx_insn *; we know this is an insn since this was called by
8073 mark_nonreg_stores.
8074 (mark_nonreg_stores_2): Likewise.
8075 (mark_nonreg_stores): Strengthen param "insn" from rtx to
8076 rtx_insn *.
8077 (find_call_stack_args): Strengthen param "call_insn" from rtx to
8078 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
8079 to rtx_insn *.
8080 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
8081 from rtx to rtx_insn *.
8082 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
8083 "next", "ref_insn".
8084 (delete_unmarked_insns): Likewise for locals "insn", "next".
8085 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
8086 (mark_reg_dependencies): Likewise for param "insn".
8087 (rest_of_handle_ud_dce): Likewise for local "insn".
8088 (word_dce_process_block): Likewise.
8089 (dce_process_block): Likewise.
8090
8091 2014-08-22 David Malcolm <dmalcolm@redhat.com>
8092
8093 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
8094 from rtx to rtx_insn *.
8095 (struct change_cc_mode_args): Likewise for field "insn".
8096 (this_insn): Strengthen from rtx to rtx_insn *.
8097 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
8098 with insn.
8099 (validate_canon_reg): Strengthen param "insn" from rtx to
8100 rtx_insn *.
8101 (canon_reg): Likewise.
8102 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
8103 dealing with insn.
8104 (record_jump_equiv): Strengthen param "insn" from rtx to
8105 rtx_insn *.
8106 (try_back_substitute_reg): Likewise, also for locals "prev",
8107 "bb_head".
8108 (find_sets_in_insn): Likewise for param "insn".
8109 (canonicalize_insn): Likewise.
8110 (cse_insn): Likewise. Add a checked cast.
8111 (invalidate_from_clobbers): Likewise for param "insn".
8112 (invalidate_from_sets_and_clobbers): Likewise.
8113 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
8114 dealing with insn.
8115 (cse_prescan_path): Strengthen local "insn" from rtx to
8116 rtx_insn *.
8117 (cse_extended_basic_block): Likewise for locals "insn" and
8118 "prev_insn".
8119 (cse_main): Likewise for param "f".
8120 (check_for_label_ref): Likewise for local "insn".
8121 (set_live_p): Likewise for second param ("insn").
8122 (insn_live_p): Likewise for first param ("insn") and for local
8123 "next".
8124 (cse_change_cc_mode_insn): Likewise for first param "insn".
8125 (cse_change_cc_mode_insns): Likewise for first and second params
8126 "start" and "end".
8127 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
8128 and "end".
8129 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
8130 "cc_src_insn".
8131
8132 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8133 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8134 Anna Tikhonova <anna.tikhonova@intel.com>
8135 Ilya Tocar <ilya.tocar@intel.com>
8136 Andrey Turetskiy <andrey.turetskiy@intel.com>
8137 Ilya Verbin <ilya.verbin@intel.com>
8138 Kirill Yukhin <kirill.yukhin@intel.com>
8139 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8140
8141 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
8142 New.
8143 * config/i386/sse.md
8144 (define_mode_iterator VI248_AVX2): Delete.
8145 (define_mode_iterator VI2_AVX2_AVX512BW): New.
8146 (define_mode_iterator VI48_AVX2): Ditto.
8147 (define_insn <shift_insn><mode>3): Delete.
8148 (define_insn "<shift_insn><mode>3<mask_name>" with
8149 VI2_AVX2_AVX512BW): New.
8150 (define_insn "<shift_insn><mode>3<mask_name>" with
8151 VI48_AVX2): Ditto.
8152
8153 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8154 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8155 Anna Tikhonova <anna.tikhonova@intel.com>
8156 Ilya Tocar <ilya.tocar@intel.com>
8157 Andrey Turetskiy <andrey.turetskiy@intel.com>
8158 Ilya Verbin <ilya.verbin@intel.com>
8159 Kirill Yukhin <kirill.yukhin@intel.com>
8160 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8161
8162 * config/i386/sse.md
8163 (define_mode_iterator VI4F_BRCST32x2): New.
8164 (define_mode_attr 64x2_mode): Ditto.
8165 (define_mode_attr 32x2mode): Ditto.
8166 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
8167 with VI4F_BRCST32x2): Ditto.
8168 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
8169 with V16FI mode iterator): Ditto.
8170 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
8171 with V16FI): Ditto.
8172 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
8173 with VI8F_BRCST64x2): Ditto.
8174
8175 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8176 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8177 Anna Tikhonova <anna.tikhonova@intel.com>
8178 Ilya Tocar <ilya.tocar@intel.com>
8179 Andrey Turetskiy <andrey.turetskiy@intel.com>
8180 Ilya Verbin <ilya.verbin@intel.com>
8181 Kirill Yukhin <kirill.yukhin@intel.com>
8182 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8183
8184 * config/i386/sse.md
8185 (define_mode_iterator VI8_AVX512VL): New.
8186 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
8187
8188 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
8189
8190 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
8191 (define_mode_iterator V48_AVX512VL): New.
8192 (define_mode_iterator V12_AVX512VL): Ditto.
8193 (define_insn <avx512>_load<mode>_mask): Split into two similar
8194 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
8195 Refactor output template.
8196 (define_insn "<avx512>_store<mode>_mask"): Ditto.
8197
8198 2014-08-22 David Malcolm <dmalcolm@redhat.com>
8199
8200 * cprop.c (struct occr): Strengthen field "insn" from rtx to
8201 rtx_insn *.
8202 (reg_available_p): Likewise for param "insn".
8203 (insert_set_in_table): Likewise.
8204 (hash_scan_set): Likewise.
8205 (hash_scan_insn): Likewise.
8206 (make_set_regs_unavailable): Likewise.
8207 (compute_hash_table_work): Likewise for local "insn".
8208 (reg_not_set_p): Strengthen param "insn" from const_rtx to
8209 const rtx_insn *.
8210 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
8211 (try_replace_reg): Likewise.
8212 (find_avail_set): Likewise.
8213 (cprop_jump): Likewise for params "setcc", "jump".
8214 (constprop_register): Likewise for param "insn".
8215 (cprop_insn): Likewise.
8216 (do_local_cprop): Likewise.
8217 (local_cprop_pass): Likewise for local "insn".
8218 (bypass_block): Likewise for params "setcc" and "jump".
8219 (bypass_conditional_jumps): Likewise for locals "setcc" and
8220 "insn".
8221 (one_cprop_pass): Likewise for local "insn".
8222
8223 2014-08-22 David Malcolm <dmalcolm@redhat.com>
8224
8225 * compare-elim.c (struct comparison_use): Strengthen field "insn"
8226 from rtx to rtx_insn *.
8227 (struct comparison): Likewise, also for field "prev_clobber".
8228 (conforming_compare): Likewise for param "insn".
8229 (arithmetic_flags_clobber_p): Likewise.
8230 (find_flags_uses_in_insn): Likewise.
8231 (find_comparison_dom_walker::before_dom_children): Likewise for
8232 locals "insn", "next", "last_clobber".
8233 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
8234
8235 2014-08-22 David Malcolm <dmalcolm@redhat.com>
8236
8237 * combine-stack-adj.c (struct csa_reflist): Strengthen field
8238 "insn" from rtx to rtx_insn *.
8239 (single_set_for_csa): Likewise for param "insn".
8240 (record_one_stack_ref): Likewise.
8241 (try_apply_stack_adjustment): Likewise.
8242 (struct record_stack_refs_data): Likewise for field "insn".
8243 (maybe_move_args_size_note): Likewise for params "last" and "insn".
8244 (prev_active_insn_bb): Likewise for return type and param "insn".
8245 (next_active_insn_bb): Likewise.
8246 (force_move_args_size_note): Likewise for params "prev" and "last"
8247 and locals "test", "next_candidate", "prev_candidate".
8248 (combine_stack_adjustments_for_block): Strengthen locals
8249 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
8250 rtx_insn *.
8251
8252 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8253
8254 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
8255 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
8256 (subst_insn): Likewise for this variable.
8257 (added_links_insn): Likewise.
8258 (struct insn_link): Likewise for field "insn".
8259 (alloc_insn_link): Likewise for param "insn".
8260 (struct undobuf): Likewise for field "other_insn".
8261 (find_single_use): Likewise for param "insn" and local "next".
8262 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
8263 (delete_noop_moves): Likewise for locals "insn", "next".
8264 (create_log_links): Likewise for locals "insn", "use_insn".
8265 Strengthen local "next_use" from rtx * to rtx_insn **.
8266 (insn_a_feeds_b): Likewise for params "a", "b".
8267 (combine_instructions): Likewise for param "f" and locals "insn",
8268 "next", "prev", "first", "last_combined_insn", "link", "link1",
8269 "temp". Replace use of NULL_RTX with NULL when referring to
8270 insns.
8271 (setup_incoming_promotions): Likewise for param "first"
8272 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
8273 (can_combine_p): Likewise for params "insn", "i3", "pred",
8274 "pred2", "succ", "succ2" and for local "p".
8275 (combinable_i3pat): Likewise for param "i3".
8276 (cant_combine_insn_p): Likewise for param "insn".
8277 (likely_spilled_retval_p): Likewise.
8278 (adjust_for_new_dest): Likewise.
8279 (update_cfg_for_uncondjump): Likewise, also for local "insn".
8280 (try_combine): Likewise for return type and for params "i3", "i2",
8281 "i1", "i0", "last_combined_insn", and for locals "insn",
8282 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
8283 "i0_insn". Eliminate local "tem" in favor of new locals
8284 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
8285 checked cast for now to rtx_insn * on the return type of
8286 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
8287 insns.
8288 (find_split_point): Strengthen param "insn" from rtx to
8289 rtx_insn *.
8290 (simplify_set): Likewise for local "other_insn".
8291 (recog_for_combine): Likewise for param "insn".
8292 (record_value_for_reg): Likewise.
8293 (record_dead_and_set_regs_1): Likewise for local
8294 "record_dead_insn".
8295 (record_dead_and_set_regs): Likewise for param "insn".
8296 (record_promoted_value): Likewise.
8297 (check_promoted_subreg): Likewise.
8298 (get_last_value_validate): Likewise.
8299 (reg_dead_at_p): Likewise.
8300 (move_deaths): Likewise for param "to_insn".
8301 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
8302 and locals "place", "place2", "cc0_setter". Eliminate local "tem
8303 in favor of new locals "tem_note" and "tem_insn", the latter being
8304 an rtx_insn *.
8305 (distribute_links): Strengthen locals "place", "insn" from rtx to
8306 rtx_insn *.
8307
8308 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8309
8310 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
8311 than a const_rtx.
8312 (can_delete_label_p): Require a const rtx_code_label * rather than
8313 a const_rtx.
8314 (delete_insn): Add checked cast to rtx_code_label * when we know
8315 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
8316 rtx to rtx_insn *.
8317 (delete_insn_chain): Strengthen locals "prev" and "current" from
8318 rtx to rtx_insn *. Add a checked cast when assigning from
8319 "finish" (strengthening the params will come later). Add a
8320 checked cast to rtx_note * in region where we know
8321 NOTE_P (current).
8322 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
8323 rtx_insn *.
8324 (compute_bb_for_insn): Likewise.
8325 (free_bb_for_insn): Likewise for local "insn".
8326 (compute_bb_for_insn): Likewise.
8327 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
8328 local "insn" from rtx to rtx_insn *
8329 (flow_active_insn_p): Require a const rtx_insn * rather than a
8330 const_rtx.
8331 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
8332 rtx_insn *.
8333 (can_fallthru): Likewise for locals "insn" and "insn2".
8334 (bb_note): Likewise for local "note".
8335 (first_insn_after_basic_block_note): Likewise for local "note" and
8336 for return type.
8337 (rtl_split_block): Likewise for locals "insn" and "next".
8338 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
8339 "end".
8340 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
8341 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
8342 "prev", "tmp".
8343 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
8344 them), "kill_from", "barrier", "new_insn".
8345 (patch_jump_insn): Likewise for params "insn", "old_label".
8346 (redirect_branch_edge): Likewise for locals "old_label", "insn".
8347 (force_nonfallthru_and_redirect): Likewise for locals "insn",
8348 "old_label", "new_label".
8349 (rtl_tidy_fallthru_edge): Likewise for local "q".
8350 (rtl_split_edge): Likewise for locals "before", "last".
8351 (commit_one_edge_insertion): Likewise for locals "before",
8352 "after", "insns", "tmp", "last", adding a checked cast where
8353 currently necessary.
8354 (commit_edge_insertions): Likewise.
8355 (rtl_dump_bb): Likewise for locals "insn", "last".
8356 (print_rtl_with_bb): Likewise for local "x".
8357 (rtl_verify_bb_insns): Likewise for local "x".
8358 (rtl_verify_bb_pointers): Likewise for local "insn".
8359 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
8360 "head", "end".
8361 (rtl_verify_fallthru): Likewise for local "insn".
8362 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
8363 (purge_dead_edges): Likewise for local "insn".
8364 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
8365 (skip_insns_after_block): Likewise for return type and for locals
8366 "insn", "last_insn", "next_head", "prev".
8367 (record_effective_endpoints): Likewise for locals "next_insn",
8368 "insn", "end".
8369 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
8370 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
8371 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
8372 (duplicate_insn_chain): For now, add checked cast from rtx to
8373 rtx_insn * when returning insn.
8374 (cfg_layout_duplicate_bb): Likewise for local "insn".
8375 (cfg_layout_delete_block): Likewise for locals "insn", "next",
8376 "prev", "remaints".
8377 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
8378 (rtl_block_empty_p): Likewise.
8379 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
8380 "split_point", "last".
8381 (rtl_block_ends_with_call_p): Likewise for local "insn".
8382 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
8383 const rtx_insn *.
8384 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
8385 "split_at_insn" from rtx to rtx_insn *.
8386 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
8387 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
8388 to const rtx_insn *.
8389 (rtl_account_profile_record): Likewise.
8390
8391 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8392
8393 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
8394 rtx to rtx_insn *.
8395 (average_num_loop_insns): Likewise.
8396 (init_set_costs): Likewise for local "seq".
8397 (seq_cost): Likewise for param "seq", from const_rtx to const
8398 rtx_insn *.
8399
8400 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8401
8402 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
8403 rtx to rtx_insn *.
8404
8405 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8406
8407 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
8408 "f1" and "f2" from rtx * to rtx_insn **.
8409 (flow_find_head_matching_sequence): Likewise.
8410
8411 * cfgcleanup.c (try_simplify_condjump): Strengthen local
8412 "cbranch_insn" from rtx to rtx_insn *.
8413 (thread_jump): Likewise for local "insn".
8414 (try_forward_edges): Likewise for local "last".
8415 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
8416 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
8417 "real_b_end".
8418 (can_replace_by): Likewise for params "i1", "i2".
8419 (old_insns_match_p): Likewise.
8420 (merge_notes): Likewise.
8421 (walk_to_nondebug_insn): Likewise for param "i1".
8422 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
8423 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
8424 "afterlast1", "afterlast2" from rtx to rtx_insn *.
8425 (flow_find_head_matching_sequence): Strengthen params "f1" and
8426 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
8427 "last1", "last2", "beforelast1", "beforelast2" from rtx to
8428 rtx_insn *.
8429 (outgoing_edges_match): Likewise for locals "last1", "last2".
8430 (try_crossjump_to_edge): Likewise for local "insn".
8431 Replace call to for_each_rtx with for_each_rtx_in_insn.
8432
8433 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
8434 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
8435 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
8436 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
8437 (try_optimize_cfg): Strengthen local "last" from rtx to
8438 rtx_insn *.
8439 (delete_dead_jumptables): Likewise for locals "insn", "next",
8440 "label".
8441
8442 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
8443 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
8444 "rtx else_first_tail", to reflect the basic-block.h changes above.
8445
8446 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8447
8448 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
8449 rtx_insn *.
8450 (purge_dead_tablejump_edges): Likewise.
8451 (find_bb_boundaries): Likewise for locals "insn", "end",
8452 "flow_transfer_insn".
8453
8454 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8455
8456 * caller-save.c (save_call_clobbered_regs): Strengthen locals
8457 "ins" and "prev" from rtx to rtx_insn *.
8458
8459 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8460
8461 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
8462 rtx_insn *.
8463 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
8464 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
8465 "scan_start".
8466 (load_register_parameters): Likewise for local "before_arg".
8467 (check_sibcall_argument_overlap): Likewise for param "insn".
8468 (expand_call): Likewise for locals "normal_call_insns",
8469 "tail_call_insns", "insns", "before_call", "after_args",
8470 "before_arg", "last", "prev". Strengthen one of the "last" from
8471 rtx to rtx_call_insn *.
8472 (fixup_tail_calls): Strengthen local "insn" from rtx to
8473 rtx_insn *.
8474 (emit_library_call_value_1): Likewise for locals "before_call" and
8475 "last".
8476
8477 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8478
8479 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
8480 and "last" from rtx to rtx_insn *.
8481 (expand_builtin_nonlocal_goto): Likewise for local "insn".
8482 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
8483 rtx_call_insn *.
8484 (expand_errno_check): Strengthen local "lab" from rtx to
8485 rtx_code_label *.
8486 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
8487 rtx_insn *.
8488 (expand_builtin_mathfn_2): Likewise.
8489 (expand_builtin_mathfn_ternary): Likewise.
8490 (expand_builtin_mathfn_3): Likewise.
8491 (expand_builtin_interclass_mathfn): Likewise for local "last".
8492 (expand_builtin_int_roundingfn): Likewise for local "insns".
8493 (expand_builtin_int_roundingfn_2): Likewise.
8494 (expand_builtin_strlen): Likewise for local "before_strlen".
8495 (expand_builtin_strncmp): Likewise for local "seq".
8496 (expand_builtin_signbit): Likewise for local "last".
8497 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
8498 from rtx to rtx_code_label *.
8499 (expand_stack_restore): Strengthen local "prev" from rtx to
8500 rtx_insn *.
8501
8502 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8503
8504 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
8505 to rtx_insn *.
8506 (struct btr_def_s): Likewise.
8507 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
8508 const rtx_insn *.
8509 (add_btr_def): Likewise.
8510 (new_btr_user): Likewise.
8511 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
8512 rtx to rtx_insn *.
8513 (link_btr_uses): Likewise.
8514 (move_btr_def): Likewise for locals "insp", "old_insn",
8515 "new_insn". Add checked cast to rtx_insn * for now on result of
8516 gen_move_insn.
8517 (can_move_up): Strengthen param "insn" from const_rtx to
8518 const rtx_insn *.
8519
8520 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8521
8522 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
8523 rtx_insn *.
8524 (get_uncond_jump_length): Likewise for locals "label", "jump".
8525 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
8526 "jump", "insn".
8527 (add_labels_and_missing_jumps): Likewise for local "new_jump".
8528 (fix_up_fall_thru_edges): Likewise for local "old_jump".
8529 (find_jump_block): Likewise for local "insn".
8530 (fix_crossing_conditional_branches): Likewise for locals
8531 "old_jump", "new_jump".
8532 (fix_crossing_unconditional_branches): Likewise for locals
8533 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
8534 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
8535
8536 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8537
8538 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
8539 rtx to rtx_insn *.
8540 (struct mem_insn): Likewise for field "insn".
8541 (reg_next_use): Strengthen from rtx * to rtx_insn **.
8542 (reg_next_inc_use): Likewise.
8543 (reg_next_def): Likewise.
8544 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
8545 from rtx to rtx_insn *.
8546 (move_insn_before): Likewise for param "next_insn" and local "insns".
8547 (attempt_change): Likewise for local "mov_insn".
8548 (try_merge): Likewise for param "last_insn".
8549 (get_next_ref): Likewise for return type and local "insn".
8550 Strengthen param "next_array" from rtx * to rtx_insn **.
8551 (parse_add_or_inc): Strengthen param "insn" from rtx to
8552 rtx_insn *.
8553 (find_inc): Likewise for locals "insn" and "other_insn" (three of
8554 the latter).
8555 (merge_in_block): Likewise for locals "insn", "curr",
8556 "other_insn".
8557 (pass_inc_dec::execute): Update allocations of the arrays to
8558 reflect the stronger types.
8559
8560 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8561
8562 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
8563 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
8564 from rtx to rtx_code_label *.
8565
8566 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8567
8568 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
8569 to rtx_insn *.
8570
8571 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8572
8573 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
8574 generated a warning and prevented bootstrapping the compiler.
8575
8576 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8577
8578 * rtl.h (delete_related_insns): Strengthen return type from rtx to
8579 rtx_insn *.
8580
8581 * jump.c (delete_related_insns): Likewise, also for locals "next"
8582 and "prev".
8583
8584 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8585
8586 * genautomata.c (output_internal_insn_latency_func): When writing
8587 the function "internal_insn_latency" to insn-automata.c,
8588 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
8589 allowing the optional guard function of (define_bypass) clauses to
8590 expect a pair of rtx_insn *, rather than a pair of rtx.
8591 (output_insn_latency_func): When writing the function
8592 "insn_latency", add an "uncast_" prefix to params "insn" and
8593 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
8594 using checked casts from the params, thus enabling the above
8595 change to the generated "internal_insn_latency" function.
8596
8597 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
8598
8599 PR tree-optimization/62091
8600 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
8601 handle correctly arrays.
8602 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
8603 inheritance binfos.
8604 (record_known_type): Walk into inner type.
8605 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
8606 condition on no type changes.
8607
8608 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8609
8610 * genattrtab.c (write_attr_get): Within the generated get_attr_
8611 functions, rename param "insn" to "uncast_insn" and reintroduce
8612 "insn" as an local rtx_insn * using a checked cast, so that "insn"
8613 is an rtx_insn * within insn-attrtab.c
8614
8615 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8616
8617 * output.h (peephole): Strengthen return type from rtx to
8618 rtx_insn *.
8619 * rtl.h (delete_for_peephole): Likewise for both params.
8620 * genpeep.c (main): In generated "peephole" function, strengthen
8621 return type and local "insn" from rtx to rtx_insn *. For now,
8622 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
8623 rtx_insn *, with a checked cast.
8624 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
8625 locals "insn", "next", "prev" from rtx to rtx_insn *.
8626
8627 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
8628
8629 PR tree-optimization/62112
8630 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
8631 * gimple-iterator.h (gsi_replace): Return bool.
8632 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
8633 moved from ref_may_alias_global_p.
8634 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
8635 New overloads.
8636 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
8637 (stmt_kills_ref_p_1): Rename...
8638 (stmt_kills_ref_p): ... to this.
8639 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
8640 stmt_kills_ref_p): Declare.
8641 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
8642 Move the self-assignment case...
8643 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
8644
8645 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8646
8647 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
8648
8649 * emit-rtl.c (try_split): Likewise, also for locals "before" and
8650 "after". For now, don't strengthen param "trial", which requires
8651 adding checked casts when returning it.
8652
8653 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8654
8655 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
8656 "label" from rtx to rtx_code_label *. Strengthen param 1 of
8657 "var_location" hook from rtx to rtx_insn *.
8658 (debug_nothing_rtx): Delete in favor of...
8659 (debug_nothing_rtx_code_label): New prototype.
8660 (debug_nothing_rtx_rtx): Delete unused prototype.
8661 (debug_nothing_rtx_insn): New prototype.
8662
8663 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
8664 invoking debug_hooks->var_location (in two places, one in a NOTE
8665 case of a switch statement, the other guarded by a CALL_P
8666 conditional. Add checked cast to rtx_code_label * when invoking
8667 debug_hooks->label (within CODE_LABEL case of switch statement).
8668
8669 * dbxout.c (dbx_debug_hooks): Update "label" hook from
8670 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
8671 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
8672 (xcoff_debug_hooks): Likewise.
8673 * debug.c (do_nothing_debug_hooks): Likewise.
8674 (debug_nothing_rtx): Delete in favor of...
8675 (debug_nothing_rtx_insn): New function.
8676 (debug_nothing_rtx_rtx): Delete unused function.
8677 (debug_nothing_rtx_code_label): New function.
8678 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
8679 debug_nothing_rtx to debug_nothing_rtx_code_label.
8680 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
8681 to rtx_insn *.
8682 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
8683 debug_nothing_rtx to debug_nothing_rtx_insn.
8684 (sdbout_label): Strengthen param "insn" from rtx to
8685 rtx_code_label *.
8686 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
8687 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
8688 "var_location" hook from debug_nothing_rtx to
8689 debug_nothing_rtx_insn.
8690
8691 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8692
8693 * recog.h (insn_output_fn): Update this function typedef to match
8694 the changes below to the generated output functions, strengthening
8695 the 2nd param from rtx to rtx_insn *.
8696
8697 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
8698 insn when invoking an output function, to match the new signature
8699 of insn_output_fn with a stronger second param.
8700
8701 * genconditions.c (write_header): In the generated code for
8702 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
8703 to match the other changes in this patch.
8704
8705 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
8706 the generated "gen_" functions from rtx to rtx_insn * within their
8707 implementations.
8708
8709 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
8710 the subfunctions within the generated "recog_", "split", "peephole2"
8711 function trees from rtx to rtx_insn *. For now, the top-level
8712 generated functions ("recog", "split", "peephole2") continue to
8713 take a plain rtx for "insn", to avoid introducing dependencies on
8714 other patches. Rename this 2nd param from "insn" to
8715 "uncast_insn", and reintroduce "insn" as a local variable of type
8716 rtx_insn *, initialized at the top of the generated function with
8717 a checked cast on "uncast_insn".
8718 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
8719 the generated "gen_" functions from rtx to rtx_insn * within their
8720 prototypes.
8721
8722 * genoutput.c (process_template): Strengthen the 2nd param within
8723 the generated "output_" functions "insn" from rtx to rtx_insn *.
8724
8725 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
8726
8727 * tree-profile.c (tree_profiling): Skip external functions
8728 when doing coverage instrumentation.
8729 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
8730
8731 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8732
8733 * config/rs6000/altivec.h (vec_cpsgn): New #define.
8734 (vec_mergee): Likewise.
8735 (vec_mergeo): Likewise.
8736 (vec_cntlz): Likewise.
8737 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
8738 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
8739 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
8740 VMRGEW, and VMRGOW.
8741 * doc/extend.texi: Document various forms of vec_cpsgn,
8742 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
8743 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
8744 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
8745 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
8746 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
8747
8748 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8749
8750 * config/rs6000/rs6000.c (context.h): New include.
8751 (tree-pass.h): Likewise.
8752 (make_pass_analyze_swaps): New decl.
8753 (rs6000_option_override): Register pass_analyze_swaps.
8754 (swap_web_entry): New subsclass of web_entry_base (df.h).
8755 (special_handling_values): New enum.
8756 (union_defs): New function.
8757 (union_uses): Likewise.
8758 (insn_is_load_p): Likewise.
8759 (insn_is_store_p): Likewise.
8760 (insn_is_swap_p): Likewise.
8761 (rtx_is_swappable_p): Likewise.
8762 (insn_is_swappable_p): Likewise.
8763 (chain_purpose): New enum.
8764 (chain_contains_only_swaps): New function.
8765 (mark_swaps_for_removal): Likewise.
8766 (swap_const_vector_halves): Likewise.
8767 (adjust_subreg_index): Likewise.
8768 (permute_load): Likewise.
8769 (permute_store): Likewise.
8770 (handle_special_swappables): Likewise.
8771 (replace_swap_with_copy): Likewise.
8772 (dump_swap_insn_table): Likewise.
8773 (rs6000_analyze_swaps): Likewise.
8774 (pass_data_analyze_swaps): New pass_data.
8775 (pass_analyze_swaps): New rtl_opt_pass.
8776 (make_pass_analyze_swaps): New function.
8777 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
8778
8779 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8780
8781 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
8782 type from rtx to rtx_insn *.
8783 (create_copy_of_insn_rtx): Likewise.
8784 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
8785 (create_copy_of_insn_rtx): Likewise, also for local "res".
8786
8787 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8788
8789 * rtl.h (find_first_parameter_load): Strengthen return type from
8790 rtx to rtx_insn *.
8791 * rtlanal.c (find_first_parameter_load): Strengthen return type
8792 from rtx to rtx_insn *. Add checked cast for now, to postpone
8793 strengthening the params.
8794
8795 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
8796
8797 PR fortran/44054
8798 * diagnostic.c: Set default caret.
8799 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
8800 line is needed.
8801 * diagnostic.h (struct diagnostic_context):
8802
8803 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8804
8805 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
8806 (sel_bb_head): Strengthen return type insn_t (currently just an
8807 rtx) to rtx_insn *.
8808 (sel_bb_end): Likewise.
8809
8810 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
8811 (sel_bb_head): Strengthen return type and local "head" from
8812 insn_t (currently just an rtx) to rtx_insn *.
8813 (sel_bb_end): Likewise for return type.
8814 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
8815 working with insn.
8816
8817 2014-08-21 David Malcolm <dmalcolm@redhat.com>
8818
8819 * basic-block.h (get_last_bb_insn): Strengthen return type from
8820 rtx to rtx_insn *.
8821 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
8822 end".
8823
8824 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
8825
8826 PR fortran/44054
8827 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
8828 to here ...
8829 (diagnostic_report_diagnostic): ... from here.
8830 * toplev.c (general_init): Move code to c-family.
8831
8832 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8833
8834 * df.h (web_entry_base): Replace existing struct web_entry with a
8835 new class web_entry_base with only the predecessor member.
8836 (unionfind_root): Remove declaration and move to class member.
8837 (unionfind_union): Remove declaration and move to friend
8838 function.
8839 (union_defs): Remove declaration.
8840 * web.c (web_entry_base::unionfind_root): Modify to be member
8841 function and adjust accessors.
8842 (unionfind_union): Modify to be friend function and adjust
8843 accessors.
8844 (web_entry): New subclass of web_entry_base containing the reg
8845 member.
8846 (union_match_dups): Modify for struct -> class changes.
8847 (union_defs): Likewise.
8848 (entry_register): Likewise.
8849 (pass_web::execute): Likewise.
8850
8851 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
8852
8853 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
8854 builtin define __VEC_ELEMENT_REG_ORDER__.
8855
8856 2014-08-20 Martin Jambor <mjambor@suse.cz>
8857 Wei Mi <wmi@google.com>
8858
8859 PR ipa/60449
8860 PR middle-end/61776
8861 * tree-ssa-operands.c (update_stmt_operands): Remove
8862 MODIFIED_NORETURN_CALLS.
8863 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
8864 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
8865 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
8866 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
8867 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
8868 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
8869 (gimple_call_set_ctrl_altering): New func.
8870 (gimple_call_ctrl_altering_p): Ditto.
8871 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
8872 (make_blocks): Use gimple_call_initialize_ctrl_altering.
8873 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
8874 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
8875 remove MODIFIED_NORETURN_CALLS.
8876
8877 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
8878
8879 * coverage.c (coverage_compute_profile_id): Return non-0;
8880 also handle symbols with unique name.
8881 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
8882
8883 2014-08-20 Steve Ellcey <sellcey@mips.com>
8884
8885 PR middle-end/49191
8886 * doc/sourcebuild.texi (non_strict_align): New.
8887
8888 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
8889
8890 * cgraphunit.c (ipa_passes, compile): Reshedule
8891 symtab_remove_unreachable_nodes passes; update comments.
8892 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
8893 TODO_remove_functions before the pass; the functions ought to be
8894 already removed.
8895 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
8896 TODO_remove_functions.
8897 * passes.c (pass_data_early_local_passes): Do not schedule function
8898 removal.
8899 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
8900
8901 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
8902
8903 PR c/59304
8904 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
8905 before setting the option.
8906 * diagnostic.c (diagnostic_classify_diagnostic): Record
8907 command-line status.
8908
8909 2014-08-20 Richard Biener <rguenther@suse.de>
8910
8911 PR lto/62190
8912 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
8913 to build uint{16,32,64}_type_node.
8914
8915 2014-08-20 Terry Guo <terry.guo@arm.com>
8916
8917 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
8918 with immediate_operand.
8919
8920 2014-08-20 David Malcolm <dmalcolm@redhat.com>
8921
8922 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
8923 "insn" from an as_a to a safe_as_a, for the case when "insn" is
8924 NULL.
8925
8926 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
8927
8928 PR preprocessor/51303
8929 * incpath.c (remove_duplicates): Use cpp_warning.
8930
8931 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
8932
8933 PR c/60975
8934 PR c/53063
8935 * doc/options.texi (CPP): Document it.
8936 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
8937 * optc-gen.awk: Handle CPP.
8938 * opth-gen.awk: Likewise.
8939
8940 2014-08-19 David Malcolm <dmalcolm@redhat.com>
8941
8942 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
8943 rtx_insn *.
8944 (duplicate_insn_chain): Likewise.
8945 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
8946 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
8947 checked cast for now (until we can strengthen the params in the
8948 same way).
8949 (duplicate_insn_chain): Likewise.
8950
8951 2014-08-19 David Malcolm <dmalcolm@redhat.com>
8952
8953 * rtl.h (next_cc0_user): Strengthen return type from rtx to
8954 rtx_insn *.
8955 (prev_cc0_setter): Likewise.
8956
8957 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
8958 rtx_insn *, adding checked casts for now as necessary.
8959 (prev_cc0_setter): Likewise.
8960
8961 2014-08-19 David Malcolm <dmalcolm@redhat.com>
8962
8963 * expr.h (emit_move_insn): Strengthen return type from rtx to
8964 rtx_insn *.
8965 (emit_move_insn_1): Likewise.
8966 (emit_move_complex_push): Likewise.
8967 (emit_move_complex_parts): Likewise.
8968
8969 * expr.c (emit_move_via_integer): Strengthen return type from rtx
8970 to rtx_insn *. Replace use of NULL_RTX with NULL when working
8971 with insns.
8972 (emit_move_complex_push): Strengthen return type from rtx to
8973 rtx_insn *.
8974 (emit_move_complex): Likewise, also for local "ret".
8975 (emit_move_ccmode): Likewise.
8976 (emit_move_multi_word): Likewise for return type and locals
8977 "last_insn", "seq".
8978 (emit_move_insn_1): Likewise for return type and locals "result",
8979 "ret".
8980 (emit_move_insn): Likewise for return type and local "last_insn".
8981 (compress_float_constant): Likewise.
8982
8983 2014-08-19 David Malcolm <dmalcolm@redhat.com>
8984
8985 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
8986 from rtx to rtx_insn *.
8987
8988 * rtl.h (emit_insn_before): Likewise.
8989 (emit_insn_before_noloc): Likewise.
8990 (emit_insn_before_setloc): Likewise.
8991 (emit_jump_insn_before): Likewise.
8992 (emit_jump_insn_before_noloc): Likewise.
8993 (emit_jump_insn_before_setloc): Likewise.
8994 (emit_call_insn_before): Likewise.
8995 (emit_call_insn_before_noloc): Likewise.
8996 (emit_call_insn_before_setloc): Likewise.
8997 (emit_debug_insn_before): Likewise.
8998 (emit_debug_insn_before_noloc): Likewise.
8999 (emit_debug_insn_before_setloc): Likewise.
9000 (emit_label_before): Likewise.
9001 (emit_insn_after): Likewise.
9002 (emit_insn_after_noloc): Likewise.
9003 (emit_insn_after_setloc): Likewise.
9004 (emit_jump_insn_after): Likewise.
9005 (emit_jump_insn_after_noloc): Likewise.
9006 (emit_jump_insn_after_setloc): Likewise.
9007 (emit_call_insn_after): Likewise.
9008 (emit_call_insn_after_noloc): Likewise.
9009 (emit_call_insn_after_setloc): Likewise.
9010 (emit_debug_insn_after): Likewise.
9011 (emit_debug_insn_after_noloc): Likewise.
9012 (emit_debug_insn_after_setloc): Likewise.
9013 (emit_label_after): Likewise.
9014 (emit_insn): Likewise.
9015 (emit_debug_insn): Likewise.
9016 (emit_jump_insn): Likewise.
9017 (emit_call_insn): Likewise.
9018 (emit_label): Likewise.
9019 (gen_clobber): Likewise.
9020 (emit_clobber): Likewise.
9021 (gen_use): Likewise.
9022 (emit_use): Likewise.
9023 (emit): Likewise.
9024
9025 (emit_barrier_before): Strengthen return type from rtx to
9026 rtx_barrier *.
9027 (emit_barrier_after): Likewise.
9028 (emit_barrier): Likewise.
9029
9030 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
9031 from rtx to rtx_insn *. Add checked casts for now when converting
9032 "last" from rtx to rtx_insn *.
9033 (emit_insn_before_noloc): Likewise for return type.
9034 (emit_jump_insn_before_noloc): Likewise.
9035 (emit_call_insn_before_noloc): Likewise.
9036 (emit_debug_insn_before_noloc): Likewise.
9037 (emit_barrier_before): Strengthen return type and local "insn"
9038 from rtx to rtx_barrier *.
9039 (emit_label_before): Strengthen return type from rtx to
9040 rtx_insn *. Add checked cast for now when returning param
9041 (emit_pattern_after_noloc): Strengthen return type from rtx to
9042 rtx_insn *. Add checked casts for now when converting "last" from
9043 rtx to rtx_insn *.
9044 (emit_insn_after_noloc): Strengthen return type from rtx to
9045 rtx_insn *.
9046 (emit_jump_insn_after_noloc): Likewise.
9047 (emit_call_insn_after_noloc): Likewise.
9048 (emit_debug_insn_after_noloc): Likewise.
9049 (emit_barrier_after): Strengthen return type from rtx to
9050 rtx_barrier *.
9051 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
9052 Add checked cast for now when converting "label" from rtx to
9053 rtx_insn *.
9054 (emit_pattern_after_setloc): Strengthen return type from rtx to
9055 rtx_insn *. Add checked casts for now when converting "last" from
9056 rtx to rtx_insn *.
9057 (emit_pattern_after): Strengthen return type from rtx to
9058 rtx_insn *.
9059 (emit_insn_after_setloc): Likewise.
9060 (emit_insn_after): Likewise.
9061 (emit_jump_insn_after_setloc): Likewise.
9062 (emit_jump_insn_after): Likewise.
9063 (emit_call_insn_after_setloc): Likewise.
9064 (emit_call_insn_after): Likewise.
9065 (emit_debug_insn_after_setloc): Likewise.
9066 (emit_debug_insn_after): Likewise.
9067 (emit_pattern_before_setloc): Likewise. Add checked casts for now
9068 when converting "last" from rtx to rtx_insn *.
9069 (emit_pattern_before): Strengthen return type from rtx to
9070 rtx_insn *.
9071 (emit_insn_before_setloc): Likewise.
9072 (emit_insn_before): Likewise.
9073 (emit_jump_insn_before_setloc): Likewise.
9074 (emit_jump_insn_before): Likewise.
9075 (emit_call_insn_before_setloc): Likewise.
9076 (emit_call_insn_before): Likewise.
9077 (emit_debug_insn_before_setloc): Likewise.
9078 (emit_debug_insn_before): Likewise.
9079 (emit_insn): Strengthen return type and locals "last", "insn",
9080 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
9081 within cases where we know we have an insn.
9082 (emit_debug_insn): Likewise.
9083 (emit_jump_insn): Likewise.
9084 (emit_call_insn): Strengthen return type and local "insn" from rtx
9085 to rtx_insn *.
9086 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
9087 a checked cast to rtx_insn * for now on "label".
9088 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
9089 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
9090 (emit_use): Likewise.
9091 (gen_use): Likewise, also for local "seq".
9092 (emit): Likewise for return type and local "insn".
9093 (rtx_insn): Likewise for return type and local "new_rtx".
9094
9095 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
9096 from rtx to rtx_barrier *.
9097
9098 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
9099 changed return type from rtx to rtx_insn *, we must update
9100 "emit_fn" type, and this in turn means updating...
9101 (frame_insn): ...this. Strengthen return type from rtx to
9102 rtx_insn *. Introduce a new local "insn" of the appropriate type.
9103
9104 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9105
9106 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
9107 rtx to rtx_jump_table_data *. Also for local.
9108 * rtl.h (emit_jump_table_data): Likewise.
9109
9110 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9111
9112 * basic-block.h (create_basic_block_structure): Strengthen third
9113 param "bb_note" from rtx to rtx_note *.
9114 * rtl.h (emit_note_before): Strengthen return type from rtx to
9115 rtx_note *.
9116 (emit_note_after): Likewise.
9117 (emit_note): Likewise.
9118 (emit_note_copy): Likewise. Also, strengthen param similarly.
9119 * function.h (struct rtl_data): Strengthen field
9120 "x_stack_check_probe_note" from rtx to rtx_note *.
9121
9122 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
9123 from rtx to rtx_note *.
9124 * cfgrtl.c (create_basic_block_structure): Strengthen third param
9125 "bb_note" from rtx to rtx_note *.
9126 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
9127 when calling emit_note_copy.
9128 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
9129 rtx_note *.
9130 (emit_note_after): Likewise.
9131 (emit_note_before): Likewise.
9132 (emit_note_copy): Likewise. Also, strengthen param similarly.
9133 (emit_note): Likewise.
9134 * except.c (emit_note_eh_region_end): Likewise for return type.
9135 Strengthen local "next" from rtx to rtx_insn *.
9136 (convert_to_eh_region_ranges): Strengthen local "note"
9137 from rtx to rtx_note *.
9138 * final.c (change_scope): Likewise.
9139 (reemit_insn_block_notes): Likewise, for both locals named "note".
9140 Also, strengthen local "insn" from rtx to rtx_insn *.
9141 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
9142 rtx to rtx_note *.
9143 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
9144 strengthen local "seq" from rtx to rtx_insn *.
9145 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
9146 to rtx_note *.
9147 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
9148 vec<rtx_note *>.
9149 (get_bb_note_from_pool): Strengthen return type from rtx to
9150 rtx_note *.
9151 (sel_create_basic_block): Strengthen local "new_bb_note" from
9152 insn_t to rtx_note *.
9153 * var-tracking.c (emit_note_insn_var_location): Strengthen local
9154 "note" from rtx to rtx_note *.
9155 (emit_notes_in_bb): Likewise.
9156
9157 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9158
9159 * function.h (struct rtl_data): Strengthen field
9160 "x_parm_birth_insn" from rtx to rtx_insn *.
9161 * function.c (struct assign_parm_data_all): Strengthen fields
9162 "first_conversion_insn" and "last_conversion_insn" from rtx to
9163 rtx_insn *.
9164
9165 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9166
9167 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
9168 to rtx_insn *; also for local "var_end_seq".
9169 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
9170 (maybe_cleanup_end_of_block): Likewise for param "last" and local
9171 "insn".
9172 (expand_gimple_cond): Likewise for locals "last2" and "last".
9173 (mark_transaction_restart_calls): Likewise for local "insn".
9174 (expand_gimple_stmt): Likewise for return type and locals "last"
9175 and "insn".
9176 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
9177 (avoid_complex_debug_insns): Likewise for param "insn".
9178 (expand_debug_locations): Likewise for locals "insn", "last",
9179 "prev_insn" and "insn2".
9180 (expand_gimple_basic_block): Likewise for local "last".
9181 (construct_exit_block): Likewise for locals "head", "end",
9182 "orig_end".
9183 (pass_expand::execute): Likewise for locals "var_seq",
9184 "var_ret_seq", "next".
9185
9186 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9187
9188 * asan.h (asan_emit_stack_protection): Strengthen return type from
9189 rtx to rtx_insn *.
9190 * asan.c (asan_emit_stack_protection): Likewise. Add local
9191 "insns" to hold the return value.
9192
9193 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9194
9195 * basic-block.h (bb_note): Strengthen return type from rtx to
9196 rtx_note *.
9197 * sched-int.h (bb_note): Likewise.
9198 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
9199
9200 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9201
9202 * rtl.h (make_insn_raw): Strengthen return type from rtx to
9203 rtx_insn *.
9204
9205 * emit-rtl.c (make_insn_raw): Strengthen return type and local
9206 "insn" from rtx to rtx_insn *.
9207 (make_debug_insn_raw): Strengthen return type from rtx to
9208 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
9209 (make_jump_insn_raw): Strengthen return type from rtx to
9210 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
9211 (make_call_insn_raw): Strengthen return type from rtx to
9212 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
9213 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
9214 callback from rtx to rtx_insn *; likewise for local "insn" and
9215 "next", adding a checked cast to rtx_insn in the relevant cases of
9216 the switch statement.
9217 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
9218 callback from rtx to rtx_insn *.
9219 (emit_pattern_after_setloc): Likewise.
9220 (emit_pattern_after): Likewise.
9221 (emit_pattern_before_setloc): Likewise.
9222 (emit_pattern_before): Likewise.
9223
9224 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9225
9226 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
9227 rtx_call_insn *.
9228 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
9229 accepting an rtx_insn *.
9230 (last_call_insn): Strengthen return type from rtx to
9231 rtx_call_insn *.
9232
9233 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9234
9235 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
9236 "insns" from rtx to rtx_insn *.
9237 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
9238 locals "insn" and "prev".
9239
9240 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9241
9242 * rtl.h (tablejump_p): Strengthen third param from rtx * to
9243 rtx_jump_table_data **.
9244
9245 * cfgbuild.c (make_edges): Introduce local "table", using it in
9246 place of "tmp" for jump table data.
9247 (find_bb_boundaries): Strengthen local "table" from rtx to
9248 rtx_jump_table_data *.
9249 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
9250 (outgoing_edges_match): Likewise for locals "table1" and "table2".
9251 (try_crossjump_to_edge): Likewise.
9252 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
9253 "table".
9254 (patch_jump_insn): Introduce local "table", using it in place of
9255 "tmp" for jump table data.
9256 (force_nonfallthru_and_redirect): Introduce local "table", so that
9257 call to tablejump_p can receive an rtx_jump_table_data **. Update
9258 logic around the call to overwrite "note" appropriately if
9259 tablejump_p returns non-zero.
9260 (get_last_bb_insn): Introduce local "table", using it in place of
9261 "tmp" for jump table data.
9262 * dwarf2cfi.c (create_trace_edges): Likewise.
9263
9264 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
9265 from rtx to rtx_jump_table_data *.
9266 (create_fix_barrier): Strengthen local "tmp" from rtx to
9267 rtx_jump_table_data *.
9268 (arm_reorg): Likewise for local "table".
9269
9270 * config/s390/s390.c (s390_chunkify_start): Likewise.
9271
9272 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
9273
9274 * jump.c (delete_related_insns): Strengthen local "lab_next" from
9275 rtx to rtx_jump_table_data *.
9276
9277 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
9278 rtx_jump_table_data **. Add a checked cast when writing through
9279 the pointer: we know there that local "table" is non-NULL and that
9280 JUMP_TABLE_DATA_P (table) holds.
9281 (label_is_jump_target_p): Introduce local "table", using it in
9282 place of "tmp" for jump table data.
9283
9284 2014-08-19 Marek Polacek <polacek@redhat.com>
9285
9286 PR c++/62153
9287 * doc/invoke.texi: Document -Wbool-compare.
9288
9289 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9290
9291 * rtl.h (entry_of_function): Strengthen return type from rtx to
9292 rtx_insn *.
9293 * cfgrtl.c (entry_of_function): Likewise.
9294
9295 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9296
9297 * emit-rtl.h (get_insns): Strengthen return type from rtx to
9298 rtx_insn *, adding a checked cast for now.
9299 (get_last_insn): Likewise.
9300
9301 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9302
9303 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
9304 rtx_code_label *.
9305
9306 * emit-rtl.c (gen_label_rtx): Likewise.
9307
9308 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9309
9310 * rtl.h (previous_insn): Strengthen return type from rtx to
9311 rtx_insn *.
9312 (next_insn): Likewise.
9313 (prev_nonnote_insn): Likewise.
9314 (prev_nonnote_insn_bb): Likewise.
9315 (next_nonnote_insn): Likewise.
9316 (next_nonnote_insn_bb): Likewise.
9317 (prev_nondebug_insn): Likewise.
9318 (next_nondebug_insn): Likewise.
9319 (prev_nonnote_nondebug_insn): Likewise.
9320 (next_nonnote_nondebug_insn): Likewise.
9321 (prev_real_insn): Likewise.
9322 (next_real_insn): Likewise.
9323 (prev_active_insn): Likewise.
9324 (next_active_insn): Likewise.
9325
9326 * emit-rtl.c (next_insn): Strengthen return type from rtx to
9327 rtx_insn *, adding a checked cast.
9328 (previous_insn): Likewise.
9329 (next_nonnote_insn): Likewise.
9330 (next_nonnote_insn_bb): Likewise.
9331 (prev_nonnote_insn): Likewise.
9332 (prev_nonnote_insn_bb): Likewise.
9333 (next_nondebug_insn): Likewise.
9334 (prev_nondebug_insn): Likewise.
9335 (next_nonnote_nondebug_insn): Likewise.
9336 (prev_nonnote_nondebug_insn): Likewise.
9337 (next_real_insn): Likewise.
9338 (prev_real_insn): Likewise.
9339 (next_active_insn): Likewise.
9340 (prev_active_insn): Likewise.
9341
9342 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
9343 param "stepfunc" so that it returns an rtx_insn * rather than an
9344 rtx, to track the change to prev_nonnote_insn_bb, which is the
9345 only function this is called with.
9346 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
9347
9348 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
9349
9350 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
9351 assert.
9352
9353 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9354
9355 * coretypes.h (class rtx_debug_insn): Add forward declaration.
9356 (class rtx_nonjump_insn): Likewise.
9357 (class rtx_jump_insn): Likewise.
9358 (class rtx_call_insn): Likewise.
9359 (class rtx_jump_table_data): Likewise.
9360 (class rtx_barrier): Likewise.
9361 (class rtx_code_label): Likewise.
9362 (class rtx_note): Likewise.
9363
9364 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
9365 adding the invariant DEBUG_INSN_P (X).
9366 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
9367 the invariant NONJUMP_INSN_P (X).
9368 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
9369 the invariant JUMP_P (X).
9370 (class rtx_call_insn): New, a subclass of rtx_insn, adding
9371 the invariant CALL_P (X).
9372 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
9373 invariant JUMP_TABLE_DATA_P (X).
9374 (class rtx_barrier): New, a subclass of rtx_insn, adding the
9375 invariant BARRIER_P (X).
9376 (class rtx_code_label): New, a subclass of rtx_insn, adding
9377 the invariant LABEL_P (X).
9378 (class rtx_note): New, a subclass of rtx_insn, adding
9379 the invariant NOTE_P(X).
9380 (is_a_helper <rtx_debug_insn *>::test): New.
9381 (is_a_helper <rtx_nonjump_insn *>::test): New.
9382 (is_a_helper <rtx_jump_insn *>::test): New.
9383 (is_a_helper <rtx_call_insn *>::test): New.
9384 (is_a_helper <rtx_jump_table_data *>::test): New functions,
9385 overloaded for both rtx and rtx_insn *.
9386 (is_a_helper <rtx_barrier *>::test): New.
9387 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
9388 for both rtx and rtx_insn *.
9389 (is_a_helper <rtx_note *>::test): New.
9390
9391 2014-08-19 Marek Polacek <polacek@redhat.com>
9392
9393 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
9394 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
9395 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
9396 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
9397
9398 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9399
9400 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
9401 rtx_insn *. To help with transition, for now, convert from an
9402 access macro into a pair of functions: BND_TO, returning an
9403 rtx_insn *, and...
9404 (SET_BND_TO): New function, for use where BND_TO is used as an
9405 lvalue.
9406
9407 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
9408 SET_BND_TO.
9409 (BND_TO): New function, adding a checked cast.
9410 (SET_BND_TO): New function.
9411
9412 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
9413 SET_BND_TO.
9414 (compute_av_set_on_boundaries): Likewise.
9415
9416 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
9417
9418 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
9419 destination if it is used in source.
9420 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
9421 (*popcount<mode>2_falsedep_1): Likewise.
9422
9423 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
9424
9425 PR other/62168
9426 * configure.ac: Set install_gold_as_default to no first.
9427 * configure: Regenerated.
9428
9429 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9430
9431 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
9432 "note_list" field will eventually be an rtx_insn *. To help with
9433 transition, for now, convert from an access macro into a pair of
9434 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
9435 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
9436 used as an lvalue.
9437
9438 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
9439 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
9440
9441 * sel-sched-ir.c (init_bb): Likewise.
9442 (sel_restore_notes): Likewise.
9443 (move_bb_info): Likewise.
9444 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
9445 (SET_BB_NOTE_LIST): New function.
9446
9447 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9448
9449 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
9450 field will eventually be an rtx_insn *. To help with transition,
9451 for now, convert from an access macro into a pair of functions:
9452 VINSN_INSN_RTX, returning an rtx_insn *, and...
9453 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
9454 is used as an lvalue.
9455
9456 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
9457 SET_VINSN_INSN_RTX where it's used as an lvalue.
9458 (VINSN_INSN_RTX): New function.
9459 (SET_VINSN_INSN_RTX): New function.
9460
9461 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9462
9463 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
9464 eventually be rtx_insn *, but to help with transition, for now,
9465 convert from an access macro into a pair of functions: DEP_PRO
9466 returning an rtx_insn * and...
9467 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
9468 lvalue, returning an rtx&.
9469 (DEP_CON): Analogous changes to DEP_PRO above.
9470 (SET_DEP_CON): Likewise.
9471
9472 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
9473 an lvalue to SET_DEP_CON.
9474 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
9475 (sd_copy_back_deps): Likewise for DEP_CON.
9476 (DEP_PRO): New function, adding a checked cast for now.
9477 (DEP_CON): Likewise.
9478 (SET_DEP_PRO): New function.
9479 (SET_DEP_CON): Likewise.
9480
9481 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
9482
9483 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
9484 (extra_options): Add i386/cygwin.opt.
9485 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
9486 (CPP_SPEC): Accept -pthread.
9487 (LINK_SPEC): Ditto.
9488 (GOMP_SELF_SPECS): Update comment.
9489 * config/i386/cygwin.opt: New file for -pthread flag.
9490
9491 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9492
9493 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
9494 * df.h (DF_REF_INSN): Convert from a macro to a function, so
9495 that we can return an rtx_insn *.
9496
9497 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
9498
9499 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
9500 when building executables, not DLLs. Add --large-address-aware
9501 under the same conditions.
9502 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
9503 when building executables, not DLLs. Add --large-address-aware
9504 under the same conditions when using -m32.
9505
9506 * config/i386/cygwin-stdint.h: Throughout, make type
9507 definitions dependent on target architecture, not host.
9508
9509 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9510
9511 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
9512 the return type from rtx to rtx_insn *, which will enable various
9513 conversions in followup patches. For now this is is done by a
9514 checked cast.
9515 (NEXT_INSN): Likewise.
9516 (SET_PREV_INSN): Convert to an inline function. This is intended
9517 for use as an lvalue, and so returns an rtx& to allow in-place
9518 modification.
9519 (SET_NEXT_INSN): Likewise.
9520
9521 2014-07-08 Mark Wielaard <mjw@redhat.com>
9522
9523 PR debug/59051
9524 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
9525
9526 2014-08-19 Marek Polacek <polacek@redhat.com>
9527
9528 PR c/61271
9529 * cgraphunit.c (handle_alias_pairs): Fix condition.
9530
9531 2014-08-19 Richard Biener <rguenther@suse.de>
9532
9533 * gimple-fold.c (fold_gimple_assign): Properly build a
9534 null-pointer constant when devirtualizing addresses.
9535
9536 2014-07-07 Mark Wielaard <mjw@redhat.com>
9537
9538 * dwarf2out.c (decl_quals): New function.
9539 (modified_type_die): Take one cv_quals argument instead of two,
9540 one for const and one for volatile.
9541 (add_type_attribute): Likewise.
9542 (generic_parameter_die): Call add_type_attribute with one modifier
9543 argument.
9544 (base_type_for_mode): Likewise.
9545 (add_bounds_info): Likewise.
9546 (add_subscript_info): Likewise.
9547 (gen_array_type_die): Likewise.
9548 (gen_descr_array_type_die): Likewise.
9549 (gen_entry_point_die): Likewise.
9550 (gen_enumeration_type_die): Likewise.
9551 (gen_formal_parameter_die): Likewise.
9552 (gen_subprogram_die): Likewise.
9553 (gen_variable_die): Likewise.
9554 (gen_const_die): Likewise.
9555 (gen_field_die): Likewise.
9556 (gen_pointer_type_die): Likewise.
9557 (gen_reference_type_die): Likewise.
9558 (gen_ptr_to_mbr_type_die): Likewise.
9559 (gen_inheritance_die): Likewise.
9560 (gen_subroutine_type_die): Likewise.
9561 (gen_typedef_die): Likewise.
9562 (force_type_die): Likewise.
9563
9564 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9565
9566 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
9567 if unset.
9568 * configure: Regenerate.
9569
9570 2014-08-19 Richard Biener <rguenther@suse.de>
9571
9572 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
9573 DECL_EXTERNALs in BLOCKs as non-references.
9574 * tree-streamer-out.c (streamer_write_chain): Likewise.
9575
9576 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
9577 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9578 Anna Tikhonova <anna.tikhonova@intel.com>
9579 Ilya Tocar <ilya.tocar@intel.com>
9580 Andrey Turetskiy <andrey.turetskiy@intel.com>
9581 Ilya Verbin <ilya.verbin@intel.com>
9582 Kirill Yukhin <kirill.yukhin@intel.com>
9583 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9584
9585 * config/i386/sse.md
9586 (define_mode_iterator VI48_AVX512F): Delete.
9587 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
9588 (define_mode_iterator VI2_AVX512VL): Ditto.
9589 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
9590 Delete.
9591 (define_insn
9592 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
9593 New.
9594 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
9595 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
9596 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
9597 with VI48_AVX512F_AVX512VL): New.
9598 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
9599 with VI2_AVX512VL): Ditto.
9600
9601 2014-08-19 Marek Polacek <polacek@redhat.com>
9602
9603 * doc/invoke.texi: Document -Wc99-c11-compat.
9604
9605 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9606
9607 * rtl.h (PREV_INSN): Split macro in two: the existing one,
9608 for rvalues, and...
9609 (SET_PREV_INSN): New macro, for use as an lvalue.
9610 (NEXT_INSN, SET_NEXT_INSN): Likewise.
9611
9612 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
9613 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
9614 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
9615 (fixup_abnormal_edges): Likewise.
9616 (unlink_insn_chain): Likewise.
9617 (fixup_reorder_chain): Likewise.
9618 (cfg_layout_delete_block): Likewise.
9619 (cfg_layout_merge_blocks): Likewise.
9620 * combine.c (update_cfg_for_uncondjump): Likewise.
9621 * emit-rtl.c (link_insn_into_chain): Likewise.
9622 (remove_insn): Likewise.
9623 (delete_insns_since): Likewise.
9624 (reorder_insns_nobb): Likewise.
9625 (emit_insn_after_1): Likewise.
9626 * final.c (rest_of_clean_state): Likewise.
9627 (final_scan_insn): Likewise.
9628 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
9629 * haifa-sched.c (concat_note_lists): Likewise.
9630 (remove_notes): Likewise.
9631 (restore_other_notes): Likewise.
9632 (move_insn): Likewise.
9633 (unlink_bb_notes): Likewise.
9634 (restore_bb_notes): Likewise.
9635 * jump.c (delete_for_peephole): Likewise.
9636 * optabs.c (emit_libcall_block_1): Likewise.
9637 * reorg.c (emit_delay_sequence): Likewise.
9638 (fill_simple_delay_slots): Likewise.
9639 * sel-sched-ir.c (sel_move_insn): Likewise.
9640 (sel_remove_insn): Likewise.
9641 (get_bb_note_from_pool): Likewise.
9642 * sel-sched.c (move_nop_to_previous_block): Likewise.
9643
9644 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
9645 * config/c6x/c6x.c (gen_one_bundle): Likewise.
9646 (c6x_gen_bundles): Likewise.
9647 (hwloop_optimize): Likewise.
9648 * config/frv/frv.c (frv_function_prologue): Likewise.
9649 (frv_register_nop): Likewise.
9650 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
9651 (ia64_reorg): Likewise.
9652 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
9653 (mep_make_bundle): Likewise.
9654 (mep_bundle_insns): Likewise.
9655 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
9656 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
9657 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
9658
9659 2014-08-19 David Malcolm <dmalcolm@redhat.com>
9660
9661 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
9662 return type from rtx to rtx_insn *.
9663 (BB_END): Likewise.
9664 (BB_HEADER): Likewise.
9665 (BB_FOOTER): Likewise.
9666 (SET_BB_HEAD): Convert to a function.
9667 (SET_BB_END): Likewise.
9668 (SET_BB_HEADER): Likewise.
9669 (SET_BB_FOOTER): Likewise.
9670
9671 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
9672 Strengthen the return type from rtx to rtx_insn *. For now, this
9673 is done by adding a checked cast, but this will eventually
9674 become a field lookup.
9675 (BB_END): Likewise.
9676 (BB_HEADER): Likewise.
9677 (BB_FOOTER): Likewise.
9678 (SET_BB_HEAD): New function, from macro of same name. This is
9679 intended for use as an lvalue, and so returns an rtx& to allow
9680 in-place modification.
9681 (SET_BB_END): Likewise.
9682 (SET_BB_HEADER): Likewise.
9683 (SET_BB_FOOTER): Likewise.
9684
9685 2014-08-18 David Malcolm <dmalcolm@redhat.com>
9686
9687 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
9688 for rvalues, and...
9689 (SET_BB_HEAD): New macro, for use as a lvalue.
9690 (BB_END, SET_BB_END): Likewise.
9691 (BB_HEADER, SET_BB_HEADER): Likewise.
9692 (BB_FOOTER, SET_BB_FOOTER): Likewise.
9693
9694 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
9695 of BB_* macros into SET_BB_* macros.
9696 (fix_crossing_unconditional_branches): Likewise.
9697 * caller-save.c (save_call_clobbered_regs): Likewise.
9698 (insert_one_insn): Likewise.
9699 * cfgbuild.c (find_bb_boundaries): Likewise.
9700 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
9701 (outgoing_edges_match): Likewise.
9702 (try_optimize_cfg): Likewise.
9703 * cfgexpand.c (expand_gimple_cond): Likewise.
9704 (expand_gimple_tailcall): Likewise.
9705 (expand_gimple_basic_block): Likewise.
9706 (construct_exit_block): Likewise.
9707 * cfgrtl.c (delete_insn): Likewise.
9708 (create_basic_block_structure): Likewise.
9709 (rtl_delete_block): Likewise.
9710 (rtl_split_block): Likewise.
9711 (emit_nop_for_unique_locus_between): Likewise.
9712 (rtl_merge_blocks): Likewise.
9713 (block_label): Likewise.
9714 (try_redirect_by_replacing_jump): Likewise.
9715 (emit_barrier_after_bb): Likewise.
9716 (fixup_abnormal_edges): Likewise.
9717 (record_effective_endpoints): Likewise.
9718 (relink_block_chain): Likewise.
9719 (fixup_reorder_chain): Likewise.
9720 (fixup_fallthru_exit_predecessor): Likewise.
9721 (cfg_layout_duplicate_bb): Likewise.
9722 (cfg_layout_split_block): Likewise.
9723 (cfg_layout_delete_block): Likewise.
9724 (cfg_layout_merge_blocks): Likewise.
9725 * combine.c (update_cfg_for_uncondjump): Likewise.
9726 * emit-rtl.c (add_insn_after): Likewise.
9727 (remove_insn): Likewise.
9728 (reorder_insns): Likewise.
9729 (emit_insn_after_1): Likewise.
9730 * haifa-sched.c (get_ebb_head_tail): Likewise.
9731 (restore_other_notes): Likewise.
9732 (move_insn): Likewise.
9733 (sched_extend_bb): Likewise.
9734 (fix_jump_move): Likewise.
9735 * ifcvt.c (noce_process_if_block): Likewise.
9736 (dead_or_predicable): Likewise.
9737 * ira.c (update_equiv_regs): Likewise.
9738 * reg-stack.c (change_stack): Likewise.
9739 * sel-sched-ir.c (sel_move_insn): Likewise.
9740 * sel-sched.c (move_nop_to_previous_block): Likewise.
9741
9742 * config/c6x/c6x.c (hwloop_optimize): Likewise.
9743 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
9744
9745 2014-08-18 David Malcolm <dmalcolm@redhat.com>
9746
9747 * rtl.h (for_each_rtx_in_insn): New function.
9748 * rtlanal.c (for_each_rtx_in_insn): Likewise.
9749
9750 2014-08-18 David Malcolm <dmalcolm@redhat.com>
9751
9752 * coretypes.h (class rtx_insn): Add forward declaration.
9753
9754 * rtl.h: Include is-a.h.
9755 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
9756 workaround to ensure gengtype knows inheritance is occurring,
9757 whilst continuing to use the pre-existing special-casing for
9758 rtx_def.
9759 (class rtx_insn): New subclass of rtx_def, adding the
9760 invariant that we're dealing with something we can sanely use
9761 INSN_UID, NEXT_INSN, PREV_INSN on.
9762 (is_a_helper <rtx_insn *>::test): New.
9763 (is_a_helper <const rtx_insn *>::test): New.
9764
9765 2014-08-18 David Malcolm <dmalcolm@redhat.com>
9766
9767 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
9768
9769 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
9770
9771 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
9772 comdats as extern.
9773
9774 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
9775
9776 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
9777 to BUILT_IN_UNREACHABLE.
9778
9779 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
9780
9781 PR target/62011
9782 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
9783 New tune flag.
9784 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
9785 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
9786 (ffs<mode>2): Do not expand with tzcnt for
9787 TARGET_AVOID_FALSE_DEP_FOR_BMI.
9788 (ffssi2_no_cmove): Ditto.
9789 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
9790 (ctz<mode>2): New expander.
9791 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
9792 (*ctz<mode>2_falsedep): New insn.
9793 (*ctz<mode>2): Rename from ctz<mode>2.
9794 (clz<mode>2_lzcnt): New expander.
9795 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
9796 (*clz<mode>2_lzcnt_falsedep): New insn.
9797 (*clz<mode>2): Rename from ctz<mode>2.
9798 (popcount<mode>2): New expander.
9799 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
9800 (*popcount<mode>2_falsedep): New insn.
9801 (*popcount<mode>2): Rename from ctz<mode>2.
9802 (*popcount<mode>2_cmp): Remove.
9803 (*popcountsi2_cmp_zext): Ditto.
9804
9805 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
9806
9807 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
9808 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
9809 * config/microblaze/microblaze.h
9810 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
9811
9812 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
9813
9814 PR other/62168
9815 * configure.ac: Set install_gold_as_default to no for
9816 --enable-gold=no.
9817 * configure: Regenerated.
9818
9819 2014-08-18 Roman Gareev <gareevroman@gmail.com>
9820
9821 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
9822 * config.in: Add undef of HAVE_isl.
9823 * configure: Regenerate.
9824 * configure.ac: Add definition of HAVE_isl.
9825 * graphite-blocking.c: Add checking of HAVE_isl.
9826 * graphite-dependences.c: Likewise.
9827 * graphite-interchange.c: Likewise.
9828 * graphite-isl-ast-to-gimple.c: Likewise.
9829 * graphite-optimize-isl.c: Likewise.
9830 * graphite-poly.c: Likewise.
9831 * graphite-scop-detection.c: Likewise.
9832 * graphite-sese-to-poly.c: Likewise.
9833 * graphite.c: Likewise.
9834 * toplev.c: Replace the checking of HAVE_cloog with the checking
9835 of HAVE_isl.
9836
9837 2014-08-18 Richard Biener <rguenther@suse.de>
9838
9839 PR tree-optimization/62090
9840 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
9841 (fold_builtin_3): Do not fold snprintf.
9842 (fold_builtin_4): Likewise.
9843 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
9844 moved from builtins.c.
9845 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
9846 (gimple_fold_builtin): Do not fold sprintf here.
9847
9848 2014-08-18 Richard Biener <rguenther@suse.de>
9849
9850 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
9851 code to ...
9852 (maybe_canonicalize_mem_ref_addr): ... this function.
9853 (fold_stmt_1): Apply it here before all simplification.
9854
9855 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
9856
9857 PR ipa/61800
9858 * cgraph.h (cgraph_node::create_indirect_edge): Add
9859 compute_indirect_info param.
9860 * cgraph.c (cgraph_node::create_indirect_edge): Compute
9861 indirect_info only when it is required.
9862 * cgraphclones.c (cgraph_clone_edge): Do not recompute
9863 indirect_info fore cloned indirect edge.
9864
9865 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
9866 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9867 Anna Tikhonova <anna.tikhonova@intel.com>
9868 Ilya Tocar <ilya.tocar@intel.com>
9869 Andrey Turetskiy <andrey.turetskiy@intel.com>
9870 Ilya Verbin <ilya.verbin@intel.com>
9871 Kirill Yukhin <kirill.yukhin@intel.com>
9872 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9873
9874 * config/i386/sse.md
9875 (define_mode_iterator VI8_AVX2_AVX512BW): New.
9876 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
9877
9878 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
9879 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9880 Anna Tikhonova <anna.tikhonova@intel.com>
9881 Ilya Tocar <ilya.tocar@intel.com>
9882 Andrey Turetskiy <andrey.turetskiy@intel.com>
9883 Ilya Verbin <ilya.verbin@intel.com>
9884 Kirill Yukhin <kirill.yukhin@intel.com>
9885 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9886
9887 * config/i386/sse.md
9888 (define_mode_iterator VF1_AVX512VL): New.
9889 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
9890 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
9891 New.
9892
9893 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
9894 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9895 Anna Tikhonova <anna.tikhonova@intel.com>
9896 Ilya Tocar <ilya.tocar@intel.com>
9897 Andrey Turetskiy <andrey.turetskiy@intel.com>
9898 Ilya Verbin <ilya.verbin@intel.com>
9899 Kirill Yukhin <kirill.yukhin@intel.com>
9900 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9901
9902 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
9903 * config/i386/i386.md
9904 (define_code_iterator any_float): New.
9905 (define_code_attr floatsuffix): New.
9906 * config/i386/sse.md
9907 (define_mode_iterator VF1_128_256VL): New.
9908 (define_mode_iterator VF2_512_256VL): New.
9909 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
9910 TARGET check.
9911 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
9912 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
9913 New.
9914 (define_mode_attr qq2pssuff): New.
9915 (define_mode_attr sselongvecmode): New.
9916 (define_mode_attr sselongvecmodelower): New.
9917 (define_mode_attr sseintvecmode3): New.
9918 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
9919 New.
9920 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
9921 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
9922 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
9923 (define_insn "ufloatv2siv2df2<mask_name>"): New.
9924
9925 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
9926 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9927 Anna Tikhonova <anna.tikhonova@intel.com>
9928 Ilya Tocar <ilya.tocar@intel.com>
9929 Andrey Turetskiy <andrey.turetskiy@intel.com>
9930 Ilya Verbin <ilya.verbin@intel.com>
9931 Kirill Yukhin <kirill.yukhin@intel.com>
9932 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9933
9934 * config/i386/sse.md
9935 (define_mode_iterator VF2_AVX512VL): New.
9936 (define_mode_attr sseintvecmode2): New.
9937 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
9938 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
9939 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
9940 (define_insn
9941 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
9942 Ditto.
9943 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
9944 Ditto.
9945 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
9946 Ditto.
9947
9948 2014-08-18 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.md
9958 (define_insn "*movoi_internal_avx"): Add evex version.
9959 (define_insn "*movti_internal"): Ditto.
9960
9961 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
9962 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9963 Anna Tikhonova <anna.tikhonova@intel.com>
9964 Ilya Tocar <ilya.tocar@intel.com>
9965 Andrey Turetskiy <andrey.turetskiy@intel.com>
9966 Ilya Verbin <ilya.verbin@intel.com>
9967 Kirill Yukhin <kirill.yukhin@intel.com>
9968 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9969
9970 * config/i386/i386.md
9971 (define_attr "isa"): Add avx512dq, noavx512dq.
9972 (define_attr "enabled"): Ditto.
9973 * config/i386/sse.md
9974 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
9975
9976 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
9977 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9978 Anna Tikhonova <anna.tikhonova@intel.com>
9979 Ilya Tocar <ilya.tocar@intel.com>
9980 Andrey Turetskiy <andrey.turetskiy@intel.com>
9981 Ilya Verbin <ilya.verbin@intel.com>
9982 Kirill Yukhin <kirill.yukhin@intel.com>
9983 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9984
9985 * config/i386/i386.c
9986 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
9987 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
9988 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
9989 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
9990 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
9991 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
9992 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
9993 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
9994 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
9995 * config/i386/sse.md
9996 (define_mode_iterator VMOVE): Allow V4TI mode.
9997 (define_mode_iterator V_AVX512VL): New.
9998 (define_mode_iterator V): New handling for AVX512VL.
9999 (define_insn "avx512f_load<mode>_mask"): Delete.
10000 (define_insn "<avx512>_load<mode>_mask"): New.
10001 (define_insn "avx512f_store<mode>_mask"): Delete.
10002 (define_insn "<avx512>_store<mode>_mask"): New.
10003
10004
10005 2014-08-18 Yury Gribov <y.gribov@samsung.com>
10006
10007 PR sanitizer/62089
10008 * asan.c (instrument_derefs): Fix bitfield check.
10009
10010 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
10011
10012 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
10013 * config/rs6000/htm.md (ttest): Remove clobber.
10014 * config/rs6000/predicates.md (any_mask_operand): New predicate.
10015 (and_operand): Reformat.
10016 (and_2rld_operand): New predicate.
10017 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
10018 parameter.
10019 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
10020 parameter. Handle AND directly.
10021 (rs6000_split_logical_di): Remove last parameter.
10022 (rs6000_split_logical): Remove last parameter. Remove obsolete
10023 comment.
10024 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
10025 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
10026 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
10027 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
10028 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
10029 and 5 anonymous splitters): Delete.
10030 (and<mode>3): New expander.
10031 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
10032 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
10033 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
10034 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
10035 (floatdisf2_internal1): Remove clobbers.
10036 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
10037 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
10038 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
10039 (and<mode>3 for BOOL_128): Remove clobber.
10040 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
10041 rs6000_split_logical.
10042 (*bool<mode>3_internal for BOOL_128): Adjust call of
10043 rs6000_split_logical.
10044 (*boolc<mode>3_internal1 for BOOL_128,
10045 *boolc<mode>3_internal2 for BOOL_128,
10046 *boolcc<mode>3_internal1 for BOOL_128,
10047 *boolcc<mode>3_internal2 for BOOL_128,
10048 *eqv<mode>3_internal1 for BOOL_128,
10049 *eqv<mode>3_internal2 for BOOL_128,
10050 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
10051 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
10052 clobber.
10053 (*vec_reload_and_reg_<mptrsize>): Delete.
10054
10055 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
10056
10057 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
10058 and split, *boolccsi3_internal3 and split): Delete.
10059 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
10060 *boolccdi3_internal3 and split): Delete.
10061 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
10062 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
10063
10064 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
10065
10066 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
10067 and split, *boolcsi3_internal3 and split): Delete.
10068 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
10069 *boolcdi3_internal3 and split): Delete.
10070 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
10071
10072 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
10073
10074 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
10075 <'u'>: Also support printing the low-order 16 bits.
10076 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
10077 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
10078 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
10079 *booldi3_internal3 and split): Delete.
10080 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
10081 *bool<mode>3_dot2): New.
10082 (two anonymous define_splits for non_logical_cint_operand): Merge.
10083
10084 2014-08-17 Marek Polacek <polacek@redhat.com>
10085 Manuel López-Ibáñez <manu@gcc.gnu.org>
10086
10087 PR c/62059
10088 * diagnostic.c (adjust_line): Add gcc_checking_assert.
10089 (diagnostic_show_locus): Don't print caret diagnostic
10090 if a column is larger than the line_width.
10091
10092 2014-08-17 Roman Gareev <gareevroman@gmail.com>
10093
10094 * common.opt: Make the ISL AST generator to be the main code generator
10095 of Graphite.
10096
10097 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
10098
10099 * wide-int.h (generic_wide_int): Declare as class instead of struct.
10100
10101 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
10102
10103 PR target/61641
10104 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
10105 Declare.
10106 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
10107 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
10108 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
10109 Define.
10110 * config/pa/pa.md (begin_brtab): Delete insn.
10111 (end_brtab): Likewise.
10112
10113 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
10114
10115 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
10116
10117 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
10118
10119 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
10120 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
10121 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
10122 (get_dynamic_type): Remove.
10123 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
10124 (clear_speculation): Bring to ipa-deivrt.h
10125 (get_class_context): Rename to ...
10126 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
10127 (contains_type_p): Update.
10128 (get_dynamic_type): Rename to ...
10129 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
10130 (possible_polymorphic_call_targets): UPdate.
10131 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
10132 * ipa-prop.c (ipa_analyze_call_uses): Update.
10133
10134 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
10135
10136 * doc/invoke.texi (SH options): Document missing processor variant
10137 options. Remove references to Hitachi. Undocument deprecated mspace
10138 option.
10139
10140 2014-08-15 Jason Merrill <jason@redhat.com>
10141
10142 * tree.c (type_hash_canon): Uncomment assert.
10143
10144 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
10145
10146 * input.h (in_system_header_at): Add comment.
10147
10148 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
10149
10150 PR fortran/44054
10151 * diagnostic.c (build_message_string): Make it extern.
10152 * diagnostic.h (build_message_string): Make it extern.
10153
10154 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
10155
10156 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
10157 load/store from/to non-floating class pseudo.
10158
10159 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
10160
10161 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
10162
10163 2014-08-15 Richard Biener <rguenther@suse.de>
10164
10165 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
10166 (get_constraint_for_ssa_var): Remove dead code.
10167 (get_constraint_for_1): Adjust.
10168 (find_what_var_points_to): Likewise.
10169 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
10170
10171 2014-08-15 Ilya Tocar <tocarip@gmail.com>
10172
10173 PR target/61878
10174 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
10175 (_mm512_mask_cmpge_epu32_mask): Ditto.
10176 (_mm512_cmpge_epu32_mask): Ditto.
10177 (_mm512_mask_cmpge_epi64_mask): Ditto.
10178 (_mm512_cmpge_epi64_mask): Ditto.
10179 (_mm512_mask_cmpge_epu64_mask): Ditto.
10180 (_mm512_cmpge_epu64_mask): Ditto.
10181 (_mm512_mask_cmple_epi32_mask): Ditto.
10182 (_mm512_cmple_epi32_mask): Ditto.
10183 (_mm512_mask_cmple_epu32_mask): Ditto.
10184 (_mm512_cmple_epu32_mask): Ditto.
10185 (_mm512_mask_cmple_epi64_mask): Ditto.
10186 (_mm512_cmple_epi64_mask): Ditto.
10187 (_mm512_mask_cmple_epu64_mask): Ditto.
10188 (_mm512_cmple_epu64_mask): Ditto.
10189 (_mm512_mask_cmplt_epi32_mask): Ditto.
10190 (_mm512_cmplt_epi32_mask): Ditto.
10191 (_mm512_mask_cmplt_epu32_mask): Ditto.
10192 (_mm512_cmplt_epu32_mask): Ditto.
10193 (_mm512_mask_cmplt_epi64_mask): Ditto.
10194 (_mm512_cmplt_epi64_mask): Ditto.
10195 (_mm512_mask_cmplt_epu64_mask): Ditto.
10196 (_mm512_cmplt_epu64_mask): Ditto.
10197 (_mm512_mask_cmpneq_epi32_mask): Ditto.
10198 (_mm512_mask_cmpneq_epu32_mask): Ditto.
10199 (_mm512_cmpneq_epu32_mask): Ditto.
10200 (_mm512_mask_cmpneq_epi64_mask): Ditto.
10201 (_mm512_cmpneq_epi64_mask): Ditto.
10202 (_mm512_mask_cmpneq_epu64_mask): Ditto.
10203 (_mm512_cmpneq_epu64_mask): Ditto.
10204 (_mm512_castpd_ps): Ditto.
10205 (_mm512_castpd_si512): Ditto.
10206 (_mm512_castps_pd): Ditto.
10207 (_mm512_castps_si512): Ditto.
10208 (_mm512_castsi512_ps): Ditto.
10209 (_mm512_castsi512_pd): Ditto.
10210 (_mm512_castpd512_pd128): Ditto.
10211 (_mm512_castps512_ps128): Ditto.
10212 (_mm512_castsi512_si128): Ditto.
10213 (_mm512_castpd512_pd256): Ditto.
10214 (_mm512_castps512_ps256): Ditto.
10215 (_mm512_castsi512_si256): Ditto.
10216 (_mm512_castpd128_pd512): Ditto.
10217 (_mm512_castps128_ps512): Ditto.
10218 (_mm512_castsi128_si512): Ditto.
10219 (_mm512_castpd256_pd512): Ditto.
10220 (_mm512_castps256_ps512): Ditto.
10221 (_mm512_castsi256_si512): Ditto.
10222 (_mm512_cmpeq_epu32_mask): Ditto.
10223 (_mm512_mask_cmpeq_epu32_mask): Ditto.
10224 (_mm512_mask_cmpeq_epu64_mask): Ditto.
10225 (_mm512_cmpeq_epu64_mask): Ditto.
10226 (_mm512_cmpgt_epu32_mask): Ditto.
10227 (_mm512_mask_cmpgt_epu32_mask): Ditto.
10228 (_mm512_mask_cmpgt_epu64_mask): Ditto.
10229 (_mm512_cmpgt_epu64_mask): Ditto.
10230 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
10231 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
10232 * config/i386/i386.c (enum ix86_builtins): Add
10233 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
10234 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
10235 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
10236 (bdesc_args): Add __builtin_ia32_si512_256si,
10237 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
10238 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
10239 __builtin_ia32_pd512_pd.
10240 (ix86_expand_args_builtin): Handle new FTYPEs.
10241 * config/i386/sse.md (castmode): Add 512-bit modes.
10242 (AVX512MODE2P): New.
10243 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
10244 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
10245
10246 2014-08-15 Richard Biener <rguenther@suse.de>
10247
10248 * fold-const.c (tree_swap_operands_p): Put all constants
10249 last, also strip sign-changing NOPs when considering further
10250 canonicalization. Canonicalize also when optimizing for size.
10251
10252 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10253
10254 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
10255 one_match > zero_match case to just before simple_sequence.
10256
10257 2014-08-15 Richard Biener <rguenther@suse.de>
10258
10259 * data-streamer.h (streamer_string_index, string_for_index):
10260 Remove.
10261 * data-streamer-out.c (streamer_string_index): Make static.
10262 * data-streamer-in.c (string_for_index): Likewise.
10263 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
10264 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
10265
10266 2014-08-15 Richard Biener <rguenther@suse.de>
10267
10268 PR tree-optimization/62031
10269 * tree-data-ref.c (dr_analyze_indices): Do not set
10270 DR_UNCONSTRAINED_BASE.
10271 (dr_may_alias_p): All indirect accesses have to go the
10272 formerly DR_UNCONSTRAINED_BASE path.
10273 * tree-data-ref.h (struct indices): Remove
10274 unconstrained_base member.
10275 (DR_UNCONSTRAINED_BASE): Remove.
10276
10277 2014-08-15 Jakub Jelinek <jakub@redhat.com>
10278
10279 PR middle-end/62092
10280 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
10281 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
10282 in OMP_CLAUSE_MAP in some outer target region.
10283
10284 2014-08-15 Bin Cheng <bin.cheng@arm.com>
10285
10286 * tree-ssa-loop-ivopts.c (ivopts_data): New field
10287 name_expansion_cache.
10288 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
10289 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
10290 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
10291 (difference_cannot_overflow_p): New parameter. Use affine
10292 expansion for equality check.
10293 (iv_elimination_compare_lt): Pass new argument.
10294
10295 2014-08-14 DJ Delorie <dj@redhat.com>
10296
10297 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
10298 variables to the accumulator.
10299
10300 * config/rl78/predicates.md (rl78_near_mem_operand): New.
10301 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
10302 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
10303 with far-far moves.
10304
10305 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
10306 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
10307 (umulqihi3_virt): Likewise.
10308 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
10309 (umulqihi3_real): Likewise.
10310
10311 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
10312
10313 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
10314
10315 PR tree-optimization/62091
10316 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
10317 function_entry_reached.
10318 (walk_aliased_vdefs): Clear it here.
10319 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
10320
10321 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
10322
10323 * ipa-utils.h (compare_virtual_tables): Declare.
10324 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
10325
10326 2014-08-14 Marek Polacek <polacek@redhat.com>
10327
10328 DR 458
10329 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
10330 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
10331
10332 2014-08-14 Tom de Vries <tom@codesourcery.com>
10333
10334 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
10335
10336 2014-08-14 Tom de Vries <tom@codesourcery.com>
10337
10338 PR rtl-optimization/62004
10339 PR rtl-optimization/62030
10340 * ifcvt.c (rtx_interchangeable_p): New function.
10341 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
10342 * emit-rtl.h (mem_attrs_eq_p): Declare.
10343
10344 2014-08-14 Roman Gareev <gareevroman@gmail.com>
10345
10346 * graphite-scop-detection.c:
10347 Add inclusion of cp-tree.h.
10348 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
10349 in case they are pointers to object types
10350
10351 2014-08-14 Richard Biener <rguenther@suse.de>
10352
10353 * BASE-VER: Change to 5.0.0
10354
10355 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
10356 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10357 Anna Tikhonova <anna.tikhonova@intel.com>
10358 Ilya Tocar <ilya.tocar@intel.com>
10359 Andrey Turetskiy <andrey.turetskiy@intel.com>
10360 Ilya Verbin <ilya.verbin@intel.com>
10361 Kirill Yukhin <kirill.yukhin@intel.com>
10362 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10363
10364 * config/i386/sse.md (define_mode_attr avx512): New.
10365 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
10366 V4DI modes.
10367 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
10368 (define_mode_attr ssse3_avx2): Ditto.
10369 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
10370 (define_mode_attr avx2_avx512bw): New.
10371 (define_mode_attr ssedoublemodelower): New.
10372 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
10373 V32HI, V64QI modes.
10374 (define_mode_attr ssebytemode): Allow V8DI modes.
10375 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
10376 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
10377 (define_mode_attr ssePSmode2): New.
10378 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
10379 V16HI, V32HI modes.
10380 (define_mode_attr dbpsadbwmode): New.
10381 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
10382 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
10383 (vi8_sse4_1_avx2_avx512): New.
10384 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
10385 mode attribute.
10386 (define_mode_attr blendbits): Move before its immediate use.
10387
10388 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
10389 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10390 Anna Tikhonova <anna.tikhonova@intel.com>
10391 Ilya Tocar <ilya.tocar@intel.com>
10392 Andrey Turetskiy <andrey.turetskiy@intel.com>
10393 Ilya Verbin <ilya.verbin@intel.com>
10394 Kirill Yukhin <kirill.yukhin@intel.com>
10395 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10396
10397 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
10398 * config/i386/subst.md
10399 (define_mode_iterator SUBST_V): Update.
10400 (define_mode_iterator SUBST_A): Ditto.
10401 (define_subst_attr "mask_operand7"): New.
10402 (define_subst_attr "mask_operand10"): New.
10403 (define_subst_attr "mask_operand_arg34") : New.
10404 (define_subst_attr "mask_expand_op3"): New.
10405 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
10406 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
10407 (define_subst_attr "mask_avx512vl_condition"): New.
10408 (define_subst_attr "round_mask_operand4"): Ditto.
10409 (define_subst_attr "round_mask_scalar_op3"): Delete.
10410 (define_subst_attr "round_mask_op4"): New.
10411 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
10412 V16SImode.
10413 (define_subst_attr "round_modev8sf_condition"): New.
10414 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
10415 <MODE>mode.
10416 (define_subst_attr "round_saeonly_mask_operand4"): New.
10417 (define_subst_attr "round_saeonly_mask_op4"): New.
10418 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
10419 V8DImode, V16SImode.
10420 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
10421 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
10422 (define_subst_attr "mask_expand4_args"): New.
10423 (define_subst "mask_expand4"): New.
10424
10425 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
10426 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10427 Anna Tikhonova <anna.tikhonova@intel.com>
10428 Ilya Tocar <ilya.tocar@intel.com>
10429 Andrey Turetskiy <andrey.turetskiy@intel.com>
10430 Ilya Verbin <ilya.verbin@intel.com>
10431 Kirill Yukhin <kirill.yukhin@intel.com>
10432 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10433
10434 * config/i386/i386.md
10435 (define_attr "isa"): Add avx512bw,noavx512bw.
10436 (define_attr "enabled"): Ditto.
10437 (define_split): Add 32/64-bit mask logic.
10438 (define_insn "*k<logic>qi"): New.
10439 (define_insn "*k<logic>hi"): New.
10440 (define_insn "*anddi_1"): Add mask version.
10441 (define_insn "*andsi_1"): Ditto.
10442 (define_insn "*<code><mode>_1"): Ditto.
10443 (define_insn "*<code>hi_1"): Ditto.
10444 (define_insn "kxnor<mode>"): New.
10445 (define_insn "kunpcksi"): New.
10446 (define_insn "kunpckdi"): New.
10447 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
10448 (define_insn "*one_cmplhi2_1"): Ditto.
10449
10450 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
10451 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10452 Anna Tikhonova <anna.tikhonova@intel.com>
10453 Ilya Tocar <ilya.tocar@intel.com>
10454 Andrey Turetskiy <andrey.turetskiy@intel.com>
10455 Ilya Verbin <ilya.verbin@intel.com>
10456 Kirill Yukhin <kirill.yukhin@intel.com>
10457 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10458
10459 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
10460 V32HImode.
10461
10462 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
10463 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10464 Anna Tikhonova <anna.tikhonova@intel.com>
10465 Ilya Tocar <ilya.tocar@intel.com>
10466 Andrey Turetskiy <andrey.turetskiy@intel.com>
10467 Ilya Verbin <ilya.verbin@intel.com>
10468 Kirill Yukhin <kirill.yukhin@intel.com>
10469 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10470
10471 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
10472 registers.
10473 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
10474 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
10475 xmm/ymm16+ when availble.
10476 * config/i386/i386.h
10477 (HARD_REGNO_NREGS): Add mask regs.
10478 (VALID_AVX512F_REG_MODE): Ditto.
10479 (VALID_AVX512F_REG_MODE) : Define.
10480 (VALID_MASK_AVX512BW_MODE): Ditto.
10481 (reg_class) (MASK_REG_P(X)): Define.
10482 * config/i386/i386.md: Do not split long moves with mask register,
10483 use kmovb if avx512bw is availible.
10484 (movdi_internal): Handle mask registers.
10485
10486 2014-08-14 Richard Biener <rguenther@suse.de>
10487
10488 PR tree-optimization/62081
10489 * tree-ssa-loop.c (pass_fix_loops): New pass.
10490 (pass_tree_loop::gate): Do not fixup loops here.
10491 * tree-pass.h (make_pass_fix_loops): Declare.
10492 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
10493
10494 2014-08-14 Richard Biener <rguenther@suse.de>
10495
10496 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
10497 (type_hash_canon): ... this and avoid 2nd lookup for the add.
10498
10499 2014-08-14 Richard Biener <rguenther@suse.de>
10500
10501 PR tree-optimization/62090
10502 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
10503 (fold_builtin_2): Do not fold sprintf.
10504 (fold_builtin_3): Likewise.
10505 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
10506 moved from builtins.c.
10507 (gimple_fold_builtin): Fold sprintf.
10508
10509 2014-08-14 Richard Biener <rguenther@suse.de>
10510
10511 PR rtl-optimization/62079
10512 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
10513 run cleanup_cfg.
10514
10515 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
10516
10517 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
10518 current_function_decl.
10519
10520 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
10521
10522 * cgraph.c (cgraph_node::function_symbol): Fix wrong
10523 cgraph_function_node to cgraph_node::function_symbol
10524 refactoring.
10525
10526 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
10527
10528 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
10529 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
10530
10531 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
10532
10533 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
10534 warning.
10535
10536 2014-08-13 Roman Gareev <gareevroman@gmail.com>
10537
10538 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
10539 generator.
10540
10541 2014-08-12 Jakub Jelinek <jakub@redhat.com>
10542
10543 PR target/62025
10544 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
10545 any registers that are used in mem_insn.
10546
10547 2014-08-12 Steve Ellcey <sellcey@mips.com>
10548
10549 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
10550
10551 2014-08-12 Steve Ellcey <sellcey@mips.com>
10552
10553 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
10554 (MULTILIB_DIRNAMES): Ditto.
10555 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
10556 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
10557 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
10558 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
10559 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
10560 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
10561
10562 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10563
10564 PR target/61413
10565 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
10566 of __ARM_SIZEOF_WCHAR_T.
10567
10568 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10569
10570 PR target/62098
10571 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
10572 Remove unnecessary attributes.
10573
10574 2014-08-12 Yury Gribov <y.gribov@samsung.com>
10575
10576 * internal-fn.c (init_internal_fns): Fix off-by-one.
10577
10578 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
10579 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10580 Anna Tikhonova <anna.tikhonova@intel.com>
10581 Ilya Tocar <ilya.tocar@intel.com>
10582 Andrey Turetskiy <andrey.turetskiy@intel.com>
10583 Ilya Verbin <ilya.verbin@intel.com>
10584 Kirill Yukhin <kirill.yukhin@intel.com>
10585 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10586
10587 * config/i386/i386.c (standard_sse_constant_opcode): Use
10588 vpxord/vpternlog if avx512 is availible.
10589
10590 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
10591
10592 PR middle-end/62103
10593 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
10594 bitfields, that is when size doesn't match the size of type or the
10595 size of the constructor.
10596
10597 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
10598
10599 * config/rs6000/constraints.md (wh constraint): New constraint,
10600 for FP registers if direct move is available.
10601 (wi constraint): New constraint, for VSX/FP registers that can
10602 handle 64-bit integers.
10603 (wj constraint): New constraint for VSX/FP registers that can
10604 handle 64-bit integers for direct moves.
10605 (wk constraint): New constraint for VSX/FP registers that can
10606 handle 64-bit doubles for direct moves.
10607 (wy constraint): Make documentation match implementation.
10608
10609 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
10610 scalar_in_vmx_p field to simplify tests of whether SFmode or
10611 DFmode can go in the Altivec registers.
10612 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
10613 (rs6000_setup_reg_addr_masks): Likewise.
10614 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
10615 field, and wh/wi/wj/wk constraints.
10616 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
10617 the wh/wi/wj/wk constraints.
10618 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
10619 upper registers, prefer VSX registers unless the operation is a
10620 memory operation with REG+OFFSET addressing.
10621
10622 * config/rs6000/vsx.md (VSr mode attribute): Add support for
10623 DImode. Change SFmode to use ww constraint instead of d to allow
10624 SF registers in the upper registers.
10625 (VSr2): Likewise.
10626 (VSr3): Likewise.
10627 (VSr5): Fix thinko in comment.
10628 (VSa): New mode attribute that is an alternative to wa, that
10629 returns the VSX register class that a mode can go in, but may not
10630 be the preferred register class.
10631 (VS_64dm): New mode attribute for appropriate register classes for
10632 referencing 64-bit elements of vectors for direct moves and normal
10633 moves.
10634 (VS_64reg): Likewise.
10635 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
10636 register allocator to only registers the data type can handle.
10637 (vsx_le_perm_load_<mode>): Likewise.
10638 (vsx_le_perm_store_<mode>): Likewise.
10639 (vsx_xxpermdi2_le_<mode>): Likewise.
10640 (vsx_xxpermdi4_le_<mode>): Likewise.
10641 (vsx_lxvd2x2_le_<mode>): Likewise.
10642 (vsx_lxvd2x4_le_<mode>): Likewise.
10643 (vsx_stxvd2x2_le_<mode>): Likewise.
10644 (vsx_add<mode>3): Likewise.
10645 (vsx_sub<mode>3): Likewise.
10646 (vsx_mul<mode>3): Likewise.
10647 (vsx_div<mode>3): Likewise.
10648 (vsx_tdiv<mode>3_internal): Likewise.
10649 (vsx_fre<mode>2): Likewise.
10650 (vsx_neg<mode>2): Likewise.
10651 (vsx_abs<mode>2): Likewise.
10652 (vsx_nabs<mode>2): Likewise.
10653 (vsx_smax<mode>3): Likewise.
10654 (vsx_smin<mode>3): Likewise.
10655 (vsx_sqrt<mode>2): Likewise.
10656 (vsx_rsqrte<mode>2): Likewise.
10657 (vsx_tsqrt<mode>2_internal): Likewise.
10658 (vsx_fms<mode>4): Likewise.
10659 (vsx_nfma<mode>4): Likewise.
10660 (vsx_eq<mode>): Likewise.
10661 (vsx_gt<mode>): Likewise.
10662 (vsx_ge<mode>): Likewise.
10663 (vsx_eq<mode>_p): Likewise.
10664 (vsx_gt<mode>_p): Likewise.
10665 (vsx_ge<mode>_p): Likewise.
10666 (vsx_xxsel<mode>): Likewise.
10667 (vsx_xxsel<mode>_uns): Likewise.
10668 (vsx_copysign<mode>3): Likewise.
10669 (vsx_float<VSi><mode>2): Likewise.
10670 (vsx_floatuns<VSi><mode>2): Likewise.
10671 (vsx_fix_trunc<mode><VSi>2): Likewise.
10672 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
10673 (vsx_x<VSv>r<VSs>i): Likewise.
10674 (vsx_x<VSv>r<VSs>ic): Likewise.
10675 (vsx_btrunc<mode>2): Likewise.
10676 (vsx_b2trunc<mode>2): Likewise.
10677 (vsx_floor<mode>2): Likewise.
10678 (vsx_ceil<mode>2): Likewise.
10679 (vsx_<VS_spdp_insn>): Likewise.
10680 (vsx_xscvspdp): Likewise.
10681 (vsx_xvcvspuxds): Likewise.
10682 (vsx_float_fix_<mode>2): Likewise.
10683 (vsx_set_<mode>): Likewise.
10684 (vsx_extract_<mode>_internal1): Likewise.
10685 (vsx_extract_<mode>_internal2): Likewise.
10686 (vsx_extract_<mode>_load): Likewise.
10687 (vsx_extract_<mode>_store): Likewise.
10688 (vsx_splat_<mode>): Likewise.
10689 (vsx_xxspltw_<mode>): Likewise.
10690 (vsx_xxspltw_<mode>_direct): Likewise.
10691 (vsx_xxmrghw_<mode>): Likewise.
10692 (vsx_xxmrglw_<mode>): Likewise.
10693 (vsx_xxsldwi_<mode>): Likewise.
10694 (vsx_xscvdpspn): Tighten constraints to only use register classes
10695 the types use.
10696 (vsx_xscvspdpn): Likewise.
10697 (vsx_xscvdpspn_scalar): Likewise.
10698
10699 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
10700 wj, and wk constraints.
10701 (GPR_REG_CLASS_P): New helper macro for register classes targeting
10702 general purpose registers.
10703
10704 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
10705 direct moves.
10706 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
10707 DImode instead of wm. Use wk constraint for direct move of DFmode
10708 instead of wm.
10709 (extendsidi2_lfiwax): Likewise.
10710 (lfiwax): Likewise.
10711 (lfiwzx): Likewise.
10712 (movdi_internal64): Likewise.
10713
10714 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
10715 wk constraints. Make the wy constraint documentation match them
10716 implementation.
10717
10718 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
10719
10720 Replacement of isl_int by isl_val
10721 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
10722 (compute_bounds_for_param): use isl_val instead of isl_int
10723 (compute_bounds_for_loop): likewise
10724 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
10725 (build_linearized_memory_access): use isl_val instead of isl_int
10726 (pdr_stride_in_loop): likewise
10727 * graphite-optimize-isl.c:
10728 (getPrevectorMap): use isl_val instead of isl_int
10729 * graphite-poly.c:
10730 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
10731 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
10732 (extern the_isl_ctx): declare
10733 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
10734 (extract_affine_gmp): likewise
10735 (wrap): likewise
10736 (build_loop_iteration_domains): likewise
10737 (add_param_constraints): likewise
10738
10739 2014-08-11 Richard Biener <rguenther@suse.de>
10740
10741 PR tree-optimization/62075
10742 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
10743 handle uses in patterns.
10744
10745 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
10746 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10747 Anna Tikhonova <anna.tikhonova@intel.com>
10748 Ilya Tocar <ilya.tocar@intel.com>
10749 Andrey Turetskiy <andrey.turetskiy@intel.com>
10750 Ilya Verbin <ilya.verbin@intel.com>
10751 Kirill Yukhin <kirill.yukhin@intel.com>
10752 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10753
10754 * common/config/i386/i386-common.c
10755 (OPTION_MASK_ISA_AVX512VL_SET): Define.
10756 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
10757 (ix86_handle_option): Handle OPT_mavx512vl.
10758 * config/i386/cpuid.h (bit_AVX512VL): Define.
10759 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
10760 set -mavx512vl accordingly.
10761 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10762 OPTION_MASK_ISA_AVX512VL.
10763 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
10764 (ix86_option_override_internal): Define PTA_AVX512VL, handle
10765 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
10766 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
10767 * config/i386/i386.h (TARGET_AVX512VL): Define.
10768 (TARGET_AVX512VL_P(x)): Ditto.
10769 * config/i386/i386.opt: Add mavx512vl.
10770
10771 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
10772
10773 PR tree-optimization/62073
10774 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
10775 a basic block.
10776
10777 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
10778 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10779 Anna Tikhonova <anna.tikhonova@intel.com>
10780 Ilya Tocar <ilya.tocar@intel.com>
10781 Andrey Turetskiy <andrey.turetskiy@intel.com>
10782 Ilya Verbin <ilya.verbin@intel.com>
10783 Kirill Yukhin <kirill.yukhin@intel.com>
10784 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10785
10786 * common/config/i386/i386-common.c
10787 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
10788 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
10789 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
10790 (ix86_handle_option): Handle OPT_mavx512bw.
10791 * config/i386/cpuid.h (bit_AVX512BW): Define.
10792 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
10793 set -mavx512bw accordingly.
10794 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10795 OPTION_MASK_ISA_AVX512BW.
10796 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
10797 (ix86_option_override_internal): Define PTA_AVX512BW, handle
10798 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
10799 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
10800 * config/i386/i386.h (TARGET_AVX512BW): Define.
10801 (TARGET_AVX512BW_P(x)): Ditto.
10802 * config/i386/i386.opt: Add mavx512bw.
10803
10804 2014-08-11 Richard Biener <rguenther@suse.de>
10805
10806 PR tree-optimization/62070
10807 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
10808 Remove SSA checking.
10809
10810 2014-08-11 Yury Gribov <y.gribov@samsung.com>
10811
10812 * asan.c (asan_check_flags): New enum.
10813 (build_check_stmt_with_calls): Removed function.
10814 (build_check_stmt): Split inlining logic to
10815 asan_expand_check_ifn.
10816 (instrument_derefs): Rename parameter.
10817 (instrument_mem_region_access): Rename parameter.
10818 (instrument_strlen_call): Likewise.
10819 (asan_expand_check_ifn): New function.
10820 (asan_instrument): Remove old code.
10821 (pass_sanopt::execute): Change handling of
10822 asan-instrumentation-with-call-threshold.
10823 (asan_clear_shadow): Fix formatting.
10824 (asan_function_start): Likewise.
10825 (asan_emit_stack_protection): Likewise.
10826 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
10827 Update description.
10828 * internal-fn.c (expand_ASAN_CHECK): New function.
10829 * internal-fn.def (ASAN_CHECK): New internal function.
10830 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
10831 Update description.
10832 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
10833 * tree.c: Small comment fix.
10834
10835 2014-08-11 Yury Gribov <y.gribov@samsung.com>
10836
10837 * gimple.c (gimple_call_fnspec): Support internal functions.
10838 (gimple_call_return_flags): Use const.
10839 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
10840 * internal-fn.def: Add fnspec information.
10841 * internal-fn.h (internal_fn_fnspec): New function.
10842 (init_internal_fns): Declare new function.
10843 * internal-fn.c (internal_fn_fnspec_array): New global variable.
10844 (init_internal_fns): New function.
10845 * tree-core.h: Update macro call.
10846 * tree.c (build_common_builtin_nodes): Initialize internal fns.
10847
10848 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
10849
10850 * lto-streamer.h (struct output_block::symbol): Change from
10851 struct symtab_node to plain symtab_node.
10852 (referenced_from_this_partition_p): Change first parameter
10853 from struct symtab_node to plain symtab_node.
10854
10855 2014-08-10 Marek Polacek <polacek@redhat.com>
10856
10857 PR c/51849
10858 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
10859
10860 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
10861
10862 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
10863 DECL correctly; do not give up on types in static storage.
10864
10865 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
10866
10867 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
10868
10869 2014-08-09 Roman Gareev <gareevroman@gmail.com>
10870
10871 * graphite-isl-ast-to-gimple.c:
10872 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
10873
10874 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
10875
10876 2014-08-08 Guozhi Wei <carrot@google.com>
10877
10878 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
10879
10880 2014-08-08 Cary Coutant <ccoutant@google.com>
10881
10882 * dwarf2out.c (get_skeleton_type_unit): Remove.
10883 (output_skeleton_debug_sections): Remove skeleton type units.
10884 (output_comdat_type_unit): Likewise.
10885 (dwarf2out_finish): Likewise.
10886
10887 2014-08-07 Yi Yang <ahyangyi@google.com>
10888
10889 * predict.c (expr_expected_value_1): Remove the redundant assignment.
10890
10891 2014-08-08 Richard Biener <rguenther@suse.de>
10892
10893 * lto-streamer.h (struct lto_input_block): Make it a class
10894 with a constructor.
10895 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
10896 (struct lto_function_header, struct lto_simple_header,
10897 struct lto_simple_header_with_strings,
10898 struct lto_decl_header, struct lto_function_header): Make
10899 a simple inheritance hieararchy. Remove unused fields.
10900 (struct lto_asm_header): Remove.
10901 * lto-streamer-out.c (produce_asm): Adjust.
10902 (lto_output_toplevel_asms): Likewise.
10903 (produce_asm_for_decls): Likewise.
10904 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
10905 * data-streamer-in.c (string_for_index): Likewise.
10906 * ipa-inline-analysis.c (inline_read_section): Likewise.
10907 * ipa-prop.c (ipa_prop_read_section): Likewise.
10908 (read_replacements_section): Likewise.
10909 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
10910 * lto-section-in.c (lto_create_simple_input_block): Likewise.
10911 (lto_destroy_simple_input_block): Likewise.
10912 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
10913 (lto_input_toplevel_asms): Likewise.
10914
10915 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
10916 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10917 Anna Tikhonova <anna.tikhonova@intel.com>
10918 Ilya Tocar <ilya.tocar@intel.com>
10919 Andrey Turetskiy <andrey.turetskiy@intel.com>
10920 Ilya Verbin <ilya.verbin@intel.com>
10921 Kirill Yukhin <kirill.yukhin@intel.com>
10922 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10923
10924 * common/config/i386/i386-common.c
10925 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
10926 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
10927 (ix86_handle_option): Handle OPT_mavx512dq.
10928 * config/i386/cpuid.h (bit_AVX512DQ): Define.
10929 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
10930 set -mavx512dq accordingly.
10931 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10932 OPTION_MASK_ISA_AVX512DQ.
10933 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
10934 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
10935 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
10936 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
10937 * config/i386/i386.h (TARGET_AVX512DQ): Define.
10938 (TARGET_AVX512DQ_P(x)): Ditto.
10939 * config/i386/i386.opt: Add mavx512dq.
10940
10941 2014-08-08 Richard Biener <rguenther@suse.de>
10942
10943 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
10944 target_percent, target_percent_s): Export.
10945 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
10946 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
10947 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
10948 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
10949 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
10950 Move to gimple-fold.c.
10951 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
10952 strcat and strcpy.
10953 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
10954 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
10955 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
10956 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
10957 (rewrite_call_expr_array): Remove.
10958 (fold_builtin_sprintf_chk): Likewise.
10959 (fold_builtin_snprintf_chk): Likewise.
10960 (fold_builtin_varargs): Remove handling of sprintf_chk,
10961 vsprintf_chk, snprintf_chk and vsnprintf_chk.
10962 (gimple_fold_builtin_sprintf_chk): Remove.
10963 (gimple_fold_builtin_snprintf_chk): Likewise.
10964 (gimple_fold_builtin_varargs): Likewise.
10965 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
10966 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
10967 * gimple.c (gimple_seq_add_seq_without_update): New function.
10968 * gimple.h (gimple_seq_add_seq_without_update): Declare.
10969 * gimple-fold.c: Include output.h.
10970 (gsi_replace_with_seq_vops): New function, split out from ...
10971 (gimplify_and_update_call_from_tree): ... here.
10972 (replace_call_with_value): New function.
10973 (replace_call_with_call_and_fold): Likewise.
10974 (var_decl_component_p): Moved from builtins.c.
10975 (gimple_fold_builtin_memory_op): Moved from builtins.c
10976 fold_builtin_memory_op and rewritten to GIMPLE.
10977 (gimple_fold_builtin_memset): Likewise.
10978 (gimple_fold_builtin_strcpy): Likewise.
10979 (gimple_fold_builtin_strncpy): Likewise.
10980 (gimple_fold_builtin_strcat): Likewise.
10981 (gimple_fold_builtin_fputs): Likewise.
10982 (gimple_fold_builtin_memory_chk): Likewise.
10983 (gimple_fold_builtin_stxcpy_chk): Likewise.
10984 (gimple_fold_builtin_stxncpy_chk): Likewise.
10985 (gimple_fold_builtin_snprintf_chk): Likewise.
10986 (gimple_fold_builtin_sprintf_chk): Likewise.
10987 (gimple_fold_builtin_strlen): New function.
10988 (gimple_fold_builtin_with_strlen): New function split out from
10989 gimple_fold_builtin.
10990 (gimple_fold_builtin): Change signature and handle
10991 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
10992 here. Call gimple_fold_builtin_with_strlen.
10993 (gimple_fold_call): Adjust.
10994
10995 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
10996
10997 * calls.c (precompute_arguments): Check
10998 promoted_for_signed_and_unsigned_p and set the promoted mode.
10999 (promoted_for_signed_and_unsigned_p): New function.
11000 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
11001 and set the promoted mode.
11002 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
11003 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
11004 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
11005
11006
11007 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
11008
11009 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
11010 instead of SUBREG_PROMOTED_UNSIGNED_SET.
11011 (expand_call): Likewise.
11012 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
11013 to get promoted mode.
11014 * combine.c (record_promoted_value): Skip > 0 comparison with
11015 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
11016 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
11017 of SUBREG_PROMOTED_UNSIGNED_P.
11018 (convert_modes): Likewise.
11019 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
11020 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
11021 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
11022 SUBREG_PROMOTED_UNSIGNED_SET.
11023 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
11024 instead of SUBREG_PROMOTED_UNSIGNED_SET.
11025 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
11026 SUBREG_PROMOTED_SET.
11027 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
11028 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
11029 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
11030 of SUBREG_PROMOTED_UNSIGNED_P.
11031 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
11032 (SUBREG_PROMOTED_SET): New define.
11033 (SUBREG_PROMOTED_GET): Likewise.
11034 (SUBREG_PROMOTED_SIGN): Likewise.
11035 (SUBREG_PROMOTED_SIGNED_P): Likewise.
11036 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
11037 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
11038 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
11039 instead of SUBREG_PROMOTED_UNSIGNED_GET.
11040 (nonzero_bits1): Skip > 0 comparison with the results as
11041 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
11042 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
11043 of !SUBREG_PROMOTED_UNSIGNED_P.
11044 * simplify-rtx.c (simplify_unary_operation_1): Use new
11045 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
11046 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
11047 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
11048 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
11049
11050 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
11051
11052 * ipa-devirt.c: Include gimple-pretty-print.h
11053 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
11054 further tests.
11055 (decl_maybe_in_construction_p): Fix conditional on cdtor check
11056 (get_polymorphic_call_info): Fix return value
11057 (type_change_info): New sturcture based on ipa-prop
11058 variant.
11059 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
11060 based on ipa-prop variant.
11061 (extr_type_from_vtbl_ptr_store): New function
11062 based on ipa-prop variant.
11063 (record_known_type): New function.
11064 (check_stmt_for_type_change): New function.
11065 (get_dynamic_type): New function.
11066 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
11067 * tree-ssa-pre.c: ipa-utils.h
11068 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
11069 machinery; sanity check with ipa-prop devirtualization.
11070 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
11071 polymorphic flag.
11072
11073 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
11074
11075 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
11076 * alias.c, cfgexpand.c, cgraphbuild.c,
11077 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
11078 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
11079 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
11080 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
11081 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
11082 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
11083 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
11084 dse.c, except.c, gengtype.c, gimple-expr.c,
11085 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
11086 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
11087 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
11088 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
11089 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
11090 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
11091 pointer-set.h.
11092 * pointer-set.c: Remove file.
11093 * pointer-set.h: Remove file.
11094
11095 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11096
11097 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
11098 * config/arm/types.md (f_sels, f_seld): Delete.
11099
11100 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11101
11102 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
11103 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
11104 (aarch64_movdi_<mode>high): Likewise.
11105 (aarch64_mov<mode>high_di): Likewise.
11106 (aarch64_movdi_<mode>low): Likewise.
11107 (aarch64_mov<mode>low_di): Likewise.
11108 (aarch64_movtilow_tilow): Likewise.
11109 Add comment explaining usage of fp,simd attributes and of
11110 TARGET_FLOAT and TARGET_SIMD.
11111
11112 2014-08-07 Ian Bolton <ian.bolton@arm.com>
11113 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11114
11115 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
11116 Use MOVN when one of the half-words is 0xffff.
11117
11118 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
11119
11120 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
11121
11122 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
11123
11124 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
11125 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
11126 (rfs_str): String corresponding to RFS_* constants.
11127 (rank_for_schedule_stats_t): New typedef.
11128 (rank_for_schedule_stats): New static variable.
11129 (rfs_result): New static function.
11130 (rank_for_schedule): Track statistics for deciding heuristics.
11131 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
11132 static functions.
11133 (ready_sort): Use them for debug printouts.
11134 (schedule_block): Init statistics state. Print statistics on
11135 rank_for_schedule decisions.
11136
11137 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
11138
11139 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
11140
11141 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
11142
11143 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
11144 constraint.
11145
11146 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
11147
11148 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
11149 function to not conflict.
11150 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
11151 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
11152 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
11153 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
11154 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
11155 of pointer_map.
11156
11157 2014-08-07 Marek Polacek <polacek@redhat.com>
11158
11159 * fold-const.c (fold_binary_loc): Add folding of
11160 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
11161
11162 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
11163
11164 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
11165 instead of type size.
11166 (ASM_FINISH_DECLARE_OBJECT): Likewise.
11167
11168 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
11169
11170 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
11171 (*thumb1_movqi_insn): Likewise.
11172 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
11173
11174 2014-08-07 Tom de Vries <tom@codesourcery.com>
11175
11176 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
11177 (glibc_2_11_or_earlier): Remove effective-target keywords.
11178
11179 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11180
11181 * config/arm/arm.c (bdesc_2arg): Fix typo.
11182 (arm_atomic_assign_expand_fenv): Remove The default implementation.
11183
11184 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
11185
11186 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
11187
11188 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
11189
11190 PR debug/61923
11191 * haifa-sched.c (advance_one_cycle): Fix dump.
11192 (schedule_block): Don't advance cycle if we are already at the
11193 beginning of the cycle.
11194
11195 2014-08-06 Martin Jambor <mjambor@suse.cz>
11196
11197 PR ipa/61393
11198 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
11199
11200 2014-08-06 Richard Biener <rguenther@suse.de>
11201
11202 PR lto/62034
11203 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
11204 SCCs here.
11205 (lto_input_tree): Pop SCCs here.
11206
11207 2014-08-06 Richard Biener <rguenther@suse.de>
11208
11209 PR tree-optimization/61320
11210 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
11211 handle misaligned loads.
11212
11213 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
11214
11215 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
11216 (aarch64_expand_vec_perm_const): Check for dup before zip.
11217
11218 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11219
11220 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
11221 CONST_INT_P instead of GET_CODE and compare.
11222 (aarch64_select_cc_mode): Likewise.
11223 (aarch64_print_operand): Likewise.
11224 (aarch64_rtx_costs): Likewise.
11225 (aarch64_simd_valid_immediate): Likewise.
11226 (aarch64_simd_check_vect_par_cnst_half): Likewise.
11227 (aarch64_simd_emit_pair_result_insn): Likewise.
11228
11229 2014-08-05 David Malcolm <dmalcolm@redhat.com>
11230
11231 * gdbhooks.py (find_gcc_source_dir): New helper function.
11232 (class PassNames): New class, locating and parsing passes.def.
11233 (class BreakOnPass): New command "break-on-pass".
11234
11235 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
11236
11237 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
11238 getting olde.
11239
11240 2014-08-05 Richard Biener <rguenther@suse.de>
11241
11242 PR rtl-optimization/61672
11243 * emit-rtl.h (mem_attrs_eq_p): Declare.
11244 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
11245 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
11246 * cfgcleanup.c (merge_memattrs): Likewise.
11247 Include emit-rtl.h.
11248
11249 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11250
11251 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
11252 rather than singleton vectors.
11253 (vqdmlsls_lane_s32): Likewise.
11254
11255 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11256
11257 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
11258 Use VSDQ_HSI mode iterator.
11259 (aarch64_sqrdmulh_laneq<mode>): Likewise.
11260 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
11261 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
11262 Use BUILTIN_VDQHS macro.
11263 (sqrdmulh_laneq): Likewise.
11264 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
11265 (vqdmlals_laneq_s32): Likewise.
11266 (vqdmlslh_laneq_s16): Likewise.
11267 (vqdmlsls_laneq_s32): Likewise.
11268 (vqdmulhh_laneq_s16): Likewise.
11269 (vqdmulhs_laneq_s32): Likewise.
11270 (vqrdmulhh_laneq_s16): Likewise.
11271 (vqrdmulhs_laneq_s32): Likewise.
11272
11273 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11274
11275 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
11276 (vmuld_laneq_f64): Likewise.
11277 (vmuls_laneq_f32): Likewise.
11278 (vmul_n_f64): Likewise.
11279 (vmuld_lane_f64): Reimplement in C.
11280 (vmuls_lane_f32): Likewise.
11281
11282 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11283
11284 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
11285 to reservation.
11286 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
11287
11288 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11289
11290 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
11291 (rbitsi2): Likewise.
11292 (*arm_rev): Set predicable and predicable_short_it attributes.
11293
11294 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11295
11296 * convert.c (convert_to_integer): Guard transformation to lrint by
11297 -fno-math-errno.
11298
11299 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
11300
11301 * config/aarch64/aarch64-builtins.c
11302 (aarch64_simd_builtin_type_mode): Delete.
11303 (v8qi_UP): Remap to V8QImode.
11304 (v4hi_UP): Remap to V4HImode.
11305 (v2si_UP): Remap to V2SImode.
11306 (v2sf_UP): Remap to V2SFmode.
11307 (v1df_UP): Remap to V1DFmode.
11308 (di_UP): Remap to DImode.
11309 (df_UP): Remap to DFmode.
11310 (v16qi_UP):V16QImode.
11311 (v8hi_UP): Remap to V8HImode.
11312 (v4si_UP): Remap to V4SImode.
11313 (v4sf_UP): Remap to V4SFmode.
11314 (v2di_UP): Remap to V2DImode.
11315 (v2df_UP): Remap to V2DFmode.
11316 (ti_UP): Remap to TImode.
11317 (ei_UP): Remap to EImode.
11318 (oi_UP): Remap to OImode.
11319 (ci_UP): Map to CImode.
11320 (xi_UP): Remap to XImode.
11321 (si_UP): Remap to SImode.
11322 (sf_UP): Remap to SFmode.
11323 (hi_UP): Remap to HImode.
11324 (qi_UP): Remap to QImode.
11325 (aarch64_simd_builtin_datum): Make mode a machine_mode.
11326 (VAR1): Build builtin name.
11327 (aarch64_init_simd_builtins): Remove dead code.
11328
11329 2014-08-05 Roman Gareev <gareevroman@gmail.com>
11330
11331 * graphite-isl-ast-to-gimple.c:
11332 (set_options): New function.
11333 (scop_to_isl_ast): Add calling of set_options.
11334
11335 2014-08-05 Jakub Jelinek <jakub@redhat.com>
11336
11337 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
11338 (analyze_iv_to_split_insn): Don't initialize them.
11339 (get_ivts_expr): Removed.
11340 (allocate_basic_variable, insert_base_initialization): Use
11341 SET_SRC instead of *get_ivts_expr.
11342 (split_iv): Use &SET_SRC instead of get_ivts_expr.
11343
11344 2014-08-05 Roman Gareev <gareevroman@gmail.com>
11345
11346 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
11347 (translate_isl_ast_for_loop): Add checking of the
11348 flag_loop_parallelize_all.
11349 (ast_build_before_for): New function.
11350 (scop_to_isl_ast): Add checking of the
11351 flag_loop_parallelize_all.
11352 * graphite-dependences.c: Move the defenition of the
11353 scop_get_dependences from graphite-optimize-isl.c to this file.
11354 (apply_schedule_on_deps): Add checking of the ux's emptiness.
11355 (carries_deps): Add checking of the x's value.
11356 * graphite-optimize-isl.c: Move the defenition of the
11357 scop_get_dependences to graphite-dependences.c.
11358 * graphite-poly.h: Add declarations of scop_get_dependences
11359 and carries_deps.
11360
11361 2014-08-04 Rohit <rohitarulraj@freescale.com>
11362
11363 PR target/60102
11364 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
11365 names.
11366 (alt_reg_names): Likewise.
11367 (rs6000_dwarf_register_span): For SPE high registers, replace
11368 dwarf register numbers with GCC hard register numbers.
11369 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
11370 (rs6000_dbx_register_number): For SPE high registers, return dwarf
11371 register number for the corresponding GCC hard register number.
11372 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
11373 newly added GCC hard register numbers for SPE high registers.
11374 (DWARF_FRAME_REGISTERS): Likewise.
11375 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
11376 (DWARF_FRAME_REGNUM): Likewise.
11377 (FIXED_REGISTERS): Likewise.
11378 (CALL_USED_REGISTERS): Likewise.
11379 (CALL_REALLY_USED_REGISTERS): Likewise.
11380 (REG_ALLOC_ORDER): Likewise.
11381 (enum reg_class): Likewise.
11382 (REG_CLASS_NAMES): Likewise.
11383 (REG_CLASS_CONTENTS): Likewise.
11384 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
11385
11386 2014-08-04 Richard Biener <rguenther@suse.de>
11387
11388 * gimple-fold.h (gimple_fold_builtin): Remove.
11389 * gimple-fold.c (gimple_fold_builtin): Make static.
11390 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
11391 fold_stmt, not gimple_fold_builtin.
11392
11393 2014-08-04 Martin Liska <mliska@suse.cz>
11394
11395 * cgraph.h (csi_end_p): Removed.
11396 (csi_next): Likewise.
11397 (csi_node): Likewise.
11398 (csi_start): Likewise.
11399 (cgraph_node_in_set_p): Likewise.
11400 (cgraph_node_set_size): Likewise.
11401 (vsi_end_p): Likewise.
11402 (vsi_next): Likewise.
11403 (vsi_node): Likewise.
11404 (vsi_start): Likewise.
11405 (varpool_node_set_size): Likewise.
11406 (cgraph_node_set_nonempty_p): Likewise.
11407 (varpool_node_set_nonempty_p): Likewise.
11408 * cgraphunit.c (cgraph_process_new_functions): vec replaces
11409 cgraph_node_set.
11410 * ipa-inline-transform.c: Likewise.
11411 * ipa-utils.c (cgraph_node_set_new): Removed.
11412 (cgraph_node_set_add): Likewise.
11413 (cgraph_node_set_remove): Likewise.
11414 (cgraph_node_set_find): Likewise.
11415 (dump_cgraph_node_set): Likewise.
11416 (debug_cgraph_node_set): Likewise.
11417 (free_cgraph_node_set): Likewise.
11418 (varpool_node_set_new): Likewise.
11419 (varpool_node_set_add): Likewise.
11420 (varpool_node_set_remove): Likewise.
11421 (varpool_node_set_find): Likewise.
11422 (dump_varpool_node_set): Likewise.
11423 (free_varpool_node_set): Likewise.
11424 (debug_varpool_node_set): Likewise.
11425 * tree-emutls.c (struct tls_var_data):
11426 (emutls_index): Removed.
11427 (emutls_decl): Likewise.
11428 (gen_emutls_addr): Function implementation uses newly added
11429 hash_map<varpool_node *, tls_var_data>.
11430 (clear_access_vars): Likewise.
11431 (create_emultls_var): Likewise.
11432 (ipa_lower_emutls): Likewise.
11433 (reset_access): New function.
11434
11435 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11436
11437 * config/i386/i386.c (ix86_option_override_internal): Add
11438 PTA_RDRND and PTA_MOVBE for bdver4.
11439
11440 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11441 James Greenhalgh <james.greenhalgh@arm.com>
11442
11443 * doc/md.texi (clrsb): Document.
11444 (clz): Change reference to x into operand 1.
11445 (ctz): Likewise.
11446 (popcount): Likewise.
11447
11448 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11449
11450 PR target/61713
11451 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
11452 move to subtarget in serial version if result is ignored.
11453
11454 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11455 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11456
11457 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
11458 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
11459 (sched_analyze_insn): Update use of try_group_insn to
11460 sched_macro_fuse_insns.
11461 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
11462 arguments that are not conditional jumps.
11463
11464 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11465
11466 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
11467 family information. Handle BTVER2 cpu with cpuid family value.
11468
11469 2014-08-04 Tom de Vries <tom@codesourcery.com>
11470
11471 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
11472 (glibc_2_11_or_earlier): Document effective-target keywords.
11473
11474 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
11475
11476 * ipa-devirt.c (odr_type_warn_count): Add type.
11477 (possible_polymorphic_call_targets): Set it.
11478 (ipa_devirt): Use it.
11479
11480 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
11481
11482 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
11483 Document.
11484 * ipa-devirt.c: Include hash-map.h
11485 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
11486 (clear_speculation): Break out of ...
11487 (get_class_context): ... here; speed up handling obviously useless
11488 speculations.
11489 (odr_type_warn_count, decl_warn_count): New structures.
11490 (final_warning_record): New structure.
11491 (final_warning_records): New static variable.
11492 (possible_polymorphic_call_targets): Cleanup handling of
11493 speculative info; do not build speculation when user do not care;
11494 record info about warnings when asked for.
11495 (add_decl_warning): New function.
11496 (type_warning_cmp): New function.
11497 (decl_warning_cmp): New function.
11498 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
11499 (gate): Enable pass when warnings are requested.
11500 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
11501 options.
11502
11503 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
11504
11505 * hash-map.h (default_hashmap_traits::mark_key_deleted):
11506 Fix cast.
11507 (hash_map::remove): New method.
11508 (hash_map::traverse): New method.
11509 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
11510 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
11511 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
11512 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
11513 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
11514 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
11515 pointer_map.
11516
11517 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
11518
11519 * hash-set.h: new File.
11520 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
11521 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
11522 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
11523 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
11524 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
11525 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
11526 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
11527 varpool.c: Use hash_set instead of pointer_set.
11528
11529 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
11530
11531 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
11532
11533 2014-08-01 Jiong Wang <jiong.wang@arm.com>
11534
11535 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
11536 for frame access when strict_p is false.
11537
11538 2014-08-01 Renlin Li <renlin.li@arm.com>
11539 2014-08-01 Jiong Wang <jiong.wang@arm.com>
11540
11541 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
11542 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
11543 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
11544 Declaration.
11545 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
11546 predicate.
11547 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
11548 aarch64_mem_pair_offset.
11549
11550 2014-08-01 Jiong Wang <jiong.wang@arm.com>
11551
11552 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
11553 offset.
11554 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
11555 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
11556
11557 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
11558
11559 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
11560
11561 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
11562
11563 PR regression/61510
11564 * cgraphunit.c (analyze_functions): Use get_create rather than get
11565 for decls which are clones of abstract functions.
11566
11567 2014-08-01 Martin Liska <mliska@suse.cz>
11568
11569 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
11570 * ipa-prop.h (count_formal_params): Global function created from static.
11571 * ipa-prop.c (count_formal_params): Likewise.
11572 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
11573 profiles for semantically equivalent functions.
11574 * passes.c (do_per_function): If we load body of a function
11575 during WPA, this condition should behave same.
11576 * varpool.c (ctor_for_folding): More tolerant assert for variable
11577 aliases created during WPA.
11578
11579 2014-08-01 Martin Liska <mliska@suse.cz>
11580
11581 * doc/invoke.texi (Options That Control Optimization): Documentation
11582 for -foptimize-strlen introduced. Optimization levels default options
11583 fixed.
11584
11585 2014-08-01 Jakub Jelinek <jakub@redhat.com>
11586
11587 * opts.c (common_handle_option): Handle -fsanitize=alignment.
11588 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
11589 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
11590 type to bool.
11591 * stor-layout.h (min_align_of_type): New prototype.
11592 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
11593 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
11594 check.
11595 * ubsan.c: Include builtins.h.
11596 (ubsan_expand_bounds_ifn): Change return type to bool,
11597 always return true.
11598 (ubsan_expand_null_ifn): Change return type to bool, change
11599 argument to gimple_stmt_iterator *. Handle both null and alignment
11600 sanitization, take type from ckind argument's type rather than
11601 first argument.
11602 (instrument_member_call): Removed.
11603 (instrument_mem_ref): Remove t argument, add mem and base arguments.
11604 Handle both null and alignment sanitization, don't say whole
11605 struct access is member access. Build 3 argument IFN_UBSAN_NULL
11606 call instead of 2 argument.
11607 (instrument_null): Adjust instrument_mem_ref caller. Don't
11608 instrument calls here.
11609 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
11610 like SANITIZE_NULL.
11611 * stor-layout.c (min_align_of_type): New function.
11612 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
11613 Or it into SANITIZE_UNDEFINED.
11614 * doc/invoke.texi (-fsanitize=alignment): Document.
11615
11616 2014-07-31 Andi Kleen <ak@linux.intel.com>
11617
11618 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
11619
11620 2014-07-31 Andi Kleen <ak@linux.intel.com>
11621
11622 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
11623 inchash.
11624 (vn_reference_compute_hash): Dito.
11625 (vn_nary_op_compute_hash): Dito.
11626 (vn_phi_compute_hash): Dito.
11627 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
11628
11629 2014-07-31 Andi Kleen <ak@linux.intel.com>
11630
11631 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
11632 Rename to inchash:add_expr_commutative. Convert to inchash.
11633 (iterative_hash_hashable_expr): Rename to
11634 inchash:add_hashable_expr. Convert to inchash.
11635 (avail_expr_hash): Dito.
11636
11637 2014-07-31 Andi Kleen <ak@linux.intel.com>
11638
11639 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
11640 Convert to inchash.
11641
11642 2014-07-31 Andi Kleen <ak@linux.intel.com>
11643
11644 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
11645
11646 2014-07-31 Andi Kleen <ak@linux.intel.com>
11647
11648 * Makefile.in (OBJS): Add rtlhash.o
11649 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
11650 (loc_checksum): Dito.
11651 (loc_checksum_ordered): Dito.
11652 (hash_loc_operands): Dito.
11653 (hash_locs): Dito.
11654 (hash_loc_list): Dito.
11655 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
11656 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
11657 * rtlhash.c: New file.
11658 * rtlhash.h: New file.
11659
11660 2014-07-31 Andi Kleen <ak@linux.intel.com>
11661
11662 * inchash.h (inchash): Change inchash class to namespace.
11663 (class hash): ... Rename from inchash.
11664 (add_object): Move from macro to class template.
11665 * lto-streamer-out.c (hash_tree): Change inchash
11666 to inchash::hash.
11667 * tree.c (build_type_attribute_qual_variant): Dito.
11668 (type_hash_list): Dito.
11669 (attribute_hash_list): Dito.
11670 (iterative_hstate_expr): Rename to inchash::add_expr
11671 (build_range_type_1): Change inchash to inchash::hash
11672 and use hash::add_expr.
11673 (build_array_type_1): Dito.
11674 (build_function_type): Dito
11675 (build_method_type_directly): Dito.
11676 (build_offset_type): Dito.
11677 (build_complex_type): Dito.
11678 (make_vector_type): Dito.
11679 * tree.h (iterative_hash_expr): Dito.
11680
11681 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
11682
11683 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
11684
11685 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
11686
11687 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
11688 correct alphabetical position.
11689 (vpaddd_f64): Rewrite using builtins.
11690 (vpaddd_s64): Move to correct alphabetical position.
11691 (vpaddd_u64): New.
11692
11693 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
11694
11695 PR target/61844
11696 * config/sh/sh.c (sh_legitimate_address_p,
11697 sh_legitimize_reload_address): Handle reg+reg address modes when
11698 ALLOW_INDEXED_ADDRESS is false.
11699 * config/sh/predicates.md (general_movsrc_operand,
11700 general_movdst_operand): Likewise.
11701
11702 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
11703
11704 * config/aarch64/aarch64-builtins.c
11705 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
11706 BYTES_BIG_ENDIAN.
11707
11708 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
11709
11710 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
11711 the generated mask based on BYTES_BIG_ENDIAN.
11712 (aarch64_simd_check_vect_par_cnst_half): New.
11713 * config/aarch64/aarch64-protos.h
11714 (aarch64_simd_check_vect_par_cnst_half): New.
11715 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
11716 the check out to aarch64_simd_check_vect_par_cnst_half.
11717 (vect_par_cnst_lo_half): Likewise.
11718 * config/aarch64/aarch64-simd.md
11719 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
11720 (move_hi_quad_<mode>): Always generate a low mask.
11721
11722 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11723
11724 * doc/invoke.texi (AVR Options): Add documentation about
11725 __AVR_DEVICE_NAME__ built-in macro.
11726
11727 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
11728
11729 PR target/61948
11730 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
11731 constraints are satisfied.
11732 (<shift>di3_neon): Likewise.
11733
11734 2014-07-31 Richard Biener <rguenther@suse.de>
11735
11736 PR tree-optimization/61964
11737 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
11738 by structural equality.
11739
11740 2014-07-31 Yury Gribov <y.gribov@samsung.com>
11741
11742 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
11743 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
11744 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
11745 New enums.
11746 * gcc.c (sanitize_spec_function): Support new option.
11747 (SANITIZER_SPEC): Remove now redundant check.
11748 * opts.c (common_handle_option): Support new option.
11749 (finish_options): Check for incompatibilities.
11750 * toplev.c (process_options): Split userspace-specific checks.
11751
11752 2014-07-31 Richard Biener <rguenther@suse.de>
11753
11754 * lto-streamer.h (struct output_block): Remove global.
11755 (struct data_in): Remove labels, num_named_labels and
11756 num_unnamed_labels.
11757 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
11758 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
11759
11760 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
11761
11762 PR c++/60517
11763 * common.opt (-Wreturn-local-addr): Moved from c.opt.
11764 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
11765 (isolate_path): New argument to avoid inserting a trap.
11766 (find_implicit_erroneous_behaviour): Handle returning the address
11767 of a local variable.
11768 (find_explicit_erroneous_behaviour): Likewise.
11769
11770 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
11771
11772 PR lto/61868
11773 * toplev.c (init_random_seed): Move piece of code never called to
11774 set_random_seed.
11775 (set_random_seed): see above.
11776
11777 2014-07-31 Tom de Vries <tom@codesourcery.com>
11778
11779 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
11780
11781 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
11782
11783 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
11784 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
11785
11786 2014-07-31 Richard Biener <rguenther@suse.de>
11787
11788 * data-streamer.h (streamer_write_data_stream): Declare here,
11789 renamed from ...
11790 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
11791 * lto-cgraph.c (lto_output_node): Adjust.
11792 (lto_output_varpool_node): Likewise.
11793 * data-streamer-out.c (streamer_string_index): Likewise.
11794 (streamer_write_data_stream, lto_append_block): Move from ...
11795 * lto-section-out.c (lto_output_data_stream,
11796 lto_append_block): ... here.
11797
11798 2014-07-30 Mike Stump <mikestump@comcast.net>
11799
11800 * configure.ac: Also check for popen.
11801 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
11802 * configure: Regenerate.
11803 * config.in: Regenerate.
11804
11805 2014-07-30 Martin Jambor <mjambor@suse.cz>
11806
11807 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
11808 parameter to gimple.
11809
11810 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11811
11812 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
11813 address as second parameter to __tpf_eh_return routine.
11814
11815 2014-07-30 Jiong Wang <jiong.wang@arm.com>
11816
11817 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
11818 Thumb2.
11819
11820 2014-07-30 Tom Tromey <tromey@redhat.com>
11821
11822 PR c/59855
11823 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
11824 * doc/extend.texi (Type Attributes): Document designated_init
11825 attribute.
11826
11827 2014-07-30 Roman Gareev <gareevroman@gmail.com>
11828
11829 * graphite-isl-ast-to-gimple.c:
11830 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
11831 (gcc_expression_from_isl_expression): Pass type to
11832 gcc_expression_from_isl_ast_expr_id.
11833
11834 2014-07-30 Richard Biener <rguenther@suse.de>
11835
11836 * lto-streamer.h (lto_write_data): New function.
11837 * langhooks.c (lhd_append_data): Do not free block.
11838 * lto-section-out.c (lto_write_data): New function writing
11839 raw data to the current section.
11840 (lto_write_stream): Adjust for langhook semantic change.
11841 (lto_destroy_simple_output_block): Write header directly.
11842 * lto-opts.c (lto_write_options): Write options directly.
11843 * lto-streamer-out.c (produce_asm): Write heaeder directly.
11844 (lto_output_toplevel_asms): Likewise.
11845 (copy_function_or_variable): Copy data directly.
11846 (write_global_references): Output index table directly.
11847 (lto_output_decl_state_refs): Likewise.
11848 (write_symbol): Write data directly.
11849 (produce_symtab): Adjust.
11850 (produce_asm_for_decls): Output header and refs directly.
11851
11852 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
11853
11854 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
11855 to speculative_targets
11856 (get_class_context): Fix handling of contextes without outer type;
11857 avoid matching non-polymorphic types in LTO.
11858 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
11859 parameter to speculative_targetsp; handle speculation.
11860 (dump_possible_polymorphic_call_targets): Update dumping.
11861
11862 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
11863
11864 * common.opt (Wodr): Enable by default.
11865
11866 2014-07-29 Olivier Hainque <hainque@adacore.com>
11867
11868 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
11869
11870 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
11871
11872 PR bootstrap/61914
11873 * gengtype.c (strtoken): New function.
11874 (create_user_defined_type): Replace strtok with strtoken.
11875
11876 2014-07-29 Nathan Sidwell <nathan@acm.org>
11877
11878 * gcov-io.c (gcov_var): Make hidden.
11879 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
11880 (gcov_do_dump): Declare.
11881 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
11882
11883 2014-07-29 Martin Jambor <mjambor@suse.cz>
11884
11885 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
11886 parameter to gimple.
11887 (sra_modify_assign): Likewise.
11888
11889 2014-07-29 Richard Biener <rguenther@suse.de>
11890
11891 PR middle-end/52478
11892 * expr.c (expand_expr_real_2): Revert last change.
11893
11894 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
11895
11896 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
11897 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
11898 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
11899 call.
11900 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
11901 (contains_type_p): Forward declare.
11902 (polymorphic_call_target_hasher::hash): Hash speculative info.
11903 (polymorphic_call_target_hasher::equal): Compare speculative info.
11904 (get_class_context): Handle speuclation.
11905 (contains_type_p): Update.
11906 (get_polymorphic_call_info_for_decl): Update.
11907 (walk_ssa_copies): Break out from ...
11908 (get_polymorphic_call_info): ... here; set speculative context
11909 before giving up.
11910 * ipa-prop.c (ipa_write_indirect_edge_info,
11911 ipa_read_indirect_edge_info): Stream speculative context.
11912 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
11913 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
11914 SPECULATIVE_MAYBE_DERIVED_TYPE).
11915 (possible_polymorphic_call_targets overriders): Update.
11916 (dump_possible_polymorphic_call_targets overriders): Update.
11917 (dump_possible_polymorphic_call_target_p overriders): Update.
11918
11919 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
11920
11921 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
11922 ipa-devirt path; fix thinko there.
11923
11924 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
11925
11926 * config/i386/i386.c (ix86_return_in_memory): Replace one
11927 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
11928
11929 2014-07-28 Marek Polacek <polacek@redhat.com>
11930
11931 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
11932
11933 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
11934
11935 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
11936 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
11937 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
11938 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
11939 (USE_LD_AS_NEEDED): Likewise.
11940 (ASM_APP_ON): Likewise.
11941 (ASM_APP_OFF): Likewise.
11942 (TARGET_POSIX_IO): Likewise.
11943 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
11944 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
11945 (USE_LD_AS_NEEDED): Likewise.
11946 (ASM_APP_ON): Likewise.
11947 (ASM_APP_OFF): Likewise.
11948 (TARGET_POSIX_IO): Likewise.
11949
11950 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
11951
11952 PR middle-end/61734
11953 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
11954 operators other than the equality operators.
11955
11956 2014-07-28 Richard Biener <rguenther@suse.de>
11957
11958 PR middle-end/52478
11959 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
11960 sure to register SImode ones, not only >= word_mode ones.
11961 * expr.c (expand_expr_real_2): When expanding -ftrapv
11962 binops do not use OPTAB_LIB_WIDEN.
11963
11964 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
11965
11966 PR middle-end/61919
11967 * tree-outof-ssa.c (insert_partition_copy_on_edge)
11968 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
11969 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
11970 inserting them in the insn stream.
11971
11972 2014-07-28 Marek Polacek <polacek@redhat.com>
11973
11974 PR middle-end/61913
11975 * common.opt (Wodr): Add Var.
11976
11977 2014-07-28 Richard Biener <rguenther@suse.de>
11978
11979 PR tree-optimization/61921
11980 * tree-ssa-structalias.c (create_variable_info_for_1): Check
11981 if there is a varpool node before dereferencing it.
11982
11983 2014-07-28 Roman Gareev <gareevroman@gmail.com>
11984
11985 * graphite-sese-to-poly.c:
11986 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
11987 id of the pbb), which contains pointer to the pbb1.
11988
11989 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
11990
11991 2014-07-28 Roman Gareev <gareevroman@gmail.com>
11992
11993 * graphite-isl-ast-to-gimple.c:
11994 (graphite_create_new_guard): New function.
11995 (translate_isl_ast_node_if): New function.
11996 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
11997
11998 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
11999
12000 2014-07-27 Anthony Green <green@moxielogic.com>
12001
12002 * config.gcc: Add moxie-*-moxiebox* configuration.
12003 * config/moxie/moxiebox.h: New file.
12004
12005 2014-07-26 Andrew Pinski <apinski@cavium.com>
12006
12007 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
12008 from the read only register.
12009
12010 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
12011
12012 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
12013 as the allocation class if it isn't likely to be spilled.
12014
12015 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
12016
12017 * rtl.h (tls_referenced_p): Declare.
12018 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
12019 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
12020 (mips_cannot_force_const_mem): Use tls_referenced_p.
12021 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
12022 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
12023 instead of pa_tls_referenced_p.
12024 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
12025 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
12026 (pa_legitimate_constant_p): Likewise.
12027 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
12028 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
12029 (rs6000_cannot_force_const_mem, rs6000_emit_move)
12030 (rs6000_address_for_altivec): Use tls_referenced_p instead of
12031 rs6000_tls_referenced_p.
12032 (rs6000_tls_symbol_ref_1): Delete.
12033
12034 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
12035
12036 PR target/44551
12037 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
12038 Optimize inverse of a VEC_CONCAT.
12039
12040 2014-07-25 Xinliang David Li <davidxl@google.com>
12041
12042 * params.def: New parameter.
12043 * coverage.c (get_coverage_counts): Check new flag.
12044 (coverage_compute_profile_id): Check new flag.
12045 (coverage_begin_function): Check new flag.
12046 (coverage_end_function): Check new flag.
12047 * value-prof.c (coverage_node_map_initialized_p): New function.
12048 (init_node_map): Populate map with all functions.
12049 * doc/invoke.texi: Document new parameter.
12050
12051 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
12052 Richard Biener <rguenther@suse.de>
12053
12054 * lto-streamer-out.c (struct sccs): Turn to ...
12055 (class DFS): ... this one; refactor the DFS walk so it can
12056 be re-done on per-SCC basis.
12057 (DFS::DFS): New constructor.
12058 (DFS::~DFS): New destructor.
12059 (hash_tree): Add new MAP argument holding in-SCC hash values;
12060 remove POINTER_TYPE hashing hack.
12061 (scc_entry_compare): Rename to ...
12062 (DFS::scc_entry_compare): ... this one.
12063 (hash_scc): Rename to ...
12064 (DFS::hash_scc): ... this one; pass output_block instead
12065 of streamer_cache; work harder to get unique and stable SCC
12066 hashes.
12067 (DFS_write_tree): Rename to ...
12068 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
12069 (lto_output_tree): Update.
12070
12071 2014-07-25 Andi Kleen <ak@linux.intel.com>
12072
12073 * lto-streamer-out.c (hash_tree): Convert to inchash.
12074
12075 2014-07-25 Andi Kleen <ak@linux.intel.com>
12076
12077 * tree.c (build_type_attribute_qual_variant): Use inchash.
12078 (type_hash_list): Dito.
12079 (attribute_hash_list): Dito
12080 (iterative_hstate_expr): Dito.
12081 (iterative_hash_expr): Dito.
12082 (build_range_type_1): Dito.
12083 (build_array_type_1): Dito.
12084 (build_function_type): Dito.
12085 (build_method_type_directly): Dito.
12086 (build_offset_type): Dito.
12087 (build_complex_type): Dito.
12088 (make_vector_type): Dito.
12089 * tree.h (iterative_hash_expr): Add compat wrapper.
12090 (iterative_hstate_expr): Add.
12091
12092 2014-07-25 Andi Kleen <ak@linux.intel.com>
12093
12094 * Makefile.in (OBJS): Add inchash.o.
12095 (PLUGIN_HEADERS): Add inchash.h.
12096 * ipa-devirt.c: Include inchash.h.
12097 * lto-streamer-out.c: Dito.
12098 * tree-ssa-dom.c: Dito.
12099 * tree-ssa-pre.c: Dito.
12100 * tree-ssa-sccvn.c: Dito.
12101 * tree-ssa-tail-merge.c: Dito.
12102 * asan.c: Dito.
12103 * tree.c (iterative_hash_hashval_t): Move to ...
12104 (iterative_hash_host_wide_int): Move to ...
12105 * inchash.c: Here. New file.
12106 * tree.h (iterative_hash_hashval_t): Move to ...
12107 (iterative_hash_host_wide_int): Move to ...
12108 * inchash.h: Here. New file.
12109
12110 2014-07-25 Richard Biener <rguenther@suse.de>
12111
12112 PR middle-end/61762
12113 PR middle-end/61894
12114 * fold-const.c (native_encode_int): Add and handle offset
12115 parameter to do partial encodings of expr.
12116 (native_encode_fixed): Likewise.
12117 (native_encode_real): Likewise.
12118 (native_encode_complex): Likewise.
12119 (native_encode_vector): Likewise.
12120 (native_encode_string): Likewise.
12121 (native_encode_expr): Likewise.
12122 * fold-const.c (native_encode_expr): Add offset parameter
12123 defaulting to -1.
12124 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
12125 (fold_ctor_reference): Handle all reads from tcc_constant
12126 ctors.
12127
12128 2014-07-25 Richard Biener <rguenther@suse.de>
12129
12130 * tree-inline.c (estimate_move_cost): Mark speed_p argument
12131 as possibly unused.
12132
12133 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12134
12135 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
12136
12137 2014-07-24 Kyle McMartin <kyle@redhat.com>
12138
12139 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
12140
12141 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12142
12143 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
12144 Add prototype.
12145 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
12146 function.
12147 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
12148 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
12149 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
12150
12151 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12152
12153 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
12154 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
12155 aggregate types. Instead, *all* aggregate types, except for single-
12156 element or homogeneous float/vector aggregates, are quadword-aligned
12157 if required by their type alignment. Issue -Wpsabi note when a type
12158 is now treated differently than before.
12159
12160 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12161
12162 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
12163 does not fit fully into floating-point registers, and there is still
12164 space in the register parameter area, use GPRs to pass those parts
12165 of the argument. Issue -Wpsabi note if any parameter is now treated
12166 differently than before.
12167 (rs6000_arg_partial_bytes): Update.
12168
12169 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
12170
12171 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
12172
12173 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
12174
12175 * rtl.h (target_rtl): Remove lang_dependent_initialized.
12176 * toplev.c (initialize_rtl): Don't use it. Move previously
12177 "language-dependent" calls to...
12178 (backend_init): ...here.
12179 (lang_dependent_init_target): Don't set lang_dependent_initialized.
12180 Assert that RTL initialization hasn't happend yet.
12181
12182 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
12183
12184 PR rtl-optimization/61629
12185 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
12186 they have already been initialized.
12187
12188 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
12189
12190 PR middle-end/61268
12191 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
12192 DECL_INCOMING_RTL and entry_parm.
12193 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
12194 * calls.c (load_register_parameters): Likewise argument values.
12195 (emit_library_call_value_1, store_one_arg): Likewise argument
12196 save areas.
12197 * config/i386/i386.c (assign_386_stack_local): Likewise the local
12198 stack slot.
12199 * explow.c (validize_mem): Modify the argument in-place.
12200
12201 2014-07-24 Jiong Wang <jiong.wang@arm.com>
12202
12203 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
12204 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
12205
12206 2014-07-24 Jiong Wang <jiong.wang@arm.com>
12207
12208 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
12209 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
12210
12211 2014-07-24 Jiong Wang <jiong.wang@arm.com>
12212
12213 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
12214 (aarch64_save_callee_saves): New parameter "skip_wb".
12215 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
12216
12217 2014-07-24 Jiong Wang <jiong.wang@arm.com>
12218
12219 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
12220 "wb_candidate2".
12221 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
12222
12223 2014-07-24 Roman Gareev <gareevroman@gmail.com>
12224
12225 * graphite-isl-ast-to-gimple.c:
12226 (graphite_create_new_loop): Add calling of isl_id_free to properly
12227 decrement reference counts.
12228
12229 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
12230
12231 2014-07-24 Martin Liska <mliska@suse.cz>
12232 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
12233 function used.
12234 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
12235 (rs6000_code_end): Likewise.
12236
12237 2014-07-24 Martin Liska <mliska@suse.cz>
12238
12239 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
12240 symtab_node funtion used.
12241 (rs6000_xcoff_declare_object_name): Likewise.
12242
12243 2014-07-24 Martin Liska <mliska@suse.cz>
12244
12245 * cgraphunit.c (compile): Correct function used.
12246
12247 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
12248
12249 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
12250 as non-indexable.
12251
12252 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
12253
12254 PR lto/61802
12255 * varasm.c (bss_initializer_p): Handle offlined ctors.
12256 (align_variable, get_variable_align): Likewise.
12257 (make_decl_one_only): Likewise.
12258 (default_binds_local_p_1): Likewise.
12259 (decl_binds_to_current_def_p): Likewise.
12260 (get_variable_section): Get constructor if it is offlined.
12261 (assemble_variable_contents): Sanity check that the caller
12262 streamed in the ctor in LTO.
12263
12264 2014-07-24 Roman Gareev <gareevroman@gmail.com>
12265
12266 * graphite-isl-ast-to-gimple.c:
12267 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
12268 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
12269 isl_ast_op_pdiv_r to the different case.
12270
12271 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
12272
12273 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12274
12275 PR middle-end/61876
12276 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
12277 when flag_errno_math is on.
12278
12279 2014-07-24 Martin Liska <mliska@suse.cz>
12280
12281 * cgraph.h (varpool_node):
12282 (availability get_availability (void)):
12283 created from cgraph_variable_initializer_availability
12284 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
12285 created from: cgraph_variable_initializer_availability
12286 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
12287 (void finalize_named_section_flags (void)):
12288 created from varpool_finalize_named_section_flags
12289 (bool assemble_decl (void)): created from varpool_assemble_decl
12290 (void analyze (void)): created from varpool_analyze_node
12291 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
12292 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
12293 (void remove_initializer (void)): created from varpool_remove_initializer
12294 (tree get_constructor (void)): created from varpool_get_constructor
12295 (bool externally_visible_p (void)): created from varpool_externally_visible_p
12296 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
12297 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
12298 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
12299 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
12300 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
12301 (static bool output_variables (void)): created from varpool_output_variables
12302 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
12303 created from varpool_extra_name_alias
12304 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
12305 (static void dump_varpool (FILE *f)): created from dump_varpool
12306 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
12307 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
12308 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
12309 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
12310 (void assemble_aliases (void)): created from assemble_aliases
12311
12312 2014-07-24 Martin Liska <mliska@suse.cz>
12313
12314 * cgraph.h (symtab_node):
12315 (void register_symbol (void)): created from symtab_register_node
12316 (void remove (void)): created from symtab_remove_node
12317 (void dump (FILE *f)): created from dump_symtab_node
12318 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
12319 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
12320 (struct ipa_ref *add_reference (symtab_node *referred_node,
12321 enum ipa_ref_use use_type)): created from add_reference
12322 (struct ipa_ref *add_reference (symtab_node *referred_node,
12323 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
12324 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
12325 gimple stmt)): created from maybe_add_reference
12326 (bool semantically_equivalent_p (symtab_node *target)): created from
12327 symtab_semantically_equivalent_p
12328 (void remove_from_same_comdat_group (void)): created from
12329 remove_from_same_comdat_group
12330 (void add_to_same_comdat_group (symtab_node *old_node)): created from
12331 symtab_add_to_same_comdat_group
12332 (void dissolve_same_comdat_group_list (void)): created from
12333 symtab_dissolve_same_comdat_group_list
12334 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
12335 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
12336 created from symtab_alias_ultimate_target
12337 (inline symtab_node *next_defined_symbol (void)): created from
12338 symtab_next_defined_symbol
12339 (bool resolve_alias (symtab_node *target)): created from
12340 symtab_resolve_alias
12341 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
12342 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
12343 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
12344 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
12345 (void set_section (const char *section)): created from set_section_1
12346 (enum availability get_availability (void)): created from symtab_node_availability
12347 (void make_decl_local (void)): created from symtab_make_decl_local
12348 (bool real_symbol_p (void)): created from symtab_read_node
12349 (can_be_discarded_p (void)): created from symtab_can_be_discarded
12350 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
12351 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
12352 symtab_in_same_comdat_p;
12353 (bool address_taken_from_non_vtable_p (void)): created from
12354 address_taken_from_non_vtable_p
12355 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
12356 (static void dump_table (FILE *)): created from dump_symtab
12357 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
12358 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
12359 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
12360 symtab_used_from_object_file_p
12361 (void dump_base (FILE *)): created from dump_symtab_base
12362 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
12363 (void unregister (void)): created from symtab_unregister_node
12364 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
12365 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
12366 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
12367 symtab_nonoverwritable_alias_1
12368 * cgraph.h (cgraph_node):
12369 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
12370 created from cgraph_remove_node_and_inline_clones
12371 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
12372 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
12373 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
12374 (cgraph_node *function_symbol (enum availability *avail = NULL)):
12375 created from cgraph_function_node
12376 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
12377 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
12378 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
12379 created from cgraph_create_clone
12380 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
12381 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
12382 created from cgraph_create_virtual_clone
12383 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
12384 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
12385 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
12386 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
12387 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
12388 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
12389 created from cgraph_function_version_info
12390 (struct cgraph_function_version_info *insert_new_function_version (void)):
12391 created from insert_new_cgraph_node_version
12392 (struct cgraph_function_version_info *function_version (void)): created from
12393 get_cgraph_node_version
12394 (void analyze (void)): created from analyze_function
12395 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
12396 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
12397 tree real_alias) cgraph_add_thunk
12398 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
12399 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
12400 created from cgraph_function_or_thunk_node
12401 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
12402 created from expand_thunk
12403 (void reset (void)): created from cgraph_reset_node
12404 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
12405 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
12406 (void remove (void)): created from cgraph_remove_node
12407 (void dump (FILE *f)): created from dump_cgraph_node
12408 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
12409 (bool get_body (void)): created from cgraph_get_body
12410 (void release_body (void)): created from cgraph_release_function_body
12411 (void unnest (void)): created from cgraph_unnest_node
12412 (void make_local (void)): created from cgraph_make_node_local
12413 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
12414 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
12415 gcov_type count, int freq)): created from cgraph_create_edge
12416 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
12417 gcov_type count, int freq)): created from cgraph_create_indirect_edge
12418 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
12419 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
12420 created from cgraph_create_edge_including_clones
12421 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
12422 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
12423 (void remove_callers (void)): created from cgraph_node_remove_callers
12424 (void remove_callees (void)): created from cgraph_node_remove_callees
12425 (enum availability get_availability (void)): created from cgraph_function_body_availability
12426 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
12427 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
12428 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
12429 (void call_duplication_hooks (cgraph_node *node2)): created from
12430 cgraph_call_node_duplication_hooks
12431 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
12432 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
12433 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
12434 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
12435 (void call_function_insertion_hooks (void)):
12436 created from cgraph_call_function_insertion_hooks
12437 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
12438 (bool local_p (void)): created from cgraph_local_node
12439 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
12440 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
12441 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
12442 (inline bool only_called_directly_or_aliased_p (void)):
12443 created from cgraph_only_called_directly_or_aliased_p
12444 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
12445 created from cgraph_will_be_removed_from_program_if_no_direct_calls
12446 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
12447 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
12448 (bool can_remove_if_no_direct_calls_p (void)):
12449 created from cgraph_can_remove_if_no_direct_calls_p
12450 (inline bool has_gimple_body_p (void)):
12451 created from cgraph_function_with_gimple_body_p
12452 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
12453 (static void dump_cgraph (FILE *f)): created from dump_cgraph
12454 (static inline void debug_cgraph (void)): created from debug_cgraph
12455 (static void record_function_versions (tree decl1, tree decl2)):
12456 created from record_function_versions
12457 (static void delete_function_version (tree decl)):
12458 created from delete_function_version
12459 (static void add_new_function (tree fndecl, bool lowered)):
12460 created from cgraph_add_new_function
12461 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
12462 (static cgraph_node * create (tree decl)): created from cgraph_create_node
12463 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
12464 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
12465 (static cgraph_node *get_for_asmname (tree asmname)):
12466 created from cgraph_node_for_asm
12467 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
12468 created from cgraph_same_body_alias
12469 (static bool used_from_object_file_p_worker (cgraph_node *node,
12470 void *): new function
12471 (static bool non_local_p (cgraph_node *node, void *)):
12472 created from cgraph_non_local_node_p_1
12473 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
12474 created from verify_cgraph
12475 (static bool make_local (cgraph_node *node, void *)):
12476 created from cgraph_make_node_local
12477 (static cgraph_node *create_alias (tree alias, tree target)):
12478 created from cgraph_create_function_alias
12479 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
12480 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
12481 created from cgraph_create_edge_1
12482 * cgraph.h (varpool_node):
12483 (void remove (void)): created from varpool_remove_node
12484 (void dump (FILE *f)): created from dump_varpool_node
12485
12486 2014-07-24 Richard Biener <rguenther@suse.de>
12487
12488 PR ipa/61823
12489 * tree-ssa-structalias.c (create_variable_info_for_1):
12490 Use varpool_get_constructor.
12491 (create_variable_info_for): Likewise.
12492
12493 2014-07-24 Jiong Wang <jiong.wang@arm.com>
12494
12495 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
12496 subtract outgoing area size when restoring stack_pointer_rtx.
12497
12498 2014-07-24 Nick Clifton <nickc@redhat.com>
12499
12500 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
12501 that operations are taking place in parallel.
12502 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
12503
12504 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
12505
12506 * omp-low.c (extract_omp_for_data): Add missing break statement.
12507
12508 2014-07-24 Richard Biener <rguenther@suse.de>
12509
12510 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
12511 * tree-inline.c (estimate_move_cost): Add speed_p parameter
12512 and adjust MOVE_RATIO query accordingly.
12513 (estimate_num_insns): Adjust callers.
12514 * ipa-prop.c (ipa_populate_param_decls): Likewise.
12515 * ipa-cp.c (gather_context_independent_values,
12516 estimate_local_effects): Likewise.
12517 * ipa-split.c (consider_split): Likewise.
12518
12519 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
12520
12521 * config/i386/driver-i386.c: Remove names of unused arguments and
12522 unnecessary unused attributes.
12523 * config/i386/host-mingw32.c: Likewise.
12524 * config/i386/i386.c: Likewise.
12525 * config/i386/winnt-stubs.c: Likewise.
12526 * config/i386/winnt.c: Likewise.
12527
12528 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12529
12530 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
12531 (aarch64_gen_loadwb_pair): New helper function.
12532 (aarch64_expand_epilogue): Simplify code using new helper functions.
12533 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
12534
12535 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12536
12537 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
12538 (aarch64_gen_storewb_pair): New helper function.
12539 (aarch64_expand_prologue): Simplify code using new helper functions.
12540 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
12541
12542 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12543
12544 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
12545 Rename to aarch64_save_callee_saves, remove restore code.
12546 (aarch64_restore_callee_saves): New function.
12547
12548 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12549
12550 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
12551 (aarch64_save_callee_saves): New function to handle reg save
12552 for both core and vectore regs.
12553
12554 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12555
12556 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
12557 (aarch64_gen_store_pair): New helper function.
12558 (aarch64_save_or_restore_callee_save_registers)
12559 (aarch64_save_or_restore_fprs): Use new helper functions.
12560
12561 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12562
12563 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
12564 (aarch64_save_or_restore_callee_save_registers)
12565 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
12566
12567 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12568
12569 * config/aarch64/aarch64.c
12570 (aarch64_save_or_restore_callee_save_registers)
12571 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
12572
12573 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12574
12575 * config/aarch64/aarch64.c
12576 (aarch64_save_or_restore_callee_save_registers)
12577 (aarch64_save_or_restore_fprs): Remove 'increment'.
12578
12579 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12580
12581 * config/aarch64/aarch64.c
12582 (aarch64_save_or_restore_callee_save_registers)
12583 (aarch64_save_or_restore_fprs): Use register offset in
12584 cfun->machine->frame.reg_offset.
12585
12586 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12587
12588 * config/aarch64/aarch64.c
12589 (aarch64_save_or_restore_callee_save_registers)
12590 (aarch64_save_or_restore_fprs): Remove base_rtx.
12591
12592 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12593
12594 * config/aarch64/aarch64.c
12595 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
12596 to 'start_offset'. Remove local variable 'start_offset'.
12597
12598 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12599
12600 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
12601 type to HOST_WIDE_INT.
12602
12603 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12604
12605 * config/aarch64/aarch64.c (aarch64_expand_prologue)
12606 (aarch64_save_or_restore_fprs)
12607 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
12608
12609 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
12610
12611 * config/arm/t-rtems-eabi: Add
12612 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
12613 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
12614 mbig-endian/mthumb/march=armv7-r, and
12615 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
12616 multilibs.
12617
12618 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
12619 Chris Johns <chrisj@rtems.org>
12620 Joel Sherrill <joel.sherrill@oarcorp.com>
12621
12622 * config.gcc: Add nios2-*-rtems*.
12623 * config/nios2/rtems.h: New file.
12624 * gcc/config/nios2/t-rtems: New file.
12625
12626 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
12627
12628 PR target/61396
12629 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
12630 constant numbers, not general constants.
12631 (rs6000_expand_vector_init): Ditto.
12632
12633 2014-07-23 Nathan Sidwell <nathan@acm.org>
12634
12635 * gcov-tool.c (gcov_list): Declare here.
12636 (set_gcov_list): Remove.
12637 (gcov_output_files): Set gcov_list directly.
12638
12639 2014-07-23 Host Schirmeier <horst@schirmeier.com>
12640
12641 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
12642
12643 2014-07-23 Jiong Wang <jiong.wang@arm.com>
12644
12645 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
12646 callee-saved registers are available for padding purpose
12647 and r3 is not mandatory, then prefer use those callee-saved
12648 instead of r3.
12649
12650 2014-07-23 Richard Biener <rguenther@suse.de>
12651
12652 * params.def (PARAM_MAX_COMBINE_INSNS): New.
12653 * combine.c: Include statistics.h and params.h.
12654 (combine_instructions): Guard three and four insn combines
12655 with max-combine-insns value. Record statistics for combines
12656 performed.
12657 * doc/invoke.texi (max-combine-insns): Document new param.
12658
12659 2014-07-23 Roman Gareev <gareevroman@gmail.com>
12660
12661 * graphite-isl-ast-to-gimple.c:
12662 (translate_isl_ast_node_block): New function.
12663 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
12664
12665 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
12666 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
12667
12668 2014-07-23 Roman Gareev <gareevroman@gmail.com>
12669
12670 * graphite-isl-ast-to-gimple.c:
12671 (get_max_schedule_dimensions): New function.
12672 (extend_schedule): Likewise.
12673 (generate_isl_schedule): Add calling of extend_schedule and
12674 get_max_schedule_dimensions.
12675
12676 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12677
12678 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
12679 (case UNSPEC): Handle UNSPEC_RBIT.
12680
12681 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12682
12683 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
12684 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
12685
12686 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12687
12688 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
12689
12690 2014-07-22 Roman Gareev <gareevroman@gmail.com>
12691
12692 * graphite-isl-ast-to-gimple.c:
12693 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
12694 (ivs_params_clear):
12695 (build_iv_mapping): New function.
12696 (translate_isl_ast_node_user): Likewise.
12697 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
12698
12699 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
12700 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
12701 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
12702
12703 2014-07-21 Bin Cheng <bin.cheng@arm.com>
12704
12705 PR target/55701
12706 * config/arm/arm.md (setmem): New pattern.
12707 * config/arm/arm-protos.h (struct tune_params): New fields.
12708 (arm_gen_setmem): New prototype.
12709 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
12710 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
12711 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
12712 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
12713 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
12714 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
12715 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
12716 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
12717 (arm_const_inline_cost): New function.
12718 (arm_block_set_max_insns): New function.
12719 (arm_block_set_non_vect_profit_p): New function.
12720 (arm_block_set_vect_profit_p): New function.
12721 (arm_block_set_unaligned_vect): New function.
12722 (arm_block_set_aligned_vect): New function.
12723 (arm_block_set_unaligned_non_vect): New function.
12724 (arm_block_set_aligned_non_vect): New function.
12725 (arm_block_set_vect, arm_gen_setmem): New functions.
12726
12727 2014-07-21 Bin Cheng <bin.cheng@arm.com>
12728
12729 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
12730
12731 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
12732
12733 PR target/61855
12734 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
12735 out of #ifdef __OPTIMIZE__.
12736
12737 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
12738
12739 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
12740 different trapping status if -fnon-call-exceptions is enabled.
12741
12742 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
12743
12744 * expr.c (store_field): Handle VOIDmode for calls that return values
12745 in multiple locations.
12746
12747 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12748
12749 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
12750 (altivec_vsldoi_<mode>): Likewise.
12751
12752 2014-07-20 Roman Gareev <gareevroman@gmail.com>
12753
12754 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
12755 to the number of characters in the line.
12756
12757 2014-07-20 Roman Gareev <gareevroman@gmail.com>
12758
12759 * graphite-isl-ast-to-gimple.c: Add using of
12760 build_nonstandard_integer_type instead of int128_integer_type_node.
12761
12762 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
12763
12764 * toplev.c (output_stack_usage): Adjust the location of the warning.
12765
12766 2014-07-19 Daniel Cederman <cederman@gaisler.com>
12767
12768 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
12769 (*membar_storeload): Disable for LEON3.
12770
12771 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
12772
12773 PR rtl-optimization/61461
12774 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
12775
12776 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
12777
12778 PR target/61794
12779 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
12780 Fix instruction constraint.
12781 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
12782
12783 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
12784
12785 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
12786
12787 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
12788
12789 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
12790 GNU coding standards.
12791 (nds32_register_move_cost): Likewise.
12792 (nds32_memory_move_cost): Likewise.
12793 (nds32_address_cost): Likewise.
12794
12795 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12796
12797 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
12798
12799 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
12800
12801 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
12802 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
12803 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
12804 (HAVE_sync_compare_and_swapqi): Define.
12805 (HAVE_sync_compare_and_swaphi): Likewise.
12806 (HAVE_sync_compare_and_swapsi): Likewise.
12807
12808 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
12809
12810 * config/mips/p5600.md: Add missing cpu tests.
12811
12812 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12813
12814 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
12815 (vmla_f64): Likewise.
12816 (vfms_f64): Likewise.
12817 (vmls_f64): Likewise.
12818
12819 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12820
12821 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
12822 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
12823
12824 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12825
12826 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
12827 (vmlal_high_lane_s32): Likewise.
12828 (vmlal_high_lane_u16): Likewise.
12829 (vmlal_high_lane_u32): Likewise.
12830 (vmlsl_high_lane_s16): Likewise.
12831 (vmlsl_high_lane_s32): Likewise.
12832 (vmlsl_high_lane_u16): Likewise.
12833 (vmlsl_high_lane_u32): Likewise.
12834
12835 2014-07-17 Terry Guo <terry.guo@arm.com>
12836
12837 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
12838 (alus_reg): Renamed to alus_sreg.
12839 * config/arm/arm-fixed.md: Change type of non-dsp instructions
12840 from alu_reg to alu_sreg. Change type of dsp instructions from
12841 alu_reg to alu_dsp_reg.
12842 * config/arm/thumb1.md: Likewise.
12843 * config/arm/thumb2.md: Likewise.
12844 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
12845 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
12846 with alu_sreg and alus_sreg.
12847 * config/arm/arm1026ejs.md (alu_op): Likewise.
12848 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
12849 * config/arm/arm926ejs.md (9_alu_op): Likewise.
12850 * config/arm/fa526.md (526_alu_op): Likewise.
12851 * config/arm/fa606te.md (606te_alu_op): Likewise.
12852 * config/arm/fa626te.md (626te_alu_op): Likewise.
12853 * config/arm/fa726te.md (726te_alu_op): Likewise.
12854 * config/arm/fmp626.md (mp626_alu_op): Likewise.
12855 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
12856 alu_sreg, alu_dsp_reg and alus_sreg.
12857 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
12858 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
12859 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
12860 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
12861 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
12862 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
12863 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
12864 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
12865 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
12866 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
12867 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
12868 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
12869 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
12870 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
12871 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
12872 alus_reg to alus_sreg.
12873
12874 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
12875
12876 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
12877 infinity format.
12878
12879 2014-07-17 Richard Biener <rguenther@suse.de>
12880
12881 PR rtl-optimization/61801
12882 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
12883 don't set reg_pending_barrier if it appears in a debug-insn.
12884
12885 2014-07-16 DJ Delorie <dj@redhat.com>
12886
12887 * config/rx/rx.c (rx_option_override): Fix alignment values.
12888 (rx_align_for_label): Likewise.
12889
12890 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
12891
12892 PR target/61737.
12893 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
12894 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
12895 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
12896 functions.
12897 (cris_print_index, cris_print_operand, cris_constant_index_p)
12898 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
12899 (cris_address_cost): Ditto last CONSTANT_P.
12900 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
12901 callers changed. Yield cris_offsettable_symbol for non-PIC
12902 constant symbolic expressions including labels. Yield cris_unspec
12903 for all unspecs.
12904 (cris_expand_pic_call_address): New parameter MARKERP. Set its
12905 target to pic_offset_table_rtx for calls that will likely go
12906 through PLT, const0_rtx when they can't. All callers changed.
12907 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
12908 symbolic expressions to be PICified. Remove second, redundant,
12909 assert on can_create_pseudo_p returning non-zero. Use
12910 replace_equiv_address_nv, not replace_equiv_address, for final
12911 operand update.
12912 * config/cris/cris.md ("movsi"): Move variable t to pattern
12913 toplevel. Adjust assert for new cris_symbol_type member. Use
12914 CONSTANT_P instead of CONSTANT_ADDRESS_P.
12915 ("*movsi_internal") <case 9>: Make check for valid unspec operands
12916 for lapc stricter.
12917 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
12918 ("call", "call_value"): Use second incoming operand as a marker
12919 for pic-offset-table-register being used.
12920 ("*expanded_call_non_v32", "*expanded_call_v32")
12921 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
12922 second incoming operand to CALL, match cris_call_type_marker.
12923 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
12924 ("*expanded_call_side"): Ditto. Fix typo in comment.
12925 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
12926 CONSTANT_P.
12927 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
12928 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
12929 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
12930 users changed. Add members cris_offsettable_symbol and cris_unspec.
12931 (cris_symbol_type): Rename from cris_pic_symbol_type.
12932 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
12933 just CONSTANT_P.
12934 * config/cris/cris-protos.h (cris_symbol_type_of,
12935 cris_expand_pic_call_address): Adjust prototypes.
12936 (cris_legitimate_constant_p): New prototype.
12937
12938 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
12939 an existing tmake_file. Don't add t-slibgcc and t-linux.
12940
12941 2014-07-17 Jason Merrill <jason@redhat.com>
12942
12943 PR c++/61623
12944 * symtab.c (symtab_remove_from_same_comdat_group): Also
12945 set_comdat_group to NULL_TREE.
12946 (verify_symtab): Fix diagnostic.
12947
12948 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
12949
12950 PR target/61662
12951 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
12952
12953 2014-07-16 Dodji Seketeli <dodji@redhat.com>
12954
12955 Support location tracking for built-in macro tokens
12956 * input.h (is_location_from_builtin_token): New function declaration.
12957 * input.c (is_location_from_builtin_token): New function definition.
12958 * toplev.c (general_init): Tell libcpp what the pre-defined
12959 spelling location for built-in tokens is.
12960
12961 2014-07-16 Jakub Jelinek <jakub@redhat.com>
12962
12963 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
12964 on the FUNCTION_DECL.
12965
12966 2014-07-16 Richard Biener <rguenther@suse.de>
12967
12968 PR other/61782
12969 * doc/extend.texi (always_inline): Clarify.
12970
12971 2014-07-15 Eric Christopher <echristo@gmail.com>
12972
12973 * doc/invoke.texi (Link Options): Document -z option.
12974
12975 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
12976
12977 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
12978 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
12979
12980 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
12981
12982 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
12983
12984 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
12985
12986 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
12987 varpool_assemble_decl.
12988 * varpool.c (varpool_assemble_decl): Assert that node->definition is
12989 true.
12990
12991 2014-07-15 Michael Matz <matz@suse.de>
12992
12993 PR rtl-optimization/61772
12994 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
12995
12996 2014-07-15 Richard Biener <rguenther@suse.de>
12997
12998 * opts.c (default_options_table): Disable bit-ccp at -Og.
12999
13000 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
13001
13002 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
13003
13004 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
13005
13006 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
13007 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
13008 call langhook for unknown declaration.
13009 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
13010 * tree.h (DECL_ARGUMENTS): Update.
13011 * print-tree.c (print_node): Update.
13012 * tree-core.h (tree_decl_non_common): Remove arguments.
13013 (tree_function_decl): Add arguments.
13014
13015 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
13016
13017 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
13018
13019 2014-07-14 Richard Biener <rguenther@suse.de>
13020
13021 PR tree-optimization/61779
13022 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
13023 simplifying a condition.
13024
13025 2014-07-14 Richard Biener <rguenther@suse.de>
13026
13027 * builtins.c (c_strlen): Make only_value == 2 really only
13028 affect warning generation.
13029
13030 2014-07-14 Richard Biener <rguenther@suse.de>
13031
13032 PR tree-optimization/61757
13033 PR tree-optimization/61783
13034 PR tree-optimization/61787
13035 * tree-ssa-dom.c (record_equality): Revert canonicalization
13036 change and add comment.
13037 (propagate_rhs_into_lhs): Revert previous fix, removing
13038 loop depth restriction again.
13039
13040 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13041
13042 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
13043 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
13044 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
13045 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
13046 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
13047 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
13048 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
13049
13050 2014-07-14 Richard Biener <rguenther@suse.de>
13051
13052 * cgraph.h (decl_in_symtab_p): Make inline.
13053
13054 2014-07-14 Jakub Jelinek <jakub@redhat.com>
13055
13056 PR middle-end/61294
13057 * doc/invoke.texi (-Wmemset-transposed-args): Document.
13058
13059 PR target/61656
13060 * config/i386/i386.c (classify_argument): Don't merge classes above
13061 number of words.
13062
13063 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
13064
13065 * cgraph.h (symtab_node): Add nonzero_address.
13066 (decl_in_symtab_p): Break out from ...
13067 (symtab_get_node): ... here.
13068 * fold-const.c: Include cgraph.h
13069 (tree_single_nonzero_warnv_p): Use symtab to determine
13070 if symbol is non-zero.
13071 * symtab.c (symtab_node::nonzero_address): New method.
13072
13073 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
13074
13075 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
13076 forgotten in previous commit.
13077
13078 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
13079
13080 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
13081 on builtin types.
13082 * ipa-devirt.c: Include stor-layout.h and intl.h
13083 (odr_subtypes_equivalent_p): New function.
13084 (warn_odr): New function.
13085 (warn_type_mismatch): New function.
13086 (odr_types_equivalent_p): New function.
13087 (add_type_duplicate): Use it.
13088 * common.opt (Wodr): New flag.
13089 * doc/invoke.texi (Wodr): Document new warning.
13090
13091 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
13092
13093 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
13094 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
13095 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
13096 (varpool_get_constructor): Push CTORS_IN timevar.
13097 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
13098
13099 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
13100
13101 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
13102 Remove VOID_FTYPE_PUSHORT.
13103 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
13104 Change code to USHORT_FTYPE_VOID.
13105 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
13106 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
13107 (ix86_atomic_assign_expand_fenv): Update for
13108 __builtin_ia32_fnstsw changes.
13109 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
13110 (fnstsw): Change operand 0 to nonimmediate operand.
13111
13112 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
13113
13114 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
13115 (varpool_get_constructor): New function.
13116 (varpool_ctor_useable_for_folding_p): Break out from ...
13117 (ctor_for_folding): ... here; use varpool_get_constructor.
13118 (varpool_assemble_decl): Likewise.
13119 * lto-streamer.h (struct output_block): Turn cgraph_node
13120 to symbol filed.
13121 (lto_input_variable_constructor): Declare.
13122 * ipa-visibility.c (function_and_variable_visibility): Use
13123 varpool_get_constructor.
13124 * cgraph.h (varpool_get_constructor): Declare.
13125 (varpool_ctor_useable_for_folding_p): New function.
13126 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
13127 parameter; return error_mark_node for non-trivial constructors.
13128 (lto_write_tree_1, DFS_write_tree): Update use of
13129 get_symbol_initial_value.
13130 (output_function): Update initialization of symbol.
13131 (output_constructor): New function.
13132 (copy_function): Rename to ..
13133 (copy_function_or_variable): ... this one; handle vars too.
13134 (lto_output): Output variable sections.
13135 * lto-streamer-in.c (input_constructor): New function.
13136 (lto_read_body): Rename from ...
13137 (lto_read_body_or_constructor): ... this one; handle vars too.
13138 (lto_input_variable_constructor): New function.
13139 * ipa-prop.c (ipa_prop_write_jump_functions,
13140 ipa_prop_write_all_agg_replacement): Update.
13141 * lto-cgraph.c (compute_ltrans_boundary): Use it.
13142 (output_cgraph_opt_summary): Set symbol to NULL.
13143
13144 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
13145
13146 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
13147 non-polymorphic types.
13148 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
13149 * ipa-devirt.c (types_same_for_odr): Do not explode when one
13150 of types is not polymorphic.
13151
13152 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
13153
13154 * lra-constraints.c (remove_inheritance_pseudos): Process
13155 destination pseudo too.
13156
13157 2014-07-11 Rong Xu <xur@google.com>
13158
13159 * gcov-tool.c (gcov_output_files): Fix build error introduced in
13160 commit r212448.
13161
13162 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13163
13164 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
13165 * config/avr/avr-devices.c (AVR_MCU): Same.
13166 (avr_mcu_types): add text start value to end of device list.
13167 * config/avr/avr-mcus.def: Add text section start for all devices.
13168 (ata5782): Add new avr5 device.
13169 (ata5831): Same.
13170 * config/avr/avr-tables.opt: Regenerate.
13171 * config/avr/avr.h: Add declaration for text section start handler.
13172 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
13173 SPEC functions.
13174 (LINK_SPEC): Include text section start handler to linker spec.
13175 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
13176 pass -Ttext option to linker if the text section start for the device
13177 is not zero.
13178 * config/avr/t-multilib: Regenerate.
13179 * doc/avr-mmcu.texi: Regenerate.
13180
13181 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
13182
13183 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
13184 * config/rs6000/aix52.h (LINK_SPEC): Same.
13185 * config/rs6000/aix53.h (LINK_SPEC): Same.
13186 * config/rs6000/aix61.h (LINK_SPEC): Same.
13187 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
13188
13189 2014-07-11 Roman Gareev <gareevroman@gmail.com>
13190
13191 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
13192 (graphite_verify): New function.
13193 (ivs_params_clear): New function.
13194 (gcc_expression_from_isl_ast_expr_id): New function.
13195 (gcc_expression_from_isl_expr_int): New function.
13196 (binary_op_to_tree): New function.
13197 (ternary_op_to_tree): New function.
13198 (unary_op_to_tree): New function.
13199 (nary_op_to_tree): New function.
13200 (gcc_expression_from_isl_expr_op): New function.
13201 (gcc_expression_from_isl_expression): New function.
13202 (graphite_create_new_loop): New function.
13203 (translate_isl_ast_for_loop): New function.
13204 (get_upper_bound): New function.
13205 (graphite_create_new_loop_guard): New function.
13206 (translate_isl_ast_node_for): New function.
13207 (translate_isl_ast): New function.
13208 (add_parameters_to_ivs_params): New function.
13209 (scop_to_isl_ast): New parameter ip.
13210 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
13211
13212 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
13213
13214 * config/xtensa/predicates.md (call expander): Update for
13215 DECL_SECTION_NAME being string.
13216
13217 2014-07-11 Richard Biener <rguenther@suse.de>
13218
13219 PR middle-end/61473
13220 * builtins.c (fold_builtin_memory_op): Inline memory moves that
13221 can be implemented with a single load followed by a single store.
13222 (c_strlen): Only warn when only_value is not 2.
13223
13224 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
13225
13226 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
13227
13228 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
13229
13230 PR target/61561
13231 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
13232 (*movhi_bytes): Likewise.
13233 (*arm_movqi_insn): Likewise.
13234
13235 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
13236
13237 PR target/56858
13238 * config/alpha/alpha.c: Include tree-pass.h, context.h
13239 and pass_manager.h.
13240 (pass_data_handle_trap_shadows): New pass.
13241 (pass_handle_trap_shadows::gate): New pass gate function.
13242 (make_pass_handle_trap_shadows): New function.
13243 (rest_of_handle_trap_shadows): Ditto.
13244
13245 (alpha_align_insns_1): Rename from alpha_align_insns.
13246 (pass_data_align_insns): New pass.
13247 (pass_align_insns::gate): New pass gate function.
13248 (make_pass_aling_insns): New function.
13249 (rest_of_align_insns): Ditto.
13250 (alpha_align_insns): Ditto.
13251
13252 (alpha_option_override): Declare handle_trap_shadows info
13253 and align_insns_info. Register handle_trap_shadows and align_insns
13254 passes here.
13255 (alpha_reorg): Do not call alpha_trap_shadows and
13256 alpha_align_insn from here.
13257
13258 (alpha_pad_function_end): Do not skip BARRIERs.
13259
13260 2014-07-10 Rong Xu <xur@google.com>
13261
13262 Add gcov-tool: an offline gcda profile processing tool support.
13263 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
13264 (gcov_is_error): Ditto.
13265 (gcov_read_string): Ditto.
13266 (gcov_read_sync): Ditto.
13267 * gcov-io.h: Move counter defines to gcov-counter.def.
13268 * gcov-dump.c (tag_counters): Use gcov-counter.def.
13269 * coverage.c: Ditto.
13270 * gcov-tool.c: Offline gcda profile processing tool.
13271 (unlink_gcda_file): Remove one gcda file.
13272 (unlink_profile_dir): Remove gcda files from the profile path.
13273 (gcov_output_files): Output gcda files to an output dir.
13274 (profile_merge): Merge two profiles in directory.
13275 (print_merge_usage_message): Print merge usage.
13276 (merge_usage): Print merge usage and exit.
13277 (do_merge): Driver for profile merge sub-command.
13278 (profile_rewrite): Rewrite profile.
13279 (print_rewrite_usage_message): Print rewrite usage.
13280 (rewrite_usage): Print rewrite usage and exit.
13281 (do_rewrite): Driver for profile rewrite sub-command.
13282 (print_usage): Print gcov-info usage and exit.
13283 (print_version): Print gcov-info version.
13284 (process_args): Process arguments.
13285 (main): Main routine for gcov-tool.
13286 * Makefile.in: Build and install gcov-tool.
13287 * gcov-counter.def: New file split from gcov-io.h.
13288 * doc/gcc.texi: Include gcov-tool.texi.
13289 * doc/gcov-tool.texi: Document for gcov-tool.
13290
13291 2014-07-10 Richard Biener <rguenther@suse.de>
13292
13293 PR tree-optimization/61757
13294 * tree-ssa-dom.c (loop_depth_of_name): Restore.
13295 (propagate_rhs_into_lhs): Revert part of last change.
13296
13297 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
13298
13299 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
13300 FUNCTION_DECLs.
13301
13302 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
13303
13304 PR middle-end/53590
13305 * function.c (allocate_struct_function): Revert r188667 change.
13306
13307 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
13308
13309 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
13310
13311 * doc/install.texi: Remove links to defunct package providers for
13312 Solaris.
13313
13314 2014-07-09 Tom de Vries <tom@codesourcery.com>
13315
13316 * final.c (get_call_fndecl): Declare.
13317 (self_recursive_call_p): New function.
13318 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
13319
13320 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
13321
13322 * ipa-devirt.c (record_node): Walk through aliases.
13323
13324 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
13325
13326 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
13327
13328 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
13329
13330 Revert:
13331 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
13332
13333 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
13334
13335 * ipa-visibility.c (function_and_variable_visibility): Remove
13336 temporary hack disabling local aliases on AIX.
13337
13338 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
13339
13340 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
13341 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
13342
13343 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
13344
13345 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
13346 * rs6000/rs6000.c: Inline output of .set instruction.
13347 (declare_alias_data): New struct.
13348 (rs6000_declare_alias): New function.
13349 (rs6000_xcoff_declare_function_name): Use it.
13350 (rs6000_xcoff_declare_object_name): New function.
13351 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
13352 (ASM_OUTPUT_DEF): Turn to empty definition.
13353
13354 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
13355
13356 PR bootstrap/61679
13357 * hash-table.h: use hash_table::value_type instead of
13358 Descriptor::value_type in the return types of several methods.
13359
13360 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
13361
13362 * tree-pass.h (pass_data): Remove has_execute member.
13363 * passes.c (execute_one_pass): Don't check pass->has_execute.
13364 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
13365 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
13366 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
13367 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
13368 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
13369 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
13370 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
13371 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
13372 gimple-low.c, gimple-ssa-isolate-paths.c,
13373 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
13374 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
13375 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
13376 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
13377 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
13378 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
13379 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
13380 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
13381 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
13382 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
13383 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
13384 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
13385 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
13386 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
13387 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
13388 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
13389 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
13390 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
13391 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
13392 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
13393 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
13394 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
13395 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
13396 web.c: Remove initializer for pass_data::has_execute.
13397
13398 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
13399
13400 * graphite-htab.h: Use hash_map instead of hash_table.
13401 * graphite-clast-to-gimple.c: Adjust.
13402 * passes.c: Use hash_map instead of hash_table.
13403 * sese.c: Likewise.
13404 * sese.h: Remove now unused code.
13405
13406 2014-07-08 Sriraman Tallam <tmsriram@google.com>
13407
13408 PR target/61599
13409 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
13410 than zero.
13411
13412 2014-07-08 Jakub Jelinek <jakub@redhat.com>
13413
13414 PR rtl-optimization/61673
13415 * combine.c (simplify_comparison): Test just mode's sign bit
13416 in tmode rather than the sign bit and any bits above it.
13417
13418 2014-07-08 Roman Gareev <gareevroman@gmail.com>
13419
13420 * graphite-isl-ast-to-gimple.c (generate_isl_context):
13421 Add __isl_give to the declaration.
13422 (generate_isl_schedule): Likewise.
13423 (scop_to_isl_ast): Likewise.
13424
13425 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13426
13427 * config/arm/arm.c (cortexa5_extra_costs): New table.
13428 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
13429
13430 2014-07-08 Jakub Jelinek <jakub@redhat.com>
13431
13432 PR tree-optimization/61725
13433 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
13434 range, use range_includes_zerop_p instead of integer_zerop on
13435 vr0->min, only use log2 of max if min is not negative.
13436
13437 2014-07-08 Richard Biener <rguenther@suse.de>
13438
13439 * tree-ssa-dom.h (loop_depth_of_name): Remove.
13440 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
13441 restriction on loop depth difference.
13442 (record_equality): Likewise.
13443 (propagate_rhs_into_lhs): Likewise. Simplify condition.
13444 (loop_depth_of_name): Remove.
13445 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
13446 restriction on loop depth difference.
13447 (init_copy_prop): Likewise.
13448
13449 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
13450
13451 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
13452 parameter.
13453 (walk_aliased_vdefs): Likewise.
13454 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
13455 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
13456 (detect_type_change_from_memory_writes): Check if entry was reached.
13457
13458 2014-07-08 Richard Biener <rguenther@suse.de>
13459
13460 PR tree-optimization/61681
13461 * tree-ssa-structalias.c (find_what_var_points_to): Expand
13462 NONLOCAL inside ESCAPED.
13463
13464 2014-07-08 Richard Biener <rguenther@suse.de>
13465
13466 PR tree-optimization/61680
13467 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
13468 Handle properly all read-write dependences with group accesses.
13469
13470 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
13471
13472 PR tree-optimization/61576
13473 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
13474 block containing reduction statement is predecessor of phi basi block.
13475
13476 2014-07-08 Marek Polacek <polacek@redhat.com>
13477
13478 PR c/60226
13479 * fold-const.c (round_up_loc): Change the parameter type.
13480 Remove assert.
13481 * fold-const.h (round_up_loc): Adjust declaration.
13482 * stor-layout.c (finalize_record_size): Check for too large types.
13483
13484 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
13485
13486 * symtab.c: Include calls.h.
13487 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
13488
13489 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
13490
13491 * config/rs6000/rs6000.c (output_vec_const_move): Handle
13492 little-endian code generation.
13493 * config/rs6000/spe.md (spe_evmergehi): Rename to...
13494 (vec_perm00_v2si): ... this. Handle little-endian code generation.
13495 (spe_evmergehilo): Rename to...
13496 (vec_perm01_v2si): ... this. Handle little-endian code generation.
13497 (spe_evmergelo): Rename to...
13498 (vec_perm11_v2si): ... this. Handle little-endian code generation.
13499 (spe_evmergelohi): Rename to...
13500 (vec_perm10_v2si): ... this. Handle little-endian code generation.
13501 (spe_evmergehi, spe_evmergehilo): New expanders.
13502 (spe_evmergelo, spe_evmergelohi): Likewise.
13503 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
13504 (*frob_tf_ti): Likewise.
13505 (*frob_<mode>_di_2): Likewise.
13506 (*frob_tf_di_8_2): Likewise.
13507 (*frob_di_<mode>): Likewise.
13508 (*frob_ti_tf): Likewise.
13509 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
13510 (*frob_ti_<mode>_8_2): Likewise.
13511 (*frob_ti_tf_2): Likewise.
13512 (mov_si<mode>_e500_subreg0): Rename to...
13513 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
13514 endianness only.
13515 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
13516 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
13517 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
13518 the big endianness only.
13519 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
13520 (*mov_si<mode>_e500_subreg0_2): Rename to...
13521 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
13522 big big endianness only.
13523 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
13524 (*mov_si<mode>_e500_subreg4): Rename to...
13525 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
13526 endianness only.
13527 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
13528 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
13529 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
13530 the big endianness only.
13531 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
13532 pattern.
13533 (*mov_si<mode>_e500_subreg4_2): Rename to...
13534 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
13535 endianness only.
13536 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
13537 (*mov_sitf_e500_subreg8): Rename to...
13538 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
13539 endianness only.
13540 (*mov_sitf_e500_subreg8_le): New instruction pattern.
13541 (*mov_sitf_e500_subreg8_2): Rename to...
13542 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
13543 endianness only.
13544 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
13545 (*mov_sitf_e500_subreg12): Rename to...
13546 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
13547 endianness only.
13548 (*mov_sitf_e500_subreg12_le): New instruction pattern.
13549 (*mov_sitf_e500_subreg12_2): Rename to...
13550 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
13551 endianness only.
13552 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
13553
13554 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
13555
13556 * asan.c (instrument_strlen_call): Do not instrument first byte
13557 in strlen if already instrumented.
13558
13559 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13560
13561 * config/arm/arm.opt (mwords-little-endian): Delete.
13562 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
13563 of TARGET_LITTLE_WORDS.
13564 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
13565 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
13566 warning.
13567 * doc/invoke.texi: Remove references to -mwords-little-endian.
13568
13569 2014-07-07 Jakub Jelinek <jakub@redhat.com>
13570
13571 * expmed.c (struct init_expmed_rtl): Change all fields but
13572 pow2 and cint from struct rtx_def to rtx.
13573 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
13574 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
13575 at the end again.
13576
13577 2014-07-06 Marek Polacek <polacek@redhat.com>
13578
13579 PR c/6940
13580 * doc/invoke.texi: Document -Wsizeof-array-argument.
13581
13582 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
13583
13584 * wide-int.h (wide_int_storage): Change declaration from struct
13585 to class.
13586
13587 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
13588
13589 * cgraph.c (cgraph_create_indirect_edge): Update call of
13590 get_polymorphic_call_info.
13591 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
13592 (possible_polymorphic_call_targets): Add parameter call.
13593 (decl_maybe_in_construction_p): New predicate.
13594 (get_polymorphic_call_info): Add parameter call;
13595 use decl_maybe_in_construction_p.
13596 * gimple-fold.c (fold_gimple_assign): Update use of
13597 possible_polymorphic_call_targets.
13598 (gimple_fold_call): Likewise.
13599 * ipa-prop.c: Inlcude calls.h
13600 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
13601 (param_type_may_change_p): New predicate.
13602 (detect_type_change_from_memory_writes): Break out from ...
13603 (detect_type_change): ... this one; use param_type_may_change_p.
13604 (detect_type_change_ssa): Use param_type_may_change_p.
13605 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
13606
13607 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
13608
13609 PR target/49423
13610 * config/arm/arm-protos.h (arm_legitimate_address_p,
13611 arm_is_constant_pool_ref): Add prototypes.
13612 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
13613 (arm_is_constant_pool_ref) New function.
13614 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
13615 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
13616 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
13617 operand. Remove pool_range and neg_pool_range attributes.
13618 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
13619 pool_range and neg_pool_range attributes.
13620 * config/arm/constraints.md (Uh): New constraint.
13621 (Uq): Don't allow constant pool references.
13622
13623 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
13624
13625 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
13626 (move_lo_quad_internal_be_<mode>): Likewise.
13627 (move_lo_quad_<mode>): Convert to define_expand.
13628 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
13629 (aarch64_simd_move_hi_quad_be_<mode>): New.
13630 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
13631 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
13632 (aarch64_combinez_be<mode>): New.
13633 (aarch64_combine<mode>): Convert to define_expand.
13634 (aarch64_combine_internal<mode>): New.
13635 (aarch64_simd_combine<mode>): Remove bogus RTL description.
13636
13637 2014-07-04 Tom de Vries <tom@codesourcery.com>
13638
13639 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
13640 combination of earlyclobber and read/write modifiers.
13641
13642 2014-07-04 Tom de Vries <tom@codesourcery.com>
13643
13644 * config/aarch64/aarch64-simd.md
13645 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
13646
13647 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
13648
13649 PR target/61714
13650 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
13651
13652 2014-07-04 Jakub Jelinek <jakub@redhat.com>
13653
13654 PR middle-end/61654
13655 * cgraphunit.c (expand_thunk): Call free_dominance_info.
13656
13657 PR tree-optimization/61684
13658 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
13659 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
13660
13661 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
13662 Kito Cheng <kito@0xlab.org>
13663 Monk Chiang <sh.chiang04@gmail.com>
13664
13665 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
13666 (nds32_symbol_load_store_p): Move to ...
13667 (nds32_fp_as_gp_check_available): Move to ...
13668 * config/nds32/nds32-fp-as-gp.c: ... here.
13669 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
13670 extern declaration.
13671
13672 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
13673 Kito Cheng <kito@0xlab.org>
13674 Monk Chiang <sh.chiang04@gmail.com>
13675
13676 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
13677 (nds32_expand_store_multiple): Move to ...
13678 (nds32_expand_movmemqi): Move to ...
13679 * config/nds32/nds32-memory-manipulation.c: ... here.
13680
13681 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
13682 Kito Cheng <kito@0xlab.org>
13683 Monk Chiang <sh.chiang04@gmail.com>
13684
13685 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
13686 (nds32_output_casesi_pc_relative): Move to ...
13687 (nds32_output_casesi): Move to ...
13688 (nds32_mem_format): Move to ...
13689 (nds32_output_16bit_store): Move to ...
13690 (nds32_output_16bit_load): Move to ...
13691 (nds32_output_32bit_store): Move to ...
13692 (nds32_output_32bit_load): Move to ...
13693 (nds32_output_32bit_load_s): Move to ...
13694 (nds32_output_stack_push): Move to ...
13695 (nds32_output_stack_pop): Move to ...
13696 * config/nds32/nds32-md-auxiliary.c: ... here.
13697
13698 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
13699 Ling-Hua Tseng <uranus@tinlans.org>
13700
13701 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
13702 the purpose of this file.
13703
13704 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
13705 Kito Cheng <kito@0xlab.org>
13706 Monk Chiang <sh.chiang04@gmail.com>
13707
13708 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
13709 (nds32_address_cost): Move implementation to ...
13710 * config/nds32/nds32-cost.c: ... here.
13711 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
13712 (nds32_address_cost_impl): Declare.
13713
13714 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
13715 Kito Cheng <kito@0xlab.org>
13716 Monk Chiang <sh.chiang04@gmail.com>
13717
13718 * config/nds32/nds32.c
13719 (nds32_consecutive_registers_load_store_p): Move to ...
13720 (nds32_valid_multiple_load_store): Move to ...
13721 (nds32_valid_stack_push_pop): Move to ...
13722 (nds32_can_use_bclr_p): Move to ...
13723 (nds32_can_use_bset_p): Move to ...
13724 (nds32_can_use_btgl_p): Move to ...
13725 (nds32_can_use_bitci_p): Move to ...
13726 * config/nds32/nds32-predicates.c: ... here.
13727
13728 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
13729 Kito Cheng <kito@0xlab.org>
13730 Monk Chiang <sh.chiang04@gmail.com>
13731
13732 * config/nds32/nds32.c
13733 (nds32_expand_builtin_null_ftype_reg): Move to ...
13734 (nds32_expand_builtin_reg_ftype_imm): Move to ...
13735 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
13736 (nds32_init_builtins): Move implementation to ...
13737 (nds32_expand_builtin): Move implementation to ...
13738 * config/nds32/nds32-intrinsic.c: ... here.
13739 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
13740 (nds32_expand_builtin_impl): Declare.
13741
13742 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
13743 Kito Cheng <kito@0xlab.org>
13744 Monk Chiang <sh.chiang04@gmail.com>
13745
13746 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
13747 (nds32_emit_section_tail_template): Move to ...
13748 (nds32_emit_isr_jmptbl_section): Move to ...
13749 (nds32_emit_isr_vector_section): Move to ...
13750 (nds32_emit_isr_reset_conten): Move to ...
13751 (nds32_check_isr_attrs_conflict): Move to ...
13752 (nds32_construct_isr_vectors_information): Move to ...
13753 (nds32_asm_file_start): Move implementation to ...
13754 (nds32_asm_file_end): Move implementation to ...
13755 * config/nds32/nds32-isr.c: ... here.
13756 * config/nds32/nds32-protos.h
13757 (nds32_check_isr_attrs_conflict): Declare.
13758 (nds32_construct_isr_vectors_information): Declare.
13759 (nds32_asm_file_start_for_isr): Declare.
13760 (nds32_asm_file_end_for_isr): Declare.
13761
13762 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
13763 Kito Cheng <kito@0xlab.org>
13764 Monk Chiang <sh.chiang04@gmail.com>
13765
13766 * config.gcc (nds32*): Add new modules to extra_objs.
13767 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
13768 (nds32be-*-*): Likewise.
13769 * config/nds32/nds32-cost.c: New file.
13770 * config/nds32/nds32-fp-as-gp.c: New file.
13771 * config/nds32/nds32-intrinsic.c: New file.
13772 * config/nds32/nds32-isr.c: New file.
13773 * config/nds32/nds32-md-auxiliary.c: New file.
13774 * config/nds32/nds32-memory-manipulation.c: New file.
13775 * config/nds32/nds32-pipelines-auxiliary.c: New file.
13776 * config/nds32/nds32-predicates.c: New file.
13777 * config/nds32/t-nds32: New file.
13778
13779 2014-07-03 Jakub Jelinek <jakub@redhat.com>
13780
13781 PR tree-optimization/61682
13782 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
13783 using cases and when one of the operands is equal to 1.
13784
13785 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
13786
13787 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
13788 ashr<mode>3): Correct mode of operands[2].
13789 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
13790 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
13791 Correct mode of operands[2]. Fix split condition.
13792
13793 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
13794
13795 * arm.md (arch): Add armv6_or_vfpv3.
13796 (arch_enabled): Add test for the above.
13797 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
13798 on VFP9.
13799 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
13800
13801 2014-07-03 Jakub Jelinek <jakub@redhat.com>
13802
13803 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
13804 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
13805 HWI 1 and negate the unsigned value.
13806 * expmed.c (expand_sdiv_pow2): For modes wider than word always
13807 use AND instead of shift.
13808 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
13809
13810 2014-07-03 Marek Polacek <polacek@redhat.com>
13811
13812 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
13813 (-fsanitize=float-divide-by-zero): Move to the table with
13814 -fsanitize=undefined suboptions.
13815 (-fsanitize=float-cast-overflow): Likewise.
13816
13817 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
13818
13819 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
13820 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
13821 endianness.
13822
13823 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
13824
13825 * loop-invariant.c (struct invariant): Add a new member: eqno;
13826 (find_identical_invariants): Update eqno;
13827 (create_new_invariant): Init eqno;
13828 (get_inv_cost): Compute comp_cost with eqno;
13829
13830 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
13831
13832 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
13833 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
13834 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
13835 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
13836 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
13837
13838 2014-07-02 Christian Bruel <christian.bruel@st.com>
13839
13840 PR target/29349
13841 PR target/53513
13842 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
13843 (make_preds_opaque): Delete.
13844 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
13845 (commit_mode_sets): New function.
13846 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
13847 Process all modes at once.
13848 * basic-block.h (pre_edge_lcm_avs): Declare.
13849 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
13850 Call clear_aux_for_edges. Fix comments.
13851 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
13852 (pre_edge_rev_lcm): Idem.
13853 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
13854 parameter.
13855 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
13856 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
13857 Idem.
13858 * config/i386/i386.c (x96_emit_mode_set): Idem.
13859 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
13860 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
13861 (fpscr_toggle) Disallow from delay slot.
13862 * target.def (emit_mode_set): Add prev_mode parameter.
13863 * doc/tm.texi: Regenerate.
13864
13865 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13866
13867 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
13868 variable i.
13869
13870 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
13871
13872 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
13873 vtable_pointer_value_to_vtable): Constify.
13874 (contains_polymorphic_type_p): Declare.
13875 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
13876 vtable_pointer_value_to_vtable): Constify.
13877 (contains_polymorphic_type_p): New predicate.
13878 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
13879 polymorphic types.
13880 (ipa_set_ancestor_jf): Likewise.
13881 (detect_type_change): Return false in easy cases.
13882 (compute_complex_assign_jump_func): Require type to contain
13883 polymorphic type.
13884 (compute_known_type_jump_func): Likewise.
13885
13886 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
13887
13888 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
13889 Remove.
13890 (type_in_anonymous_namespace_p): Constify argument.
13891 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
13892 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
13893 (main_odr_variant): New function.
13894 (hash_type_name): Make static; update assert; do not ICE on
13895 non-records.
13896 (types_same_for_odr): Bring here from tree.c; simplify and remove
13897 old structural comparing code that doesn't work for templates.
13898 (odr_hasher::equal): Update assert.
13899 (add_type_duplicate): Return true when bases should be computed;
13900 replace incomplete loader by complete; do not output duplicated
13901 warnings; do not ICE on non-records; set odr_violated flag.
13902 (get_odr_type): Be ready to replace incomplete type by complete
13903 one; work on ODR variants instead of main variants; reorder item
13904 in array so bases have still smaller indexes.
13905 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
13906 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
13907
13908 2014-07-01 Cary Coutant <ccoutant@google.com>
13909
13910 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
13911 lookup.
13912 (resolve_addr_in_expr): When replacing the rtx in a location list
13913 entry, get a new address table entry.
13914 (dwarf2out_finish): Call index_location_lists even if there are no
13915 addr_index_table entries yet.
13916
13917 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
13918
13919 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
13920 change for not being obvious.
13921
13922 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
13923
13924 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
13925 unused argument.
13926
13927 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13928
13929 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
13930 (vcagt_f64): Likewise.
13931 (vcale_f64): Likewise.
13932 (vcaled_f64): Likewise.
13933 (vcales_f32): Likewise.
13934 (vcalt_f64): Likewise.
13935 (vcaltd_f64): Likewise.
13936 (vcalts_f32): Likewise.
13937
13938 2014-07-01 Marek Polacek <polacek@redhat.com>
13939
13940 * doc/invoke.texi: Document -Wint-conversion.
13941
13942 2014-07-01 Marek Polacek <polacek@redhat.com>
13943
13944 PR c/58286
13945 * doc/invoke.texi: Document -Wincompatible-pointer-types.
13946
13947 2014-07-01 Martin Liska <mliska@suse.cz>
13948
13949 IPA REF alias refactoring
13950 * cgraph.h (iterate_direct_aliases): New function.
13951 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
13952 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
13953 FOR_EACH_ALIAS added.
13954 (cgraph_for_node_and_aliases): Likewise.
13955 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
13956 * ipa-inline.c (reset_edge_caches): Likewise.
13957 (update_caller_keys): Likewise.
13958 * trans-mem.c (ipa_tm_execute): Likewise.
13959 *varpool.c (varpool_analyze_node): Likewise.
13960 (varpool_for_node_and_aliases): Likewise.
13961 * ipa-ref.h (first_alias): New function.
13962 (last_alias): Likewise.
13963 (has_aliases_p): Likewise.
13964 * ipa-ref.c (ipa_ref::remove_reference): Removal function
13965 is sensitive to IPA_REF_ALIASes.
13966 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
13967 are put at the beginning of the list.
13968 (symtab_node::iterate_direct_aliases): New function.
13969
13970 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
13971
13972 Revert:
13973 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
13974 type is complete.
13975 (write_ts_type_common_tree_pointers): Do not stream fields not set
13976 for incomplete types; do not stream duplicated fields for variants;
13977 sanity check that variant and type match.
13978 (write_ts_type_non_common_tree_pointers): Likewise.
13979 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
13980 TYPE_SIZE whether type is complete.
13981 (lto_input_ts_type_common_tree_pointers): Do same changes as in
13982 write_ts_type_common_tree_pointers
13983 (lto_input_ts_type_non_common_tree_pointers): Likewise.
13984
13985 2014-06-30 Joseph Myers <joseph@codesourcery.com>
13986
13987 * var-tracking.c (add_stores): Return instead of asserting if old
13988 and new values for conditional store are the same.
13989
13990 2014-06-30 Richard Henderson <rth@redhat.com>
13991
13992 PR rtl-opt/61608
13993 PR target/39284
13994 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
13995 the cfg if there were any changes.
13996 * passes.def: Revert move of peephole2 after reorder_blocks;
13997 move duplicate_computed_gotos before peephole2.
13998
13999 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
14000
14001 * except.c (emit_note_eh_region_end): New helper function.
14002 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
14003 emit EH_REGION_END note.
14004 * jump.c (cleanup_barriers): Do not split a call and its
14005 corresponding CALL_ARG_LOCATION note.
14006
14007 2014-06-30 Jeff Law <law@redhat.com>
14008
14009 PR tree-optimization/61607
14010 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
14011 deeper into the SSA_NAME_VALUE chain.
14012
14013 2014-06-30 Marek Polacek <polacek@redhat.com>
14014
14015 * convert.c (convert_to_integer): Don't instrument conversions if the
14016 function has no_sanitize_undefined attribute.
14017 * ubsan.c: Don't run the ubsan pass if the function has
14018 no_sanitize_undefined attribute.
14019
14020 2014-06-30 Jakub Jelinek <jakub@redhat.com>
14021
14022 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
14023 -fsanitize=undefined suboptions.
14024
14025 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
14026
14027 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
14028 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
14029 against bigendian and adjust indices.
14030
14031 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
14032
14033 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
14034
14035 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
14036
14037 PR target/61633
14038 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
14039 Add alternative; make early clobber. Adjust both split patterns
14040 to use operand 0 as the working register.
14041
14042 2014-06-30 Jakub Jelinek <jakub@redhat.com>
14043
14044 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
14045 as ira_object_id_map might be NULL, or 1.
14046
14047 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
14048
14049 * loop-invariant.c (get_inv_cost): Handle register class.
14050 (gain_for_invariant): Check the register pressure of the inv
14051 and its overlapped register class, other than all.
14052
14053 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
14054
14055 * doc/invoke.texi (Optimize Options): Fix descriptions of
14056 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
14057
14058 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
14059
14060 * doc/extend.texi (Function Attributes): Update 'naked' attribute
14061 documentation.
14062
14063 2014-06-29 Tobias Grosser <tobias@grosser.es>
14064
14065 PR bootstrap/61650
14066 * graphite-isl-ast-to-gimple.c: Add missing guards.
14067
14068 2014-06-29 Roman Gareev <gareevroman@gmail.com>
14069
14070 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
14071 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
14072 * flag-types.h: Add new enum fgraphite_generator.
14073 * graphite-isl-ast-to-gimple.c: New.
14074 * graphite-isl-ast-to-gimple.h: New.
14075 * graphite.c (graphite_transform_loops): Add choice of Graphite
14076 code generator, which depends on flag_graphite_code_gen.
14077
14078 2014-06-29 Roman Gareev <gareevroman@gmail.com>
14079
14080 * graphite-dependences.c (subtract_commutative_associative_deps):
14081 Add NULL checking of the following variables: must_raw_no_source,
14082 may_raw_no_source, must_war_no_source, may_war_no_source,
14083 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
14084 must_war, may_war, must_waw, may_waw.
14085
14086 2014-06-29 Roman Gareev <gareevroman@gmail.com>
14087
14088 * graphite-clast-to-gimple.c: gloog is renamed to
14089 graphite_regenerate_ast_cloog. gloog_error is renamed to
14090 graphite_regenerate_error.
14091 * graphite-clast-to-gimple.h: The definition of the struct
14092 bb_pbb_def is moved to graphite-htab.h.
14093 Add inclusion of the hash-table.h.
14094 * graphite-htab.h: The declaration of the function gloog is moved
14095 to graphite-clast-to-gimple.h and renamed to
14096 graphite_regenerate_ast_cloog.
14097 * graphite.c (graphite_transform_loops): gloog is renamed
14098 to graphite_regenerate_ast_cloog.
14099
14100 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
14101
14102 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
14103 type is complete.
14104 (write_ts_type_common_tree_pointers): Do not stream fields not set
14105 for incomplete types; do not stream duplicated fields for variants;
14106 sanity check that variant and type match.
14107 (write_ts_type_non_common_tree_pointers): Likewise.
14108 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
14109 TYPE_SIZE whether type is complete.
14110 (lto_input_ts_type_common_tree_pointers): Do same changes as in
14111 write_ts_type_common_tree_pointers
14112 (lto_input_ts_type_non_common_tree_pointers): Likewise.
14113
14114 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
14115
14116 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
14117
14118 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
14119
14120 * tree-inline.c (remap_type_1): Do not duplicate fields
14121 that are shared in between type and its main variant.
14122
14123 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
14124
14125 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
14126 of the type.
14127 (ipa_set_ancestor_jf) Likewise.
14128 (check_stmt_for_type_change): Check that we work on main variant.
14129 (detect_type_change): Look into main variant.
14130 (compute_known_type_jump_func): Check that main variant has BINFO.
14131
14132 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
14133
14134 * ipa-devirt.c (set_type_binfo): New function.
14135 (add_type_duplicate): Use it.
14136 (get_odr_type): Sanity check that binfos points to main variants.
14137 (get_class_context): Be sure the context's outer_type is main variant.
14138 (contains_type_p): Walk main variant.
14139 (get_polymorphic_call_info_for_decl): Set outer_type to be
14140 main variant.
14141 (get_polymorphic_call_info): Likewise.
14142 (possible_polymorphic_call_targets): Sanity check that we operate
14143 on main variant.
14144
14145 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
14146
14147 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
14148
14149 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14150
14151 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
14152 accidental change due to wide-int branch merge.
14153
14154 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14155
14156 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
14157 compressed debug support.
14158 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
14159 * configure: Regenerate.
14160 * config.in: Regenerate.
14161 * common.opt (compressed_debug_sections): New enum.
14162 (gz, gz=): New options.
14163 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
14164 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
14165 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
14166 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
14167 LINK_COMPRESS_DEBUG_SPEC.
14168 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
14169 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
14170 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
14171 (Debugging Options): Document -gz[=type].
14172
14173 2014-06-27 Martin Jambor <mjambor@suse.cz>
14174
14175 PR ipa/61160
14176 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
14177 args_to_skip, use those from node instead. Copy args_to_skip and
14178 combined_args_to_skip from node to the new thunk.
14179 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
14180 (cgraph_create_virtual_clone): Moved computation of
14181 combined_args_to_skip...
14182 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
14183
14184 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
14185
14186 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
14187 redundant diagnostic machinary.
14188
14189 2014-06-27 Richard Biener <rguenther@suse.de>
14190
14191 * tree-ssa-math-opts.c (bswap_replace): Fix
14192 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
14193
14194 2014-06-27 Martin Liska <mliska@suse.cz>
14195
14196 * gimple.h (gimple_location_safe): New function introduced.
14197 * cgraphunit.c (walk_polymorphic_call_targets): Usage
14198 of gimple_location_safe replaces gimple_location.
14199 (gimple_fold_call): Likewise.
14200 * ipa-devirt.c (ipa_devirt): Likewise.
14201 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14202 * ipa.c (walk_polymorphic_call_targets): Likewise.
14203 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
14204
14205 2014-06-27 Jakub Jelinek <jakub@redhat.com>
14206
14207 PR tree-optimization/57233
14208 PR tree-optimization/61299
14209 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
14210 functions.
14211 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
14212 would be lowered to scalar shifts, check if corresponding
14213 shifts and vector BIT_IOR_EXPR are supported and don't lower
14214 or lower just to narrower vector type in that case.
14215 * expmed.c (expand_shift_1): Fix up handling of vector
14216 shifts and rotates.
14217
14218 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
14219
14220 PR target/61586
14221 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
14222
14223 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
14224
14225 * doc/invoke.texi (-fsemantic-interposition): Document.
14226 * common.opt (fsemantic-interposition): New flag.
14227 * varasm.c (decl_replaceable_p): Use it.
14228
14229 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14230
14231 PR target/61542
14232 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
14233 extraction other than index 3.
14234
14235 2014-06-26 Teresa Johnson <tejohnson@google.com>
14236
14237 * doc/invoke.texi: Fix typo.
14238 * dumpfile.c: Add support for documented -fdump-* options
14239 optimized/missed/note/optall.
14240
14241 2014-06-26 Martin Jambor <mjambor@suse.cz>
14242
14243 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
14244 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
14245 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
14246 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
14247 * opts.c (default_options_optimization): Set
14248 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
14249 * doc/invoke.texi (allow-load-data-races)
14250 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
14251 (allow-store-data-races): Document the new default.
14252
14253 2014-06-26 Martin Jambor <mjambor@suse.cz>
14254
14255 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
14256 renamed to ipa_impossible_devirt_target. Fix typo.
14257 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
14258 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
14259 ipa_impossible_devirt_target.
14260
14261 2014-06-26 Richard Biener <rguenther@suse.de>
14262
14263 PR tree-optimization/61607
14264 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
14265 explaining why we restrict copies on loop depth.
14266 * tree-ssa-dom.c (cprop_operand): Remove restriction on
14267 on loop depth.
14268 (record_equivalences_from_phis): Instead add it here.
14269
14270 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
14271
14272 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
14273 (LTO_WRAPPER_OBJS): New variable.
14274 (lto-wrapper$(exeext)): Use it.
14275 * collect2.c: Include "collect-utils.h".
14276 (verbose, debug): Remove variables.
14277 (at_file_supplied): No longer static.
14278 (tool_name): New variable.
14279 (do_wait, fork_execute, maybe_unlink): Don't declare.
14280 (tool_cleanup): No longer static.
14281 (notice): Remove function.
14282 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
14283 fork_execute calls.
14284 (collect_wait, do_wait, collect_execute): Remove functions.
14285 (maybe_unlink): No longer static.
14286 * collect2.h (verbose, debug): Don't declare.
14287 (at_file_supplied): Declare.
14288 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
14289 changed.
14290 (collect_execute): Replace with implementation from collect2, plus a
14291 new arg use_atfile. All callers changed.
14292 (collect_wait): Replace with implementation from collect2.
14293 (maybe_unlink_file): Remove function.
14294 (fork_execute): Replace with implementation from collect2, plus a
14295 new arg use_atfile. All callers changed.
14296 (do_wait): Add call to utils_cleanup to the error path.
14297 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
14298 (tool_cleanup): Adjust declarations.
14299 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
14300 * tlink.c: Include "collect-utils.h".
14301 (tlink_execute): New arg use_atfile. All callers changed.
14302 (tlink_init, tlink_execute): Remove declarations.
14303
14304 * collect-utils.c (save_temps): New variable.
14305 (do_wait): Use it instead of debug. Use fatal_error.
14306 * collect-utils.h (save_temps): Declare.
14307 * collect2.c (verbose): Rename from vflag. All uses changed.
14308 (tool_cleanup): New function, copied from collect_atexit.
14309 (collect_atexit, handler): Just call it.
14310 * collect2.h (verbose): Declaration renamed from vflag.
14311 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
14312 debug.
14313
14314 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
14315 (lto-wrapper$(exeext)): Link with collect-utils.o.
14316 * collect-utils.c: New file.
14317 * collect-utils.h: New file.
14318 * lto-wrapper.c: Include "collect-utils.h".
14319 (args_name): Delete variable.
14320 (tool_name): New variable.
14321 (tool_cleanup): New function.
14322 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
14323 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
14324 (fork_execute): Remove functions.
14325
14326 2014-06-26 Nick Clifton <nickc@redhat.com>
14327
14328 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
14329
14330 * doc/extend.texi (Function Attributes): Fix typo in description
14331 of RX vector attribute.
14332
14333 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
14334
14335 * config.gcc (supported_defaults): Error when passing either
14336 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
14337
14338 2014-06-26 Richard Biener <rguenther@suse.de>
14339
14340 * tree-ssa-dom.c (cprop_operand): Remove restriction on
14341 propagating volatile pointers.
14342
14343 2014-06-26 Richard Biener <rguenther@suse.de>
14344
14345 PR tree-optimization/61607
14346 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
14347 loop if we redirected its latch edge.
14348 (thread_block_1): Do not cancel loops prematurely.
14349
14350 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
14351
14352 * toplev.c (backend_init_target): Move init_emit_regs and
14353 init_regs to...
14354 (backend_init) ... here; skip ira_init_once and backend_init_target.
14355 (target_reinit) ... and here; clear
14356 this_target_rtl->lang_dependent_initialized.
14357 (lang_dependent_init_target): Clear
14358 this_target_rtl->lang_dependent_initialized;
14359 break out rtl initialization to ...
14360 (initialize_rtl): ... here; call also backend_init_target
14361 and ira_init_once.
14362 * toplev.h (initialize_rtl): New function.
14363 * function.c: Include toplev.h
14364 (init_function_start): Call initialize_rtl.
14365 * rtl.h (target_rtl): Add target_specific_initialized,
14366 lang_dependent_initialized.
14367
14368 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
14369 Jakub Jelinek <jakub@redhat.com>
14370
14371 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
14372
14373 2014-06-25 Tom de Vries <tom@codesourcery.com>
14374
14375 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
14376
14377 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
14378
14379 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
14380 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
14381 Issue a strict overflow warning if appropriate.
14382
14383 2014-06-25 Martin Liska <mliska@suse.cz>
14384
14385 IPA REF refactoring
14386 * Makefile.in: Removed header file (ipa-ref-inline.h).
14387 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
14388 called.
14389 (cgraph_speculative_call_info): Likewise.
14390 (cgraph_for_node_thunks_and_aliases): Likewise.
14391 (cgraph_for_node_and_aliases): Likewise.
14392 (verify_cgraph_node): Likewise.
14393 * cgraph.h: Batch of IPA REF functions become member functions of
14394 symtab_node: add_reference, maybe_add_reference, clone_references,
14395 clone_referring, clone_reference, find_reference,
14396 remove_stmt_references, remove_all_references,
14397 remove_all_referring, dump_references, dump_referring,
14398 has_alias_p, iterate_reference, iterate_referring.
14399 * cgraphbuild.c (record_reference): New IPA REF function used.
14400 (record_type_list): Likewise.
14401 (record_eh_tables): Likewise.
14402 (mark_address): Likewise.
14403 (mark_load): Likewise.
14404 (mark_store): Likewise.
14405 (pass_build_cgraph_edges): Likewise.
14406 (rebuild_cgraph_edge): Likewise.
14407 (cgraph_rebuild_references): Likewise.
14408 (pass_remove_cgraph_callee_edges): Likewise.
14409 * cgraphclones.c (cgraph_clone_node): Likewise.
14410 (cgraph_create_virtual_clone): Likewise.
14411 (cgraph_materialize_clone): Likewise.
14412 (cgraph_materialize_all_clones): Likewise.
14413 * cgraphunit.c (cgraph_reset_node): Likewise.
14414 (cgraph_reset_node): Likewise.
14415 (analyze_function): Likewise.
14416 (assemble_thunks_and_aliases): Likewise.
14417 (expand_function): Likewise.
14418 * ipa-comdats.c (propagate_comdat_group): Likewise.
14419 (enqueue_references): Likewise.
14420 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
14421 (create_specialized_node): Likewise.
14422 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
14423 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
14424 * ipa-inline.c (reset_edge_caches): Likewise.
14425 (update_caller_keys): Likewise.
14426 (execute): Likewise.
14427 * ipa-prop.c (remove_described_reference): Likewise.
14428 (propagate_controlled_uses): Likewise.
14429 (ipa_edge_duplication_hook): Likewise.
14430 (ipa_modify_call_arguments): Likewise.
14431 * ipa-pure-const.c (propagate_pure_const): Likewise.
14432 * ipa-ref-inline.h: Header file removed, functions moved
14433 to symtab_node class.
14434 * ipa-ref.c (remove_reference): New class member function.
14435 (cannot_lead_to_return): New class member function.
14436 (referring_ref_list): Likewise.
14437 (referred_ref_list): Likewise.
14438 Rest of functions moved to symtab_node class.
14439 * ipa-ref.h: New member functions remove_reference,
14440 cannot_lead_to_return, referring_ref_list, referred_ref_list added
14441 to ipa_ref class.
14442 ipa_ref_list class has new member functions: first_reference,
14443 first_referring, clear, nreferences.
14444 * ipa-reference.c (analyze_function): New IPA REF function used.
14445 (write_node_summary_p): Likewise.
14446 (ipa_reference_write_optimization_summary): Likewise.
14447 * ipa-split.c (split_function): Likewise.
14448 * ipa-utils.c (ipa_reverse_postorder): Likewise.
14449 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
14450 (function_and_variable_visibility): Likewise.
14451 * ipa.c (has_addr_references_p): Likewise.
14452 (process_references): Argument type changed.
14453 (symtab_remove_unreachable_nodes): New IPA REF function used.
14454 (process_references): Likewise.
14455 (set_writeonly_bit): Likewise.
14456 * lto-cgraph.c: Implementation of new symtab_node member functions
14457 that uses new IPA REF functions.
14458 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
14459 function used.
14460 * lto-streamer-out.c (output_symbol_p): Likewise.
14461 * lto-streamer.h (referenced_from_this_partition_p): Argument type
14462 changed.
14463 * symtab.c: Implementation of new IPA REF API.
14464 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
14465 (ipa_tm_create_version): Likewise.
14466 (ipa_tm_execute): Likewise.
14467 * tree-emutls.c (gen_emutls_addr): Likewise.
14468 * tree-inline.c (copy_bb): Likewise.
14469 (delete_unreachable_blocks_update_callgraph): Likewise.
14470 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
14471 (varpool_for_node_and_aliases): Likewise.
14472
14473 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
14474
14475 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
14476
14477 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
14478
14479 PR bootstrap/61598
14480 * fold-const.c (fold_checksum_tree): Use a hash_table of const
14481 tree_node * instead of tree_node *.
14482 (fold): Adjust.
14483 (print_fold_checksum): Likewise.
14484 (fold_check_failed): Likewise.
14485 (debug_fold_checksum): Likewise.
14486 (fold_build1_stat_loc): Likewise.
14487 (fold_build2_stat_loc): Likewise.
14488 (fold_build3_stat_loc): Likewise.
14489 (fold_build_call_array_loc): Likewise.
14490
14491 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
14492
14493 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
14494 implementation with call to...
14495 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
14496 function.
14497 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
14498 Declare.
14499
14500 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
14501
14502 PR tree-optimization/57742
14503 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
14504 after replacing the statement.
14505
14506 2014-06-25 Nick Clifton <nickc@redhat.com>
14507
14508 * config/v850/v850.c (GHS_default_section_names): Change to const
14509 char * type.
14510 (GHS_current_section_names): Likewise.
14511 (v850_insert_attributes): Do not build strings, just assign the
14512 names directly. Change the type of 'chosen_section' to const
14513 char*.
14514 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
14515 directly to the array entry.
14516 * config/v850/v850.h (GHS_default_section_names): Change to const
14517 char * type.
14518 (GHS_current_section_names): Likewise.
14519
14520 2014-06-25 Jakub Jelinek <jakub@redhat.com>
14521
14522 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
14523 (LANG_HOOKS_DECLS): Add it.
14524 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
14525 has correct type.
14526 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
14527 * langhooks.h (struct lang_hooks_for_decls): Add
14528 omp_clause_linear_ctor hook.
14529 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
14530 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
14531 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
14532 combined simd loop use omp_clause_linear_ctor hook.
14533
14534 2014-06-24 Cong Hou <congh@google.com>
14535
14536 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
14537 pattern recognition.
14538 (type_conversion_p): PROMOTION is true if it's a type promotion
14539 conversion, and false otherwise. Return true if the given expression
14540 is a type conversion one.
14541 * tree-vectorizer.h: Adjust the number of patterns.
14542 * tree.def: Add SAD_EXPR.
14543 * optabs.def: Add sad_optab.
14544 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
14545 * expr.c (expand_expr_real_2): Likewise.
14546 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
14547 * gimple.c (get_gimple_rhs_num_ops): Likewise.
14548 * optabs.c (optab_for_tree_code): Likewise.
14549 * tree-cfg.c (estimate_operator_cost): Likewise.
14550 * tree-ssa-operands.c (get_expr_operands): Likewise.
14551 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
14552 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
14553 * doc/generic.texi: Add document for SAD_EXPR.
14554 * doc/md.texi: Add document for ssad and usad.
14555
14556 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
14557
14558 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
14559 qualification in cast.
14560
14561 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
14562
14563 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
14564 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
14565 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
14566 (tree_function_decl): ... here.
14567 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
14568 streaming of vindex to ...
14569 (write_ts_function_decl_tree_pointers): ... here.
14570 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
14571 Do not stream DECL_VINDEX.
14572 (lto_input_ts_function_decl_tree_pointers): Stream it here.
14573
14574 2014-06-24 Catherine Moore <clm@codesourcery.com>
14575 Sandra Loosemore <sandra@codesourcery.com>
14576
14577 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
14578 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
14579 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
14580
14581 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
14582
14583 * doc/invoke.texi (Warning Options): Remove duplicated
14584 -Wmaybe-uninitialized.
14585
14586 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
14587
14588 PR tree-optimization/57742
14589 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
14590 (handle_builtin_malloc, handle_builtin_memset): New functions.
14591 (strlen_optimize_stmt): Call them.
14592 * passes.def: Move strlen after loop+dom but before vrp.
14593
14594 2014-06-24 Jakub Jelinek <jakub@redhat.com>
14595
14596 PR target/61570
14597 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
14598 model family 6 CPU with has_longmode never use a CPU without
14599 64-bit support.
14600
14601 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
14602
14603 PR target/61570
14604 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
14605 the last change.
14606
14607 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
14608
14609 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
14610 * dominance.c (iterate_fix_dominators): Use hash_map instead of
14611 pointer_map.
14612 * hash-map.h: New file.
14613 * ipa-comdats.c: Use hash_map instead of pointer_map.
14614 * ipa.c: Likewise.
14615 * lto-section-out.c: Adjust.
14616 * lto-streamer.h: Replace pointer_map with hash_map.
14617 * symtab.c (verify_symtab): Likewise.
14618 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
14619 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
14620 * tree-streamer.h: Likewise.
14621 * tree-streamer.c: Adjust.
14622 * pointer-set.h: Remove pointer_map.
14623
14624 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
14625
14626 * hash-table.h: Add a template arg to choose between storing values
14627 and storing pointers to values, and then provide partial
14628 specializations for both.
14629 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
14630 should store, not the type values should point to.
14631 * tree-into-ssa.c (var_info_hasher): Likewise.
14632 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
14633 * tree-complex.c: Adjust.
14634 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
14635 table instead of int_tree_map *.
14636 * tree-parloops.c: Adjust.
14637 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
14638 type is being stored.
14639 * tree-vectorizer.c: Adjust.
14640
14641 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
14642
14643 * hash-table.h: Remove a layer of indirection from hash_table so that
14644 it contains the hash table's data instead of a pointer to the data.
14645 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
14646 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
14647 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
14648 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
14649 fold-const.c, gcse.c, ggc-common.c,
14650 gimple-ssa-strength-reduction.c, gimplify.c,
14651 graphite-clast-to-gimple.c, graphite-dependences.c,
14652 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
14653 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
14654 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
14655 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
14656 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
14657 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
14658 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
14659 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
14660 tree-ssa-live.c, tree-ssa-loop-im.c,
14661 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
14662 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
14663 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
14664 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
14665 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
14666 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
14667 vtable-verify.c, vtable-verify.h: Adjust.
14668
14669 2014-06-24 Richard Biener <rguenther@suse.de>
14670
14671 PR tree-optimization/61572
14672 * tree-ssa-sink.c (statement_sink_location): Do not sink
14673 loads from hard registers.
14674
14675 2014-06-24 Jakub Jelinek <jakub@redhat.com>
14676
14677 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
14678 not mentioned in clauses use private clause if the iterator is
14679 declared in #pragma omp for simd, and when adding lastprivate
14680 instead, add it to the outer #pragma omp for too. Diagnose
14681 if the variable is private in outer context. For simd collapse > 1
14682 loops, replace all iterators with temporaries.
14683 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
14684 same even in collapse > 1 loops.
14685
14686 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
14687 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
14688 non-NULL.
14689 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
14690 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
14691 non-NULL.
14692 (gimplify_adjust_omp_clauses): Likewise.
14693 * omp-low.c (lower_rec_simd_input_clauses,
14694 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
14695 safelen the same as safelen(1).
14696 * tree-nested.c (convert_nonlocal_omp_clauses,
14697 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
14698 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
14699 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
14700 Fixup handling of GIMPLE_OMP_TARGET.
14701 (convert_tramp_reference_stmt, convert_gimple_call): Handle
14702 GIMPLE_OMP_TARGET.
14703
14704 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
14705
14706 PR tree-optimization/61554
14707 * tree-ssa-propagate.c: Include "bitmap.h".
14708 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
14709 properly update constructor/destructor.
14710 (substitute_and_fold_dom_walker::before_dom_children):
14711 Remove call to gimple_purge_dead_eh_edges, add bb->index to
14712 need_eh_cleaup instead.
14713 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
14714 need_eh_cleanup.
14715
14716 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
14717
14718 * varpool.c (dump_varpool_node): Dump used_by_single_function.
14719 * tree-pass.h (make_pass_ipa_single_use): New pass.
14720 * cgraph.h (used_by_single_function): New flag.
14721 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
14722 Stream it.
14723 * passes.def (pass_ipa_single_use): Scedule.
14724 * ipa.c (BOTTOM): New macro.
14725 (meet): New function
14726 (propagate_single_user): New function.
14727 (ipa_single_use): New function.
14728 (pass_data_ipa_single_use): New pass.
14729 (pass_ipa_single_use): New pass.
14730 (pass_ipa_single_use::gate): New gate.
14731 (make_pass_ipa_single_use): New function.
14732
14733 2014-06-23 Kai Tietz <ktietz@redhat.com>
14734
14735 PR target/39284
14736 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
14737 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
14738
14739 2014-06-23 Richard Biener <rguenther@suse.de>
14740
14741 * tree-ssa-loop.c (gate_loop): New function.
14742 (pass_tree_loop::gate): Call it.
14743 (pass_data_tree_no_loop, pass_tree_no_loop,
14744 make_pass_tree_no_loop): New.
14745 * tree-vectorizer.c: Include tree-scalar-evolution.c
14746 (pass_slp_vectorize::execute): Initialize loops and SCEV if
14747 required.
14748 (pass_slp_vectorize::clone): New method.
14749 * timevar.def (TV_TREE_NOLOOP): New.
14750 * tree-pass.h (make_pass_tree_no_loop): Declare.
14751 * passes.def (pass_tree_no_loop): New pass group with
14752 SLP vectorizer.
14753
14754 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
14755
14756 PR target/61570
14757 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
14758 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
14759
14760 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
14761
14762 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
14763 "yes" where needed.
14764
14765 2014-06-23 Alan Modra <amodra@gmail.com>
14766
14767 PR bootstrap/61583
14768 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
14769 to zero on debug statements.
14770
14771 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
14772
14773 PR target/60825
14774 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
14775 Ignore third operand if present by marking qualifier_internal.
14776
14777 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
14778
14779 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
14780 vector extension.
14781 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
14782 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
14783 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
14784 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
14785 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
14786 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
14787 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
14788 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
14789 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
14790 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
14791 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
14792 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
14793 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
14794 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
14795 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
14796 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
14797 logic in GCC vector extensions
14798
14799 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
14800 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
14801 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
14802 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
14803 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
14804 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
14805 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
14806 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
14807 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
14808 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
14809
14810 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
14811
14812 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
14813 extensions.
14814
14815 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
14816 (vget_low_s64): Use __GET_LOW macro.
14817 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
14818 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
14819 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
14820 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
14821 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
14822
14823 (vcombine_s64): Use GCC vector extensions; remove cast.
14824 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
14825 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
14826 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
14827 Fix type signature; remove cast.
14828
14829 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
14830
14831 PR target/60825
14832 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
14833 V1DFmode.
14834 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
14835 add V1DFmode
14836 (BUILTIN_VD1): New.
14837 (BUILTIN_VD_RE): Remove.
14838 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
14839 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
14840 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
14841 variant but not df.
14842 (vreinterpretv1df*, vreinterpret*v1df): New.
14843 (vreinterpretdf*, vreinterpret*df): Remove.
14844 * config/aarch64/aarch64-simd.md (aarch64_create,
14845 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
14846 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
14847 (VD1): New.
14848 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
14849 (vcreate_f64): Remove cast, use v1df builtin.
14850 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
14851 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
14852 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
14853 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
14854 vmov_n_f64, vst1_f64): Use gcc vector extensions.
14855 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
14856 add range check using __builtin_aarch64_im_lane_boundsi.
14857 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
14858 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
14859 type signature, use gcc vector extensions.
14860 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
14861 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
14862 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
14863 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
14864 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
14865 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
14866 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
14867 vreinterpret_u64_f64): Use v1df builtin not df.
14868
14869 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
14870
14871 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
14872 vector registers.
14873
14874 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
14875
14876 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
14877 priority directly.
14878
14879 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
14880
14881 * loop-invariant.c (pre_check_invariant_p): New function.
14882 (find_invariant_insn): Call pre_check_invariant_p.
14883
14884 2014-06-22 Richard Henderson <rth@redhat.com>
14885
14886 PR target/61565
14887 * compare-elim.c (struct comparison): Add eh_note.
14888 (find_comparison_dom_walker::before_dom_children): Don't eliminate
14889 a redundant comparison in a different EH region. Purge EH edges if
14890 necessary.
14891
14892 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
14893
14894 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
14895 (var_shift): Use it.
14896 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
14897 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
14898 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
14899 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
14900 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
14901 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
14902 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
14903 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
14904 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
14905 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
14906 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
14907 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
14908 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
14909 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
14910 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
14911 *rotldi3_internal15be): Use the new attribute. Merge register and
14912 integer alternatives.
14913
14914 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
14915
14916 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
14917 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
14918 split, *ashrdi3_internal3 and split): Delete, merge into...
14919 (ashr<mode>3): New expander.
14920 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
14921 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
14922
14923 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
14924
14925 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
14926 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
14927 *rotldi3_internal3 and split): Delete, merge into...
14928 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
14929 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
14930 Use "rotlw" extended mnemonic.
14931
14932 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
14933
14934 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
14935 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
14936 and split, *ashldi3_internal3 and split): Delete, merge into...
14937 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
14938 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
14939
14940 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
14941
14942 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
14943 (lshrsi3, two anonymous define_insns and define_splits,
14944 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
14945 *lshrdi3_internal3 and split): Delete, merge into...
14946 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
14947 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
14948
14949 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
14950
14951 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
14952 Remove "O" alternative.
14953
14954 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
14955
14956 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
14957 (mips_move_from_gpr_cost): Likewise.
14958 (mips_register_move_cost): Update accordingly.
14959 (mips_secondary_reload_class): Remove name of in_p.
14960
14961 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
14962
14963 PR target/61503
14964 * config/i386/i386.md (x86_64_shrd, x86_shrd,
14965 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
14966
14967 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
14968
14969 * config/nios2/nios2.c: Include "builtins.h".
14970
14971 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
14972
14973 * cgraph.h (tls_model_names): New variable.
14974 * print-tree.c (print_node): Simplify.
14975 * varpool.c (tls_model_names): New variable.
14976 (dump_varpool_node): Output tls model.
14977
14978 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
14979
14980 * ipa-visibility.c (function_and_variable_visibility): Disable
14981 temporarily local aliases for some targets.
14982
14983 2014-06-20 Marek Polacek <polacek@redhat.com>
14984
14985 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
14986 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
14987 into SANITIZE_UNDEFINED.
14988 * doc/invoke.texi: Describe -fsanitize=bounds.
14989 * gimplify.c (gimplify_call_expr): Add gimplification of internal
14990 functions created in the FEs.
14991 * internal-fn.c: Move "internal-fn.h" after "tree.h".
14992 (expand_UBSAN_BOUNDS): New function.
14993 * internal-fn.def (UBSAN_BOUNDS): New internal function.
14994 * internal-fn.h: Don't define internal functions here.
14995 * opts.c (common_handle_option): Add -fsanitize=bounds.
14996 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
14997 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
14998 * tree-core.h: Define internal functions here.
14999 (struct tree_base): Add ifn field.
15000 * tree-pretty-print.c: Include "internal-fn.h".
15001 (dump_generic_node): Handle functions without CALL_EXPR_FN.
15002 * tree.c (get_callee_fndecl): Likewise.
15003 (build_call_expr_internal_loc): New function.
15004 * tree.def (CALL_EXPR): Update description.
15005 * tree.h (CALL_EXPR_IFN): Define.
15006 (build_call_expr_internal_loc): Declare.
15007 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
15008 types.
15009 (ubsan_type_descriptor): Change bool parameter to enum
15010 ubsan_print_style. Adjust the code. Add handling of
15011 UBSAN_PRINT_ARRAY.
15012 (ubsan_expand_bounds_ifn): New function.
15013 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
15014 (ubsan_build_overflow_builtin): Likewise.
15015 (instrument_bool_enum_load): Likewise.
15016 (ubsan_instrument_float_cast): Likewise.
15017 * ubsan.h (enum ubsan_print_style): New enum.
15018 (ubsan_expand_bounds_ifn): Declare.
15019 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
15020
15021 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
15022
15023 * config/rs6000/rs6000.md: Append `DONE' to preparation
15024 statements of `bswap' pattern splitters.
15025
15026 2014-06-20 Tom de Vries <tom@codesourcery.com>
15027
15028 * target.def (call_fusage_contains_non_callee_clobbers): Update
15029 definition.
15030 * doc/tm.texi: Regenerate.
15031
15032 2014-06-20 Yury Gribov <y.gribov@samsung.com>
15033 Max Ostapenko <m.ostapenko@partner.samsung.com>
15034
15035 PR sanitizer/61547
15036 * asan.c (instrument_strlen_call): Fixed instrumentation of
15037 trailing byte.
15038
15039 2014-06-20 Martin Jambor <mjambor@suse.cz>
15040
15041 PR ipa/61540
15042 * ipa-prop.c (impossible_devirt_target): New function.
15043 (try_make_edge_direct_virtual_call): Use it, also instead of
15044 asserting.
15045
15046 2014-06-20 Yury Gribov <y.gribov@samsung.com>
15047 Max Ostapenko <m.ostapenko@partner.samsung.com>
15048
15049 PR sanitizer/61530
15050 * asan.c (build_check_stmt): Add condition.
15051
15052 2014-06-20 Martin Jambor <mjambor@suse.cz>
15053
15054 PR ipa/61211
15055 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
15056 expanded clones.
15057
15058 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15059
15060 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
15061 Update comments.
15062 (VCONQ): Make comment more helpful.
15063 (VCON): Delete.
15064 * config/aarch64/aarch64-simd.md
15065 (aarch64_sqdmulh_lane<mode>):
15066 Use VCOND for operands 2. Update lane checking and flipping logic.
15067 (aarch64_sqrdmulh_lane<mode>): Likewise.
15068 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
15069 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
15070 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
15071 attribute of operand 3 to VCOND.
15072 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
15073 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
15074 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
15075 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
15076 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
15077 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
15078 define_insn.
15079 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
15080 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
15081 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
15082 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
15083 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
15084 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
15085 operand to VCOND. Update lane flipping and bounds checking logic.
15086 (aarch64_sqdmlal2_lane<mode>): Likewise.
15087 (aarch64_sqdmlsl_lane<mode>): Likewise.
15088 (aarch64_sqdmull_lane<mode>): Likewise.
15089 (aarch64_sqdmull2_lane<mode>): Likewise.
15090 (aarch64_sqdmlal_laneq<mode>):
15091 Replace VCON usage with VCONQ.
15092 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
15093 (aarch64_sqdmlal2_laneq<mode>): Emit
15094 aarch64_sqdmlal2_laneq<mode>_internal insn.
15095 Replace VCON with VCONQ.
15096 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
15097 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
15098 (aarch64_sqdmull_laneq<mode>): Emit
15099 aarch64_sqdmull_laneq<mode>_internal insn.
15100 Replace VCON with VCONQ.
15101 (aarch64_sqdmull2_laneq<mode>): Emit
15102 aarch64_sqdmull2_laneq<mode>_internal insn.
15103 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
15104 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
15105 of 3rd argument to int16x4_t.
15106 (vqdmlalh_lane_s16): Likewise.
15107 (vqdmlslh_lane_s16): Likewise.
15108 (vqdmull_high_lane_s16): Likewise.
15109 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
15110 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
15111 (vqdmlsl_lane_s16): Likewise.
15112 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
15113 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
15114 (vqdmlals_lane_s32): Likewise.
15115 (vqdmlsls_lane_s32): Likewise.
15116 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
15117 (vqdmulls_lane_s32): Likewise.
15118 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
15119 (vqdmlsl_lane_s32): Likewise.
15120 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
15121 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
15122 (vqrdmulhh_lane_s16): Likewise.
15123 (vqdmlsl_high_lane_s16): Likewise.
15124 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
15125 (vqdmlsl_high_lane_s32): Likewise.
15126 (vqrdmulhs_lane_s32): Likewise.
15127
15128 2014-06-20 Tom de Vries <tom@codesourcery.com>
15129
15130 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
15131 get_call_reg_set_usage.
15132
15133 2014-06-20 Tom de Vries <tom@codesourcery.com>
15134
15135 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
15136 it contains all call_used_regs.
15137
15138 2014-06-20 Tom de Vries <tom@codesourcery.com>
15139
15140 * final.c (collect_fn_hard_reg_usage): Add and use variable
15141 function_used_regs.
15142
15143 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
15144
15145 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
15146 (set_init_priority, get_init_priority, set_fini_priority,
15147 get_fini_priority): New methods.
15148 * tree.c (init_priority_for_decl): Remove.
15149 (init_ttree): Do not initialize init priority.
15150 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
15151 (decl_priority_info): Remove.
15152 (decl_init_priority_insert): Rewrite.
15153 (decl_fini_priority_insert): Rewrite.
15154 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
15155 tree_priority_map_marked_p): Remove.
15156 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
15157 * lto-streamer-out.c (hash_tree): Do not hash priorities.
15158 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
15159 not output priorities.
15160 (pack_ts_function_decl_value_fields): Likewise.
15161 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
15162 not input priorities.
15163 (unpack_ts_function_decl_value_fields): Likewise.
15164 * symtab.c (symbol_priority_map): Declare.
15165 (init_priority_hash): Declare.
15166 (symtab_unregister_node): Unregister from priority hash, too.
15167 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
15168 New methods.
15169 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
15170 (symbol_priority_info): New function.
15171 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
15172 New methods.
15173 * tree-core.h (tree_priority_map): Remove.
15174
15175 2014-06-20 Jakub Jelinek <jakub@redhat.com>
15176
15177 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
15178 0xff to uint64_t before shifting it up.
15179
15180 2014-06-20 Julian Brown <julian@codesourcery.com>
15181 Chung-Lin Tang <cltang@codesourcery.com>
15182
15183 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
15184 TARGET_THUMB1_ONLY. Add comments.
15185
15186 2014-06-19 Tom de Vries <tom@codesourcery.com>
15187
15188 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
15189 return type to void.
15190 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
15191
15192 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15193
15194 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
15195 as "move", from depends_on.
15196
15197 2014-06-19 Terry Guo <terry.guo@arm.com>
15198
15199 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
15200 stage.
15201
15202 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
15203
15204 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
15205 Remove cr5.
15206 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
15207
15208 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
15209
15210 PR target/61550
15211 * config/sh/sh.c (prepare_move_operands): Don't process TLS
15212 addresses here if reload in progress or completed.
15213
15214 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
15215
15216 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
15217 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
15218 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
15219 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
15220 (mips_register_priority): New function that implements the target
15221 hook TARGET_REGISTER_PRIORITY.
15222 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
15223 (mips_lra_p): Likewise for TARGET_LRA_P.
15224 (TARGET_REGISTER_PRIORITY): Define macro.
15225 (TARGET_SPILL_CLASS): Likewise.
15226 (TARGET_LRA_P): Likewise.
15227 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
15228 classes.
15229 (REG_CLASS_NAMES): Likewise.
15230 (REG_CLASS_CONTENTS): Likewise.
15231 (BASE_REG_CLASS): Use M16_SP_REGS.
15232 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
15233 New set attribute to enable alternatives depending on the register
15234 allocator used.
15235 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
15236 (*lea64): Disable pattern for MIPS16.
15237 * config/mips/mips.opt (mlra): New option.
15238
15239 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
15240
15241 * lra-constraints.c (base_to_reg): New function.
15242 (process_address): Use new function.
15243
15244 2014-06-18 Tom de Vries <tom@codesourcery.com>
15245
15246 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
15247 * config/aarch64/aarch64.c
15248 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
15249 (aarch64_emit_call_insn): New function.
15250 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
15251 of emit_call_insn.
15252 * config/aarch64/aarch64.md (define_expand "call_internal")
15253 (define_expand "call_value_internal", define_expand "sibcall_internal")
15254 (define_expand "sibcall_value_internal"): New.
15255 (define_expand "call", define_expand "call_value")
15256 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
15257 expand variant and aarch64_emit_call_insn.
15258
15259 2014-06-18 Radovan Obradovic <robradovic@mips.com>
15260 Tom de Vries <tom@codesourcery.com>
15261
15262 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
15263 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
15264 Redefine to true.
15265 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
15266 clobbers to CALL_INSN_FUNCTION_USAGE.
15267 (define_expand "sibcall_internal")
15268 (define_expand "sibcall_value_internal"): New.
15269 (define_expand "call", define_expand "call_value"): Add argument to
15270 arm_emit_call_insn.
15271 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
15272 (define_expand "sibcall_value"): Use sibcall_value_internal and
15273 arm_emit_call_insn.
15274
15275 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15276
15277 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
15278
15279 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15280
15281 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
15282 __udivmoddi4.
15283
15284 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15285
15286 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
15287 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
15288 annotations. Fix DWARF information.
15289
15290 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15291
15292 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
15293 __udivmoddi4, and fixups for negative operands.
15294
15295 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15296
15297 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
15298
15299 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15300
15301 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
15302 to __udivmoddi4.
15303
15304 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15305
15306 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
15307 manipulation.
15308
15309 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15310
15311 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
15312 describing register usage on function entry and exit.
15313
15314 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15315
15316 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
15317 (__aeabi_ldivmod): Fix whitespace.
15318
15319 2014-06-18 Andreas Schwab <schwab@suse.de>
15320
15321 * doc/md.texi (Standard Names): Use @itemx for grouped items.
15322 Remove blank line after @item.
15323
15324 2014-06-18 Richard Henderson <rth@redhat.com>
15325
15326 PR target/61545
15327 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
15328
15329 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
15330
15331 * config/arm/arm.c (neon_vector_mem_operand): Allow register
15332 POST_MODIFY for neon loads and stores.
15333 (arm_print_operand): Output post-index register for neon loads and
15334 stores.
15335
15336 2014-06-18 Richard Biener <rguenther@suse.de>
15337
15338 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
15339
15340 2014-06-18 Richard Biener <rguenther@suse.de>
15341
15342 * tree-pass.h (make_pass_dce_loop): Remove.
15343 * passes.def: Replace pass_dce_loop with pass_dce.
15344 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
15345 changed free niter estimates and reset the scev cache.
15346 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
15347 make_pass_dce_loop): Remove.
15348 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
15349 (fini_copy_prop): Return whether something changed. Always
15350 let substitute_and_fold perform DCE and free niter estimates
15351 and reset the scev cache if so.
15352 (execute_copy_prop): If sth changed schedule cleanup-cfg.
15353 (pass_data_copy_prop): Do not unconditionally schedule
15354 cleanup-cfg or update-ssa.
15355
15356 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
15357
15358 PR tree-optimization/61518
15359 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
15360 reduction var is used in reduction stmt or phi-function only.
15361
15362 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15363
15364 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
15365
15366 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
15367
15368 PR tree-optimization/61517
15369 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
15370 whose rhs's first tree is the source expression instead of the
15371 expression itself.
15372 (find_bswap_or_nop): Likewise.
15373 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
15374 gimple stmt whose rhs's first tree is the source. In the memory source
15375 case, move the stmt to be replaced close to one of the original load to
15376 avoid the problem of a store between the load and the stmt's original
15377 location.
15378 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
15379 signature.
15380
15381 2014-06-18 Andreas Schwab <schwab@suse.de>
15382
15383 PR rtl-optimization/54555
15384 * postreload.c (move2add_use_add2_insn): Substitute
15385 STRICT_LOW_PART only if it is cheaper.
15386
15387 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
15388
15389 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
15390 Do not use unspec as call operand. Use memory_operand instead of
15391 memory_nox32_operand and add "m" operand constraint. Disable
15392 pattern for TARGET_X32.
15393 (*sibcall_pop_memory): Ditto.
15394 (*sibcall_value_memory): Ditto.
15395 (*sibcall_value_pop_memory): Ditto.
15396 (sibcall peepholes): Merge SImode and DImode patterns using
15397 W mode iterator. Use memory_operand instead of memory_nox32_operand.
15398 Disable pattern for TARGET_X32. Check if eliminated register is
15399 really dead after call insn. Generate call RTX without unspec operand.
15400 (sibcall_value peepholes): Ditto.
15401 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
15402 instead of memory_nox32_operand. Check if eliminated register is
15403 really dead after call insn. Generate call RTX without unspec operand.
15404 (sibcall_value_pop peepholes): Ditto.
15405 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
15406
15407 2014-06-18 Terry Guo <terry.guo@arm.com>
15408
15409 PR target/61544
15410 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
15411 reach the head.
15412
15413 2014-06-18 Olivier Hainque <hainque@adacore.com>
15414
15415 * tree-core.h (tree_block): Add an "end_locus" field, allowing
15416 memorization of the end of block source location.
15417 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
15418 * gimplify.c (gimplify_bind_expr): Propagate the block start and
15419 end source location info we have on the block entry/exit code we
15420 generate.
15421
15422 2014-06-18 Richard Biener <rguenther@suse.de>
15423
15424 * common.opt (fssa-phiopt): New option.
15425 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
15426 but not with -Og.
15427 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
15428 * doc/invoke.texi (-fssa-phiopt): Document.
15429
15430 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15431
15432 * genattrtab.c (n_bypassed): New variable.
15433 (process_bypasses): Initialise n_bypassed.
15434 Count number of bypassed reservations.
15435 (make_automaton_attrs): Allocate space for bypassed reservations
15436 rather than number of bypasses.
15437
15438 2014-06-18 Richard Biener <rguenther@suse.de>
15439
15440 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
15441 we propagated anything.
15442 (substitute_and_fold_dom_walker::before_dom_children): Something
15443 changed if we propagated into PHI arguments.
15444 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
15445 we removed a stmt.
15446
15447 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
15448
15449 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
15450 vector case.
15451 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
15452 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
15453 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
15454 Introduces alternative way of loads group permutaions.
15455 (vect_transform_grouped_load): Try alternative way of permutations.
15456
15457 2014-06-18 Jakub Jelinek <jakub@redhat.com>
15458
15459 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
15460 changed in ORT_TARGET region, don't jump to do_outer.
15461 (struct gimplify_adjust_omp_clauses_data): New type.
15462 (gimplify_adjust_omp_clauses_1): Adjust for data being
15463 a struct gimplify_adjust_omp_clauses_data pointer instead
15464 of tree *. Pass pre_p as a new argument to
15465 lang_hooks.decls.omp_finish_clause hook.
15466 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
15467 splay_tree_foreach to pass both list_p and pre_p.
15468 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
15469 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
15470 gimplify_adjust_omp_clauses callers.
15471 * langhooks.c (lhd_omp_finish_clause): New function.
15472 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
15473 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
15474 * langhooks.h (struct lang_hooks_for_decls): Add a new
15475 gimple_seq * argument to omp_finish_clause hook.
15476 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
15477 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
15478 (scan_omp_parallel, lower_omp_for): When adding
15479 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
15480 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
15481 * tree-nested.c (convert_nonlocal_omp_clauses,
15482 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
15483 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
15484
15485 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
15486
15487 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
15488 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
15489
15490 2014-06-17 Xinliang David Li <davidxl@google.com>
15491
15492 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
15493 * passes.c (pass_init_dump_file): Do not set initialize
15494 flag to false unconditionally.
15495
15496 2014-06-17 Richard Biener <rguenther@suse.de>
15497
15498 * genopinit.c (main): Use vec<>::qsort method.
15499 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
15500 Likewise.
15501 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
15502
15503 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
15504
15505 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
15506 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
15507 (mips_move_to_gpr_cost): Remove ST_REGS case.
15508 (mips_move_from_gpr_cost): Likewise.
15509 (mips_register_move_cost): Likewise.
15510 (mips_secondary_reload_class): Likewise.
15511
15512 2014-06-17 Richard Biener <rguenther@suse.de>
15513
15514 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
15515 (pass_all_optimizations): Move 3rd copy-prop pass from after
15516 fre to before ifcombine/phiopt.
15517
15518 2014-06-17 Richard Biener <rguenther@suse.de>
15519
15520 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
15521 and allow all blocks to be forwarders.
15522
15523 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
15524
15525 PR target/61483
15526 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
15527 variable 'size'; calculate 'size' right in the front; use
15528 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
15529 pcum->aapcs_stack_words.
15530
15531 2014-06-17 Nick Clifton <nickc@redhat.com>
15532
15533 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
15534 (umulhi3, mulsidi3, umulsidi3): Likewise.
15535
15536 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
15537
15538 PR middle-end/61508
15539 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
15540 check for section name.
15541
15542 2014-06-17 Richard Biener <rguenther@suse.de>
15543
15544 * tree-ssa-propagate.c: Include domwalk.h.
15545 (substitute_and_fold): Outline main worker into a domwalker ...
15546 (substitute_and_fold_dom_walker::before_dom_children): ... here.
15547 Schedule stmts we can fully propagate for removal. Remove
15548 poor-mans DCE.
15549 (substitute_and_fold): Apply a dominator walk to perform
15550 substitution. Process stmts scheduled for removal here.
15551
15552 2014-06-17 Richard Biener <rguenther@suse.de>
15553
15554 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
15555 of PHI node moving.
15556
15557 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
15558
15559 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
15560 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
15561 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
15562 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
15563 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
15564 TARGET_HARD_FLOAT.
15565 (get_fpscr) : Likewise.
15566
15567 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
15568
15569 PR rtl-optimization/61325
15570 * lra-constraints.c (valid_address_p): Add forward declaration.
15571 (simplify_operand_subreg): Check address validity before and after
15572 alter_reg of memory subreg.
15573
15574 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
15575
15576 * config/i386/i386.c (decide_alg): Correctly handle
15577 maximum size of stringop algorithm.
15578
15579 2014-06-16 Yury Gribov <y.gribov@samsung.com>
15580
15581 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
15582
15583 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
15584
15585 PR rtl-optimization/61522
15586 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
15587
15588 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
15589
15590 Revert:
15591 * symtab.c (symtab_node::reset_section): New method.
15592 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
15593 for localization.
15594 * cgraph.h (reset_section): Declare.
15595 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
15596 do not consider comdat locals.
15597 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
15598 for new symbol.
15599 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
15600 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
15601 reset sections of symbols dragged out of the comdats.
15602 (function_and_variable_visibility): Reset sections of
15603 localized symbols.
15604
15605 2014-06-16 Richard Biener <rguenther@suse.de>
15606
15607 PR tree-optimization/61482
15608 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
15609 [-INF(OVF), +INF(OVF)] range.
15610
15611 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15612
15613 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
15614 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
15615 handling 32-bit multiplication.
15616
15617 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
15618
15619 PR middle-end/61430
15620 * lra-lives.c (process_bb_lives): Skip creating copy during
15621 insn scan when src/dest has constrained to same regno.
15622
15623 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
15624
15625 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
15626 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
15627
15628 2014-06-16 Yury Gribov <y.gribov@samsung.com>
15629
15630 * asan.c (check_func): New function.
15631 (maybe_create_ssa_name): Likewise.
15632 (build_check_stmt_with_calls): Likewise.
15633 (use_calls_p): Likewise.
15634 (report_error_func): Change interface.
15635 (build_check_stmt): Allow non-integer lengths; add support
15636 for new parameter.
15637 (asan_instrument): Likewise.
15638 (instrument_mem_region_access): Moved code to build_check_stmt.
15639 (instrument_derefs): Likewise.
15640 (instrument_strlen_call): Likewise.
15641 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
15642 * doc/invoke.texi: Describe new parameter.
15643 * params.def: Define new parameter.
15644 * params.h: Likewise.
15645 * sanitizer.def: Describe new builtins.
15646
15647 2014-06-16 Richard Biener <rguenther@suse.de>
15648
15649 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15650 Make all defs available at the end.
15651 (eliminate): If we remove a PHI node schedule cfg-cleanup.
15652
15653 2014-06-18 Jakub Jelinek <jakub@redhat.com>
15654
15655 PR plugins/45078
15656 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
15657
15658 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
15659
15660 PR bootstrap/61516
15661 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
15662 initialization. Replace remaining use of uid.
15663
15664 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
15665
15666 * c-family/c-common.c (handle_tls_model_attribute): Use
15667 set_decl_tls_model.
15668 * c-family/c-common.c (handle_tls_model_attribute): Use
15669 set_decl_tls_model.
15670 * cgraph.h (struct varpool_node): Add tls_model.
15671 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
15672 * tree.h (DECL_TLS_MODEL): Update.
15673 (DECL_THREAD_LOCAL_P): Check that variable is static.
15674 (decl_tls_model): Declare.
15675 (set_decl_tls_model): Declare.
15676 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
15677 set symbol prorperties.
15678 (get_emutls_init_templ_addr): Cleanup.
15679 (new_emutls_decl): Update.
15680 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
15681 (lto_input_varpool_node): Likewise.
15682 * lto-streamer-out.c (hash_tree): Likewise.
15683 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
15684 not stream DECL_TLS_MODEL.
15685 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
15686 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
15687
15688 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
15689
15690 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
15691
15692 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
15693
15694 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
15695 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
15696 lists.
15697 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
15698 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
15699 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
15700 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
15701 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
15702 (df_get_artificial_defs, df_get_artificial_uses)
15703 (df_single_def, df_single_use): Update accordingly.
15704 (df_refs_chain_dump): Take the first element in a linked list as
15705 parameter, rather than a pointer to an array of pointers.
15706 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
15707 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
15708 (df_chain_create_bb_process_use): Likewise.
15709 (df_md_bb_local_compute_process_def): Likewise.
15710 * fwprop.c (process_defs, process_uses): Likewise.
15711 (register_active_defs, update_uses): Likewise.
15712 (forward_propagate_asm): Update for new df_ref linking.
15713 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
15714 (df_null_ref_rec, df_null_mw_rec): Likewise.
15715 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
15716 explicitly.
15717 (df_scan_free_bb_info): Remove check for null artificial_defs.
15718 (df_install_ref_incremental): Adjust for new df_ref linking.
15719 Use a single-element insertion rather than a full sort.
15720 (df_ref_chain_delete_du_chain): Take the first element
15721 in a linked list as parameter, rather than a pointer to an array of
15722 pointers.
15723 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
15724 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
15725 (df_insn_info_delete): Remove check for null defs and call to
15726 df_scan_free_mws_vec.
15727 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
15728 null rather than df_null_*_rec.
15729 (df_insn_rescan_debug_internal): Likewise, and update null
15730 checks in the same way. Remove check for null defs.
15731 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
15732 Move a single element rather doing a full sort.
15733 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
15734 linking.
15735 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
15736 Initialize df_ref and df_mw_hardreg lists to null rather than
15737 df_null_*_rec.
15738 (df_ref_compare): Take df_refs as parameter, transferring the
15739 old interface to...
15740 (df_ref_ptr_compare): ...this new function.
15741 (df_sort_and_compress_refs): Update accordingly.
15742 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
15743 old interface to...
15744 (df_mw_ptr_compare): ...this new function.
15745 (df_sort_and_compress_mws): Update accordingly.
15746 (df_install_refs, df_install_mws): Return a linked list rather than
15747 an array of pointers.
15748 (df_refs_add_to_chains): Assert that old lists are empty rather
15749 than freeing them.
15750 (df_insn_refs_verify): Don't handle null defs speciailly.
15751 * web.c (union_match_dups): Update for new df_ref linking.
15752
15753 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
15754
15755 * df.h (df_ref_create, df_ref_remove): Delete.
15756 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
15757 (df_ref_remove): Likewise.
15758
15759 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
15760
15761 * df.h (df_single_def, df_single_use): New functions.
15762 * ira.c (find_moveable_pseudos): Use them.
15763
15764 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
15765
15766 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
15767 * df-problems.c (df_note_bb_compute): Use it.
15768 * regstat.c (regstat_bb_compute_ri): Likewise.
15769
15770 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
15771
15772 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
15773 * cse.c (cse_extended_basic_block): Use them.
15774 * dce.c (mark_artificial_use): Likewise.
15775 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
15776 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
15777 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
15778 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
15779 (df_simulate_initialize_backwards): Likewise.
15780 (df_simulate_finalize_backwards): Likewise.
15781 (df_simulate_initialize_forwards): Likewise.
15782 (df_md_simulate_artificial_defs_at_top): Likewise.
15783 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
15784 * regrename.c (init_rename_info): Likewise.
15785 * regstat.c (regstat_bb_compute_ri): Likewise.
15786 (regstat_bb_compute_calls_crossed): Likewise.
15787
15788 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
15789
15790 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
15791 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
15792 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
15793 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
15794 * combine.c (create_log_links): Likewise.
15795 * compare-elim.c (find_flags_uses_in_insn): Likewise.
15796 (try_eliminate_compare): Likewise.
15797 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
15798 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
15799 (remove_reg_equal_equiv_notes_for_defs): Likewise.
15800 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
15801 (word_dce_process_block, dce_process_block): Likewise.
15802 * ddg.c (def_has_ccmode_p): Likewise.
15803 * df-core.c (df_bb_regno_first_def_find): Likewise.
15804 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
15805 * df-problems.c (df_rd_simulate_one_insn): Likewise.
15806 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
15807 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
15808 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
15809 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
15810 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
15811 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
15812 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
15813 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
15814 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
15815 * fwprop.c (local_ref_killed_between_p): Likewise.
15816 (all_uses_available_at, free_load_extend): Likewise.
15817 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
15818 * hw-doloop.c (scan_loop): Likewise.
15819 * ifcvt.c (dead_or_predicable): Likewise.
15820 * init-regs.c (initialize_uninitialized_regs): Likewise.
15821 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
15822 (process_bb_node_lives): Likewise.
15823 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
15824 (find_moveable_pseudos): Likewise.
15825 * loop-invariant.c (check_dependencies, record_uses): Likewise.
15826 * recog.c (peep2_find_free_register): Likewise.
15827 * ree.c (get_defs): Likewise.
15828 * regstat.c (regstat_bb_compute_ri): Likewise.
15829 (regstat_bb_compute_calls_crossed): Likewise.
15830 * sched-deps.c (find_inc, find_mem): Likewise.
15831 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
15832 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
15833 * shrink-wrap.c (requires_stack_frame_p): Likewise.
15834 (prepare_shrink_wrap): Likewise.
15835 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
15836 * web.c (union_defs, pass_web::execute): Likewise.
15837 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
15838 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
15839
15840 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
15841
15842 * lra-assign.c (assign_by_spills): Add code to assign vector regs
15843 to inheritance pseudos.
15844 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
15845
15846 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
15847
15848 PR target/61415
15849 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
15850 (BU_MISC_2): Rename to ...
15851 (BU_LDBL128_2): ... this.
15852 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
15853 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
15854 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
15855 RS6000_BTM_LDBL128.
15856 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
15857 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
15858 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
15859 (unpacktf_1): Likewise.
15860 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
15861 (__builtin_longdouble_dw1): Likewise.
15862 * doc/sourcebuild.texi (longdouble128): Document.
15863
15864 2014-06-13 Jeff Law <law@redhat.com>
15865
15866 PR rtl-optimization/61094
15867 PR rtl-optimization/61446
15868 * ree.c (combine_reaching_defs): Get the mode for the copy from
15869 the extension insn rather than the defining insn.
15870
15871 2014-06-13 Dehao Chen <dehao@google.com>
15872
15873 * dwarf2out.c (add_linkage_name): Emit more linkage name.
15874
15875 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
15876
15877 * doc/install.texi (--enable-linker-plugin-configure-flags)
15878 (--enable-linker-plugin-flags): Document new flags.
15879
15880 2014-06-13 Martin Jambor <mjambor@suse.cz>
15881
15882 PR ipa/61186
15883 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
15884 cache_token if returning early.
15885
15886 2014-06-13 Nick Clifton <nickc@redhat.com>
15887
15888 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
15889 requested alignment is active.
15890 (LABEL_ALIGN): Likewise.
15891 (LOOP_ALIGN): Likewise.
15892
15893 2014-06-13 Richard Biener <rguenther@suse.de>
15894
15895 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15896 Rewrite to propagate the VN result into all uses where
15897 possible and to remove stmts becoming dead because of that.
15898 (eliminate): Generalize stmt removal handling, remove in
15899 reverse dominator order to support proper debug stmt
15900 generation. Update stmts before removing stmts.
15901 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
15902
15903 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
15904
15905 PR tree-optimization/61375
15906 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
15907 symbolic number cannot be represented in an uint64_t.
15908 (find_bswap_or_nop_1): Likewise.
15909
15910 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
15911
15912 * symtab.c (symtab_node::reset_section): New method.
15913 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
15914 for localization.
15915 * cgraph.h (reset_section): Declare.
15916 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
15917 do not consider comdat locals.
15918 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
15919 for new symbol.
15920 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
15921 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
15922 reset sections of symbols dragged out of the comdats.
15923 (function_and_variable_visibility): Reset sections of
15924 localized symbols.
15925
15926 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
15927
15928 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
15929 to use symtab and decl_binds_to_current_def_p
15930 * tree-vectorizer.c (increase_alignment): Increase alignment
15931 of alias target, too.
15932
15933 2014-06-12 Jakub Jelinek <jakub@redhat.com>
15934
15935 PR middle-end/61486
15936 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
15937 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
15938 if outer combined construct is distribute.
15939 (gimplify_omp_for): For OMP_DISTRIBUTE set
15940 gimplify_omp_ctxp->distribute.
15941 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
15942 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
15943 mapping into decl map.
15944
15945 2014-06-12 Jason Merrill <jason@redhat.com>
15946
15947 * common.opt (fabi-version): Change default to 0.
15948
15949 2014-06-12 Jason Merrill <jason@redhat.com>
15950
15951 * toplev.c (process_options): Reject -fabi-version=1.
15952
15953 2014-06-12 Jeff Law <law@redhat.com>
15954
15955 PR tree-optimization/61009
15956 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
15957 value when we stop processing a block due to problematic PHIs.
15958
15959 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
15960
15961 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
15962 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
15963 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
15964 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
15965 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
15966 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
15967 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
15968 are not in the spec.
15969
15970 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
15971
15972 PR target/59843
15973 * config/aarch64/aarch64-modes.def: Add V1DFmode.
15974 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
15975 Support V1DFmode.
15976
15977 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
15978
15979 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
15980
15981 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
15982
15983 PR target/61443
15984 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
15985 loading from address spaces.
15986
15987 2014-06-12 Martin Liska <mliska@suse.cz>
15988
15989 PR ipa/61462
15990 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
15991 statement is reachable.
15992
15993 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
15994
15995 * symtab.c (section_hash): New hash.
15996 (symtab_unregister_node): Clear section before freeing.
15997 (hash_section_hash_entry): New haser.
15998 (eq_sections): New function.
15999 (symtab_node::set_section_for_node): New method.
16000 (set_section_1): Update.
16001 (symtab_node::set_section): Take string instead of tree as parameter.
16002 (symtab_resolve_alias): Update.
16003 * cgraph.h (section_hash_entry_d): New structure.
16004 (section_hash_entry): New typedef.
16005 (cgraph_node): Change comdat_group_ to x_comdat_group,
16006 change section_ to x_section and turn into section_hash_entry;
16007 update accestors; put set_section_for_node offline.
16008 * tree.c (decl_section_name): Turn into string.
16009 (set_decl_section_name): Change parameter to be string.
16010 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
16011 * sdbout.c (sdbout_one_type): Update.
16012 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
16013 * varasm.c (IN_NAMED_SECTION, get_named_section,
16014 resolve_unique_section, hot_function_section, get_named_text_section,
16015 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
16016 make_decl_rtl, default_unique_section): Update.
16017 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
16018 (c6x_elf_unique_section): Update.
16019 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
16020 * config/pa/pa.c (pa_function_section): Update.
16021 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
16022 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
16023 * config/arc/arc.c (arc_in_small_data_p): Update.
16024 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
16025 * config/mcore/mcore.c (mcore_unique_section): Update.
16026 * config/mips/mips.c (mips16_build_function_stub): Update.
16027 (mips16_build_call_stub): Update.
16028 (mips_function_rodata_section): Update.
16029 (mips_in_small_data_p): Update.
16030 * config/score/score.c (score_in_small_data_p): Update.
16031 * config/rx/rx.c (rx_in_small_data): Update.
16032 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
16033 (rs6000_xcoff_asm_named_section): Update.
16034 (rs6000_xcoff_unique_section): Update.
16035 * config/frv/frv.c (frv_string_begins_with): Update.
16036 (frv_in_small_data_p): Update.
16037 * config/v850/v850.c (v850_encode_data_area): Update.
16038 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
16039 (bfin_handle_l1_data_attribute): Update.
16040 (bfin_handle_l2_attribute): Update.
16041 * config/mep/mep.c (mep_unique_section): Update.
16042 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
16043 Update.
16044 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
16045 (h8300_handle_tiny_data_attribute): Update.
16046 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
16047 (m32r_in_small_data_p): Update.
16048 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
16049 * config/i386/i386.c (ix86_in_large_data_p): Update.
16050 * config/i386/winnt.c (i386_pe_unique_section): Update.
16051 * config/darwin.c (darwin_function_section): Update.
16052 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
16053 * tree-emutls.c (get_emutls_init_templ_addr): Update.
16054 (new_emutls_decl): Update.
16055 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
16056 input_varpool_node): Update.
16057 (ead_string_cst): Turn to ...
16058 (read_string): ... this one.
16059 * dwarf2out.c (secname_for_decl): Update.
16060 * asan.c (asan_protect_global): Update.
16061
16062 2014-06-11 DJ Delorie <dj@redhat.com>
16063
16064 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
16065 cache lines.
16066 * config/rx/rx.c (rx_option_override): Likewise.
16067 (rx_align_for_label): Likewise.
16068
16069 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
16070
16071 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
16072
16073 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
16074 prototype.
16075
16076 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
16077
16078 * common.md: New file.
16079 * doc/md.texi: Update description of generic, machine-independent
16080 constraints.
16081 * config/s390/constraints.md (e): Delete.
16082 * Makefile.in (md_file): Include common.md.
16083 * config/m32c/t-m32c (md_file): Likewise.
16084 * genpreds.c (general_mem): New array.
16085 (generic_constraint_letters): Remove constraints now defined by
16086 common.md.
16087 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
16088 Allow the first character to be '<' or '>' as well.
16089 * genoutput.c (general_mem): New array.
16090 (indep_constraints): Remove constraints now defined by common.md.
16091 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
16092 Remove special handling of 'm'.
16093 * ira-costs.c (record_reg_classes): Remove special handling of
16094 constraints now defined by common.md.
16095 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
16096 * ira-lives.c (single_reg_class): Likewise.
16097 (ira_implicitly_set_insn_hard_regs): Likewise.
16098 * lra-constraints.c (reg_class_from_constraints): Likewise.
16099 (process_alt_operands, process_address, curr_insn_transform): Likewise.
16100 * postreload.c (reload_cse_simplify_operands): Likewise.
16101 * reload.c (push_secondary_reload, scratch_reload_class)
16102 (find_reloads, alternative_allows_const_pool_ref): Likewise.
16103 * reload1.c (maybe_fix_stack_asms): Likewise.
16104 * targhooks.c (default_secondary_reload): Likewise.
16105 * stmt.c (parse_output_constraint): Likewise.
16106 * recog.c (preprocess_constraints): Likewise.
16107 (constrain_operands, peep2_find_free_register): Likewise.
16108 (asm_operand_ok): Likewise, but add a comment saying why 'o'
16109 must be handled specially.
16110
16111 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
16112
16113 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
16114 * genpreds.c (have_const_dbl_constraints): Delete.
16115 (add_constraint): Don't set it.
16116 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
16117 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
16118 constraints using the lookup_constraint logic.
16119 * ira-lives.c (single_reg_class): Likewise.
16120 * ira.c (ira_setup_alts): Likewise.
16121 * lra-constraints.c (process_alt_operands): Likewise.
16122 * recog.c (asm_operand_ok, constrain_operands): Likewise.
16123 * reload.c (find_reloads): Likewise.
16124
16125 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
16126
16127 * genpreds.c (const_int_start, const_int_end): New variables.
16128 (choose_enum_order): Output CONST_INT constraints before memory
16129 constraints.
16130 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
16131 Add CT_CONST_INT.
16132 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
16133 * ira.c (ira_setup_alts): Likewise.
16134 * lra-constraints.c (process_alt_operands): Likewise.
16135 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
16136 * reload.c (find_reloads): Likewise.
16137
16138 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
16139
16140 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
16141 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
16142 * recog.c (preprocess_constraints): Update accordingly.
16143
16144 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
16145
16146 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
16147 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
16148 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
16149 * genpreds.c (print_type_tree): New function.
16150 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
16151 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
16152 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
16153 Write out enum constraint_type and get_constraint_type.
16154 * lra-constraints.c (satisfies_memory_constraint_p): Take a
16155 constraint_num rather than a constraint string.
16156 (satisfies_address_constraint_p): Likewise.
16157 (reg_class_from_constraints): Avoid old constraint macros.
16158 (process_alt_operands, process_address_1): Likewise.
16159 (curr_insn_transform): Likewise.
16160 * ira-costs.c (record_reg_classes): Likewise.
16161 (record_operand_costs): Likewise.
16162 * ira-lives.c (single_reg_class): Likewise.
16163 (ira_implicitly_set_insn_hard_regs): Likewise.
16164 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
16165 * postreload.c (reload_cse_simplify_operands): Likewise.
16166 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
16167 (constrain_operands, peep2_find_free_register): Likewise.
16168 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
16169 (find_reloads, alternative_allows_const_pool_ref): Likewise.
16170 * reload1.c (maybe_fix_stack_asms): Likewise.
16171 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
16172 * targhooks.c (default_secondary_reload): Likewise.
16173 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
16174 to EXTRA_CONSTRAINT_STR.
16175 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
16176
16177 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
16178
16179 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
16180 (write_constraint_satisfied_p_array): ...this new function.
16181 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
16182 an array.
16183 (write_insn_preds_c): Update accordingly.
16184
16185 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
16186
16187 * genpreds.c (write_lookup_constraint): Rename to...
16188 (write_lookup_constraint_1): ...this.
16189 (write_lookup_constraint_array): New function.
16190 (write_tm_preds_h): Define lookup_constraint as an inline function
16191 that uses write_lookup_constraint_array where possible.
16192 (write_insn_preds_c): Update for the changes above.
16193
16194 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
16195
16196 * doc/md.texi (regclass_for_constraint): Rename to...
16197 (reg_class_for_constraint): ...this.
16198 * genpreds.c (num_constraints, enum_order, register_start)
16199 (register_end, satisfied_start, memory_start, memory_end)
16200 (address_start, address_end): New variables.
16201 (add_constraint): Count the number of constraints.
16202 (choose_enum_order): New function.
16203 (write_enum_constraint_num): Iterate over enum_order.
16204 (write_regclass_for_constraint): Rename to...
16205 (write_reg_class_for_constraint_1): ...this and update output
16206 accordingly.
16207 (write_constraint_satisfied_p): Rename to...
16208 (write_constraint_satisfied_p_1): ...this and update output
16209 accordingly. Do nothing if all extra constraints are register
16210 constraints.
16211 (write_insn_extra_memory_constraint): Delete.
16212 (write_insn_extra_address_constraint): Delete.
16213 (write_range_function): New function.
16214 (write_tm_preds_h): Define constraint_satisfied_p and
16215 reg_class_for_constraint as inline functions that do a range check
16216 before calling the out-of-line function. Use write_range_function
16217 to implement insn_extra_{register,memory,address}_constraint,
16218 the first of which is new.
16219 (write_insn_preds_c): Update after above changes to write_* functions.
16220 (main): Call choose_enum_order.
16221
16222 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
16223
16224 PR tree-optimization/61306
16225 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
16226 expression instead of its size.
16227 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
16228 false to prevent optimization when the result is unpredictable due to
16229 arithmetic right shift of signed type with highest byte is set.
16230 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
16231 (init_symbolic_number): Likewise.
16232 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
16233 when the result is unpredictable due to sign extension.
16234
16235 2014-06-11 Terry Guo <terry.guo@arm.com>
16236
16237 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
16238 (*thumb1_addsi3): Ditto.
16239 (*thumb_subdi3): Ditto.
16240 (thumb1_subsi3_insn): Ditto.
16241 (*thumb_mulsi3): Ditto.
16242 (*thumb_mulsi3_v6): Ditto.
16243 (*thumb1_andsi3_insn): Ditto.
16244 (thumb1_bicsi3): Ditto.
16245 (*thumb1_iorsi3_insn): Ditto.
16246 (*thumb1_xorsi3_insn): Ditto.
16247 (*thumb1_ashlsi3): Ditto.
16248 (*thumb1_ashrsi3): Ditto.
16249 (*thumb1_lshrsi3): Ditto.
16250 (*thumb1_rotrsi3): Ditto.
16251 (*thumb1_negdi2): Ditto.
16252 (*thumb1_negsi2): Ditto.
16253 (*thumb1_abssi2): Ditto.
16254 (*thumb1_neg_abssi2): Ditto.
16255 (*thumb1_one_cmplsi2): Ditto.
16256 (*thumb1_zero_extendhisi2): Ditto.
16257 (*thumb1_zero_extendqisi2): Ditto.
16258 (*thumb1_zero_extendqisi2_v6): Ditto.
16259 (thumb1_extendhisi2): Ditto.
16260 (thumb1_extendqisi2): Ditto.
16261 (*thumb1_movdi_insn): Ditto.
16262 (*thumb1_movsi_insn): Ditto.
16263 (*thumb1_movhi_insn): Ditto.
16264 (thumb_movhi_clobber): Ditto.
16265 (*thumb1_movqi_insn): Ditto.
16266 (*thumb1_movhf): Ditto.
16267 (*thumb1_movsf_insn): Ditto.
16268 (*thumb_movdf_insn): Ditto.
16269 (movmem12b): Ditto.
16270 (movmem8b): Ditto.
16271 (cbranchqi4): Ditto.
16272 (cbranchsi4_insn): Ditto.
16273 (cbranchsi4_scratch): Ditto.
16274 (*negated_cbranchsi4): Ditto.
16275 (*tbit_cbranch): Ditto.
16276 (*tlobits_cbranch): Ditto.
16277 (*tstsi3_cbranch): Ditto.
16278 (*cbranchne_decr1): Ditto.
16279 (*addsi3_cbranch): Ditto.
16280 (*addsi3_cbranch_scratch): Ditto.
16281 (*thumb_cmpdi_zero): Ditto.
16282 (cstoresi_eq0_thumb1): Ditto.
16283 (cstoresi_ne0_thumb1): Ditto.
16284 (*cstoresi_eq0_thumb1_insn): Ditto.
16285 (*cstoresi_ne0_thumb1_insn): Ditto.
16286 (cstoresi_nltu_thumb1): Ditto.
16287 (cstoresi_ltu_thumb1): Ditto.
16288 (thumb1_addsi3_addgeu): Ditto.
16289 (*thumb_jump): Ditto.
16290 (*call_reg_thumb1_v5): Ditto.
16291 (*call_reg_thumb1): Ditto.
16292 (*call_value_reg_thumb1_v5): Ditto.
16293 (*call_value_reg_thumb1): Ditto.
16294 (*call_insn): Ditto.
16295 (*call_value_insn): Ditto.
16296 (thumb1_casesi_internal_pic): Ditto.
16297 (thumb1_casesi_dispatch): Ditto.
16298 (*thumb1_indirect_jump): Ditto.
16299 (prologue_thumb1_interwork): Ditto.
16300 (*epilogue_insns): Ditto.
16301 (consttable_1): Ditto.
16302 (consttable_2): Ditto.
16303 (tablejump): Ditto.
16304 (*thumb1_tablejump): Ditto.
16305 (thumb_eh_return): Ditto.
16306 (define_peephole2): Two of them are thumb1 only and got moved into
16307 new file thumb1.md.
16308 (define_split): Six of them are thumb1 only and got moved into new
16309 file thumb1.md.
16310 * config/arm/thumb1.md: New file comprised of above thumb1 only
16311 patterns.
16312
16313 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16314
16315 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
16316 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
16317 dependencies.
16318 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
16319 (aarch64_crc_builtin_datum): New struct.
16320 (aarch64_crc_builtin_data): New.
16321 (aarch64_init_crc32_builtins): New function.
16322 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
16323 (aarch64_crc32_expand_builtin): New.
16324 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
16325 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
16326 __ARM_FEATURE_CRC32 when appropriate.
16327 (TARGET_CRC32): Define.
16328 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
16329 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
16330 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
16331 (aarch64_<crc_variant>): New pattern.
16332 * config/aarch64/arm_acle.h: New file.
16333 * config/aarch64/iterators.md (CRC): New int iterator.
16334 (crc_variant, crc_mode): New int attributes.
16335 * doc/aarch64-acle-intrinsics.texi: New file.
16336 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
16337 Include aarch64-acle-intrinsics.texi.
16338
16339 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
16340
16341 * tree-vect-data-refs.c (vect_grouped_store_supported): New
16342 check for stores group of length 3.
16343 (vect_permute_store_chain): New permutations for stores group of
16344 length 3.
16345 * tree-vect-stmts.c (vect_model_store_cost): Change cost
16346 of vec_perm_shuffle for the new permutations.
16347
16348 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
16349
16350 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
16351 table rewriting temporarily on targets not supporting ONE_ONLY.
16352
16353 2014-06-11 Richard Biener <rguenther@suse.de>
16354
16355 PR middle-end/61437
16356 Revert
16357 2014-06-04 Richard Biener <rguenther@suse.de>
16358
16359 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
16360 TREE_PUBLIC and DECL_EXTERNAL decls.
16361
16362 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
16363
16364 * varasm.c (set_implicit_section): New function.
16365 (resolve_unique_section): Use it to set implicit section
16366 for aliases, too.
16367 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
16368 (default_function_section): Likewise.
16369 (decl_binds_to_current_def_p): Constify argument.
16370 * varasm.h (decl_binds_to_current_def_p): Update prototype.
16371 * asan.c (asan_protect_global): Use
16372 symtab_get_node (decl)->implicit_section.
16373 * symtab.c (dump_symtab_base): Dump implicit sections.
16374 (verify_symtab_base): Verify sanity of sectoins and comdats.
16375 (symtab_resolve_alias): Alias share the section of its target.
16376 (set_section_1): New function.
16377 (symtab_node::set_section): Move here, recurse to aliases.
16378 (verify_symtab): Check for duplicated symtab lists.
16379 * tree-core.h (implicit_section_name_p): Remove.
16380 * tree-vect-data-refs.c: Include varasm.h.
16381 (vect_can_force_dr_alignment_p): Fix conditional on when
16382 decl bints to current definition; use
16383 symtab_get_node (decl)->implicit_section.
16384 * cgraph.c (cgraph_make_node_local_1): Fix section set.
16385 * cgraph.h (struct symtab_node): Add implicit_section.
16386 (set_section): Rename to ...
16387 (set_section_for_node): ... this one.
16388 (set_section): Declare.
16389 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
16390 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
16391 input_overwrite_node, input_varpool_node): Stream implicit_section.
16392 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
16393 removal; it will fail in LTO.
16394
16395 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16396
16397 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
16398 Change second alternative type to f_mcr.
16399 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
16400 and 12th alternatives' types to f_mcr and f_mrc.
16401 (*movdi_aarch64): Same for 12th and 13th alternatives.
16402 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
16403 (aarch64_movtilow_tilow): Change type to fmov.
16404
16405 2014-06-10 Jiong Wang <jiong.wang@arm.com>
16406
16407 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
16408 (aarch64_save_or_restore_callee_save_registers): Fix layout.
16409
16410 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16411
16412 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
16413 New expander.
16414 (aarch64_sqrdmulh_lane<mode>): Likewise.
16415 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
16416 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
16417 (aarch64_sqdmulh_laneq<mode>): New expander.
16418 (aarch64_sqrdmulh_laneq<mode>): Likewise.
16419 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
16420 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
16421 (aarch64_sqdmulh_lane<mode>): New expander.
16422 (aarch64_sqrdmulh_lane<mode>): Likewise.
16423 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
16424 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
16425 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
16426 (aarch64_sqdmlal_laneq<mode>): Likewise.
16427 (aarch64_sqdmlsl_lane<mode>): Likewise.
16428 (aarch64_sqdmlsl_laneq<mode>): Likewise.
16429 (aarch64_sqdmlal2_lane<mode>): Likewise.
16430 (aarch64_sqdmlal2_laneq<mode>): Likewise.
16431 (aarch64_sqdmlsl2_lane<mode>): Likewise.
16432 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
16433 (aarch64_sqdmull_lane<mode>): Likewise.
16434 (aarch64_sqdmull_laneq<mode>): Likewise.
16435 (aarch64_sqdmull2_lane<mode>): Likewise.
16436 (aarch64_sqdmull2_laneq<mode>): Likewise.
16437
16438 2014-06-10 Richard Biener <rguenther@suse.de>
16439
16440 PR tree-optimization/61438
16441 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
16442 (eliminate_dom_walker::before_dom_children): Only try to inhibit
16443 insertion of IVs if running PRE.
16444 (eliminate): Adjust.
16445 (pass_pre::execute): Likewise.
16446 (pass_fre::execute): Likewise.
16447
16448 2014-06-10 Richard Biener <rguenther@suse.de>
16449
16450 PR middle-end/61456
16451 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
16452 Do not use the main variant for the type comparison.
16453 (ncr_compar): Likewise.
16454 (nonoverlapping_component_refs_p): Likewise.
16455
16456 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
16457
16458 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
16459 REG_CFA_RESTORE mode.
16460
16461 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
16462
16463 * config/i386/i386.c (expand_vec_perm_pblendv): New.
16464 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
16465 expand_vec_perm_pblendv.
16466
16467 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16468
16469 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
16470 available.
16471 Simplify description of __crc32d and __crc32cd intrinsics.
16472 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
16473 availability.
16474
16475 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
16476
16477 PR lto/61334
16478 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
16479 * config.in: Regenerate.
16480 * configure: Likewise.
16481
16482 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
16483
16484 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
16485 and public vars.
16486 (intersect_static_var_sets): Remove.
16487 (propagate): Do not prune local statics.
16488
16489 2014-06-10 Jakub Jelinek <jakub@redhat.com>
16490
16491 PR fortran/60928
16492 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
16493 Set lastprivate_firstprivate even if omp_private_outer_ref
16494 langhook returns true.
16495 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
16496 langhook, call unshare_expr on new_var and call
16497 build_outer_var_ref to get the last argument.
16498
16499 2014-06-10 Marek Polacek <polacek@redhat.com>
16500
16501 PR c/60988
16502 * doc/extend.texi: Add cindex for transparent_union.
16503
16504 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
16505
16506 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
16507 init_symbolic_number ().
16508
16509 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
16510
16511 PR middle-end/61141
16512 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
16513 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
16514 (verify_rtl_sharing): Likewise.
16515
16516 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
16517
16518 PR c++/54442
16519 * tree.c (build_qualified_type): Use a canonical type for
16520 TYPE_CANONICAL.
16521
16522 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16523
16524 * config/arm/arm-modes.def: Remove XFmode.
16525
16526 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
16527
16528 PR target/61062
16529 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
16530 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
16531 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
16532 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
16533 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
16534 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
16535 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
16536 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
16537 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
16538
16539 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
16540
16541 * tree-core.h (tree_decl_with_vis): Remove section_name.
16542
16543 2014-06-09 Kito Cheng <kito@0xlab.org>
16544
16545 * ira.c (ira): Don't call init_caller_save if LRA enabled
16546 since LRA use its own infrastructure to handle that.
16547
16548 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
16549
16550 * symtab.c (dump_symtab_base): Update dumping.
16551 (symtab_make_decl_local): Clear only DECL_COMDAT.
16552 * tree-vect-data-refs.c (Check that variable is static before
16553 tampering with sections.
16554 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
16555 (cgraph_create_virtual_clone): Likewise.
16556 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
16557 (decl_section_name, set_decl_section_name): New accessors.
16558 (find_decls_types_r): Do not walk section name
16559 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
16560 (decl_comdat_group, decl_comdat_group_id): Constify.
16561 (decl_section_name, set_decl_section_name): Update.
16562 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
16563 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
16564 (cgraph_make_node_local_1): Clear section and comdat group.
16565 * cgraph.h (set_comdat_group): Sanity check.
16566 (get_section, set_section): New.
16567 * ipa-comdats.c (ipa_comdats): Use get_section.
16568 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
16569 * lto-streamer-out.c: Do not follow section names.
16570 * c-family/c-common.c (handle_section_attribute): Update.
16571 * lto-cgraph.c (lto_output_node): Output section.
16572 (lto_output_varpool_node): Likewise.
16573 (read_comdat_group): Rename to ...
16574 (read_identifier): ... this one.
16575 (read_string_cst): New function.
16576 (input_node, input_varpool_node): Input section names.
16577 * tree-emutls.c (get_emutls_init_templ_addr): Update.
16578 (new_emutls_decl): Update.
16579 (secname_for_decl): Check section names only of static vars.
16580 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
16581 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
16582 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
16583 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
16584 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
16585 * config/mcore/mcore.c (mcore_unique_section): Likewise.
16586 * config/mips/mips.c (mips16_build_function_stub): Likewise.
16587 * config/v850/v850.c (v850_insert_attributes): Likewise.
16588 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
16589 Likewise.
16590 (h8300_handle_tiny_data_attribute): Likewise.
16591 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
16592 (bfin_handle_l2_attribute): Likewise.
16593
16594 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
16595
16596 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
16597 remove static initializer.
16598
16599 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
16600
16601 * varasm.c (use_blocks_for_decl_p): Check symbol table
16602 instead of alias attribute.
16603 (place_block_symbol): Recurse on aliases.
16604
16605 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
16606
16607 * ipa-visibility.c: Include varasm.h
16608 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
16609
16610 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
16611
16612 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
16613 outputting aliases.
16614
16615 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
16616
16617 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
16618 from test_insn into GGC space escape via SET_SRC.
16619
16620 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
16621
16622 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
16623 call statement, if any.
16624 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
16625 statements, if any. Tidy up.
16626
16627 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
16628
16629 PR target/61431
16630 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
16631 iterators, VSX_D that handles 64-bit types, and VSX_LE that
16632 handles swapping the two 64-bit double words on little endian
16633 systems. Include V1TImode and optionally TImode in VSX_LE so that
16634 these types are properly swapped. Change all of the insns and
16635 splits that do the 64-bit swaps to use VSX_LE.
16636 (vsx_le_perm_load_<mode>): Likewise.
16637 (vsx_le_perm_store_<mode>): Likewise.
16638 (splitters for little endian memory operations): Likewise.
16639 (vsx_xxpermdi2_le_<mode>): Likewise.
16640 (vsx_lxvd2x2_le_<mode>): Likewise.
16641 (vsx_stxvd2x2_le_<mode>): Likewise.
16642
16643 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
16644
16645 PR target/61423
16646 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
16647 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
16648 and corresponding splitters. Zero extend general register
16649 or memory input operand to XMM temporary. Enable for
16650 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
16651 (floatunssi<mode>2): Update expander predicate.
16652
16653 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
16654
16655 PR rtl-optimization/61325
16656 * lra-constraints.c (process_address_1): Check scale equal to one
16657 to prevent transformation: base + scale * index => base + new_reg.
16658
16659 2014-06-06 Richard Biener <rguenther@suse.de>
16660
16661 PR tree-optimization/59299
16662 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
16663 a def operand.
16664 (nearest_common_dominator_of_uses): Likewise.
16665 (statement_sink_location): Adjust. Support sinking loads.
16666
16667 2014-06-06 Martin Jambor <mjambor@suse.cz>
16668
16669 * ipa-prop.c (get_place_in_agg_contents_list): New function.
16670 (build_agg_jump_func_from_list): Likewise.
16671 (determine_known_aggregate_parts): Renamed to
16672 determine_locally_known_aggregate_parts. Moved some functionality
16673 to the two functions above, removed bound checks.
16674
16675 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
16676
16677 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
16678 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
16679 (aarch64_progress_pointer): Likewise.
16680 (aarch64_copy_one_part_and_move_pointers): Likewise.
16681 (aarch64_expand_movmen): Likewise.
16682 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
16683 * config/aarch64/aarch64.md (movmem<mode>): New.
16684
16685 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
16686
16687 * targhooks.c (default_add_stmt_cost): Call target specific
16688 hook instead of default one.
16689
16690 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
16691
16692 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
16693 endianness instead of host endianness.
16694 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
16695 comments.
16696
16697 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
16698
16699 PR debug/53927
16700 * function.c (instantiate_decls): Process the saved static chain.
16701 (expand_function_start): If not optimizing, save the static chain
16702 onto the stack.
16703 * tree-nested.c (convert_all_function_calls): Always create the static
16704 chain for nested functions if not optimizing.
16705
16706 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
16707
16708 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
16709
16710 2014-06-06 Richard Biener <rguenther@suse.de>
16711
16712 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
16713 (construct_init_block): Likewise.
16714 (construct_exit_block): Likewise.
16715 (pass_expand::execute): Likewise.
16716 * graphite.c (graphite_transforms): Replace check for current_loops
16717 with a check for > 1 loops.
16718 (pass_graphite_transforms::execute): Adjust.
16719 * ipa-split.c (split_function): Remove check for current_loops.
16720 * omp-low.c (expand_parallel_call): Likewise.
16721 (expand_omp_for_init_counts): Likewise.
16722 (extract_omp_for_update_vars): Likewise.
16723 (expand_omp_for_generic): Likewise.
16724 (expand_omp_sections): Likewise.
16725 (expand_omp_target): Likewise.
16726 * tracer.c (tail_duplicate): Likewise.
16727 (pass_tracer::execute): Likewise.
16728 * trans-mem.c (expand_transaction): Likewise.
16729 * tree-complex.c (expand_complex_div_wide): Likewise.
16730 * tree-eh.c (lower_resx): Likewise.
16731 (cleanup_empty_eh_merge_phis): Likewise.
16732 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
16733 current_loops with a check for > 1 loops.
16734 (pass_predcom::execute): Adjust.
16735 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
16736 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
16737 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
16738 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
16739 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
16740 * tree-switch-conversion.c (process_switch): Likewise.
16741 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
16742 * tree-vrp.c (vrp_visit_phi_node): Likewise.
16743 (execute_vrp): Likewise.
16744 * ubsan.c (ubsan_expand_null_ifn): Likewise.
16745
16746 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
16747
16748 * rtl.h (insn_location): Declare.
16749 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
16750 with UNKNOWN_LOCATION.
16751 * emit-rtl.c (insn_location): New function.
16752 * final.c (notice_source_line): Check that the instruction has a
16753 location before retrieving it and use insn_location.
16754 * modulo-sched.c (loop_single_full_bb_p): Likewise.
16755 * print-rtl.c (print_rtx): Likewise.
16756
16757 2014-06-06 Richard Biener <rguenther@suse.de>
16758
16759 * passes.def: Move 2nd VRP pass before phi-only-cprop.
16760
16761 2014-06-06 Christian Bruel <christian.bruel@st.com>
16762
16763 PR tree-optimization/43934
16764 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
16765 cost.
16766
16767 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
16768
16769 * ira-lives.c (single_reg_class): Add missing break. Explicitly
16770 return NO_REGS for extra address and memory constraints. Handle
16771 operands that match (or are equivalent to something that matches)
16772 extra constant constraints. Ignore other non-register operands.
16773
16774 2014-06-06 Alan Modra <amodra@gmail.com>
16775
16776 PR target/61300
16777 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
16778 * doc/tm.texi: Regenerate.
16779 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
16780 Use throughout in place of REG_PARM_STACK_SPACE.
16781 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
16782 "incoming" param. Pass to rs6000_function_parms_need_stack.
16783 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
16784 prototype_p when incoming. Use function decl when incoming
16785 to handle K&R style functions.
16786 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
16787 (INCOMING_REG_PARM_STACK_SPACE): Define.
16788
16789 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16790
16791 PR target/52472
16792 * cfgexpand.c (expand_debug_expr): Use address space of nested
16793 TREE_TYPE for ADDR_EXPR and MEM_REF.
16794
16795 2014-06-05 Jeff Law <law@redhat.com>
16796
16797 PR tree-optimization/61289
16798 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
16799 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
16800 looking for those which match LHS. All callers changed.
16801 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
16802 parameters and code which manipulated them. All callers changed.
16803 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
16804 and DST_MAP parameters. Simplify invalidation code by just calling
16805 invalidate_equivalences. All callers changed.
16806 (thread_across_edge): Simplify now that we don't need to maintain
16807 the map of equivalences to invalidate.
16808
16809 2014-06-05 Kai Tietz <ktietz@redhat.com>
16810 Richard Henderson <rth@redhat.com>
16811
16812 PR target/46219
16813 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
16814 checking for !TARGET_X32.
16815 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
16816 (sibcall_intern): New define_insn, plus required peepholes.
16817 (sibcall_pop_intern): Likewise.
16818 (sibcall_value_intern): Likewise.
16819 (sibcall_value_pop_intern): Likewise.
16820
16821 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
16822
16823 * tree-inline.c (tree_function_versioning): Check DF info existence
16824 before accessing it.
16825
16826 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
16827
16828 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
16829 frame_size.
16830 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
16831 aarch64_frame hard_fp_offset and frame_size.
16832 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
16833 frame_size; remove original_frame_size.
16834 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
16835 (aarch64_initial_elimination_offset): Remove frame_size and
16836 offset. Use aarch64_frame frame_size.
16837
16838 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
16839 Jiong Wang <jiong.wang@arm.com>
16840 Renlin <renlin.li@arm.com>
16841
16842 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
16843 initialization of R30 offset. Update offset. Iterate core
16844 regisers upto X30. Remove X29, X30 specific code.
16845
16846 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
16847 Jiong Wang <jiong.wang@arm.com>
16848
16849 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
16850 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
16851 (aarch64_register_saved_on_entry): Adjust test.
16852
16853 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
16854
16855 * config/aarch64/aarch64.h (machine_function): Move
16856 saved_varargs_size from here...
16857 (aarch64_frame): ... to here.
16858
16859 * config/aarch64/aarch64.c (aarch64_expand_prologue)
16860 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
16861 (aarch64_initial_elimination_offset)
16862 (aarch64_setup_incoming_varargs): Adjust location of
16863 saved_varargs_size.
16864
16865 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
16866
16867 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
16868 layout comment.
16869
16870 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
16871 Prachi Godbole <Prachi.Godbole@imgtec.com>
16872
16873 * config/mips/mips-cpus.def: Add definition for p5600. Updated
16874 mips32r5 entry to use PROCESSOR_P5600.
16875 * config/mips/mips-tables.opt: Regenerate.
16876 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
16877 * config/mips/mips.c (mips_fmadd_bypass): New function.
16878 (mips_rtx_cost_data): Add costs for p5600.
16879 (mips_issue_rate): Add support for p5600.
16880 (mips_multipass_dfa_lookahead): Likewise.
16881 * config/mips/mips.h (TUNE_P5600): New define.
16882 (TUNE_MACC_CHAINS): Add TUNE_P5600.
16883 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
16884 * config/mips/mips.md: Include p5600.md.
16885 (processor): Add p5600.
16886 * config/mips/p5600.md: New file.
16887
16888 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
16889
16890 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
16891 * config/i386/predicates.md (palignr_operand): New.
16892 Indicates if permutation is suitable for palignr instruction.
16893
16894 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
16895
16896 PR tree-optimization/61319
16897 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
16898 stmt belongs to loop.
16899
16900 2014-06-05 Richard Biener <rguenther@suse.de>
16901
16902 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
16903 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
16904 (lookup_tmp_var): Adjust.
16905 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
16906
16907 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16908
16909 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
16910
16911 2014-06-05 Marek Polacek <polacek@redhat.com>
16912
16913 PR c/49706
16914 * doc/invoke.texi: Document -Wlogical-not-parentheses.
16915
16916 2014-06-04 Tom de Vries <tom@codesourcery.com>
16917
16918 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
16919 CONST_INT.
16920
16921 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
16922
16923 PR tree-optimization/61385
16924 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
16925
16926 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
16927
16928 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
16929 changed to use fatal_error.
16930 (main): Ensure lto_wrapper_cleanup is run atexit.
16931
16932 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
16933
16934 * lra-constraints.c (valid_address_p): Move earlier in file.
16935 (address_eliminator): New structure.
16936 (satisfies_memory_constraint_p): New function.
16937 (satisfies_address_constraint_p): Likewise.
16938 (process_alt_operands, process_address, curr_insn_transform): Use them.
16939
16940 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
16941
16942 * lra-int.h (lra_static_insn_data): Make operand_alternative a
16943 const pointer.
16944 (target_lra_int, default_target_lra_int, this_target_lra_int)
16945 (op_alt_data): Delete.
16946 * lra.h (lra_init): Delete.
16947 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
16948 (init_insn_code_data_once): Remove op_alt_data handling.
16949 (finish_insn_code_data_once): Likewise.
16950 (init_op_alt_data): Delete.
16951 (get_static_insn_data): Initialize operand_alternative to null.
16952 (free_insn_recog_data): Cast operand_alternative before freeing it.
16953 (setup_operand_alternative): Take the operand_alternative as
16954 parameter and assume it isn't already cached in the static
16955 insn data.
16956 (lra_set_insn_recog_data): Update accordingly.
16957 (lra_init): Delete.
16958 * ira.c (ira_init): Don't call lra_init.
16959 * target-globals.h (this_target_lra_int): Declare.
16960 (target_globals): Remove lra_int.
16961 (restore_target_globals): Update accordingly.
16962 * target-globals.c: Don't include lra-int.h.
16963 (default_target_globals, save_target_globals): Remove lra_int.
16964
16965 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
16966
16967 * recog.h (operand_alternative): Convert reg_class, reject,
16968 matched and matches into bitfields.
16969 (preprocess_constraints): New overload.
16970 (preprocess_insn_constraints): New function.
16971 (preprocess_constraints): Take the insn as parameter.
16972 (recog_op_alt): Change into a pointer.
16973 (target_recog): Add x_op_alt.
16974 * recog.c (asm_op_alt): New variable.
16975 (recog_op_alt): Change into a pointer.
16976 (preprocess_constraints): New overload, replacing the old function
16977 definition with one that doesn't use global state.
16978 (preprocess_insn_constraints): New function.
16979 (preprocess_constraints): Use them. Take the insn as parameter.
16980 Use asm_op_alt for asms.
16981 (recog_init): Free existing x_op_alt entries.
16982 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
16983 pointer const.
16984 (make_early_clobber_and_input_conflicts): Likewise.
16985 (process_bb_node_lives): Pass the insn to process_constraints.
16986 * reg-stack.c (check_asm_stack_operands): Likewise.
16987 (subst_asm_stack_regs): Likewise.
16988 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
16989 * regrename.c (build_def_use): Likewise.
16990 * sched-deps.c (sched_analyze_insn): Likewise.
16991 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
16992 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
16993 (note_invalid_constants): Likewise.
16994 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
16995 (ix86_legitimate_combined_insn): Make operand_alternative pointer
16996 const.
16997
16998 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
16999
17000 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
17001 * ira-lives.c (check_and_make_def_conflict): Check for disabled
17002 alternatives.
17003 (make_early_clobber_and_input_conflicts): Likewise.
17004 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17005
17006 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
17007
17008 * recog.h (alternative_class): New function.
17009 (which_op_alt): Return a const recog_op_alt.
17010 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
17011 (subst_asm_stack_regs): Likewise.
17012 * config/arm/arm.c (note_invalid_constants): Likewise.
17013 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
17014 the operand_alternative; use alternative class instead.
17015 * sel-sched.c (get_reg_class): Likewise.
17016 * regrename.c (build_def_use): Likewise.
17017 (hide_operands, restore_operands, record_out_operands): Update type
17018 accordingly.
17019
17020 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
17021
17022 * recog.h (recog_op_alt): Convert to a flat array.
17023 (which_op_alt): New function.
17024 * recog.c (recog_op_alt): Convert to a flat array.
17025 (preprocess_constraints): Update accordingly, grouping all
17026 operands of the same alternative together, rather than the
17027 other way around.
17028 * ira-lives.c (check_and_make_def_conflict): Likewise.
17029 (make_early_clobber_and_input_conflicts): Likewise.
17030 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17031 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
17032 (subst_asm_stack_regs): Likewise.
17033 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
17034 * regrename.c (hide_operands, record_out_operands): Likewise.
17035 (build_def_use): Likewise.
17036 * sel-sched.c (get_reg_class): Likewise.
17037 * config/arm/arm.c (note_invalid_constants): Likewise.
17038
17039 2014-06-04 Jason Merrill <jason@redhat.com>
17040
17041 PR c++/51253
17042 PR c++/61382
17043 * gimplify.c (gimplify_arg): Non-static.
17044 * gimplify.h: Declare it.
17045
17046 2014-06-04 Richard Biener <rguenther@suse.de>
17047
17048 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
17049 TREE_PUBLIC and DECL_EXTERNAL decls.
17050
17051 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
17052
17053 * regcprop.c (copyprop_hardreg_forward_1): Account for
17054 HARD_REGNO_CALL_PART_CLOBBERED.
17055
17056 2014-06-04 Richard Biener <rguenther@suse.de>
17057
17058 * configure.ac: Check whether the underlying type of int64_t
17059 is long or long long.
17060 * configure: Regenerate.
17061 * config.in: Likewise.
17062 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
17063 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
17064
17065 2014-06-04 Richard Biener <rguenther@suse.de>
17066
17067 PR tree-optimization/60098
17068 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
17069 we hit a kill.
17070 (dse_optimize_stmt): Simplify, now that we found a kill
17071 earlier.
17072
17073 2014-06-04 Richard Biener <rguenther@suse.de>
17074
17075 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
17076 of accesses with non-invariant address.
17077
17078 2014-06-04 Martin Liska <mliska@suse.cz>
17079
17080 * cgraph.h (cgraph_make_wrapper): New function introduced.
17081 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
17082 * ipa-inline.h (inline_analyze_function): The function is global.
17083 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
17084
17085 2014-06-04 Martin Liska <mliska@suse.cz>
17086
17087 * tree.h (private_lookup_attribute_starting): New function.
17088 (lookup_attribute_starting): Likewise.
17089 * tree.c (private_lookup_attribute_starting): Likewise.
17090
17091 2014-06-04 Martin Liska <mliska@suse.cz>
17092
17093 * cgraph.h (expand_thunk): New argument added.
17094 (address_taken_from_non_vtable_p): New global function.
17095 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
17096 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
17097 * cgraphunit.c (analyze_function): Likewise.
17098 (assemble_thunks_and_aliases): Argument added to call.
17099 (expand_thunk): New argument forces to produce GIMPLE thunk.
17100
17101 2014-06-04 Martin Liska <mliska@suse.cz>
17102
17103 * coverage.h (coverage_compute_cfg_checksum): Argument added.
17104 * coverage.c (coverage_compute_cfg_checksum): Likewise.
17105 * profile.c (branch_prob): Likewise.
17106
17107 2014-06-04 Martin Jambor <mjambor@suse.cz>
17108
17109 PR ipa/61340
17110 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
17111 handler for switch on an ipa_ref_use enum.
17112 * ipa-reference.c (analyze_function): Likewise.
17113
17114 2014-06-04 Kai Tietz <ktietz@redhat.com>
17115
17116 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
17117 from old call-instruction.
17118
17119 2014-06-04 Bin Cheng <bin.cheng@arm.com>
17120
17121 * config/aarch64/aarch64.c (aarch64_classify_address)
17122 (aarch64_legitimize_reload_address): Support full addressing modes
17123 for vector modes.
17124 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
17125 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
17126
17127 2014-06-03 Andrew Pinski <apinski@cavium.com>
17128
17129 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
17130 for OP0.
17131
17132 2014-06-03 Andrew Pinski <apinski@cavium.com>
17133
17134 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
17135 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
17136
17137 2014-06-03 Kai Tietz <ktietz@redhat.com>
17138
17139 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
17140 for 64-bit ms-abi.
17141
17142 2014-06-03 Dehao Chen <dehao@google.com>
17143
17144 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
17145 the same loop.
17146
17147 2014-06-03 Marek Polacek <polacek@redhat.com>
17148
17149 PR c/60439
17150 * doc/invoke.texi: Document -Wswitch-bool.
17151 * function.c (stack_protect_epilogue): Cast controlling expression of
17152 the switch to int.
17153 * gengtype.c (walk_type): Generate switch expression with its
17154 controlling expression cast to int.
17155
17156 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
17157
17158 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
17159 and attiny841.
17160 * config/avr/avr-tables.opt: Regenerate.
17161 * config/avr/t-multilib: Regenerate.
17162 * doc/avr-mmcu.texi: Regenerate.
17163
17164 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
17165 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
17166
17167 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
17168 (ata6617c, ata664251): Add new avr35 devices.
17169 (ata6612c): Add new avr4 device.
17170 (ata6613c, ata6614q): Add new avr5 devices.
17171 * config/avr/avr-tables.opt: Regenerate.
17172 * config/avr/t-multilib: Regenerate.
17173 * doc/avr-mmcu.texi: Regenerate.
17174
17175 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
17176
17177 * gcc/config/aarch64/aarch64-builtins.c
17178 (aarch64_types_binop_ssu_qualifiers): New static data.
17179 (TYPES_BINOP_SSU): Define.
17180 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
17181 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
17182 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
17183 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
17184 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
17185 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
17186 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
17187 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
17188 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
17189 suffix to builtin function name, remove cast.
17190 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
17191 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
17192 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
17193
17194 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
17195
17196 * gcc/config/aarch64/aarch64-builtins.c
17197 (aarch64_types_binop_uus_qualifiers,
17198 aarch64_types_shift_to_unsigned_qualifiers,
17199 aarch64_types_unsigned_shiftacc_qualifiers): Define.
17200 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
17201 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
17202 sqshlu_n, uqshl_n): Update qualifiers.
17203 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
17204 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
17205 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
17206 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
17207 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
17208 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
17209 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
17210 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
17211 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
17212 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
17213 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
17214 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
17215 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
17216 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
17217 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
17218 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
17219 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
17220 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
17221 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
17222 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
17223 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
17224 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
17225 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
17226 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
17227 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
17228 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
17229 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
17230
17231 2014-06-03 Teresa Johnson <tejohnson@google.com>
17232
17233 * tree-sra.c (modify_function): Record caller nodes after rebuild.
17234
17235 2014-06-02 Jason Merrill <jason@redhat.com>
17236
17237 PR c++/61020
17238 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
17239
17240 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
17241
17242 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
17243 location == 0.
17244
17245 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
17246
17247 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
17248 New pattern.
17249 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
17250 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
17251 * config/aarch64/iterators.md (REVERSE): New iterator.
17252 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
17253 (rev_op): New int_attribute.
17254 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
17255 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
17256 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
17257 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
17258 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
17259 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
17260 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
17261 Replace temporary __asm__ with __builtin_shuffle.
17262
17263 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
17264
17265 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
17266 mips64r5.
17267 * config/mips/mips-tables.opt: Regenerate.
17268 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
17269 to use mips_isa_rev rather than ISA_MIPS32R2.
17270 * config/mips/mips.h (ISA_MIPS32R3): New define.
17271 (ISA_MIPS32R5): New define.
17272 (ISA_MIPS64R3): New define.
17273 (ISA_MIPS64R5): New define.
17274 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
17275 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
17276 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
17277 and mips64r5.
17278 (MIPS_ISA_SYNCI_SPEC): Likewise.
17279 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
17280 (LINK_SPEC): Added mips32r3 and mips32r5.
17281 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
17282 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
17283 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
17284 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
17285 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
17286 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
17287 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
17288
17289 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
17290
17291 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
17292 options.
17293 * config/mips/mips.opt (mxpa): New option.
17294 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
17295 assembler.
17296
17297 2014-06-03 Martin Jambor <mjambor@suse.cz>
17298
17299 PR ipa/61160
17300 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
17301 thunks.
17302
17303 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
17304
17305 PR tree-optimization/61328
17306 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
17307 initialization from find_bswap_or_nop_1.
17308 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
17309 in source_expr2 before using the size value the function sets. Also
17310 make use of init_symbolic_number () in both the old place and
17311 find_bswap_or_nop_load () to avoid reading uninitialized memory when
17312 doing recursion in the GIMPLE_BINARY_RHS case.
17313
17314 2014-06-03 Richard Biener <rguenther@suse.de>
17315
17316 PR tree-optimization/61383
17317 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
17318 stmts can't trap.
17319
17320 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
17321
17322 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
17323 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
17324 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
17325 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
17326 in this file.
17327 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
17328 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
17329 * system.h: ...here and make it unconditional.
17330 * target.def (conditional_register_usage): Mention
17331 define_register_constraint instead of old-style constraint macros.
17332 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
17333 * doc/tm.texi: Regenerate.
17334 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
17335 protected by !USE_MD_CONSTRAINTS.
17336 * config/frv/frv.md: Remove quote from old version of documentation.
17337 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
17338 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
17339 CONST_DOUBLE_OK_FOR_LETTER.
17340 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
17341
17342 2014-06-02 Andrew Pinski <apinski@cavium.com>
17343
17344 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
17345 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
17346 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
17347 file whose name depends on -mabi= and -mbig-endian.
17348 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
17349 Handle LP64 better and handle ilp32 too.
17350 (MULTILIB_OPTIONS): Delete.
17351 (MULTILIB_DIRNAMES): Delete.
17352
17353 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
17354
17355 * expr.h: Remove prototypes of functions defined in builtins.c.
17356 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
17357 Remove prototypes of functions defined in builtins.c.
17358 * builtins.h: Update prototype list to include all exported functions.
17359 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
17360 no_c99_libc_has_function): Move to targhooks.c
17361 (build_string_literal, build_call_expr_loc_array,
17362 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
17363 to tree.c.
17364 (expand_builtin_object_size, fold_builtin_object_size): Make static.
17365 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
17366 no_c99_libc_has_function): Relocate from builtins.c.
17367 * tree.c: Include builtins.h.
17368 (build_call_expr_loc_array, build_call_expr_loc_vec,
17369 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
17370 from builtins.c.
17371 * fold-const.h (fold_fma): Move prototype to builtins.h.
17372 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
17373 * asan.c: Include builtins.h.
17374 * cfgexpand.c: Likewise.
17375 * convert.c: Likewise.
17376 * emit-rtl.c: Likewise.
17377 * except.c: Likewise.
17378 * expr.c: Likewise.
17379 * fold-const.c: Likewise.
17380 * gimple-fold.c: Likewise.
17381 * gimple-ssa-strength-reduction.c: Likewise.
17382 * gimplify.c: Likewise.
17383 * ipa-inline.c: Likewise.
17384 * ipa-prop.c: Likewise.
17385 * lto-streamer-out.c: Likewise.
17386 * stmt.c: Likewise.
17387 * tree-inline.c: Likewise.
17388 * tree-object-size.c: Likewise.
17389 * tree-sra.c: Likewise.
17390 * tree-ssa-ccp.c: Likewise.
17391 * tree-ssa-forwprop.c: Likewise.
17392 * tree-ssa-loop-ivcanon.c: Likewise.
17393 * tree-ssa-loop-ivopts.c: Likewise.
17394 * tree-ssa-math-opts.c: Likewise.
17395 * tree-ssa-reassoc.c: Likewise.
17396 * tree-ssa-threadedge.c: Likewise.
17397 * tree-streamer-in.c: Likewise.
17398 * tree-vect-data-refs.c: Likewise.
17399 * tree-vect-patterns.c: Likewise.
17400 * tree-vect-stmts.c: Likewise.
17401 * config/aarch64/aarch64.c: Likewise.
17402 * config/alpha/alpha.c: Likewise.
17403 * config/arc/arc.c: Likewise.
17404 * config/arm/arm.c: Likewise.
17405 * config/avr/avr.c: Likewise.
17406 * config/bfin/bfin.c: Likewise.
17407 * config/c6x/c6x.c: Likewise.
17408 * config/cr16/cr16.c: Likewise.
17409 * config/cris/cris.c: Likewise.
17410 * config/epiphany/epiphany.c: Likewise.
17411 * config/fr30/fr30.c: Likewise.
17412 * config/frv/frv.c: Likewise.
17413 * config/h8300/h8300.c: Likewise.
17414 * config/i386/i386.c: Likewise.
17415 * config/i386/winnt.c: Likewise.
17416 * config/ia64/ia64.c: Likewise.
17417 * config/iq2000/iq2000.c: Likewise.
17418 * config/lm32/lm32.c: Likewise.
17419 * config/m32c/m32c.c: Likewise.
17420 * config/m32r/m32r.c: Likewise.
17421 * config/m68k/m68k.c: Likewise.
17422 * config/mcore/mcore.c: Likewise.
17423 * config/mep/mep.c: Likewise.
17424 * config/microblaze/microblaze.c: Likewise.
17425 * config/mips/mips.c: Likewise.
17426 * config/mmix/mmix.c: Likewise.
17427 * config/mn10300/mn10300.c: Likewise.
17428 * config/moxie/moxie.c: Likewise.
17429 * config/msp430/msp430.c: Likewise.
17430 * config/nds32/nds32.c: Likewise.
17431 * config/pa/pa.c: Likewise.
17432 * config/pdp11/pdp11.c: Likewise.
17433 * config/picochip/picochip.c: Likewise.
17434 * config/rl78/rl78.c: Likewise.
17435 * config/rs6000/rs6000.c: Likewise.
17436 * config/rx/rx.c: Likewise.
17437 * config/s390/s390.c: Likewise.
17438 * config/score/score.c: Likewise.
17439 * config/sh/sh.c: Likewise.
17440 * config/sparc/sparc.c: Likewise.
17441 * config/spu/spu.c: Likewise.
17442 * config/stormy16/stormy16.c: Likewise.
17443 * config/tilegx/tilegx.c: Likewise.
17444 * config/tilepro/tilepro.c: Likewise.
17445 * config/v850/v850.c: Likewise.
17446 * config/vax/vax.c: Likewise.
17447 * config/xtensa/xtensa.c: Likewise.
17448
17449 2014-06-02 Jeff Law <law@redhat.com>
17450
17451 PR rtl-optimization/61094
17452 * ree.c (combine_reaching_defs): Do not reextend an insn if it
17453 was marked as do_no_reextend. If a copy is needed to eliminate
17454 an extension, then mark it as do_not_reextend.
17455
17456 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
17457
17458 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
17459
17460 2014-06-02 Richard Henderson <rth@redhat.com>
17461
17462 PR target/61336
17463 * config/alpha/alpha.c (print_operand_address): Allow symbolic
17464 addresses inside asms. Use output_operand_lossage instead of
17465 gcc_unreachable.
17466
17467 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
17468
17469 PR target/61239
17470 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
17471 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
17472
17473 2014-06-02 Tom de Vries <tom@codesourcery.com>
17474
17475 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
17476 case that x has VOIDmode.
17477
17478 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
17479
17480 * varasm.c (copy_constant): Delete function.
17481 (build_constant_desc): Don't call it.
17482
17483 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17484
17485 PR target/61154
17486 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
17487 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
17488 with immediate_operand.
17489
17490 2014-06-02 Andreas Schwab <schwab@suse.de>
17491
17492 * config/ia64/ia64.c
17493 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
17494 pending_data_specs first.
17495
17496 2014-06-02 Richard Biener <rguenther@suse.de>
17497
17498 PR tree-optimization/61378
17499 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
17500 valueized_anything.
17501
17502 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
17503
17504 * config/i386/constraints.md (Bw): Rename from 'w'.
17505 (Bz): Rename from 'z'.
17506 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
17507
17508 2014-06-01 Kai Tietz <ktietz@redhat.com>
17509
17510 PR target/61377
17511 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
17512 * config/i386/i386.md (sibcall_insn_operand): Use Bs
17513 instead of m constraint.
17514
17515 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
17516
17517 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
17518 a separate alternative where the scratch operand 2 is marked as
17519 early clobber.
17520
17521 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
17522
17523 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
17524 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
17525 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
17526 and __builtins_arm_get_fpscr.
17527 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
17528 __builtins_arm_get_fpscr.
17529 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
17530 __builtins_arm_ldfpscr.
17531 (arm_atomic_assign_expand_fenv): New function.
17532 * config/arm/vfp.md (set_fpscr): New pattern.
17533 (get_fpscr) : Likewise.
17534 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
17535 VUNSPEC_SET_FPSCR.
17536 * doc/extend.texi (AARCH64 Built-in Functions) : Document
17537 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
17538
17539 2014-05-30 Jakub Jelinek <jakub@redhat.com>
17540
17541 * asan.c (report_error_func): Add SLOW_P argument, use
17542 BUILT_IN_ASAN_*_N if set.
17543 (build_check_stmt): Likewise.
17544 (instrument_derefs): If T has insufficient alignment,
17545 force same handling as for odd sizes.
17546
17547 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
17548 BUILT_IN_ASAN_REPORT_STORE_N): New.
17549 * asan.c (struct asan_mem_ref): Change access_size type to
17550 HOST_WIDE_INT.
17551 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
17552 update_mem_ref_hash_table): Likewise.
17553 (asan_mem_ref_hasher::hash): Hash in a HWI.
17554 (report_error_func): Change size_in_bytes argument to HWI.
17555 Use *_N builtins if size_in_bytes is larger than 16 or not power of
17556 two.
17557 (build_shadow_mem_access): New function.
17558 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
17559 Handle size_in_bytes not power of two or larger than 16.
17560 (instrument_derefs): Don't give up if size_in_bytes is not
17561 power of two or is larger than 16.
17562
17563 2014-05-30 Kai Tietz <ktietz@redhat.com>
17564
17565 PR target/60104
17566 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
17567 for sibling-tail-calls.
17568 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
17569 to its use.
17570 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
17571 (sibcall_insn_operand): Add check for sibcall_memory_operand.
17572
17573 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
17574
17575 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
17576 * config/avr/avr-tables.opt: Regenerate.
17577 * config/avr/t-multilib: Regenerate.
17578 * doc/avr-mmcu.texi: Regenerate.
17579
17580 2014-05-30 Ian Lance Taylor <iant@google.com>
17581
17582 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
17583 target("sse").
17584
17585 2014-05-30 Tom de Vries <tom@codesourcery.com>
17586
17587 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
17588 Redefine as true.
17589
17590 2014-05-30 Tom de Vries <tom@codesourcery.com>
17591
17592 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
17593 * lra.c (initialize_lra_reg_info_element): Add init of
17594 actual_call_used_reg_set field.
17595 (lra): Call lra_create_live_ranges before lra_inheritance for
17596 -fuse-caller-save.
17597 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
17598 -fuse-caller-save.
17599 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
17600 instead of call_used_reg_set for -fuse-caller-save.
17601 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
17602
17603 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17604
17605 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
17606 to mov_imm.
17607 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
17608
17609 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
17610
17611 * ira.c (ira_get_dup_out_num): Check for output operands at
17612 the start of the loop. Handle cases where an included alternative
17613 follows an excluded one.
17614
17615 2014-05-29 Mike Stump <mikestump@comcast.net>
17616
17617 PR debug/61352
17618 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
17619 post ld passes when lto is used.
17620
17621 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
17622
17623 PR rtl-optimization/61325
17624 * lra-constraints.c (process_address): Rename to process_address_1.
17625 (process_address): New function.
17626
17627 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
17628
17629 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
17630 TYPES_BINOPV): New static data.
17631 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
17632 New builtin.
17633 * config/aarch64/aarch64-simd.md (aarch64_ext,
17634 aarch64_im_lane_boundsi): New patterns.
17635 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
17636 patterns for EXT.
17637 (aarch64_evpc_ext): New function.
17638
17639 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
17640
17641 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
17642 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
17643 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
17644 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
17645 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
17646
17647 2014-05-29 Tom de Vries <tom@codesourcery.com>
17648
17649 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
17650
17651 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
17652 Richard Sandiford <rdsandiford@googlemail.com>
17653
17654 * arm/iterators.md (shiftable_ops): New code iterator.
17655 (t2_binop0, arith_shift_insn): New code attributes.
17656 * arm/predicates.md (shift_nomul_operator): New predicate.
17657 * arm/arm.md (insn_enabled): Delete.
17658 (enabled): Remove insn_enabled test.
17659 (*arith_shiftsi): Delete. Replace with ...
17660 (*<arith_shift_insn>_multsi): ... new pattern.
17661 (*<arith_shift_insn>_shiftsi): ... new pattern.
17662 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
17663
17664 2014-05-29 Radovan Obradovic <robradovic@mips.com>
17665 Tom de Vries <tom@codesourcery.com>
17666
17667 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
17668 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
17669 clobber.
17670 (mips_split_call): Use POST_CALL_TMP_REG.
17671 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
17672
17673 2014-05-29 Tom de Vries <tom@codesourcery.com>
17674
17675 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
17676 with #ifdef STACK_REGS.
17677
17678 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
17679
17680 * varasm.c (get_variable_section): Walk aliases.
17681 (place_block_symbol): Walk aliases.
17682
17683 2014-05-28 Tom de Vries <tom@codesourcery.com>
17684
17685 Revert:
17686 2014-05-28 Tom de Vries <tom@codesourcery.com>
17687
17688 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
17689 * lra.c (initialize_lra_reg_info_element): Add init of
17690 actual_call_used_reg_set field.
17691 (lra): Call lra_create_live_ranges before lra_inheritance for
17692 -fuse-caller-save.
17693 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
17694 -fuse-caller-save.
17695 * lra-constraints.c (need_for_call_save_p): Use
17696 actual_call_used_reg_set instead of call_used_reg_set for
17697 -fuse-caller-save.
17698 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
17699
17700 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
17701
17702 * doc/md.texi: Document that the % constraint character must
17703 be at the beginning of the string.
17704 * genoutput.c (validate_insn_alternatives): Check that '=',
17705 '+' and '%' only appear at the beginning of a constraint.
17706 * ira.c (commutative_constraint_p): Delete.
17707 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
17708 at the start of the string.
17709 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
17710 duplicate '='s.
17711 * config/arm/neon.md (bicdi3_neon): Likewise.
17712 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
17713 (slt_si, sltu_si): Likewise.
17714 * config/vax/vax.md (sbcdi3): Likewise.
17715 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
17716 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
17717 (mul64): Move '%' to beginning of constraint.
17718 * config/arm/arm.md (*xordi3_insn): Likewise.
17719 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
17720 (xorsi3): Likewise.
17721
17722 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
17723
17724 * doc/md.texi: Document the restrictions on the "enabled" attribute.
17725
17726 2014-05-28 Jason Merrill <jason@redhat.com>
17727
17728 PR c++/47202
17729 * cgraph.h (symtab_node::get_comdat_group_id): New.
17730 * cgraphunit.c (analyze_functions): Call it.
17731 * symtab.c (dump_symtab_node): Likewise.
17732 * tree.c (decl_comdat_group_id): New.
17733 * tree.h: Declare it.
17734 * lto-streamer-out.c (write_symbol): Use it.
17735 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
17736
17737 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
17738
17739 PR bootstrap/PR61146
17740 * wide-int.cc: Do not include longlong.h when compiling with clang.
17741
17742 2014-05-28 Richard Biener <rguenther@suse.de>
17743
17744 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
17745 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
17746 (vrp_visit_assignment_or_call): Print less vertical space.
17747 (vrp_visit_stmt): Likewise.
17748 (vrp_visit_phi_node): Likewise. For a PHI argument with
17749 VR_VARYING range consider recording it as copy.
17750
17751 2014-05-28 Richard Biener <rguenther@suse.de>
17752
17753 Revert
17754 2014-05-28 Richard Biener <rguenther@suse.de>
17755
17756 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
17757
17758 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
17759
17760 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
17761 sufficiently aligned and an offset is used at the same time.
17762 (expand_expr_real_1): Likewise.
17763
17764 2014-05-28 Richard Biener <rguenther@suse.de>
17765
17766 PR middle-end/61045
17767 * fold-const.c (fold_comparison): When folding
17768 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
17769 the sign of the remaining constant operand stays the same.
17770
17771 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
17772
17773 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
17774 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
17775 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
17776 to the assembler.
17777 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
17778 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
17779 (m32bit-doubles) Likewise.
17780 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
17781 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
17782 option for RL78.
17783
17784 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17785
17786 * configure.ac ($gcc_cv_ld_clearcap): New test.
17787 * configure: Regenerate.
17788 * config.in: Regenerate.
17789 * config/sol2.opt (mclear-hwcap): New option.
17790 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
17791 * config/sol2-clearcap.map: Moved here from
17792 testsuite/gcc.target/i386/clearcap.map.
17793 * config/sol2-clearcapv2.map: Move here from
17794 gcc.target/i386/clearcapv2.map.
17795 * config/t-sol2 (install): Depend on install-clearcap-map.
17796 (install-clearcap-map): New target.
17797 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
17798 -mclear-hwcap.
17799
17800 2014-05-28 Richard Biener <rguenther@suse.de>
17801
17802 * hwint.h (*_HALF_WIDE_INT*): Move to ...
17803 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
17804 ... here and remove the rest.
17805 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
17806
17807 2014-05-28 Richard Biener <rguenther@suse.de>
17808
17809 PR tree-optimization/61335
17810 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
17811 new range fails, drop to varying.
17812
17813 2014-05-28 Olivier Hainque <hainque@adacore.com>
17814
17815 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
17816 (CPP_SPEC): Add entry for -mcpu=8548.
17817 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
17818 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
17819
17820 2014-05-28 Tom de Vries <tom@codesourcery.com>
17821
17822 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
17823 * lra.c (initialize_lra_reg_info_element): Add init of
17824 actual_call_used_reg_set field.
17825 (lra): Call lra_create_live_ranges before lra_inheritance for
17826 -fuse-caller-save.
17827 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
17828 -fuse-caller-save.
17829 * lra-constraints.c (need_for_call_save_p): Use
17830 actual_call_used_reg_set instead of call_used_reg_set for
17831 -fuse-caller-save.
17832 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
17833
17834 2014-05-28 Radovan Obradovic <robradovic@mips.com>
17835 Tom de Vries <tom@codesourcery.com>
17836
17837 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
17838 to gccoptlist.
17839 (@item -fuse-caller-save): New item.
17840
17841 2014-05-28 Radovan Obradovic <robradovic@mips.com>
17842 Tom de Vries <tom@codesourcery.com>
17843
17844 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
17845 OPT_fuse_caller_save.
17846
17847 2014-05-28 Radovan Obradovic <robradovic@mips.com>
17848 Tom de Vries <tom@codesourcery.com>
17849
17850 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
17851 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
17852 get_call_reg_set_usage.
17853 * resource.c (mark_set_resources, mark_target_live_regs): Use
17854 get_call_reg_set_usage.
17855 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
17856 field.
17857 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
17858 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
17859 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
17860 * ira-build.c (ira_create_allocno): Init
17861 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
17862 (create_cap_allocno, propagate_allocno_info)
17863 (propagate_some_info_from_allocno)
17864 (copy_info_to_removed_store_destinations): Handle
17865 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
17866 * ira-costs.c (ira_tune_allocno_costs): Use
17867 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
17868
17869 2014-05-28 Radovan Obradovic <robradovic@mips.com>
17870 Tom de Vries <tom@codesourcery.com>
17871
17872 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
17873 and function_used_regs_valid fields.
17874 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
17875 find_all_hard_reg_sets.
17876 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
17877 (get_call_reg_set_usage): New function.
17878 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
17879 * regs.h (get_call_reg_set_usage): Declare.
17880
17881 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
17882
17883 PR libgcc/61152
17884 * config/dbx.h (License): Add Runtime Library Exception.
17885 * config/newlib-stdint.h (License): Same.
17886 * config/rtems.h (License): Same
17887 * config/initfini-array.h (License): Same
17888 * config/v850/v850.h (License): Same.
17889 * config/v850/v850-opts.h (License): Same
17890 * config/v850/rtems.h (License): Same.
17891
17892 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
17893
17894 PR target/61044
17895 * doc/extend.texi (Local Labels): Note that label differences are
17896 not supported for AVR.
17897
17898 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
17899 Olivier Hainque <hainque@adacore.com>
17900
17901 * rtl.h (set_for_reg_notes): Declare.
17902 * emit-rtl.c (set_for_reg_notes): New function.
17903 (set_unique_reg_note): Use it.
17904 * optabs.c (add_equal_note): Likewise
17905
17906 2014-05-27 Andrew Pinski <apinski@cavium.com>
17907
17908 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
17909 Use <w> for the register in assembly template.
17910 (stack_protect_test): Use the mode of operands[0] for the result.
17911 (stack_protect_test_<mode>): Use <w> for the register
17912 in assembly template.
17913
17914 2014-05-27 DJ Delorie <dj@redhat.com>
17915
17916 * config/rx/rx.c (add_vector_labels): New.
17917 (rx_output_function_prologue): Call it.
17918 (rx_handle_func_attribute): Don't require empty arguments.
17919 (rx_handle_vector_attribute): New.
17920 (rx_attribute_table): Add "vector" attribute.
17921 * doc/extend.texi (interrupt, vector): Document new/changed
17922 RX-specific attributes.
17923
17924 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
17925
17926 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
17927
17928 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
17929 predicate to detect a negative quotient.
17930
17931 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
17932
17933 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
17934 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
17935 Add X - Y CMP 0 to X CMP Y transformation.
17936 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
17937
17938 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
17939
17940 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
17941 before printing.
17942
17943 2014-05-27 Steve Ellcey <sellcey@mips.com>
17944
17945 * config/mips/mips.c: Add include of cgraph.h.
17946
17947 2014-05-27 Richard Biener <rguenther@suse.de>
17948
17949 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
17950
17951 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
17952
17953 PR libgcc/61152
17954 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
17955 * config/arm/arm-cores.def (License): Same.
17956 * config/arm/arm-opts.h (License): Same.
17957 * config/arm/aout.h (License): Same.
17958 * config/arm/bpabi.h (License): Same.
17959 * config/arm/elf.h (License): Same.
17960 * config/arm/linux-elf.h (License): Same.
17961 * config/arm/linux-gas.h (License): Same.
17962 * config/arm/netbsd-elf.h (License): Same.
17963 * config/arm/uclinux-eabi.h (License): Same.
17964 * config/arm/uclinux-elf.h (License): Same.
17965 * config/arm/vxworks.h (License): Same.
17966
17967 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17968
17969 * config/arm/neon.md (neon_bswap<mode>): New pattern.
17970 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
17971 (arm_init_neon_builtins): Handle NEON_BSWAP.
17972 Define required type nodes.
17973 (arm_expand_neon_builtin): Handle NEON_BSWAP.
17974 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
17975 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
17976 * config/arm/iterators.md (VDQHSD): New mode iterator.
17977
17978 2014-05-27 Richard Biener <rguenther@suse.de>
17979
17980 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
17981 Try using literal operands when comparing value-ranges failed.
17982
17983 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
17984
17985 * ira.c (commutative_operand): Adjust for change to recog_data.
17986 [Missing from previous commit.]
17987
17988 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
17989
17990 * system.h (TEST_BIT): New macro.
17991 * recog.h (alternative_mask): New type.
17992 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
17993 (recog_data_d): Replace alternative_enabled_p array with
17994 enabled_alternatives.
17995 (target_recog): New structure.
17996 (default_target_recog, this_target_recog): Declare.
17997 (get_enabled_alternatives, recog_init): Likewise.
17998 * recog.c (default_target_recog, this_target_recog): New variables.
17999 (get_enabled_alternatives): New function.
18000 (extract_insn): Use it.
18001 (recog_init): New function.
18002 (preprocess_constraints, constrain_operands): Adjust for change to
18003 recog_data.
18004 * postreload.c (reload_cse_simplify_operands): Likewise.
18005 * reload.c (find_reloads): Likewise.
18006 * ira-costs.c (record_reg_classes): Likewise.
18007 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
18008 all alternatives after a disabled one would be skipped.
18009 (ira_implicitly_set_insn_hard_regs): Likewise.
18010 * ira.c (ira_setup_alts): Adjust for change to recog_data.
18011 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
18012 with enabled_alternatives.
18013 * lra.c (free_insn_recog_data): Update accordingly.
18014 (lra_update_insn_recog_data): Likewise.
18015 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
18016 * lra-constraints.c (process_alt_operands): Likewise. Handle
18017 only_alternative as part of the enabled mask.
18018 * target-globals.h (this_target_recog): Declare.
18019 (target_globals): Add a recog field.
18020 (restore_target_globals): Restore this_target_recog.
18021 * target-globals.c: Include recog.h.
18022 (default_target_globals): Initialize recog field.
18023 (save_target_globals): Likewise.
18024 * reginfo.c (reinit_regs): Call recog_init.
18025 * toplev.c (backend_init_target): Likewise.
18026
18027 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
18028
18029 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
18030 rather than any named insn's code.
18031
18032 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
18033
18034 PR libgcc/61152
18035 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
18036 * config/arm/arm-cores.def (License): Same.
18037
18038 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
18039
18040 * tree.h (decl_comdat_group): Declare.
18041 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
18042 * tree.c (decl_comdat_group): Here.
18043
18044 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
18045
18046 PR rtl-optimization/61222
18047 * combine.c (simplify_shift_const_1): When moving a PLUS outside
18048 the shift, truncate the PLUS operand to the result mode.
18049
18050 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
18051
18052 PR target/61271
18053 * config/i386/i386.c (ix86_rtx_costs)
18054 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
18055 Fix condition.
18056
18057 2014-05-26 Martin Jambor <mjambor@suse.cz>
18058
18059 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
18060 subreg uses.
18061
18062 2014-05-26 Richard Biener <rguenther@suse.de>
18063
18064 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
18065 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
18066 Provide specializations.
18067 (wi::int_traits <HOST_WIDE_INT>,
18068 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
18069
18070 2014-05-26 Alan Modra <amodra@gmail.com>
18071
18072 PR target/61098
18073 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
18074 params and return a bool. Remove dead code. Update comment.
18075 Assert we have a const_int source. Remove bogus code from
18076 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
18077 handling of constants > 2G and reg_equal note, from..
18078 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
18079 return value. Update comment. If we can, use a new pseudo
18080 for intermediate calculations.
18081 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
18082 prototype.
18083 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
18084 call to rs6000_emit_set_const in splitter.
18085 (movdi_internal64+2, +3): Likewise.
18086
18087 2014-05-26 Richard Biener <rguenther@suse.de>
18088
18089 * system.h: Define __STDC_FORMAT_MACROS before
18090 including inttypes.h.
18091 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
18092 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
18093 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
18094 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
18095 HOST_WIDEST_INT_C): Remove.
18096 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
18097 if C99 inttypes.h is not available.
18098 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
18099 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
18100 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
18101 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
18102 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
18103 (struct output_info): Likewise.
18104 (print_statistics): Adjust.
18105 (dump_bitmap_statistics): Likewise.
18106 * bt-load.c (migrate_btr_defs): Print with PRId64.
18107 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
18108 (MAX_SAFE_MULTIPLIER): Adjust.
18109 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
18110 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
18111 dump_cgraph_node): Likewise.
18112 * final.c (dump_basic_block_info): Likewise.
18113 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
18114 * gcov.c (format_gcov): Likewise.
18115 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
18116 for calculation.
18117 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
18118 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
18119 (inline_small_functions, dump_overall_stats, dump_inline_stats):
18120 Use PRId64 for dumping.
18121 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
18122 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
18123 (add_allocno_hard_regs): Adjust.
18124 * loop-doloop.c (doloop_modify): Print using PRId64.
18125 * loop-iv.c (inverse): Compute in uint64_t.
18126 (determine_max_iter, iv_number_of_iterations): Likewise.
18127 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
18128 Print using PRId64.
18129 * lto-streamer-out.c (write_symbol): Use uint64_t.
18130 * mcf.c (CAP_INFINITY): Use int64_t maximum.
18131 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
18132 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
18133 * modulo-sched.c (const_iteration_count): Use int64_t.
18134 (sms_schedule): Dump using PRId64.
18135 * predict.c (dump_prediction): Likewise.
18136 * pretty-print.h (pp_widest_integer): Remove.
18137 * profile.c (get_working_sets, is_edge_inconsistent,
18138 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
18139 * tree-pretty-print.c (pp_double_int): Remove case handling
18140 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
18141 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
18142 and adjust users.
18143 (pass_optimize_bswap::execute): Remove restriction on hosts.
18144 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
18145 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
18146 * tree.c (widest_int_cst_value): Remove.
18147 * tree.h (widest_int_cst_value): Likewise.
18148 * value-prof.c (dump_histogram_value): Print using PRId64.
18149 * gengtype.c (main): Also inject int64_t.
18150 * ggc-page.c (struct max_alignment): Use int64_t.
18151 * alloc-pool.c (struct allocation_object_def): Likewise.
18152 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
18153 for computation.
18154 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
18155 * doc/tm.texi: Regenerated.
18156 * gengtype-lex.l (IWORD): Handle [u]int64_t.
18157 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
18158 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
18159 mmix_output_register_setting): Use [u]int64_t in prototypes.
18160 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
18161 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
18162 mmix_output_octa, mmix_output_shifted_value): Adjust.
18163 (mmix_intval): Adjust. Remove unreachable case.
18164 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
18165
18166 2014-05-26 Richard Biener <rguenther@suse.de>
18167
18168 * configure.ac: Drop __int64 type check. Insist that we
18169 found uint64_t and int64_t.
18170 * hwint.h (HOST_BITS_PER___INT64): Remove.
18171 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
18172 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
18173 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
18174 (HOST_WIDEST_FAST_INT): Remove __int64 case.
18175 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
18176 for dst_q_src_df_rms_cdt.
18177 * configure: Regenerate.
18178 * config.in: Likewise.
18179
18180 2014-05-26 Michael Tautschnig <mt@debian.org>
18181
18182 PR target/61249
18183 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
18184 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
18185
18186 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
18187
18188 PR rtl-optimization/61278
18189 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
18190
18191 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
18192
18193 PR rtl-optimization/61220
18194 Part of PR rtl-optimization/61225
18195 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
18196 insn; skip split_edge for a block with only one successor.
18197
18198 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
18199
18200 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
18201 for variables.
18202
18203 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
18204
18205 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
18206 (update_vtable_references): New function.
18207 (function_and_variable_visibility): Rewrite also vtable initializers.
18208 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
18209
18210 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
18211
18212 * ggc.h (ggc_grow): New function.
18213 * ggc-none.c (ggc_grow): New function.
18214 * ggc-page.c (ggc_grow): Likewise.
18215
18216 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
18217
18218 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
18219 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
18220 comdat_can_be_unshared_p, cgraph_externally_visible_p,
18221 varpool_externally_visible_p, can_replace_by_local_alias,
18222 update_visibility_by_resolution_info, function_and_variable_visibility,
18223 pass_data_ipa_function_and_variable_visibility,
18224 make_pass_ipa_function_and_variable_visibility,
18225 whole_program_function_and_variable_visibility,
18226 pass_data_ipa_whole_program_visibility,
18227 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
18228 * cgraph.h (cgraph_local_node_p): Declare.
18229 * ipa-visibility.c: New file.
18230 * Makefile.in (OBJS): Add ipa-visiblity.o
18231
18232 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
18233
18234 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
18235 that var decl is available.
18236
18237 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
18238
18239 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
18240 symtab_node pointer.
18241 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
18242 (find_decls_types_r): Do not walk COMDAT_GROUP.
18243 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
18244 * varasm.c (make_decl_one_only): Use set_comdat_group;
18245 create node if needed.
18246 * ipa-inline-transform.c (save_inline_function_body): Update
18247 way we decl->symtab mapping.
18248 * symtab.c (symtab_hash, hash_node, eq_node
18249 symtab_insert_node_to_hashtable): Remove.
18250 (symtab_register_node): Update.
18251 (symtab_unregister_node): Update.
18252 (symtab_get_node): Reimplement as inline function.
18253 (symtab_add_to_same_comdat_group): Update.
18254 (symtab_dissolve_same_comdat_group_list): Update.
18255 (dump_symtab_base): Update.
18256 (verify_symtab_base): Update.
18257 (symtab_make_decl_local): Update.
18258 (fixup_same_cpp_alias_visibility): Update.
18259 (symtab_nonoverwritable_alias): Update.
18260 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
18261 * ipa.c (update_visibility_by_resolution_info): UPdate.
18262 * bb-reorder.c: Include cgraph.h
18263 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
18264 with comdat groups.
18265 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
18266 * cgraph.c (cgraph_get_create_node): Update.
18267 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
18268 and comdat_group_.
18269 (symtab_get_node): Make inline.
18270 (symtab_insert_node_to_hashtable): Remove.
18271 (symtab_can_be_discarded): Update.
18272 (decl_comdat_group): New function.
18273 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
18274 Update.
18275 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
18276 comdat group name.
18277 (read_comdat_group): New function.
18278 (input_node, input_varpool_node): Use it.
18279 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
18280 comdat groups.
18281 * mips.c (mips_start_unique_function): Likewise.
18282 (ix86_code_end): Likewise.
18283 (rs6000_code_end): Likweise.
18284 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
18285
18286 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
18287
18288 * gengtype-state.c (fatal_reading_state): Bring offline.
18289 * optabs.c (widening_optab_handler): Bring offline.
18290 * optabs.h (widening_optab_handler): Likewise.
18291 * final.c (get_attr_length_1): Likewise.
18292
18293 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
18294
18295 * sched-int.h (sd_iterator_cond): Manually tail recurse.
18296
18297 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
18298
18299 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
18300 (ppc440-compare): Include shift with dot.
18301 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
18302 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
18303 without dot.
18304 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
18305 without dot.
18306 (e6500_sfx2): Include it.
18307 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
18308 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
18309 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
18310 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
18311 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
18312 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
18313 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
18314 *lshiftrt_internal1le, *lshiftrt_internal1be,
18315 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
18316 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
18317 *rotldi3_internal10le, *rotldi3_internal10be,
18318 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
18319 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
18320 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
18321 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
18322 define_insns): Use type "shift" in the appropriate alternatives.
18323
18324 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
18325
18326 * config/rs6000/rs6000.md (type): Add "logical". Delete
18327 "fast_compare".
18328 (dot): Adjust comment.
18329 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
18330 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
18331 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
18332 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
18333 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
18334 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
18335 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
18336 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
18337
18338 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
18339 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
18340 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
18341 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
18342 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
18343 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
18344 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
18345 * config/rs6000/8540.md (ppc8540_su): Adjust.
18346 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
18347 cell-cmp-microcoded): Adjust.
18348 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
18349 * config/rs6000/e500mc.md (e500mc_su): Adjust.
18350 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
18351 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
18352 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
18353 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
18354 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
18355 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
18356 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
18357 Adjust.
18358 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
18359 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
18360 Adjust. Adjust comment.
18361 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
18362 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
18363
18364 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
18365
18366 * config/rs6000/rs6000.md (type): Add "add".
18367 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
18368 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
18369 define_insns): Use it.
18370 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
18371
18372 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
18373 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
18374 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
18375 * config/rs6000/601.md (ppc601-integer): Adjust.
18376 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
18377 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
18378 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
18379 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
18380 * config/rs6000/8540.md (ppc8540_su): Adjust.
18381 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
18382 cell-cmp-microcoded): Adjust.
18383 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
18384 * config/rs6000/e500mc.md (e500mc_su): Adjust.
18385 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
18386 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
18387 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
18388 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
18389 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
18390 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
18391 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
18392 Adjust.
18393 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
18394 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
18395 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
18396 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
18397
18398 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
18399
18400 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
18401 "delayed_compare", "var_delayed_compare".
18402 (var_shift): New attribute.
18403 (cell_micro): Adjust.
18404 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
18405 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
18406 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
18407 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
18408 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
18409 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
18410 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
18411 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
18412 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
18413 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
18414 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
18415 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
18416 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
18417 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
18418 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
18419 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
18420 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
18421 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
18422 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
18423 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
18424 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
18425 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
18426 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
18427 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
18428 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
18429
18430 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
18431 * config/rs6000/440.md (ppc440-integer): Adjust.
18432 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
18433 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
18434 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
18435 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
18436 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
18437 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
18438 * config/rs6000/8540.md (ppc8540_su): Adjust.
18439 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
18440 cell-cmp-microcoded): Adjust.
18441 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
18442 * config/rs6000/e500mc.md (e500mc_su): Adjust.
18443 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
18444 e500mc64_delayed): Adjust.
18445 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
18446 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
18447 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
18448 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
18449 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
18450 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
18451 power6-delayed-compare, power6-var-delayed-compare): Adjust.
18452 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
18453 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
18454 Adjust comment.
18455 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
18456 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
18457
18458 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
18459
18460 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
18461 (bits): New mode_attr.
18462 (idiv_ldiv): Delete mode_attr.
18463 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
18464 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
18465 rs6000_adjust_priority, is_nonpipeline_insn,
18466 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
18467
18468 * config/rs6000/40x.md (ppc403-idiv): Adjust.
18469 * config/rs6000/440.md (ppc440-idiv): Adjust.
18470 * config/rs6000/476.md (ppc476-idiv): Adjust.
18471 * config/rs6000/601.md (ppc601-idiv): Adjust.
18472 * config/rs6000/603.md (ppc603-idiv): Adjust.
18473 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
18474 ppc620-ldiv): Adjust.
18475 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
18476 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
18477 * config/rs6000/8540.md (ppc8540_divide): Adjust.
18478 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
18479 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
18480 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
18481 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
18482 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
18483 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
18484 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
18485 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
18486 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
18487 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
18488 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
18489 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
18490 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
18491 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
18492 * config/rs6000/titan.md (titan_fxu_div): Adjust.
18493
18494 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
18495
18496 * config/rs6000/rs6000.md (type): Delete "insert_word",
18497 "insert_dword". Add "insert".
18498 (size): Update comment.
18499 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
18500 insn_must_be_first_in_group): Adjust.
18501 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
18502 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
18503 *insvsi_internal6, insvdi_internal): Adjust.
18504
18505 * config/rs6000/40x.md (ppc403-integer): Adjust.
18506 * config/rs6000/440.md (ppc440-integer): Adjust.
18507 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
18508 * config/rs6000/601.md (ppc601-integer): Adjust.
18509 * config/rs6000/603.md (ppc603-integer): Adjust.
18510 * config/rs6000/6xx.md (ppc604-integer): Adjust.
18511 * config/rs6000/7450.md (ppc7450-integer): Adjust.
18512 * config/rs6000/7xx.md (ppc750-integer): Adjust.
18513 * config/rs6000/8540.md (ppc8540_su): Adjust.
18514 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
18515 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
18516 * config/rs6000/e500mc.md (e500mc_su): Adjust.
18517 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
18518 * config/rs6000/e5500.md (e5500_sfx): Adjust.
18519 * config/rs6000/e6500.md (e6500_sfx): Adjust.
18520 * config/rs6000/mpc.md (mpccore-integer): Adjust.
18521 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
18522 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
18523 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
18524 * config/rs6000/power7.md (power7-integer): Adjust.
18525 * config/rs6000/power8.md (power8-1cyc): Adjust.
18526 * config/rs6000/rs64.md (rs64a-integer): Adjust.
18527 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
18528
18529 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
18530
18531 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
18532 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
18533 (size): New attribute.
18534 (dot): New attribute.
18535 (cell_micro): Adjust.
18536 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
18537 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
18538 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
18539 umuldi3_highpart): Adjust.
18540 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
18541 rs6000_adjust_priority, is_nonpipeline_insn,
18542 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
18543
18544 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
18545 ppc405-imul3): Adjust.
18546 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
18547 * config/rs6000/476.md (ppc476-imul): Adjust.
18548 * config/rs6000/601.md (ppc601-imul): Adjust.
18549 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
18550 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
18551 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
18552 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
18553 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
18554 Adjust.
18555 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
18556 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
18557 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
18558 cell-imul): Adjust.
18559 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
18560 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
18561 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
18562 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
18563 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
18564 * config/rs6000/mpc.md (mpccore-imul): Adjust.
18565 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
18566 power4-lmul, power4-imul, power4-imul3): Adjust.
18567 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
18568 power5-lmul, power5-imul, power5-imul3): Adjust.
18569 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
18570 power6-lmul, power6-imul, power6-imul3): Adjust.
18571 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
18572 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
18573
18574 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
18575 rs64a-lmul): Adjust.
18576 * config/rs6000/titan.md (titan_imul): Adjust.
18577
18578 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
18579
18580 * config/rs6000/rs6000.md (type): Add new value "halfmul".
18581 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
18582 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
18583 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
18584 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
18585 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
18586 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
18587 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
18588 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
18589 * config/rs6000/titan.md: Delete nonsensical comment.
18590 (titan_imul): Add type imul3.
18591 (titan_mulhw): Remove type imul3; add type halfmul.
18592
18593 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
18594
18595 * config/rs6000/rs6000.md (type): Reorder, reformat.
18596
18597 2014-05-23 Martin Jambor <mjambor@suse.cz>
18598
18599 PR tree-optimization/53787
18600 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
18601 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
18602 analysis_done, update all uses.
18603 * ipa-prop.c: Include domwalk.h
18604 (param_analysis_info): Removed.
18605 (param_aa_status): New type.
18606 (ipa_bb_info): Likewise.
18607 (func_body_info): Likewise.
18608 (ipa_get_bb_info): New function.
18609 (aa_overwalked): Likewise.
18610 (find_dominating_aa_status): Likewise.
18611 (parm_bb_aa_status_for_bb): Likewise.
18612 (parm_preserved_before_stmt_p): Changed to use new param AA info.
18613 (load_from_unmodified_param): Accept func_body_info as a parameter
18614 instead of parms_ainfo.
18615 (parm_ref_data_preserved_p): Changed to use new param AA info.
18616 (parm_ref_data_pass_through_p): Likewise.
18617 (ipa_load_from_parm_agg_1): Likewise. Update callers.
18618 (compute_complex_assign_jump_func): Changed to use new param AA info.
18619 (compute_complex_ancestor_jump_func): Likewise.
18620 (ipa_compute_jump_functions_for_edge): Likewise.
18621 (ipa_compute_jump_functions): Removed.
18622 (ipa_compute_jump_functions_for_bb): New function.
18623 (ipa_analyze_indirect_call_uses): Likewise, moved variable
18624 declarations down.
18625 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
18626 and info, moved variable declarations down.
18627 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
18628 node and info.
18629 (ipa_analyze_stmt_uses): Likewise.
18630 (ipa_analyze_params_uses): Removed.
18631 (ipa_analyze_params_uses_in_bb): New function.
18632 (ipa_analyze_controlled_uses): Likewise.
18633 (free_ipa_bb_info): Likewise.
18634 (analysis_dom_walker): New class.
18635 (ipa_analyze_node): Handle node-specific forbidden analysis,
18636 initialize and free func_body_info, use dominator walker.
18637 (ipcp_modif_dom_walker): New class.
18638 (ipcp_transform_function): Create and free func_body_info, use
18639 ipcp_modif_dom_walker, moved a lot of functionality there.
18640
18641 2014-05-23 Marek Polacek <polacek@redhat.com>
18642 Jakub Jelinek <jakub@redhat.com>
18643
18644 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
18645 * gcc.c (sanitize_spec_function): Likewise.
18646 * convert.c (convert_to_integer): Include "ubsan.h". Add
18647 floating-point to integer instrumentation.
18648 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
18649 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
18650 SANITIZE_NONDEFAULT.
18651 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
18652 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
18653 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
18654 * ubsan.c: Include "realmpfr.h" and "dfp.h".
18655 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
18656 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
18657 float/double/long double.
18658 (ubsan_instrument_float_cast): New function.
18659 * ubsan.h (ubsan_instrument_float_cast): Declare.
18660
18661 2014-05-23 Jiong Wang <jiong.wang@arm.com>
18662
18663 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
18664 predicate.
18665 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
18666 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
18667 Adjust for tailcalling through registers.
18668 * config/aarch64/aarch64.h (enum reg_class): New caller save
18669 register class.
18670 (REG_CLASS_NAMES): Likewise.
18671 (REG_CLASS_CONTENTS): Likewise.
18672 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
18673 Allow tailcalling without decls.
18674
18675 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
18676
18677 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
18678 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
18679
18680 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
18681 gsi, and variables v_* to v*.
18682
18683 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
18684
18685 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
18686
18687 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
18688
18689 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
18690 * omp-low.c: Update accordingly.
18691
18692 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
18693 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
18694 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
18695 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
18696 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
18697 GF_OMP_TARGET_KIND_UPDATE.
18698
18699 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
18700 Explicitly enumerate the expected region types.
18701
18702 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
18703
18704 PR other/56955
18705 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
18706 documentation; the old documentation didn't clearly state the
18707 constraints on the contents of the pointed-to storage.
18708
18709 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18710
18711 Fix bootstrap error on ia64
18712 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
18713 Return default value.
18714
18715 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
18716
18717 PR tree-optimization/54733
18718 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
18719 (CMPNOP): Define.
18720 (find_bswap_or_nop_load): New.
18721 (find_bswap_1): Renamed to ...
18722 (find_bswap_or_nop_1): This. Also add support for memory source.
18723 (find_bswap): Renamed to ...
18724 (find_bswap_or_nop): This. Also add support for memory source and
18725 detection of bitwise operations equivalent to load in target
18726 endianness.
18727 (execute_optimize_bswap): Likewise. Also move its leading comment back
18728 in place and split statement transformation into ...
18729 (bswap_replace): This.
18730
18731 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
18732
18733 PR rtl-optimization/61215
18734 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
18735 simplify_gen_subreg until final substitution.
18736
18737 2014-05-23 Alan Modra <amodra@gmail.com>
18738
18739 PR target/61231
18740 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
18741 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
18742 Use "Y" constraint rather than "m".
18743
18744 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
18745
18746 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
18747 define.
18748 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
18749 New function declaration.
18750 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
18751 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
18752 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
18753 (aarch64_init_builtins) : Initialize builtins
18754 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
18755 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
18756 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
18757 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
18758 and __builtins_aarch64_set_fpsr.
18759 (aarch64_atomic_assign_expand_fenv): New function.
18760 * config/aarch64/aarch64.md (set_fpcr): New pattern.
18761 (get_fpcr) : Likewise.
18762 (set_fpsr) : Likewise.
18763 (get_fpsr) : Likewise.
18764 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
18765 and UNSPECV_SET_FPSR.
18766 * doc/extend.texi (AARCH64 Built-in Functions) : Document
18767 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
18768 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
18769
18770 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
18771
18772 PR rtl-optimization/60969
18773 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
18774 constraints. Set up mem cost for NO_REGS case.
18775
18776 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
18777
18778 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
18779
18780 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
18781
18782 * config/darwin.c: Include "lto-section-names.h".
18783 (LTO_SEGMENT_NAME): Don't define.
18784 * config/i386/winnt.c: Include "lto-section-names.h".
18785 * lto-streamer.c: Include "lto-section-names.h".
18786 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
18787 * lto-wrapper.c: Include "lto-section-names.h".
18788 (LTO_SECTION_NAME_PREFIX): Don't define.
18789 * lto-section-names.h: New file.
18790 * cgraphunit.c: Include "lto-section-names.h".
18791
18792 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
18793
18794 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
18795
18796 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
18797
18798 PR target/61208
18799 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
18800
18801 2014-05-22 Nick Clifton <nickc@redhat.com>
18802
18803 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
18804
18805 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
18806
18807 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
18808 -> (T)A transformation to integer types.
18809
18810 2014-05-22 Teresa Johnson <tejohnson@google.com>
18811
18812 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
18813 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
18814 (gcov_rewrite): Use gcov_nonruntime_assert.
18815 (gcov_open): Ditto.
18816 (gcov_write_words): Ditto.
18817 (gcov_write_length): Ditto.
18818 (gcov_read_words): Use gcov_nonruntime_assert, and remove
18819 gcc_assert from IN_LIBGCOV code.
18820 (gcov_read_summary): Use gcov_error to flag profile corruption.
18821 (gcov_sync): Use gcov_nonruntime_assert.
18822 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
18823 (gcov_histo_index): Use gcov_nonruntime_assert.
18824 (static void gcov_histogram_merge): Ditto.
18825 (compute_working_sets): Ditto.
18826 * gcov-io.h (gcov_nonruntime_assert): Define.
18827 (gcov_error): Define for !IN_LIBGCOV
18828
18829 2014-05-22 Richard Biener <rguenther@suse.de>
18830
18831 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
18832 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
18833 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
18834 and deallocation site.
18835 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18836 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
18837 passing through the incoming points-to set.
18838 (handle_lhs_call): Use flags argument instead of recomputing it.
18839 (find_func_aliases_for_call): Call handle_lhs_call with proper
18840 call return flags.
18841
18842 2014-05-22 Jakub Jelinek <jakub@redhat.com>
18843
18844 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
18845 all padding bits in REAL_VALUE_TYPE are cleared.
18846
18847 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18848
18849 Cleanup and improve multipass_dfa_lookahead_guard
18850 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
18851 (core2i7_first_cycle_multipass_begin,)
18852 (core2i7_first_cycle_multipass_issue,)
18853 (core2i7_first_cycle_multipass_backtrack): Update signature.
18854 * config/ia64/ia64.c
18855 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
18856 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
18857 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
18858 hook definition.
18859 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
18860 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
18861 values.
18862 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
18863 return values.
18864 * doc/tm.texi: Regenerate.
18865 * doc/tm.texi.in
18866 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
18867 * haifa-sched.c (ready_try): Make signed to allow negative values.
18868 (rebug_ready_list_1): Update.
18869 (choose_ready): Simplify.
18870 (sched_extend_ready_list): Update.
18871
18872 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18873
18874 Remove IA64 speculation tweaking flags
18875 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
18876 speculation tuning flags.
18877 (msched-prefer-non-data-spec-insns,)
18878 (msched-prefer-non-control-spec-insns): Obsolete options.
18879 * haifa-sched.c (choose_ready): Remove handling of
18880 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
18881 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
18882 and PREFER_NON_DATA_SPEC.
18883 * sel-sched.c (process_spec_exprs): Remove handling of
18884 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
18885
18886 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18887
18888 Improve scheduling debug output
18889 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
18890 (advance_one_cycle): Update.
18891 (schedule_insn, queue_to_ready): Add debug printouts.
18892 (debug_ready_list_1): New static function.
18893 (debug_ready_list): Update.
18894 (max_issue): Add debug printouts.
18895 (dump_insn_stream): New static function.
18896 (schedule_block): Use it. Also better indent printouts.
18897
18898 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18899
18900 Fix sched_insn debug counter
18901 * haifa-sched.c (schedule_insn): Update.
18902 (struct haifa_saved_data): Add nonscheduled_insns_begin.
18903 (save_backtrack_point, restore_backtrack_point): Update.
18904 (first_nonscheduled_insn): New static function.
18905 (queue_to_ready, choose_ready): Use it.
18906 (schedule_block): Init nonscheduled_insns_begin.
18907 (sched_emit_insn): Update.
18908
18909
18910 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
18911
18912 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
18913 to GENERAL_REGS.
18914 (aarch64_secondary_reload) : LikeWise.
18915 (aarch64_class_max_nregs) : Remove CORE_REGS.
18916 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
18917 (REG_CLASS_NAMES) : Likewise.
18918 (REG_CLASS_CONTENTS) : LikeWise.
18919 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
18920
18921 2014-05-21 Guozhi Wei <carrot@google.com>
18922
18923 PR target/61202
18924 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
18925 constraint.
18926 (vqdmulhq_n_s16): Likewise.
18927
18928 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
18929
18930 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
18931
18932 2014-05-21 Marek Polacek <polacek@redhat.com>
18933
18934 PR sanitizer/61272
18935 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
18936
18937 2014-05-21 Martin Jambor <mjambor@suse.cz>
18938
18939 * doc/invoke.texi (Optimize Options): Document parameters
18940 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
18941 ipa-cp-array-index-hint-bonus.
18942
18943 2014-05-21 Mark Wielaard <mjw@redhat.com>
18944
18945 PR debug/16063
18946 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
18947 version >= 3 or not strict DWARF.
18948 * langhooks.h (struct lang_hooks_for_types): Add
18949 enum_underlying_base_type.
18950 * langhooks.c (lhd_enum_underlying_base_type): New function.
18951 * gcc/langhooks.h (struct lang_hooks_for_types): Add
18952 enum_underlying_base_type.
18953 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
18954 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
18955 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
18956
18957 2014-05-21 Richard Biener <rguenther@suse.de>
18958
18959 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
18960
18961 2014-05-21 John Marino <gnugcc@marino.st>
18962
18963 * config.gcc (*-*-dragonfly*): New target.
18964 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
18965 * configure: Regenerate.
18966 * config/dragonfly-stdint.h: New.
18967 * config/dragonfly.h: New.
18968 * config/dragonfly.opt: New.
18969 * config/i386/dragonfly.h: New.
18970 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
18971
18972 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
18973
18974 * tree.def (VOID_CST): New.
18975 * tree-core.h (TI_VOID): New.
18976 * tree.h (void_node): New.
18977 * tree.c (tree_node_structure_for_code, tree_code_size)
18978 (iterative_hash_expr): Handle VOID_CST.
18979 (build_common_tree_nodes): Initialize void_node.
18980
18981 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
18982
18983 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
18984 functions.
18985 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
18986
18987 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
18988 more places.
18989
18990 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
18991 flag_reorder_blocks_and_partition.
18992 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
18993
18994 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
18995
18996 PR target/54236
18997 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
18998 constraints.
18999 (*addc_r_t): Add new insn_and_split.
19000
19001 2014-05-21 Jakub Jelinek <jakub@redhat.com>
19002
19003 PR middle-end/61252
19004 * omp-low.c (handle_simd_reference): New function.
19005 (lower_rec_input_clauses): Use it. Defer adding reference
19006 initialization even for reduction without placeholder if in simd,
19007 handle it properly later on.
19008
19009 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
19010
19011 PR tree-optimization/60899
19012 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
19013 assume all static symbols will have definition wile parsing and
19014 check the do have definition later in compilation; check that
19015 variable referring symbol will be output before concluding that
19016 reference is safe; be conservative for referring local statics;
19017 be more precise about when comdat is output in other partition.
19018
19019 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
19020
19021 PR bootstrap/60984
19022 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
19023 parameter.
19024 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
19025 (ipa_inline): Loop inline_to_all_callers until no more aliases
19026 are removed.
19027
19028 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
19029
19030 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
19031 set writeonly flag only for vars actually written to.
19032
19033 2014-05-20 Dehao Chen <dehao@google.com>
19034
19035 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
19036 and callee count to get clone count.
19037 * tree-inline.c (expand_call_inline): Use callee count instead of bb
19038 count in copy_body.
19039
19040 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
19041
19042 PR rtl-optimization/61243
19043 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
19044
19045 2014-05-20 Xinliang David Li <davidxl@google.com>
19046
19047 * cgraphunit.c (walk_polymorphic_call_targets): Add
19048 dbgcnt and fopt-info support.
19049 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
19050 * ipa-devirt.c (ipa_devirt): Ditto.
19051 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
19052 * ipa.c (walk_polymorphic_call_targets): Ditto.
19053 * gimple-fold.c (fold_gimple_assign): Ditto.
19054 (gimple_fold_call): Ditto.
19055 * dbgcnt.def: New counter.
19056
19057 2014-05-20 DJ Delorie <dj@redhat.com>
19058
19059 * config/msp430/msp430.md (split): Don't allow subregs when
19060 splitting SImode adds.
19061 (andneghi): Fix subtraction logic.
19062 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
19063
19064 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
19065
19066 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
19067 symbols.
19068 * except.c (switch_to_exception_section, resolve_unique_section,
19069 get_named_text_section, default_function_rodata_section,
19070 align_variable, get_block_for_decl, default_section_type_flags):
19071 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
19072 * symtab.c (symtab_add_to_same_comdat_group,
19073 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
19074 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
19075 Likewise.
19076 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
19077 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
19078 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
19079 (c6x_function_in_section_p): Likewise.
19080 * config/darwin.c (machopic_select_section): Likewise.
19081 * config/arm/arm.c (arm_function_in_section_p): Likewise.
19082 * config/mips/mips.c (mips_function_rodata_section): Likewise.
19083 * config/mep/mep.c (mep_select_section): LIkewise.
19084 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
19085
19086 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
19087
19088 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
19089 EH region of calls to pure functions that can throw an exception.
19090 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
19091 (copy_reference_ops_from_call): Also copy the EH region of the call if
19092 it can throw an exception.
19093
19094 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19095
19096 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
19097 nested VEC_SELECTs that are inverses of each other.
19098
19099 2014-05-20 Richard Biener <rguenther@suse.de>
19100
19101 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
19102 (extract_and_process_scc_for_name): not here.
19103 (cond_dom_walker::before_dom_children): Only process
19104 stmts that end the BB in interesting ways.
19105 (run_scc_vn): Mark param uses as visited.
19106
19107 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19108
19109 * config/arm/arm.md (arith_shiftsi): Do not predicate for
19110 arm_restrict_it.
19111
19112 2014-05-20 Nick Clifton <nickc@redhat.com>
19113
19114 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
19115 (msp430_gimplify_va_arg_expr): New function.
19116 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
19117
19118 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
19119 operand 0 in order to prevent confusion about the number of
19120 registers involved.
19121
19122 2014-05-20 Richard Biener <rguenther@suse.de>
19123
19124 PR tree-optimization/61221
19125 * tree-ssa-pre.c (el_to_update): Remove.
19126 (eliminate_dom_walker::before_dom_children): Handle released
19127 VDEFs by value-numbering them to the associated VUSE. Update
19128 stmt immediately for substituted call address.
19129 (eliminate): Remove delayed stmt updating code.
19130 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
19131 possibly late re-numbered vuses.
19132 (vn_reference_lookup_2): Adjust.
19133 (vn_reference_lookup_pieces): Likewise.
19134 (vn_reference_lookup): Likewise.
19135
19136 2014-05-20 Richard Biener <rguenther@suse.de>
19137
19138 * config.gcc: Remove need_64bit_hwint.
19139 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
19140 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
19141 it to be true.
19142 * config.in: Regenerate.
19143 * configure: Likewise.
19144
19145 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
19146
19147 * doc/extend.texi: Create Label Attributes section,
19148 move all label attributes into it and reference it.
19149
19150 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
19151
19152 * arm.c (thumb1_reorg): When scanning backwards skip anything
19153 that's not a proper insn.
19154
19155 2014-05-19 Richard Biener <rguenther@suse.de>
19156
19157 PR tree-optimization/61221
19158 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
19159 Do nothing for unreachable blocks.
19160 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
19161 Improve unreachability detection.
19162
19163 2014-05-19 Richard Biener <rguenther@suse.de>
19164
19165 PR tree-optimization/61209
19166 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
19167
19168 2014-05-19 Nick Clifton <nickc@redhat.com>
19169
19170 * except.c (init_eh): Fix computation of builtin setjmp buffer
19171 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
19172
19173 2014-05-19 Richard Biener <rguenther@suse.de>
19174
19175 PR tree-optimization/61184
19176 * tree-vrp.c (is_negative_overflow_infinity): Use
19177 TREE_OVERFLOW_P and do that check first.
19178 (is_positive_overflow_infinity): Likewise.
19179 (is_overflow_infinity): Likewise.
19180 (vrp_operand_equal_p): Properly treat operands with
19181 differing overflow as not equal.
19182
19183 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
19184
19185 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
19186 shift simplification where it was intended.
19187
19188 2014-05-19 Christian Bruel <christian.bruel@st.com>
19189
19190 PR target/61195
19191 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
19192
19193 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
19194
19195 PR target/61084
19196 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
19197 than wide_int.
19198
19199 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
19200
19201 * reg-notes.def (CROSSING_JUMP): Likewise.
19202 * rtl.h (rtx_def): Update comment for jump flag.
19203 (CROSSING_JUMP_P): Define.
19204 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
19205 of a REG_CROSSING_JUMP note.
19206 * cfghooks.c (tidy_fallthru_edges): Likewise.
19207 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
19208 * emit-rtl.c (try_split): Likewise.
19209 * haifa-sched.c (sched_create_recovery_edges): Likewise.
19210 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
19211 * jump.c (redirect_jump_2): Likewise.
19212 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
19213 (relax_delay_slots): Likewise.
19214 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
19215 (bbit_di): Likewise.
19216 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
19217 * config/sh/sh.md (jump_compact): Likewise.
19218 * bb-reorder.c (rotate_loop): Likewise.
19219 (pass_duplicate_computed_gotos::execute): Likewise.
19220 (add_reg_crossing_jump_notes): Rename to...
19221 (update_crossing_jump_flags): ...this.
19222 (pass_partition_blocks::execute): Update accordingly.
19223
19224 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
19225
19226 * tree.h: Remove extraneous template <>.
19227
19228 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
19229
19230 * ipa.c (symtab_remove_unreachable_nodes): Remove
19231 symbol from comdat group if its body was eliminated.
19232 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
19233 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
19234 (symtab_unregister_node): ... this one.
19235 (verify_symtab_base): More strict checking of comdats.
19236 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
19237
19238 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
19239
19240 * tree-pass.h (make_pass_ipa_comdats): New pass.
19241 * timevar.def (TV_IPA_COMDATS): New timevar.
19242 * passes.def (pass_ipa_comdats): Add.
19243 * Makefile.in (OBJS): Add ipa-comdats.o
19244 * ipa-comdats.c: New file.
19245
19246 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
19247
19248 * ipa.c (update_visibility_by_resolution_info): New function.
19249 (function_and_variable_visibility): Use it.
19250
19251 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
19252
19253 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
19254 New functions.
19255 (FOR_EACH_DEFINED_SYMBOL): New macro.
19256 (varpool_first_static_initializer, varpool_next_static_initializer,
19257 varpool_first_defined_variable, varpool_next_defined_variable):
19258 Fix comments.
19259 (symtab_in_same_comdat_p): Correctly deal with inline functions.
19260
19261 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
19262
19263 * ggc-page.c (ggc_handle_finalizers): Add comment.
19264
19265 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
19266
19267 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
19268 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
19269 (ggc_internal_cleared_alloc): Likewise.
19270 * ggc-page.c (finalizer): New class.
19271 (vec_finalizer): Likewise.
19272 (globals::finalizers): New member.
19273 (globals::vec_finalizers): Likewise.
19274 (ggc_internal_alloc): Record the finalizer if any for the block being
19275 allocated.
19276 (ggc_handle_finalizers): New function.
19277 (ggc_collect): Call ggc_handle_finalizers.
19278 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
19279 finalizer.
19280 (ggc_internal_cleared_alloc): Likewise.
19281 (finalize): New function.
19282 (need_finalization_p): Likewise.
19283 (ggc_alloc): Install the type's destructor as the finalizer if it
19284 might do something.
19285 (ggc_cleared_alloc): Likewise.
19286 (ggc_vec_alloc): Likewise.
19287 (ggc_cleared_vec_alloc): Likewise.
19288
19289 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
19290
19291 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
19292
19293 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
19294
19295 * alias.c (record_alias_subset): Adjust.
19296 * bitmap.c (bitmap_element_allocate): Likewise.
19297 (bitmap_gc_alloc_stat): Likewise.
19298 * cfg.c (init_flow): Likewise.
19299 (alloc_block): Likewise.
19300 (unchecked_make_edge): Likewise.
19301 * cfgloop.c (alloc_loop): Likewise.
19302 (flow_loops_find): Likewise.
19303 (rescan_loop_exit): Likewise.
19304 * cfgrtl.c (init_rtl_bb_info): Likewise.
19305 * cgraph.c (insert_new_cgraph_node_version): Likewise.
19306 (cgraph_allocate_node): Likewise.
19307 (cgraph_create_edge_1): Likewise.
19308 (cgraph_allocate_init_indirect_info): Likewise.
19309 * cgraphclones.c (cgraph_clone_edge): Likewise.
19310 * cgraphunit.c (add_asm_node): Likewise.
19311 (init_lowered_empty_function): Likewise.
19312 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
19313 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
19314 (alpha_use_linkage): Likewise.
19315 * config/arc/arc.c (arc_init_machine_status): Likewise.
19316 * config/arm/arm.c (arm_init_machine_status): Likewise.
19317 * config/avr/avr.c (avr_init_machine_status): Likewise.
19318 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
19319 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
19320 * config/cris/cris.c (cris_init_machine_status): Likewise.
19321 * config/darwin.c (machopic_indirection_name): Likewise.
19322 (darwin_build_constant_cfstring): Likewise.
19323 (darwin_enter_string_into_cfstring_table): Likewise.
19324 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
19325 * config/frv/frv.c (frv_init_machine_status): Likewise.
19326 * config/i386/i386.c (get_dllimport_decl): Likewise.
19327 (ix86_init_machine_status): Likewise.
19328 (assign_386_stack_local): Likewise.
19329 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
19330 (i386_pe_maybe_record_exported_symbol): Likewise.
19331 (i386_pe_record_stub): Likewise.
19332 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
19333 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
19334 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
19335 (m32c_note_pragma_address): Likewise.
19336 * config/mep/mep.c (mep_init_machine_status): Likewise.
19337 (mep_note_pragma_flag): Likewise.
19338 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
19339 (mips16_local_alias): Likewise.
19340 (mips_init_machine_status): Likewise.
19341 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
19342 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
19343 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
19344 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
19345 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
19346 * config/pa/pa.c (pa_init_machine_status): Likewise.
19347 (pa_get_deferred_plabel): Likewise.
19348 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
19349 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
19350 (rs6000_init_machine_status): Likewise.
19351 (output_toc): Likewise.
19352 * config/s390/s390.c (s390_init_machine_status): Likewise.
19353 * config/score/score.c (score_output_external): Likewise.
19354 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
19355 * config/spu/spu.c (spu_init_machine_status): Likewise.
19356 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
19357 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
19358 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
19359 * coverage.c (coverage_end_function): Likewise.
19360 * dbxout.c (dbxout_init): Likewise.
19361 * doc/gty.texi: Don't mention variable_size attribute.
19362 * dwarf2cfi.c (new_cfi): Adjust.
19363 (new_cfi_row): Likewise.
19364 (copy_cfi_row): Likewise.
19365 (create_cie_data): Likewise.
19366 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
19367 (new_loc_descr): Likewise.
19368 (find_AT_string_in_table): Likewise.
19369 (add_addr_table_entry): Likewise.
19370 (new_die): Likewise.
19371 (add_var_loc_to_decl): Likewise.
19372 (clone_die): Likewise.
19373 (clone_as_declaration): Likewise.
19374 (break_out_comdat_types): Likewise.
19375 (new_loc_list): Likewise.
19376 (add_loc_descr_to_each): Likewise.
19377 (add_location_or_const_value_attribute): Likewise.
19378 (add_linkage_name): Likewise.
19379 (lookup_filename): Likewise.
19380 (dwarf2out_var_location): Likewise.
19381 (new_line_info_table): Likewise.
19382 (dwarf2out_init): Likewise.
19383 (mem_loc_descriptor): Likewise.
19384 (loc_descriptor): Likewise.
19385 (add_const_value_attribute): Likewise.
19386 (tree_add_const_value_attribute): Likewise.
19387 (comp_dir_string): Likewise.
19388 (dwarf2out_vms_debug_main_pointer): Likewise.
19389 (string_cst_pool_decl): Likewise.
19390 * emit-rtl.c (set_mem_attrs): Likewise.
19391 (get_reg_attrs): Likewise.
19392 (start_sequence): Likewise.
19393 (init_emit): Likewise.
19394 (init_emit_regs): Likewise.
19395 * except.c (init_eh_for_function): Likewise.
19396 (gen_eh_region): Likewise.
19397 (gen_eh_region_catch): Likewise.
19398 (gen_eh_landing_pad): Likewise.
19399 (add_call_site): Likewise.
19400 * function.c (add_frame_space): Likewise.
19401 (insert_temp_slot_address): Likewise.
19402 (assign_stack_temp_for_type): Likewise.
19403 (get_hard_reg_initial_val): Likewise.
19404 (allocate_struct_function): Likewise.
19405 (prepare_function_start): Likewise.
19406 (types_used_by_var_decl_insert): Likewise.
19407 * gengtype.c (variable_size_p): Remove function.
19408 (enum alloc_quantity): Remove enum.
19409 (write_typed_alloc_def): Remove function.
19410 (write_typed_struct_alloc_def): Likewise.
19411 (write_typed_typedef_alloc_def): Likewise.
19412 (write_typed_alloc_defns): Likewise.
19413 (main): Adjust.
19414 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
19415 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
19416 * ggc.h (ggc_alloc): new function.
19417 (ggc_cleared_alloc): Likewise.
19418 (ggc_vec_alloc): Template on type of vector element, and remove
19419 element size argument.
19420 (ggc_cleared_vec_alloc): Likewise.
19421 * gimple.c (gimple_build_omp_for): Adjust.
19422 (gimple_copy): Likewise.
19423 * ipa-cp.c (get_replacement_map): Likewise.
19424 (find_aggregate_values_for_callers_subset): Likewise.
19425 (known_aggs_to_agg_replacement_list): Likewise.
19426 * ipa-devirt.c (get_odr_type): Likewise.
19427 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
19428 (read_agg_replacement_chain): Likewise.
19429 * loop-iv.c (get_simple_loop_desc): Likewise.
19430 * lto-cgraph.c (input_node_opt_summary): Likewise.
19431 * lto-section-in.c (lto_new_in_decl_state): Likewise.
19432 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
19433 (input_eh_region): Likewise.
19434 (input_eh_lp): Likewise.
19435 (input_cfg): Likewise.
19436 * optabs.c (set_optab_libfunc): Likewise.
19437 (init_tree_optimization_optabs): Likewise.
19438 (set_conv_libfunc): Likewise.
19439 * passes.c (do_per_function_toporder): Likewise.
19440 * rtl.h: Don't use variable_size gty attribute.
19441 * sese.c (if_region_set_false_region): Adjust.
19442 * stringpool.c (gt_pch_save_stringpool): Likewise.
19443 * target-globals.c (save_target_globals): Likewise.
19444 * toplev.c (general_init): Likewise.
19445 * trans-mem.c (record_tm_replacement): Likewise.
19446 (split_bb_make_tm_edge): Likewise.
19447 * tree-cfg.c (move_sese_region_to_fn): Likewise.
19448 * tree-data-ref.h (lambda_vector_new): Likewise.
19449 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
19450 * tree-iterator.c (tsi_link_before): Likewise.
19451 (tsi_link_after): Likewise.
19452 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
19453 * tree-ssa-loop-niter.c (record_estimate): Likewise.
19454 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
19455 * tree-ssa-operands.h: Don't use variable_size gty attribute.
19456 * tree-ssa.c (init_tree_ssa): Adjust.
19457 * tree-ssanames.c (set_range_info): Likewise.
19458 (get_ptr_info): Likewise.
19459 (duplicate_ssa_name_ptr_info): Likewise.
19460 (duplicate_ssa_name_range_info): Likewise.
19461 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
19462 (unpack_ts_fixed_cst_value_fields): Likewise.
19463 * tree.c (build_fixed): Likewise.
19464 (build_real): Likewise.
19465 (build_string): Likewise.
19466 (decl_priority_info): Likewise.
19467 (decl_debug_expr_insert): Likewise.
19468 (decl_value_expr_insert): Likewise.
19469 (decl_debug_args_insert): Likewise.
19470 (type_hash_add): Likewise.
19471 (build_omp_clause): Likewise.
19472 * ubsan.c (decl_for_type_insert): Likewise.
19473 * varasm.c (get_unnamed_section): Likewise.
19474 (get_noswitch_section): Likewise.
19475 (get_section): Likewise.
19476 (get_block_for_section): Likewise.
19477 (create_block_symbol): Likewise.
19478 (build_constant_desc): Likewise.
19479 (create_constant_pool): Likewise.
19480 (force_const_mem): Likewise.
19481 (record_tm_clone_pair): Likewise.
19482 * varpool.c (varpool_create_empty_node): Likewise.
19483
19484 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
19485
19486 * dwarf2out.c (tree_add_const_value_attribute): Call
19487 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
19488 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
19489 instead of ggc_internal_<x>alloc_stat.
19490 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
19491 (ggc_realloc): Likewise.
19492 * ggc-none.c (ggc_internal_alloc): Likewise.
19493 (ggc_internal_cleared_alloc): Likewise.
19494 * ggc-page.c: Likewise.
19495 * ggc.h (ggc_internal_alloc_stat): Likewise.
19496 (ggc_internal_alloc): Remove macro.
19497 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
19498 (ggc_internal_cleared_alloc): Remove macro.
19499 (GGC_RESIZEVEC): Adjust.
19500 (ggc_resizevar): Remove macro.
19501 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
19502 (ggc_internal_cleared_vec_alloc_stat): Likewise.
19503 (ggc_internal_vec_cleared_alloc): Remove macro.
19504 (ggc_alloc_atomic_stat): Drop _stat suffix.
19505 (ggc_alloc_atomic): Remove macro.
19506 (ggc_alloc_cleared_atomic): Remove macro.
19507 (ggc_alloc_string_stat): Drop _stat suffix.
19508 (ggc_alloc_string): Remove macro.
19509 (ggc_alloc_rtx_def_stat): Adjust.
19510 (ggc_alloc_tree_node_stat): Likewise.
19511 (ggc_alloc_cleared_tree_node_stat): Likewise.
19512 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
19513 (ggc_alloc_cleared_simd_clone_stat): Likewise.
19514 * gimple.c (gimple_build_omp_for): Likewise.
19515 (gimple_copy): Likewise.
19516 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
19517 * toplev.c (realloc_for_line_map): Adjust.
19518 * tree-data-ref.h (lambda_vector_new): Likewise.
19519 * tree-phinodes.c (allocate_phi_node): Likewise.
19520 * tree.c (grow_tree_vec_stat): Likewise.
19521 * vec.h (va_gc::reserve): Adjust.
19522
19523 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
19524
19525 * config/microblaze/microblaze.c (break_handler): New Declaration.
19526 (microblaze_break_function_p,microblaze_is_break_handler): New.
19527 (compute_frame_size): Use microblaze_break_function_p.
19528 Add the test of break_handler.
19529 (microblaze_function_prologue) : Add the test of variable
19530 break_handler. Check the fnname by BREAK_HANDLER_NAME.
19531 (microblaze_function_epilogue) : Add the test of break_handler.
19532 (microblaze_globalize_label) : Add the test of break_handler.
19533 Check the name by BREAK_HANDLER_NAME.
19534
19535 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
19536
19537 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
19538 microblaze_is_break_handler test.
19539 (call_internal1,call_value_intern): Use microblaze_break_function_p.
19540 Use SYMBOL_REF_DECL.
19541
19542 * config/microblaze/microblaze-protos.h
19543 (microblaze_break_function_p,microblaze_is_break_handler):
19544 New Declaration.
19545
19546 * doc/extend.texi (MicroBlaze break_handler Functions): Document
19547 new MicroBlaze break_handler functions.
19548
19549 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
19550
19551 * doc/extend.texi (Size of an asm): Move node text according
19552 to its @menu entry position.
19553
19554 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
19555
19556 PR tree-optimization/61140
19557 PR tree-optimization/61150
19558 PR tree-optimization/61197
19559 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
19560
19561 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
19562
19563 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
19564
19565 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
19566
19567 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
19568 __SIZEOF_INT128__ is defined.
19569
19570 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
19571
19572 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
19573 (rs6000_delegitimize_address): Use it.
19574
19575 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
19576
19577 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
19578 inplace argument. Store the new address in the original MEM when true.
19579 * emit-rtl.c (change_address_1): Likewise.
19580 (adjust_address_1, adjust_automodify_address_1, offset_address):
19581 Update accordingly.
19582 * rtl.h (plus_constant): Add an inplace argument.
19583 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
19584 when true. Avoid generating (plus X (const_int 0)).
19585 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
19586 in-place. Pass true to plus_constant.
19587 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
19588
19589 2014-05-16 Dehao Chen <dehao@google.com>
19590
19591 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
19592
19593 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
19594
19595 PR target/54089
19596 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
19597 patterns.
19598 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
19599
19600 2014-05-16 Dehao Chen <dehao@google.com>
19601
19602 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
19603 optimize_function_for_size_p.
19604 * regs.h (REG_FREQ_FROM_BB): Likewise.
19605
19606 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
19607
19608 PR target/51244
19609 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
19610 negt_reg_operand cases.
19611 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
19612 predicate.
19613 * config/sh/predicates.md (cbranch_treg_value): Simplify.
19614
19615 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
19616
19617 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
19618 target variants.
19619
19620 2014-05-16 David Malcolm <dmalcolm@redhat.com>
19621
19622 Revert:
19623 2014-04-29 David Malcolm <dmalcolm@redhat.com>
19624
19625 * tree-cfg.c (dump_function_to_file): Dump the return type of
19626 functions, in a line to itself before the function body, mimicking
19627 the layout of a C function.
19628
19629 2014-05-16 Dehao Chen <dehao@google.com>
19630
19631 * cfghooks.c (make_forwarder_block): Use direct computation to
19632 get fall-through edge's count and frequency.
19633
19634 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
19635
19636 * config/arc/arc.c (arc_init): Fix typo in error message.
19637 * config/i386/i386.c (ix86_expand_builtin): Likewise.
19638 (split_stack_prologue_scratch_regno): Likewise.
19639 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
19640 word from error message.
19641
19642 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
19643
19644 * ira-costs.c: Fix typo in comment.
19645
19646 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
19647
19648 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
19649
19650 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
19651
19652 * varpool.c (dump_varpool_node): Dump write-only flag.
19653 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
19654 write-only flag.
19655 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
19656 write-only variables.
19657 * ipa.c (process_references): New function.
19658 (set_readonly_bit): New function.
19659 (set_writeonly_bit): New function.
19660 (clear_addressable_bit): New function.
19661 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
19662 fix handling of aliases.
19663 * cgraph.h (struct varpool_node): Add writeonly flag.
19664
19665 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
19666
19667 PR rtl-optimization/60969
19668 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
19669 Calculate costs for this case.
19670
19671 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
19672
19673 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
19674 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
19675
19676 2014-05-16 Richard Biener <rguenther@suse.de>
19677
19678 PR tree-optimization/61194
19679 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
19680 bool patterns ending in a COND_EXPR.
19681
19682 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19683
19684 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
19685
19686 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19687
19688 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
19689 where we were unable to cost an RTX.
19690
19691 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19692
19693 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
19694 HIGH, LO_SUM.
19695
19696 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19697 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19698
19699 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
19700
19701 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19702 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19703
19704 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
19705 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
19706
19707 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19708 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19709
19710 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
19711 operators.
19712
19713 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19714 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19715
19716 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
19717 DIV/MOD.
19718
19719 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19720 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19721
19722 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
19723 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
19724
19725 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19726 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19727
19728 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
19729 rotates and shifts.
19730
19731 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19732 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19733
19734 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
19735 ZERO_EXTEND and SIGN_EXTEND better.
19736
19737 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19738 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19739
19740 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
19741 logical operations.
19742
19743 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19744 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19745
19746 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
19747 costs when costing loads and stores to memory.
19748
19749 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19750 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
19751
19752 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
19753 for SET RTX.
19754
19755 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19756
19757 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
19758
19759 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19760 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19761
19762 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
19763 to...
19764 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
19765 well formed.
19766 (aarch64_rtx_mult_cost): New.
19767 (aarch64_rtx_costs): Use it, refactor as appropriate.
19768
19769 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19770 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19771
19772 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
19773 emit instructions, return number of instructions which would
19774 be emitted.
19775 (aarch64_add_constant): Update call to aarch64_build_constant.
19776 (aarch64_output_mi_thunk): Likewise.
19777 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
19778 a CONST_DOUBLE.
19779
19780 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19781
19782 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
19783 (TARGET_RTX_COSTS): Call it.
19784
19785 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19786
19787 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
19788 (cortexa57_vector_cost): Likewise.
19789 (cortexa57_tunings): Use them.
19790
19791 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19792
19793 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
19794 (cpu_addrcost_table): Use it.
19795 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
19796 (aarch64_address_cost): Rewrite using aarch64_classify_address,
19797 move it.
19798
19799 2014-05-16 Richard Biener <rguenther@suse.de>
19800
19801 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
19802 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
19803 (visit_phi): Ignore edges marked as not executable.
19804 (class cond_dom_walker): New.
19805 (cond_dom_walker::before_dom_children): Value-number
19806 control statements and mark successor edges as not
19807 executable if possible.
19808 (run_scc_vn): First walk all control statements in
19809 dominator order, marking edges as not executable.
19810 * tree-inline.c (copy_edges_for_bb): Be not confused
19811 about random edge flags.
19812
19813 2014-05-16 Richard Biener <rguenther@suse.de>
19814
19815 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
19816
19817 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
19818
19819 PR target/61193
19820 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
19821 (__TM_simple_begin): Use it.
19822 (__TM_begin): Likewise.
19823
19824 2014-05-15 Martin Jambor <mjambor@suse.cz>
19825
19826 PR ipa/61085
19827 * ipa-prop.c (update_indirect_edges_after_inlining): Check
19828 type_preserved flag when the indirect edge is polymorphic.
19829
19830 2014-05-15 Martin Jambor <mjambor@suse.cz>
19831
19832 PR tree-optimization/61090
19833 * tree-sra.c (sra_modify_expr): Pass the current gsi to
19834 build_ref_for_model.
19835
19836 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19837
19838 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
19839 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
19840
19841 2014-05-15 Jakub Jelinek <jakub@redhat.com>
19842
19843 PR tree-optimization/61158
19844 * fold-const.c (fold_binary_loc): If X is zero-extended and
19845 shiftc >= prec, make sure zerobits is all ones instead of
19846 invoking undefined behavior.
19847
19848 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
19849
19850 * regcprop.h: New file.
19851 * regcprop.c (skip_debug_insn_p): New decl.
19852 (replace_oldest_value_reg): Check skip_debug_insn_p.
19853 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
19854 * shrink-wrap.c: Include regcprop.h.
19855 (prepare_shrink_wrap): Call
19856 copyprop_hardreg_forward_bb_without_debug_insn.
19857
19858 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
19859
19860 * shrink-wrap.h: Update comment.
19861 * shrink-wrap.c: Update comment.
19862 (next_block_for_reg): Rename to live_edge_for_reg.
19863 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
19864 (move_insn_for_shrink_wrap): Split live_edge.
19865 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
19866
19867 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
19868
19869 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
19870 Delete.
19871 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
19872 * config/sparc/sparc.md (fptype_ut699): New attribute.
19873 (in_branch_delay): Return false if -mfix-ut699 is specified and
19874 fptype_ut699 is set to single.
19875 (truncdfsf2): Add fptype_ut699 attribute.
19876 (fix_truncdfsi2): Likewise.
19877 (floatsisf2): Change fptype attribute.
19878 (fix_truncsfsi2): Likewise.
19879 (negtf2_notv9): Delete.
19880 (negtf2_v9): Likewise.
19881 (negtf2_hq): New instruction.
19882 (negtf2): New instruction and splitter.
19883 (negdf2_notv9): Rewrite.
19884 (abstf2_notv9): Delete.
19885 (abstf2_hq_v9): Likewise.
19886 (abstf2_v9): Likewise.
19887 (abstf2_hq): New instruction.
19888 (abstf2): New instruction and splitter.
19889 (absdf2_notv9): Rewrite.
19890
19891 2014-05-14 Cary Coutant <ccoutant@google.com>
19892
19893 PR debug/61013
19894 * opts.c (common_handle_option): Don't special-case "-g".
19895 (set_debug_level): Default to at least level 2 with "-g".
19896
19897 2014-05-14 DJ Delorie <dj@redhat.com>
19898
19899 * config/msp430/msp430.c (msp430_builtin): Add
19900 MSP430_BUILTIN_DELAY_CYCLES.
19901 (msp430_init_builtins): Register void __delay_cycles(long long).
19902 (msp430_builtin_decl): Add it.
19903 (cg_magic_constant): New.
19904 (msp430_expand_delay_cycles): New.
19905 (msp430_expand_builtin): Call it.
19906 (msp430_print_operand_raw): Change integer printing from "int" to
19907 HOST_WIDE_INT.
19908 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
19909 (delay_cycles_start): New.
19910 (delay_cycles_end): New.
19911 (delay_cycles_32): New.
19912 (delay_cycles_32x): New.
19913 (delay_cycles_16): New.
19914 (delay_cycles_16x): New.
19915 (delay_cycles_2): New.
19916 (delay_cycles_1): New.
19917 * doc/extend.texi: Document __delay_cycles().
19918
19919 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
19920
19921 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
19922 length attribute computation.
19923
19924 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
19925
19926 PR debug/61188
19927 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
19928
19929 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
19930
19931 PR target/61084
19932 * config/sparc/sparc.md: Fix types of low and high in DI constant
19933 splitter. Use gen_int_mode in some other splitters.
19934
19935 2014-05-14 Martin Jambor <mjambor@suse.cz>
19936
19937 PR ipa/60897
19938 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
19939
19940 2014-05-14 James Norris <jnorris@codesourcery.com>
19941
19942 * omp-low.c (expand_parallel_call): Remove shadow variable.
19943 (expand_omp_taskreg): Likewise.
19944
19945 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
19946
19947 * common/config/i386/i386-common.c
19948 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
19949 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
19950 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
19951 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
19952 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
19953 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
19954 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
19955 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
19956 xsavecintrin.h, xsavesintrin.h.
19957 (x86_64-*-*): Ditto.
19958 * config/i386/clflushoptintrin.h: New.
19959 * config/i386/xsavecintrin.h: Ditto.
19960 * config/i386/xsavesintrin.h: Ditto.
19961 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
19962 (bit_XSAVES): Ditto.
19963 (bit_XSAVES): Ditto.
19964 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
19965 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
19966 -mno-clflushopt.
19967 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
19968 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
19969 OPTION_MASK_ISA_XSAVES.
19970 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
19971 -mxsavec, -mxsaves.
19972 (PTA_CLFLUSHOPT) Define.
19973 (PTA_XSAVEC): Ditto.
19974 (PTA_XSAVES): Ditto.
19975 (ix86_option_override_internal): Handle new options.
19976 (ix86_valid_target_attribute_inner_p): Ditto.
19977 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
19978 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
19979 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
19980 (bdesc_special_args): Add __builtin_ia32_xsaves,
19981 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
19982 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
19983 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
19984 (ix86_expand_builtin): Handle new builtins.
19985 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
19986 (TARGET_CLFLUSHOPT_P): Ditto.
19987 (TARGET_XSAVEC): Ditto.
19988 (TARGET_XSAVEC_P): Ditto.
19989 (TARGET_XSAVES): Ditto.
19990 (TARGET_XSAVES_P): Ditto.
19991 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
19992 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
19993 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
19994 (ANY_XRSTOR): New.
19995 (ANY_XRSTOR64): Ditto.
19996 (xrstor): Ditto.
19997 (xrstor): Change into <xrstor>.
19998 (xrstor_rex64): Change into <xrstor>_rex64.
19999 (xrstor64): Change into <xrstor>64
20000 (clflushopt): New.
20001 * config/i386/i386.opt (mclflushopt): New.
20002 (mxsavec): Ditto.
20003 (mxsaves): Ditto.
20004 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
20005 xsavecintrin.h.
20006 * doc/invoke.texi: Document new options.
20007
20008 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
20009
20010 PR rtl-optimization/60866
20011 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
20012 Default it to -1. Pass it down to init_simplejump_data.
20013 (init_simplejump_data): New parameter old_seqno. Pass it down
20014 to get_seqno_for_a_jump.
20015 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
20016 initializing new jump seqno as a last resort. Add comment.
20017 (sel_redirect_edge_and_branch): Save old seqno of the conditional
20018 jump and pass it down to sel_init_new_insn.
20019 (sel_redirect_edge_and_branch_force): Likewise.
20020
20021 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
20022
20023 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
20024 shifted values to avoid build warning.
20025
20026 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
20027
20028 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
20029 * cfgrtl.c (rtl_merge_blocks): Fix comment.
20030 (cfg_layout_merge_blocks): Likewise.
20031 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
20032
20033 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
20034
20035 PR rtl-optimization/60901
20036 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
20037 bb predecessor belongs to the same scheduling region. Adjust comment.
20038
20039 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
20040
20041 * doc/sourcebuild.texi: (dfp_hw): Document.
20042 (p8vector_hw): Likewise.
20043 (powerpc_eabi_ok): Likewise.
20044 (powerpc_elfv2): Likewise.
20045 (powerpc_htm_ok): Likewise.
20046 (ppc_recip_hw): Likewise.
20047 (vsx_hw): Likewise.
20048
20049 2014-05-13 Cary Coutant <ccoutant@google.com>
20050
20051 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
20052
20053 2014-05-13 David Malcolm <dmalcolm@redhat.com>
20054
20055 * gengtype-parse.c (require3): Eliminate in favor of...
20056 (require4): New.
20057 (require_template_declaration): Update to support optional single *
20058 on a type.
20059
20060 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
20061 (create_user_defined_type): Handle a single level of explicit
20062 pointerness within template arguments.
20063 (struct write_types_data): Add field "kind".
20064 (filter_type_name): Handle "*" character.
20065 (write_user_func_for_structure_ptr): Require a write_types_data
20066 rather than just a prefix string, so that we can look up the kind
20067 of the wtd and use it as an index into wrote_user_func_for_ptr,
20068 ensuring that such functions are written at most once. Support
20069 subclasses by invoking the marking function of the ultimate base class.
20070 (write_user_func_for_structure_body): Require a write_types_data
20071 rather than just a prefix string, so that we can pass this to
20072 write_user_func_for_structure_ptr.
20073 (write_func_for_structure): Likewise.
20074 (ggc_wtd): Add initializer of new "kind" field.
20075 (pch_wtd): Likewise.
20076
20077 * gengtype.h (enum write_types_kinds): New.
20078 (struct type): Add field wrote_user_func_for_ptr to the "s"
20079 union member.
20080
20081 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
20082
20083 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
20084 instead of const_binop.
20085 (fold_binary_loc): Likewise.
20086
20087 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
20088
20089 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
20090 calculation to match get_ref_base_and_extent.
20091
20092 2014-05-13 Catherine Moore <clm@codesourcery.com>
20093 Sandra Loosemore <sandra@codesourcery.com>
20094
20095 * configure.ac: Fix assembly for explicit JALR relocation check.
20096 * configure: Regenerate.
20097
20098 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20099
20100 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
20101 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
20102 Remove associated type declarations and initialisations.
20103 (arm_expand_neon_builtin): Likewise.
20104 (neon_emit_pair_result_insn): Delete.
20105 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
20106 * config/arm/neon.md (neon_vtrn<mode>): Delete.
20107 (neon_vzip<mode>): Likewise.
20108 (neon_vuzp<mode>): Likewise.
20109
20110 2014-05-13 Richard Biener <rguenther@suse.de>
20111
20112 PR ipa/60973
20113 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
20114 it needs revisiting whether the call still may be tail-called.
20115
20116 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
20117
20118 * rtl.def (SYMBOL_REF): Remove middle "0" field.
20119 * rtl.h (block_symbol): Reduce number of fields to 2.
20120 (rtx_def): Add u2.symbol_ref_flags.
20121 (SYMBOL_REF_FLAGS): Use it.
20122 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
20123 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
20124 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
20125 Lower index of SYMBOL_REF_DATA.
20126 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
20127 Print SYMBOL_REF_FLAGS at the same time.
20128 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
20129
20130 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
20131
20132 * rtl.def (VAR_LOCATION): Remove "i" field.
20133 * rtl.h (rtx_def): Add u2.var_location_status.
20134 (PAT_VAR_LOCATION_STATUS): Use it.
20135 (gen_rtx_VAR_LOCATION): Declare.
20136 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
20137 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
20138 * var-tracking.c (emit_note_insn_var_location): Remove casts.
20139
20140 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
20141
20142 * rtl.def (scratch): Fix outdated comment and remove "0" field.
20143 * gengtype.c (adjust_field_rtx_def): Update accordingly.
20144
20145 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
20146
20147 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
20148 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
20149 * rtl.h (rtx_def): Add insn_uid to u2 field.
20150 (RTX_FLAG_CHECK8): Delete in favor of...
20151 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
20152 (INSN_DELETED_P): Update accordingly.
20153 (INSN_UID): Use u2.insn_uid.
20154 (INSN_CHAIN_CODE_P): Define.
20155 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
20156 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
20157 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
20158 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
20159 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
20160 indices accordingly.
20161 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
20162 Update indices for insn-chain rtxes.
20163 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
20164 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
20165 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
20166 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
20167 * combine.c (try_combine): Likewise.
20168 * ira.c (setup_prohibited_mode_move_regs): Likewise.
20169
20170 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
20171
20172 * rtl.def (REG): Remove middle field.
20173 * rtl.h (rtx_def): Add orignal_regno to u2.
20174 (ORIGINAL_REGNO): Use it instead of field 1.
20175 (REG_ATTRS): Lower field index accordingly.
20176 * gengtype.c (adjust_field_rtx_def): Remove handling of
20177 ORIGINAL_REGNO. Move REG_ATTRS index down.
20178 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
20179 code that prints the REGNO.
20180
20181 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
20182
20183 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
20184 GENERATOR_FILE.
20185
20186 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
20187
20188 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
20189
20190 2014-05-13 Bin Cheng <bin.cheng@arm.com>
20191
20192 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
20193 (alloc_iv): Lower base expressions containing ADDR_EXPR.
20194
20195 2014-05-13 Ian Bolton <ian.bolton@arm.com>
20196
20197 * config/aarch64/aarch64-protos.h
20198 (aarch64_hard_regno_caller_save_mode): New prototype.
20199 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
20200 New function.
20201 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
20202
20203 2014-05-13 Christian Bruel <christian.bruel@st.com>
20204
20205 * target.def (mode_switching): New hook vector.
20206 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
20207 (mode_exit, modepriority_to_mode): Likewise.
20208 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
20209 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
20210 * target.h: Include tm.h and hard-reg-set.h.
20211 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
20212 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
20213 * doc/tm.texi Regenerate.
20214 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
20215 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
20216 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
20217 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
20218 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
20219 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
20220 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
20221 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
20222 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
20223 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
20224 (ix86_emit_mode_set): Hookify.
20225 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
20226 Delete.
20227 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
20228 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
20229 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
20230 (epiphany_mode_priority_to_mode): Remove declaration.
20231 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
20232 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
20233 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
20234 Likewise.
20235 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
20236 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
20237 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
20238
20239 2014-05-13 Jakub Jelinek <jakub@redhat.com>
20240
20241 PR target/61060
20242 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
20243 is const0_rtx, return immediately. Don't test count == 0 when
20244 it is always true.
20245
20246 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
20247
20248 * Makefile.in: add shrink-wrap.o.
20249 * config/i386/i386.c: include "shrink-wrap.h"
20250 * function.c: Likewise.
20251 (requires_stack_frame_p, next_block_for_reg,
20252 move_insn_for_shrink_wrap, prepare_shrink_wrap,
20253 dup_block_and_redirect): Move to shrink-wrap.c
20254 (thread_prologue_and_epilogue_insns): Extract three code segments
20255 as functions in shrink-wrap.c
20256 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
20257 shrink-wrap.h
20258 * shrink-wrap.c: New file.
20259 * shrink-wrap.h: New file.
20260
20261 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
20262
20263 * doc/extend.texi: Reflect current numbers of pragmas. Remove
20264 reference to Solaris.
20265
20266 2014-05-12 Mike Stump <mikestump@comcast.net>
20267
20268 PR other/31778
20269 * genattrtab.c (filename): Add.
20270 (convert_set_attr_alternative): Improve error message.
20271 (check_defs): Restore read_md_filename for error messages.
20272 (gen_insn): Save filename.
20273
20274 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
20275
20276 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
20277 -fno-local-ivars and -fivar-visibility.
20278 * c-family/c.opt: Make -Wshadow also implicitly enable
20279 -Wshadow-ivar.
20280
20281 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
20282
20283 * doc/tm.texi: Remove reference to deleted macro.
20284 * doc/tm.texi.in: Likewise.
20285
20286 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20287
20288 PR target/60991
20289 * config/avr/avr.c (avr_out_store_psi): Use correct constant
20290 to restore Y.
20291
20292 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
20293
20294 PR libgcc/61152
20295 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
20296 * config/arm/aout.h (License): Same.
20297 * config/arm/bpabi.h (License): Same.
20298 * config/arm/elf.h (License): Same.
20299 * config/arm/linux-elf.h (License): Same.
20300 * config/arm/linux-gas.h (License): Same.
20301 * config/arm/netbsd-elf.h (License): Same.
20302 * config/arm/uclinux-eabi.h (License): Same.
20303 * config/arm/uclinux-elf.h (License): Same.
20304 * config/arm/vxworks.h (License): Same.
20305
20306 2014-05-11 Jakub Jelinek <jakub@redhat.com>
20307
20308 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
20309 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
20310 number of operands to 3.
20311 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
20312 * tree-nested.c (convert_nonlocal_omp_clauses,
20313 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
20314 * gimplify.c (gimplify_scan_omp_clauses): Handle
20315 OMP_CLAUSE_LINEAR_STMT.
20316 * omp-low.c (lower_rec_input_clauses): Fix typo.
20317 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
20318 cast between Fortran boolean_type_node and C _Bool if
20319 needed.
20320
20321 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
20322
20323 PR tree-optimization/61136
20324 * wide-int.h (multiple_of_p): Define a version that doesn't return
20325 the quotient.
20326 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
20327 integer_zerop/const_binop pair.
20328 (multiple_of_p): Likewise, converting both operands to widest_int
20329 precision.
20330
20331 2014-05-09 Teresa Johnson <tejohnson@google.com>
20332
20333 * cgraphunit.c (analyze_functions): Use correct dump file.
20334
20335 2014-05-09 Florian Weimer <fweimer@redhat.com>
20336
20337 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
20338 expand_used_vars.
20339 (stack_protect_return_slot_p): New function.
20340 (expand_used_vars): Call stack_protect_decl_p and
20341 stack_protect_return_slot_p for -fstack-protector-strong.
20342
20343 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
20344 Andrew Haley <aph@redhat.com>
20345 Richard Sandiford <rdsandiford@googlemail.com>
20346
20347 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
20348 pages.
20349
20350 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
20351
20352 PR middle-end/61111
20353 * fold-const.c (fold_binary_loc): Changed width of mask.
20354
20355 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
20356
20357 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
20358 unsigned int initializers for regno_in, regno_out.
20359
20360 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
20361
20362 PR target/61055
20363 * config/avr/avr.md (cc): Add new attribute set_vzn.
20364 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
20365 Set cc insn attribute to set_vzn instead of set_zn for alternatives
20366 with INC, DEC or NEG.
20367 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
20368 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
20369 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
20370
20371 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20372
20373 Revert:
20374 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20375
20376 * wide-int.cc (UTItype): Define.
20377 (UDWtype): Define for appropriate W_TYPE_SIZE.
20378
20379 2014-05-09 Richard Biener <rguenther@suse.de>
20380
20381 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
20382 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
20383 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
20384 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
20385 ssa_propagate): Adjust.
20386
20387 2014-05-08 Jeff Law <law@redhat.com>
20388
20389 PR tree-optimization/61009
20390 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
20391 tri-state rather than a boolean. When a block is too big to
20392 thread through, inform caller via negative return value.
20393 (thread_across_edge): If a block was too big for normal threading,
20394 then it's too big for a joiner too, so remove temporary equivalences
20395 and return immediately.
20396
20397 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
20398 Matthias Klose <doko@ubuntu.com>
20399
20400 PR driver/61106
20401 * optc-gen.awk: Fix option handling for -Wunused-parameter.
20402
20403 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
20404
20405 PR target/59952
20406 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
20407
20408 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
20409
20410 PR target/61092
20411 * config/alpha/alpha.c: Include gimple-iterator.h.
20412 (alpha_gimple_fold_builtin): New function. Move
20413 ALPHA_BUILTIN_UMULH folding from ...
20414 (alpha_fold_builtin): ... here.
20415 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
20416
20417 2014-05-08 Wei Mi <wmi@google.com>
20418
20419 PR target/58066
20420 * config/i386/i386.c (ix86_compute_frame_layout): Update
20421 preferred_stack_boundary for call, expanded from tls descriptor.
20422 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
20423 to depend on SP register.
20424 (*tls_local_dynamic_base_32_gnu): Ditto.
20425 (*tls_local_dynamic_32_once): Ditto.
20426 (tls_global_dynamic_64_<mode>): Set
20427 ix86_tls_descriptor_calls_expanded_in_cfun.
20428 (tls_local_dynamic_base_64_<mode>): Ditto.
20429 (tls_global_dynamic_32): Set
20430 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
20431 to depend on SP register.
20432 (tls_local_dynamic_base_32): Ditto.
20433
20434 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20435
20436 * config/arm/arm_neon.h: Update comment.
20437 * config/arm/neon-docgen.ml: Delete.
20438 * config/arm/neon-gen.ml: Delete.
20439 * doc/arm-neon-intrinsics.texi: Update comment.
20440
20441 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20442
20443 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
20444 and v4sf versions.
20445 (vand, vorr, veor, vorn, vbic): Remove.
20446 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
20447 iterator.
20448 (neon_vsub_unspec): Likewise.
20449 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
20450
20451 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20452
20453 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
20454 (vadd_s16): Likewise.
20455 (vadd_s32): Likewise.
20456 (vadd_f32): Likewise.
20457 (vadd_u8): Likewise.
20458 (vadd_u16): Likewise.
20459 (vadd_u32): Likewise.
20460 (vadd_s64): Likewise.
20461 (vadd_u64): Likewise.
20462 (vaddq_s8): Likewise.
20463 (vaddq_s16): Likewise.
20464 (vaddq_s32): Likewise.
20465 (vaddq_s64): Likewise.
20466 (vaddq_f32): Likewise.
20467 (vaddq_u8): Likewise.
20468 (vaddq_u16): Likewise.
20469 (vaddq_u32): Likewise.
20470 (vaddq_u64): Likewise.
20471 (vmul_s8): Likewise.
20472 (vmul_s16): Likewise.
20473 (vmul_s32): Likewise.
20474 (vmul_f32): Likewise.
20475 (vmul_u8): Likewise.
20476 (vmul_u16): Likewise.
20477 (vmul_u32): Likewise.
20478 (vmul_p8): Likewise.
20479 (vmulq_s8): Likewise.
20480 (vmulq_s16): Likewise.
20481 (vmulq_s32): Likewise.
20482 (vmulq_f32): Likewise.
20483 (vmulq_u8): Likewise.
20484 (vmulq_u16): Likewise.
20485 (vmulq_u32): Likewise.
20486 (vsub_s8): Likewise.
20487 (vsub_s16): Likewise.
20488 (vsub_s32): Likewise.
20489 (vsub_f32): Likewise.
20490 (vsub_u8): Likewise.
20491 (vsub_u16): Likewise.
20492 (vsub_u32): Likewise.
20493 (vsub_s64): Likewise.
20494 (vsub_u64): Likewise.
20495 (vsubq_s8): Likewise.
20496 (vsubq_s16): Likewise.
20497 (vsubq_s32): Likewise.
20498 (vsubq_s64): Likewise.
20499 (vsubq_f32): Likewise.
20500 (vsubq_u8): Likewise.
20501 (vsubq_u16): Likewise.
20502 (vsubq_u32): Likewise.
20503 (vsubq_u64): Likewise.
20504 (vand_s8): Likewise.
20505 (vand_s16): Likewise.
20506 (vand_s32): Likewise.
20507 (vand_u8): Likewise.
20508 (vand_u16): Likewise.
20509 (vand_u32): Likewise.
20510 (vand_s64): Likewise.
20511 (vand_u64): Likewise.
20512 (vandq_s8): Likewise.
20513 (vandq_s16): Likewise.
20514 (vandq_s32): Likewise.
20515 (vandq_s64): Likewise.
20516 (vandq_u8): Likewise.
20517 (vandq_u16): Likewise.
20518 (vandq_u32): Likewise.
20519 (vandq_u64): Likewise.
20520 (vorr_s8): Likewise.
20521 (vorr_s16): Likewise.
20522 (vorr_s32): Likewise.
20523 (vorr_u8): Likewise.
20524 (vorr_u16): Likewise.
20525 (vorr_u32): Likewise.
20526 (vorr_s64): Likewise.
20527 (vorr_u64): Likewise.
20528 (vorrq_s8): Likewise.
20529 (vorrq_s16): Likewise.
20530 (vorrq_s32): Likewise.
20531 (vorrq_s64): Likewise.
20532 (vorrq_u8): Likewise.
20533 (vorrq_u16): Likewise.
20534 (vorrq_u32): Likewise.
20535 (vorrq_u64): Likewise.
20536 (veor_s8): Likewise.
20537 (veor_s16): Likewise.
20538 (veor_s32): Likewise.
20539 (veor_u8): Likewise.
20540 (veor_u16): Likewise.
20541 (veor_u32): Likewise.
20542 (veor_s64): Likewise.
20543 (veor_u64): Likewise.
20544 (veorq_s8): Likewise.
20545 (veorq_s16): Likewise.
20546 (veorq_s32): Likewise.
20547 (veorq_s64): Likewise.
20548 (veorq_u8): Likewise.
20549 (veorq_u16): Likewise.
20550 (veorq_u32): Likewise.
20551 (veorq_u64): Likewise.
20552 (vbic_s8): Likewise.
20553 (vbic_s16): Likewise.
20554 (vbic_s32): Likewise.
20555 (vbic_u8): Likewise.
20556 (vbic_u16): Likewise.
20557 (vbic_u32): Likewise.
20558 (vbic_s64): Likewise.
20559 (vbic_u64): Likewise.
20560 (vbicq_s8): Likewise.
20561 (vbicq_s16): Likewise.
20562 (vbicq_s32): Likewise.
20563 (vbicq_s64): Likewise.
20564 (vbicq_u8): Likewise.
20565 (vbicq_u16): Likewise.
20566 (vbicq_u32): Likewise.
20567 (vbicq_u64): Likewise.
20568 (vorn_s8): Likewise.
20569 (vorn_s16): Likewise.
20570 (vorn_s32): Likewise.
20571 (vorn_u8): Likewise.
20572 (vorn_u16): Likewise.
20573 (vorn_u32): Likewise.
20574 (vorn_s64): Likewise.
20575 (vorn_u64): Likewise.
20576 (vornq_s8): Likewise.
20577 (vornq_s16): Likewise.
20578 (vornq_s32): Likewise.
20579 (vornq_s64): Likewise.
20580 (vornq_u8): Likewise.
20581 (vornq_u16): Likewise.
20582 (vornq_u32): Likewise.
20583 (vornq_u64): Likewise.
20584
20585 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20586
20587 * wide-int.cc (UTItype): Define.
20588 (UDWtype): Define for appropriate W_TYPE_SIZE.
20589
20590 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
20591
20592 PR tree-optimization/59100
20593 * tree-ssa-phiopt.c: Include tree-inline.h.
20594 (neutral_element_p, absorbing_element_p): New functions.
20595 (value_replacement): Handle conditional binary operations with a
20596 neutral or absorbing element.
20597
20598 2014-05-08 Richard Biener <rguenther@suse.de>
20599
20600 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
20601 folding the expression.
20602 (valueize_expr): Remove.
20603 (visit_reference_op_load): Do not valueize the result of
20604 vn_get_expr_for.
20605 (simplify_binary_expression): Likewise.
20606 (simplify_unary_expression): Likewise.
20607
20608 2014-05-08 Richard Biener <rguenther@suse.de>
20609
20610 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
20611 looking at TYPE_ARG_TYPES.
20612
20613 2014-05-08 Richard Biener <rguenther@suse.de>
20614
20615 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
20616 pointer propagation special-case.
20617
20618 2014-05-08 Bin Cheng <bin.cheng@arm.com>
20619
20620 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
20621 core part of address expressions.
20622
20623 2014-05-08 Alan Modra <amodra@gmail.com>
20624
20625 PR target/60737
20626 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
20627 loads and stores when -mno-strict-align at any alignment.
20628 (expand_block_clear): Similarly. Also correct calculation of
20629 instruction count.
20630
20631 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
20632
20633 PR middle-end/39246
20634 * tree-complex.c (expand_complex_move): Keep line info when expanding
20635 complex move.
20636 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
20637 of complex expression. Use new argument to display correct location
20638 for values coming from phi statement.
20639 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
20640 (warn_uninitialized_phi): Pass location of phi argument to
20641 warn_uninit.
20642 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
20643 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
20644
20645 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
20646
20647 * config/rs6000/predicates.md (indexed_address_mem): New.
20648 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
20649 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
20650 fpstore_ux, fpstore_u.
20651 (sign_extend, indexed, update): New.
20652 (cell_micro): Adjust.
20653 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
20654 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
20655 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
20656 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
20657 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
20658 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
20659 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
20660 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
20661 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
20662 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
20663 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
20664 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
20665 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
20666 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
20667 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
20668
20669 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
20670 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
20671 *vsx_extract_<mode>_store): Adjust.
20672 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
20673 is_cracked_insn, insn_must_be_first_in_group,
20674 insn_must_be_last_in_group): Adjust.
20675
20676 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
20677 Adjust.
20678 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
20679 ppc440-fpstore): Adjust.
20680 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
20681 ppc476-fpstore): Adjust.
20682 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
20683 ppc601-fpstore): Adjust.
20684 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
20685 Adjust.
20686 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
20687 Adjust.
20688 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
20689 ppc7450-fpstore): Adjust.
20690 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
20691 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
20692 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
20693 Adjust.
20694 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
20695 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
20696 cell-fpstore, cell-fpstore-update): Adjust.
20697 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
20698 ppce300c3_store, ppce300c3_fpstore): Adjust.
20699 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
20700 e500mc_fpstore): Adjust.
20701 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
20702 e500mc64_store, e500mc64_fpstore): Adjust.
20703 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
20704 e5500_fpstore): Adjust.
20705 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
20706 e6500_fpstore): Adjust.
20707 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
20708 Adjust.
20709 * config/rs6000/power4.md (power4-load, power4-load-ext,
20710 power4-load-ext-update, power4-load-ext-update-indexed,
20711 power4-load-update-indexed, power4-load-update, power4-fpload,
20712 power4-fpload-update, power4-store, power4-store-update,
20713 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
20714 Adjust.
20715 * config/rs6000/power5.md (power5-load, power5-load-ext,
20716 power5-load-ext-update, power5-load-ext-update-indexed,
20717 power5-load-update-indexed, power5-load-update, power5-fpload,
20718 power5-fpload-update, power5-store, power5-store-update,
20719 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
20720 Adjust.
20721 * config/rs6000/power6.md (power6-load, power6-load-ext,
20722 power6-load-update, power6-load-update-indexed,
20723 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
20724 power6-fpload-update, power6-store, power6-store-update,
20725 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
20726 Adjust.
20727 * config/rs6000/power7.md (power7-load, power7-load-ext,
20728 power7-load-update, power7-load-update-indexed,
20729 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
20730 power7-fpload-update, power7-store, power7-store-update,
20731 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
20732 Adjust.
20733 * config/rs6000/power8.md (power8-load, power8-load-update,
20734 power8-load-ext, power8-load-ext-update, power8-fpload,
20735 power8-fpload-update, power8-store, power8-store-update-indexed,
20736 power8-fpstore, power8-fpstore-update): Adjust.
20737 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
20738 Adjust.
20739 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
20740 titan_lsu_store, titan_lsu_fpstore): Adjust.
20741 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
20742
20743 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
20744
20745 PR target/60884
20746 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
20747 unrolled byte insns. Emit address increments after move insns.
20748
20749 2014-05-07 David Malcolm <dmalcolm@redhat.com>
20750
20751 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
20752 const_gimple, rather than a gimple.
20753 (gimple_call_builtin_p): Likewise, for the three variants.
20754
20755 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
20756 (gimple_call_builtin_p): Likewise, for the three variants.
20757
20758 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
20759
20760 PR tree-optimization/61095
20761 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
20762
20763 2014-05-07 Richard Biener <rguenther@suse.de>
20764
20765 PR tree-optimization/61034
20766 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
20767 (maybe_skip_until): Use translate to take into account
20768 lattices when trying to do disambiguations.
20769 (get_continuation_for_phi_1): Likewise.
20770 (get_continuation_for_phi): Adjust for added translate arguments.
20771 (walk_non_aliased_vuses): Likewise.
20772 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
20773 (walk_non_aliased_vuses): Likewise.
20774 (call_may_clobber_ref_p_1): Declare.
20775 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
20776 calls. Stop early if we are only supposed to disambiguate.
20777 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
20778
20779 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
20780
20781 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
20782 Emit an error when the function has arguments.
20783
20784 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
20785
20786 * cfgloop.h (unswitch_loops): Remove.
20787 * doc/passes.texi: Remove references to loop-unswitch.c
20788 * timevar.def (TV_LOOP_UNSWITCH): Remove.
20789
20790 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
20791
20792 * tree-vect-data-refs.c (vect_grouped_load_supported): New
20793 check for loads group of length 3.
20794 (vect_permute_load_chain): New permutations for loads group of
20795 length 3.
20796 * tree-vect-stmts.c (vect_model_load_cost): Change cost
20797 of vec_perm_shuffle for the new permutations.
20798
20799 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
20800
20801 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
20802 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
20803 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
20804 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
20805 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
20806 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
20807 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
20808 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
20809
20810 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
20811
20812 * loop-unswitch.c: Delete.
20813
20814 2014-05-07 Richard Biener <rguenther@suse.de>
20815
20816 * config.gcc: Always set need_64bit_hwint to yes.
20817
20818 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
20819
20820 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
20821 of using optimize_size.
20822
20823 2014-05-06 Mike Stump <mikestump@comcast.net>
20824
20825 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
20826
20827 2014-05-06 Joseph Myers <joseph@codesourcery.com>
20828
20829 * config/i386/sse.md (*mov<mode>_internal)
20830 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
20831 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
20832 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
20833 (*<code><mode>3, *andnot<mode>3<mask_name>)
20834 (<mask_codefor><code><mode>3<mask_name>): Only consider
20835 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
20836
20837 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
20838
20839 Revert:
20840 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
20841
20842 * lra-constraints.c (valid_address_p): Move earlier in file.
20843 Add a constraint argument to the address_info version.
20844 (satisfies_memory_constraint_p): New function.
20845 (satisfies_address_constraint_p): Likewise.
20846 (process_alt_operands, curr_insn_transform): Use them.
20847 (process_address): Pass the constraint to valid_address_p when
20848 checking address operands.
20849
20850 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
20851
20852 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
20853 to their respective blocks. Fix inadvertent use of "node".
20854
20855 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
20856
20857 * emit-rtl.c (init_derived_machine_modes): New functionm, split
20858 out from...
20859 (init_emit_once): ...here.
20860 * rtl.h (init_derived_machine_modes): Declare.
20861 * toplev.c (do_compile): Call it even if no_backend.
20862
20863 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
20864 Mike Stump <mikestump@comcast.net>
20865 Richard Sandiford <rdsandiford@googlemail.com>
20866 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20867
20868 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
20869 (rtx_equal_for_memref_p): Update comment.
20870 (adjust_offset_for_component_ref): Use wide-int interfaces.
20871 * builtins.c (get_object_alignment_2): Likewise.
20872 (c_readstr): Likewise.
20873 (target_char_cast): Add comment.
20874 (determine_block_size): Use wide-int interfaces.
20875 (expand_builtin_signbit): Likewise.
20876 (fold_builtin_int_roundingfn): Likewise.
20877 (fold_builtin_bitop): Likewise.
20878 (fold_builtin_bswap): Likewise.
20879 (fold_builtin_logarithm): Use signop.
20880 (fold_builtin_pow): Likewise.
20881 (fold_builtin_memory_op): Use wide-int interfaces.
20882 (fold_builtin_object_size): Likewise.
20883 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
20884 nb_iterations_estimate.
20885 (record_niter_bound): Use wide-int interfaces.
20886 (get_estimated_loop_iterations_int): Likewise.
20887 (get_estimated_loop_iterations): Likewise.
20888 (get_max_loop_iterations): Likewise.
20889 * cfgloop.h: Include wide-int.h.
20890 (struct nb_iter_bound): Change bound to widest_int.
20891 (struct loop): Change nb_iterations_upper_bound and
20892 nb_iterations_estimate to widest_int.
20893 (record_niter_bound): Switch to use widest_int.
20894 (get_estimated_loop_iterations): Likewise.
20895 (get_max_loop_iterations): Likewise.
20896 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
20897 update for wide-int.
20898 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
20899 * combine.c (try_combine): Likewise.
20900 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
20901 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
20902 interfaces.
20903 (aarch64_float_const_representable_p): Likewise.
20904 * config/arc/arc.c: Include wide-int.h.
20905 (arc_can_use_doloop_p): Use wide-int interfaces.
20906 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
20907 (vfp3_const_double_index): Likewise.
20908 * config/avr/avr.c (avr_out_round): Likewise.
20909 (avr_fold_builtin): Likewise.
20910 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
20911 (bfin_can_use_doloop_p): Likewise.
20912 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
20913 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
20914 * config/i386/i386.c: Include wide-int.h.
20915 (ix86_data_alignment): Use wide-int interfaces.
20916 (ix86_local_alignment): Likewise.
20917 (ix86_emit_swsqrtsf): Update real_from_integer.
20918 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
20919 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
20920 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
20921 (zero_constant): Likewise.
20922 (input_operand): Likewise.
20923 (splat_input_operand): Likewise.
20924 (non_logical_cint_operand): Change const_double to const_wide_int.
20925 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
20926 (easy_altivec_constant): Remove comment.
20927 (paired_expand_vector_init): Use CONSTANT_P.
20928 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
20929 (rs6000_emit_move): Update checks.
20930 (rs6000_aggregate_candidate): Use wide-int interfaces.
20931 (rs6000_expand_ternop_builtin): Likewise.
20932 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
20933 (rs6000_assemble_integer): Likewise.
20934 (rs6000_hash_constant): Likewise.
20935 (output_toc): Likewise.
20936 (rs6000_rtx_costs): Likewise.
20937 (rs6000_emit_swrsqrt); Update call to real_from_integer.
20938 * config/rs6000/rs6000-c.c: Include wide-int.h.
20939 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
20940 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
20941 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
20942 Handle CONST_WIDE_INT.
20943 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
20944 Use tree_fits_uhwi_p.
20945 * config/sparc/sparc.c: Include wide-int.h.
20946 (sparc_fold_builtin): Use wide-int interfaces.
20947 * config/vax/vax.c: Include wide-int.h.
20948 (vax_float_literal): Use real_from_integer.
20949 * coretypes.h (struct hwivec_def): New.
20950 (hwivec): New.
20951 (const_hwivec): New.
20952 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
20953 (equiv_constant): Handle CONST_WIDE_INT.
20954 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
20955 (cselib_hash_rtx): Handle CONST_WIDE_INT.
20956 * dbxout.c (stabstr_U): Use wide-int interfaces.
20957 (dbxout_type): Update to use cst_fits_shwi_p.
20958 * defaults.h (LOG2_BITS_PER_UNIT): Define.
20959 (TARGET_SUPPORTS_WIDE_INT): Add default.
20960 * dfp.c: Include wide-int.h.
20961 (decimal_real_to_integer2): Use wide-int interfaces and rename to
20962 decimal_real_to_integer.
20963 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
20964 decimal_real_to_integer.
20965 * doc/generic.texi (Constant expressions): Update for wide_int.
20966 * doc/rtl.texi (const_double): Likewise.
20967 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
20968 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
20969 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
20970 (REAL_VALUE_FROM_INT): Remove.
20971 (TARGET_SUPPORTS_WIDE_INT): New.
20972 * doc/tm.texi: Regenerate.
20973 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
20974 * double-int.h: Include wide-int.h.
20975 (struct wi::int_traits): New.
20976 * dwarf2out.c (get_full_len): New.
20977 (dw_val_equal_p): Add case dw_val_class_wide_int.
20978 (size_of_loc_descr): Likewise.
20979 (output_loc_operands): Likewise.
20980 (insert_double): Remove.
20981 (insert_wide_int): New.
20982 (add_AT_wide): New.
20983 (print_die): Add case dw_val_class_wide_int.
20984 (attr_checksum): Likewise.
20985 (attr_checksum_ordered): Likewise.
20986 (same_dw_val_p): Likewise.
20987 (size_of_die): Likewise.
20988 (value_format): Likewise.
20989 (output_die): Likewise.
20990 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
20991 Use wide-int.
20992 (clz_loc_descriptor): Use wide-int interfaces.
20993 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
20994 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
20995 (round_up_to_align): Use wide-int interfaces.
20996 (field_byte_offset): Likewise.
20997 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
20998 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
20999 CONST_DOUBLE handling. Use wide-int interfaces.
21000 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
21001 (gen_enumeration_type_die): Use add_AT_wide.
21002 (hash_loc_operands): Add case dw_val_class_wide_int.
21003 (compare_loc_operands): Likewise.
21004 * dwarf2out.h: Include wide-int.h.
21005 (wide_int_ptr): New.
21006 (enum dw_val_class): Add dw_val_class_wide_int.
21007 (struct dw_val_struct): Add val_wide.
21008 * emit-rtl.c (const_wide_int_htab): New.
21009 (const_wide_int_htab_hash): New.
21010 (const_wide_int_htab_eq): New.
21011 (lookup_const_wide_int): New.
21012 (const_double_htab_hash): Use wide-int interfaces.
21013 (const_double_htab_eq): Likewise.
21014 (rtx_to_double_int): Conditionally compile for wide-int.
21015 (immed_double_int_const): Rename to immed_wide_int_const and
21016 update for wide-int.
21017 (immed_double_const): Conditionally compile for wide-int.
21018 (init_emit_once): Use wide-int interfaces.
21019 * explow.c (plus_constant): Likewise.
21020 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
21021 (lshift_value): Use wide-int interfaces.
21022 (expand_mult): Likewise.
21023 (choose_multiplier): Likewise.
21024 (expand_smod_pow2): Likewise.
21025 (make_tree): Likewise.
21026 * expr.c (convert_modes): Consolidate handling of constants.
21027 Use wide-int interfaces.
21028 (emit_group_load_1): Add note.
21029 (store_expr): Update comment.
21030 (get_inner_reference): Use wide-int interfaces.
21031 (expand_constructor): Update comment.
21032 (expand_expr_real_2): Use wide-int interfaces.
21033 (expand_expr_real_1): Likewise.
21034 (reduce_to_bit_field_precision): Likewise.
21035 (const_vector_from_tree): Likewise.
21036 * final.c: Include wide-int-print.h.
21037 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
21038 * fixed-value.c: Include wide-int.h.
21039 (fixed_from_string): Use wide-int interfaces.
21040 (fixed_to_decimal): Likewise.
21041 (fixed_convert_from_real): Likewise.
21042 (real_convert_from_fixed): Likewise.
21043 * fold-const.h (mem_ref_offset): Return an offset_int.
21044 (div_if_zero_remainder): Remove code parameter.
21045 * fold-const.c (div_if_zero_remainder): Remove code parameter.
21046 Use wide-int interfaces.
21047 (may_negate_without_overflow_p): Use wide-int interfaces.
21048 (negate_expr_p): Likewise.
21049 (fold_negate_expr): Likewise.
21050 (int_const_binop_1): Likewise.
21051 (const_binop): Likewise.
21052 (fold_convert_const_int_from_int): Likewise.
21053 (fold_convert_const_int_from_real): Likewise.
21054 (fold_convert_const_int_from_fixed): Likewise.
21055 (fold_convert_const_fixed_from_int): Likewise.
21056 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
21057 (sign_bit_p): Use wide-int interfaces.
21058 (make_range_step): Likewise.
21059 (build_range_check): Likewise. Pass an integer of the correct type
21060 instead of using integer_one_node.
21061 (range_predecessor): Pass an integer of the correct type instead
21062 of using integer_one_node.
21063 (range_successor): Likewise.
21064 (merge_ranges): Likewise.
21065 (unextend): Use wide-int interfaces.
21066 (extract_muldiv_1): Likewise.
21067 (fold_div_compare): Likewise.
21068 (fold_single_bit_test): Likewise.
21069 (fold_sign_changed_comparison): Likewise.
21070 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
21071 (fold_plusminus_mult_expr): Use wide-int interfaces.
21072 (native_encode_int): Likewise.
21073 (native_interpret_int): Likewise.
21074 (fold_unary_loc): Likewise.
21075 (pointer_may_wrap_p): Likewise.
21076 (size_low_cst): Likewise.
21077 (mask_with_tz): Likewise.
21078 (fold_binary_loc): Likewise.
21079 (fold_ternary_loc): Likewise.
21080 (multiple_of_p): Likewise.
21081 (tree_call_nonnegative_warnv_p): Update calls to
21082 tree_int_cst_min_precision and real_from_integer.
21083 (fold_negate_const): Use wide-int interfaces.
21084 (fold_abs_const): Likewise.
21085 (fold_relational_const): Use tree_int_cst_lt.
21086 (round_up_loc): Use wide-int interfaces.
21087 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
21088 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
21089 * gengtype.c: Remove include of double-int.h.
21090 (do_typedef): Use wide-int interfaces.
21091 (open_base_files): Add wide-int.h.
21092 (main): Add offset_int and widest_int typedefs.
21093 * gengtype-lex.l: Handle "^".
21094 (CXX_KEYWORD): Add "static".
21095 * gengtype-parse.c (require3): New.
21096 (require_template_declaration): Handle constant template arguments
21097 and nested templates.
21098 * gengtype-state.c: Don't include "double-int.h".
21099 * genpreds.c (write_one_predicate_function): Update comment.
21100 (write_tm_constrs_h): Add check for hval and lval use in
21101 CONST_WIDE_INT.
21102 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
21103 (add_to_sequence): Likewise.
21104 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
21105 and const_double_operand.
21106 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
21107 interfaces.
21108 * gimple-fold.c (get_base_constructor): Likewise.
21109 (fold_array_ctor_reference): Likewise.
21110 (fold_nonarray_ctor_reference): Likewise.
21111 (fold_const_aggregate_ref_1): Likewise.
21112 (gimple_val_nonnegative_real_p): Likewise.
21113 (gimple_fold_indirect_ref): Likewise.
21114 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
21115 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
21116 (struct slsr_cand_d): Change index to be widest_int.
21117 (struct incr_info_d): Change incr to be widest_int.
21118 (alloc_cand_and_find_basis): Use wide-int interfaces.
21119 (slsr_process_phi): Likewise.
21120 (backtrace_base_for_ref): Likewise. Return a widest_int.
21121 (restructure_reference): Take a widest_int instead of a double_int.
21122 (slsr_process_ref): Use wide-int interfaces.
21123 (create_mul_ssa_cand): Likewise.
21124 (create_mul_imm_cand): Likewise.
21125 (create_add_ssa_cand): Likewise.
21126 (create_add_imm_cand): Take a widest_int instead of a double_int.
21127 (slsr_process_add): Use wide-int interfaces.
21128 (slsr_process_cast): Likewise.
21129 (slsr_process_copy): Likewise.
21130 (dump_candidate): Likewise.
21131 (dump_incr_vec): Likewise.
21132 (replace_ref): Likewise.
21133 (cand_increment): Likewise. Return a widest_int.
21134 (cand_abs_increment): Likewise.
21135 (replace_mult_candidate): Take a widest_int instead of a double_int.
21136 (replace_unconditional_candidate): Use wide-int interfaces.
21137 (incr_vec_index): Take a widest_int instead of a double_int.
21138 (create_add_on_incoming_edge): Likewise.
21139 (create_phi_basis): Use wide-int interfaces.
21140 (replace_conditional_candidate): Likewise.
21141 (record_increment): Take a widest_int instead of a double_int.
21142 (record_phi_increments): Use wide-int interfaces.
21143 (phi_incr_cost): Take a widest_int instead of a double_int.
21144 (lowest_cost_path): Likewise.
21145 (total_savings): Likewise.
21146 (analyze_increments): Use wide-int interfaces.
21147 (ncd_with_phi): Take a widest_int instead of a double_int.
21148 (ncd_of_cand_and_phis): Likewise.
21149 (nearest_common_dominator_for_cands): Likewise.
21150 (insert_initializers): Use wide-int interfaces.
21151 (all_phi_incrs_profitable): Likewise.
21152 (replace_one_candidate): Likewise.
21153 (replace_profitable_candidates): Likewise.
21154 * godump.c: Include wide-int-print.h.
21155 (go_output_typedef): Use wide-int interfaces.
21156 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
21157 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
21158 (build_loop_iteration_domains): Likewise.
21159 * hooks.h: Include wide-int.h rather than double-int.h.
21160 (hook_bool_dint_dint_uint_bool_true): Delete.
21161 (hook_bool_wint_wint_uint_bool_true): Declare.
21162 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
21163 (hook_bool_wint_wint_uint_bool_true): New.
21164 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
21165 interfaces.
21166 (ubsan_expand_si_overflow_mul_check): Likewise.
21167 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
21168 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
21169 (get_ancestor_addr_info): Likewise.
21170 (ipa_modify_call_arguments): Likewise.
21171 * loop-doloop.c (doloop_modify): Likewise.
21172 (doloop_optimize): Likewise.
21173 * loop-iv.c (iv_number_of_iterations): Likewise.
21174 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
21175 (unroll_loop_constant_iterations): Likewise.
21176 (decide_unroll_runtime_iterations): Likewise.
21177 (unroll_loop_runtime_iterations): Likewise.
21178 (decide_peel_simple): Likewise.
21179 (decide_unroll_stupid): Likewise.
21180 * lto-streamer-in.c (streamer_read_wi): Add.
21181 (input_cfg): Use wide-int interfaces.
21182 (lto_input_tree_1): Likewise.
21183 * lto-streamer-out.c (streamer_write_wi): Add.
21184 (hash_tree): Use wide-int interfaces.
21185 (output_cfg): Likewise.
21186 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
21187 (GTFILES): Add wide-int.h and signop.h.
21188 (TAGS): Look for .cc files too.
21189 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
21190 * optabs.c (expand_subword_shift): Likewise.
21191 (expand_doubleword_shift): Likewise.
21192 (expand_absneg_bit): Likewise.
21193 (expand_copysign_absneg): Likewise.
21194 (expand_copysign_bit): Likewise.
21195 * postreload.c (reload_cse_simplify_set): Likewise.
21196 * predict.c (predict_iv_comparison): Likewise.
21197 * pretty-print.h: Include wide-int-print.h.
21198 (pp_wide_int) New.
21199 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
21200 * print-tree.c: Include wide-int-print.h.
21201 (print_node_brief): Use wide-int interfaces.
21202 (print_node): Likewise.
21203 * read-rtl.c (validate_const_wide_int): New.
21204 (read_rtx_code): Add CONST_WIDE_INT case.
21205 * real.c: Include wide-int.h.
21206 (real_to_integer2): Delete.
21207 (real_to_integer): New function, returning a wide_int.
21208 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
21209 (ten_to_ptwo): Update call to real_from_integer.
21210 (real_digit): Likewise.
21211 * real.h: Include signop.h, wide-int.h and insn-modes.h.
21212 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
21213 (REAL_VALUE_TO_INT): Delete.
21214 (real_to_integer): Declare a wide-int form.
21215 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
21216 * recog.c (const_int_operand): Improve comment.
21217 (const_scalar_int_operand): New.
21218 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
21219 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
21220 (split_double): Likewise.
21221 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
21222 (rtx_size): Likewise.
21223 (rtx_alloc_stat_v): New.
21224 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
21225 (cwi_output_hex): New.
21226 (iterative_hash_rtx): Handle CONST_WIDE_INT.
21227 (cwi_check_failed_bounds): New.
21228 * rtl.def (CONST_WIDE_INT): New.
21229 * rtl.h: Include <utility> and wide-int.h.
21230 (struct hwivec_def): New.
21231 (CWI_GET_NUM_ELEM): New.
21232 (CWI_PUT_NUM_ELEM): New.
21233 (struct rtx_def): Add num_elem and hwiv.
21234 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
21235 (CASE_CONST_UNIQUE): Likewise.
21236 (CASE_CONST_ANY): Likewise.
21237 (CONST_SCALAR_INT_P): Likewise.
21238 (CONST_WIDE_INT_P): New.
21239 (CWI_ELT): New.
21240 (HWIVEC_CHECK): New.
21241 (cwi_check_failed_bounds): New.
21242 (CWI_ELT): New.
21243 (HWIVEC_CHECK): New.
21244 (CONST_WIDE_INT_VEC) New.
21245 (CONST_WIDE_INT_NUNITS) New.
21246 (CONST_WIDE_INT_ELT) New.
21247 (rtx_mode_t): New type.
21248 (wi::int_traits <rtx_mode_t>): New.
21249 (wi::shwi): New.
21250 (wi::min_value): New.
21251 (wi::max_value): New.
21252 (rtx_alloc_v) New.
21253 (const_wide_int_alloc): New.
21254 (immed_wide_int_const): New.
21255 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
21256 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
21257 * signop.h: New file.
21258 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
21259 (simplify_const_unary_operation): Use wide-int interfaces.
21260 (simplify_binary_operation_1): Likewise.
21261 (simplify_const_binary_operation): Likewise.
21262 (simplify_const_relational_operation): Likewise.
21263 (simplify_immed_subreg): Likewise.
21264 * stmt.c (expand_case): Likewise.
21265 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
21266 signop rather than a bool.
21267 * stor-layout.c (layout_type): Use wide-int interfaces.
21268 (initialize_sizetypes): Update calls to
21269 set_min_and_max_values_for_integral_type.
21270 (set_min_and_max_values_for_integral_type): Take a signop rather
21271 than a bool. Use wide-int interfaces.
21272 (fixup_signed_type): Update accordingly. Remove
21273 HOST_BITS_PER_DOUBLE_INT limit.
21274 (fixup_unsigned_type): Likewise.
21275 * system.h (STATIC_CONSTANT_P): New.
21276 (STATIC_ASSERT): New.
21277 * target.def (can_use_doloop_p): Take widest_ints rather than
21278 double_ints.
21279 * target.h: Include wide-int.h rather than double-int.h.
21280 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
21281 than double_ints.
21282 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
21283 rather than INT_CST_LT_UNSIGNED.
21284 (can_use_doloop_if_innermost): Take widest_ints rather than
21285 double_ints.
21286 * tree-affine.c: Include wide-int-print.h.
21287 (double_int_ext_for_comb): Delete.
21288 (wide_int_ext_for_comb): New.
21289 (aff_combination_zero): Use wide-int interfaces.
21290 (aff_combination_const): Take a widest_int instead of a double_int.
21291 (aff_combination_elt): Use wide-int interfaces.
21292 (aff_combination_scale): Take a widest_int instead of a double_int.
21293 (aff_combination_add_elt): Likewise.
21294 (aff_combination_add_cst): Likewise.
21295 (aff_combination_add): Use wide-int interfaces.
21296 (aff_combination_convert): Likewise.
21297 (tree_to_aff_combination): Likewise.
21298 (add_elt_to_tree): Take a widest_int instead of a double_int.
21299 (aff_combination_to_tree): Use wide-int interfaces.
21300 (aff_combination_remove_elt): Likewise.
21301 (aff_combination_add_product): Take a widest_int instead of
21302 a double_int.
21303 (aff_combination_mult): Use wide-int interfaces.
21304 (aff_combination_expand): Likewise.
21305 (double_int_constant_multiple_p): Delete.
21306 (wide_int_constant_multiple_p): New.
21307 (aff_combination_constant_multiple_p): Take a widest_int pointer
21308 instead of a double_int pointer.
21309 (print_aff): Use wide-int interfaces.
21310 (get_inner_reference_aff): Take a widest_int pointer
21311 instead of a double_int pointer.
21312 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
21313 * tree-affine.h: Include wide-int.h.
21314 (struct aff_comb_elt): Change type of coef to widest_int.
21315 (struct affine_tree_combination): Change type of offset to widest_int.
21316 (double_int_ext_for_comb): Delete.
21317 (wide_int_ext_for_comb): New.
21318 (aff_combination_const): Use widest_int instead of double_int.
21319 (aff_combination_scale): Likewise.
21320 (aff_combination_add_elt): Likewise.
21321 (aff_combination_constant_multiple_p): Likewise.
21322 (get_inner_reference_aff): Likewise.
21323 (aff_comb_cannot_overlap_p): Likewise.
21324 (aff_combination_zero_p): Use wide-int interfaces.
21325 * tree.c: Include tree.h.
21326 (init_ttree): Use make_int_cst.
21327 (tree_code_size): Removed code for INTEGER_CST case.
21328 (tree_size): Add INTEGER_CST case.
21329 (make_node_stat): Update comment.
21330 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
21331 (build_int_cst_type): Use wide-int interfaces.
21332 (double_int_to_tree): Likewise.
21333 (double_int_fits_to_tree_p): Delete.
21334 (force_fit_type_double): Delete.
21335 (force_fit_type): New.
21336 (int_cst_hash_hash): Use wide-int interfaces.
21337 (int_cst_hash_eq): Likewise.
21338 (build_int_cst_wide): Delete.
21339 (wide_int_to_tree): New.
21340 (cache_integer_cst): Use wide-int interfaces.
21341 (build_low_bits_mask): Likewise.
21342 (cst_and_fits_in_hwi): Likewise.
21343 (real_value_from_int_cst): Likewise.
21344 (make_int_cst_stat): New.
21345 (integer_zerop): Use wide_int interfaces.
21346 (integer_onep): Likewise.
21347 (integer_all_onesp): Likewise.
21348 (integer_pow2p): Likewise.
21349 (integer_nonzerop): Likewise.
21350 (tree_log2): Likewise.
21351 (tree_floor_log2): Likewise.
21352 (tree_ctz): Likewise.
21353 (int_size_in_bytes): Likewise.
21354 (mem_ref_offset): Return an offset_int rather than a double_int.
21355 (build_type_attribute_qual_variant): Use wide_int interfaces.
21356 (type_hash_eq): Likewise
21357 (tree_int_cst_equal): Likewise.
21358 (tree_int_cst_lt): Delete.
21359 (tree_int_cst_compare): Likewise.
21360 (tree_fits_shwi_p): Use wide_int interfaces.
21361 (tree_fits_uhwi_p): Likewise.
21362 (tree_int_cst_sign_bit): Likewise.
21363 (tree_int_cst_sgn): Likewise.
21364 (tree_int_cst_min_precision): Take a signop rather than a bool.
21365 (simple_cst_equal): Use wide_int interfaces.
21366 (compare_tree_int): Likewise.
21367 (iterative_hash_expr): Likewise.
21368 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
21369 INT_CST_LT.
21370 (get_type_static_bounds): Use wide_int interfaces.
21371 (tree_int_cst_elt_check_failed): New.
21372 (build_common_tree_nodes): Reordered to set prec before filling in
21373 value.
21374 (int_cst_value): Check cst_and_fits_in_hwi.
21375 (widest_int_cst_value): Use wide_int interfaces.
21376 (upper_bound_in_type): Likewise.
21377 (lower_bound_in_type): Likewise.
21378 (num_ending_zeros): Likewise.
21379 (drop_tree_overflow): Likewise.
21380 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
21381 (gen_conditions_for_pow_cst_base): Likewise.
21382 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
21383 (group_case_labels_stmt): Use wide-int interfaces.
21384 (verify_gimple_assign_binary): Likewise.
21385 (print_loop): Likewise.
21386 * tree-chrec.c (tree_fold_binomial): Likewise.
21387 * tree-core.h (struct tree_base): Add int_length.
21388 (struct tree_int_cst): Change rep of value.
21389 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
21390 (dr_may_alias_p): Likewise.
21391 (max_stmt_executions_tree): Likewise.
21392 * tree.def (INTEGER_CST): Update comment.
21393 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
21394 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
21395 * tree-dump.c: Include wide-int.h and wide-int-print.h.
21396 (dequeue_and_dump): Use wide-int interfaces.
21397 * tree.h: Include wide-int.h.
21398 (NULL_TREE): Moved to earlier loc in file.
21399 (TREE_INT_CST_ELT_CHECK): New.
21400 (tree_int_cst_elt_check_failed): New.
21401 (TYPE_SIGN): New.
21402 (TREE_INT_CST): Delete.
21403 (TREE_INT_CST_LOW): Use wide-int interfaces.
21404 (TREE_INT_CST_HIGH): Delete.
21405 (TREE_INT_CST_NUNITS): New.
21406 (TREE_INT_CST_EXT_NUNITS): Likewise.
21407 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
21408 (TREE_INT_CST_ELT): Likewise.
21409 (INT_CST_LT): Delete.
21410 (tree_int_cst_elt_check): New (two forms).
21411 (type_code_size): Update comment.
21412 (make_int_cst_stat, make_int_cst): New.
21413 (tree_to_double_int): Delete.
21414 (double_int_fits_to_tree_p): Delete.
21415 (force_fit_type_double): Delete.
21416 (build_int_cstu): Replace with out-of-line function.
21417 (build_int_cst_wide): Delete.
21418 (tree_int_cst_lt): Define inline.
21419 (tree_int_cst_le): New.
21420 (tree_int_cst_compare): Define inline.
21421 (tree_int_cst_min_precision): Take a signop rather than a bool.
21422 (wi::int_traits <const_tree>): New.
21423 (wi::int_traits <tree>): New.
21424 (wi::extended_tree): New.
21425 (wi::int_traits <wi::extended_tree>): New.
21426 (wi::to_widest): New.
21427 (wi::to_offset): New.
21428 (wi::fits_to_tree_p): New.
21429 (wi::min_value): New.
21430 (wi::max_value): New.
21431 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
21432 (copy_tree_body_r): Likewise.
21433 * tree-object-size.c (compute_object_offset): Likewise.
21434 (addr_object_size): Likewise.
21435 * tree-predcom.c: Include wide-int-print.h.
21436 (struct dref_d): Change type of offset to widest_int.
21437 (dump_dref): Call wide-int printer.
21438 (aff_combination_dr_offset): Use wide-int interfaces.
21439 (determine_offset): Take a widest_int pointer rather than a
21440 double_int pointer.
21441 (split_data_refs_to_components): Use wide-int interfaces.
21442 (suitable_component_p): Likewise.
21443 (order_drefs): Likewise.
21444 (add_ref_to_chain): Likewise.
21445 (valid_initializer_p): Likewise.
21446 (determine_roots_comp): Likewise.
21447 * tree-pretty-print.c: Include wide-int-print.h.
21448 (dump_generic_node): Use wide-int interfaces.
21449 * tree-sra.c (sra_ipa_modify_expr): Likewise.
21450 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
21451 (move_fixed_address_to_symbol): Likewise.
21452 (move_hint_to_base): Likewise.
21453 (move_pointer_to_base): Likewise.
21454 (move_variant_to_index): Likewise.
21455 (most_expensive_mult_to_index): Likewise.
21456 (addr_to_parts): Likewise.
21457 (copy_ref_info): Likewise.
21458 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
21459 (indirect_refs_may_alias_p): Likewise.
21460 (stmt_kills_ref_p_1): Likewise.
21461 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
21462 * tree-ssa-ccp.c: Update comment at top of file. Include
21463 wide-int-print.h.
21464 (struct prop_value_d): Change type of mask to widest_int.
21465 (extend_mask): New function.
21466 (dump_lattice_value): Use wide-int interfaces.
21467 (get_default_value): Likewise.
21468 (set_constant_value): Likewise.
21469 (set_value_varying): Likewise.
21470 (valid_lattice_transition): Likewise.
21471 (set_lattice_value): Likewise.
21472 (value_to_double_int): Delete.
21473 (value_to_wide_int): New.
21474 (get_value_from_alignment): Use wide-int interfaces.
21475 (get_value_for_expr): Likewise.
21476 (do_dbg_cnt): Likewise.
21477 (ccp_finalize): Likewise.
21478 (ccp_lattice_meet): Likewise.
21479 (bit_value_unop_1): Use widest_ints rather than double_ints.
21480 (bit_value_binop_1): Likewise.
21481 (bit_value_unop): Use wide-int interfaces.
21482 (bit_value_binop): Likewise.
21483 (bit_value_assume_aligned): Likewise.
21484 (evaluate_stmt): Likewise.
21485 (ccp_fold_stmt): Likewise.
21486 (visit_cond_stmt): Likewise.
21487 (ccp_visit_stmt): Likewise.
21488 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
21489 (constant_pointer_difference): Likewise.
21490 (associate_pointerplus): Likewise.
21491 (combine_conversions): Likewise.
21492 * tree-ssa-loop.h: Include wide-int.h.
21493 (struct tree_niter_desc): Change type of max to widest_int.
21494 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
21495 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
21496 (remove_redundant_iv_tests): Likewise.
21497 (canonicalize_loop_induction_variables): Likewise.
21498 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
21499 (constant_multiple_of): Take a widest_int pointer instead of
21500 a double_int pointer.
21501 (get_computation_aff): Use wide-int interfaces.
21502 (ptr_difference_cost): Likewise.
21503 (difference_cost): Likewise.
21504 (get_loop_invariant_expr_id): Likewise.
21505 (get_computation_cost_at): Likewise.
21506 (iv_elimination_compare_lt): Likewise.
21507 (may_eliminate_iv): Likewise.
21508 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
21509 instead of double_int.
21510 (max_loop_iterations): Likewise.
21511 (max_stmt_executions): Likewise.
21512 (estimated_stmt_executions): Likewise.
21513 * tree-ssa-loop-niter.c: Include wide-int-print.h.
21514 (split_to_var_and_offset): Use wide-int interfaces.
21515 (determine_value_range): Likewise.
21516 (bound_difference_of_offsetted_base): Likewise.
21517 (bounds_add): Take a widest_int instead of a double_int.
21518 (number_of_iterations_ne_max): Use wide-int interfaces.
21519 (number_of_iterations_ne): Likewise.
21520 (number_of_iterations_lt_to_ne): Likewise.
21521 (assert_loop_rolls_lt): Likewise.
21522 (number_of_iterations_lt): Likewise.
21523 (number_of_iterations_le): Likewise.
21524 (number_of_iterations_cond): Likewise.
21525 (number_of_iterations_exit): Likewise.
21526 (finite_loop_p): Likewise.
21527 (derive_constant_upper_bound_assign): Likewise.
21528 (derive_constant_upper_bound): Return a widest_int.
21529 (derive_constant_upper_bound_ops): Likewise.
21530 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
21531 (record_estimate): Take a widest_int rather than a double_int.
21532 (record_nonwrapping_iv): Use wide-int interfaces.
21533 (double_int_cmp): Delete.
21534 (wide_int_cmp): New.
21535 (bound_index): Take a widest_int rather than a double_int.
21536 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
21537 (maybe_lower_iteration_bound): Likewise.
21538 (estimate_numbers_of_iterations_loop): Likewise.
21539 (estimated_loop_iterations): Take a widest_int pointer than than
21540 a double_int pointer.
21541 (estimated_loop_iterations_int): Use wide-int interfaces.
21542 (max_loop_iterations): Take a widest_int pointer than than
21543 a double_int pointer.
21544 (max_loop_iterations_int): Use wide-int interfaces.
21545 (max_stmt_executions): Take a widest_int pointer than than
21546 a double_int pointer.
21547 (estimated_stmt_executions): Likewise.
21548 (n_of_executions_at_most): Use wide-int interfaces.
21549 (scev_probably_wraps_p): Likewise.
21550 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
21551 to real_to_integer.
21552 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
21553 interfaces.
21554 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
21555 double_ints. Adjust for trailing_wide_ints <3> representation.
21556 (set_nonzero_bits): Likewise.
21557 (get_range_info): Return wide_ints rather than double_ints.
21558 Adjust for trailing_wide_ints <3> representation.
21559 (get_nonzero_bits): Likewise.
21560 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
21561 representation.
21562 * tree-ssanames.h (struct range_info_def): Replace min, max and
21563 nonzero_bits with a trailing_wide_ints <3>.
21564 (set_range_info): Use wide_int_refs rather than double_ints.
21565 (set_nonzero_bits): Likewise.
21566 (get_range_info): Return wide_ints rather than double_ints.
21567 (get_nonzero_bits): Likewise.
21568 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
21569 * tree-ssa-pre.c (phi_translate_1): Likewise.
21570 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
21571 (acceptable_pow_call): Likewise.
21572 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
21573 interfaces.
21574 (vn_reference_fold_indirect): Likewise.
21575 (vn_reference_maybe_forwprop_address): Likewise.
21576 (valueize_refs_1): Likewise.
21577 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
21578 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
21579 tree_int_cst_lt and tree_int_cst_le.
21580 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
21581 interfaces.
21582 (streamer_alloc_tree): Likewise.
21583 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
21584 (streamer_write_tree_header): Likewise.
21585 (streamer_write_integer_cst): Likewise.
21586 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
21587 (build_constructors): Likewise.
21588 (array_value_type): Likewise.
21589 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
21590 (vect_check_gather): Likewise.
21591 * tree-vect-generic.c (build_replicated_const): Likewise.
21592 (expand_vector_divmod): Likewise.
21593 * tree-vect-loop.c (vect_transform_loop): Likewise.
21594 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
21595 (vect_do_peeling_for_alignment): Likewise.
21596 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
21597 * tree-vrp.c: Include wide-int.h.
21598 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
21599 (extract_range_from_assert): Use wide-int interfaces.
21600 (vrp_int_const_binop): Likewise.
21601 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
21602 double_int pointers.
21603 (ranges_from_anti_range): Use wide-int interfaces.
21604 (quad_int_cmp): Delete.
21605 (quad_int_pair_sort): Likewise.
21606 (extract_range_from_binary_expr_1): Use wide-int interfaces.
21607 (extract_range_from_unary_expr_1): Likewise.
21608 (adjust_range_with_scev): Likewise.
21609 (masked_increment): Take and return wide_ints rather than double_ints.
21610 (register_edge_assert_for_2): Use wide-int interfaces.
21611 (check_array_ref): Likewise.
21612 (search_for_addr_array): Likewise.
21613 (maybe_set_nonzero_bits): Likewise.
21614 (union_ranges): Pass an integer of the correct type instead of
21615 using integer_one_node.
21616 (intersect_ranges): Likewise.
21617 (simplify_truth_ops_using_ranges): Likewise.
21618 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
21619 (range_fits_type_p): Likewise.
21620 (simplify_cond_using_ranges): Likewise. Take a signop rather than
21621 a bool.
21622 (simplify_conversion_using_ranges): Use wide-int interfaces.
21623 (simplify_float_conversion_using_ranges): Likewise.
21624 (vrp_finalize): Likewise.
21625 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
21626 (gimple_stringops_transform): Likewise.
21627 * varasm.c (decode_addr_const): Likewise.
21628 (const_hash_1): Likewise.
21629 (const_rtx_hash_1): Likewise
21630 (output_constant): Likewise.
21631 (array_size_for_constructor): Likewise.
21632 (output_constructor_regular_field): Likewise.
21633 (output_constructor_bitfield): Likewise.
21634 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
21635 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
21636 GENERATOR_FILEs.
21637 * gencheck.c: Define BITS_PER_UNIT.
21638 * wide-int.cc: New.
21639 * wide-int.h: New.
21640 * wide-int-print.cc: New.
21641 * wide-int-print.h: New.
21642
21643 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21644
21645 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
21646
21647 2014-05-06 Richard Biener <rguenther@suse.de>
21648
21649 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
21650 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
21651 (TODO_verify_all): Adjust.
21652 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
21653 TODO_verify_stmts and TODO_verify_rtl_sharing.
21654 * bb-reorder.c: Likewise.
21655 * cfgexpand.c: Likewise.
21656 * cprop.c: Likewise.
21657 * cse.c: Likewise.
21658 * function.c: Likewise.
21659 * fwprop.c: Likewise.
21660 * gcse.c: Likewise.
21661 * gimple-ssa-isolate-paths.c: Likewise.
21662 * gimple-ssa-strength-reduction.c: Likewise.
21663 * ipa-split.c: Likewise.
21664 * loop-init.c: Likewise.
21665 * loop-unroll.c: Likewise.
21666 * lower-subreg.c: Likewise.
21667 * modulo-sched.c: Likewise.
21668 * postreload-gcse.c: Likewise.
21669 * predict.c: Likewise.
21670 * recog.c: Likewise.
21671 * sched-rgn.c: Likewise.
21672 * store-motion.c: Likewise.
21673 * tracer.c: Likewise.
21674 * trans-mem.c: Likewise.
21675 * tree-call-cdce.c: Likewise.
21676 * tree-cfg.c: Likewise.
21677 * tree-cfgcleanup.c: Likewise.
21678 * tree-complex.c: Likewise.
21679 * tree-eh.c: Likewise.
21680 * tree-emutls.c: Likewise.
21681 * tree-if-conv.c: Likewise.
21682 * tree-into-ssa.c: Likewise.
21683 * tree-loop-distribution.c: Likewise.
21684 * tree-object-size.c: Likewise.
21685 * tree-parloops.c: Likewise.
21686 * tree-pass.h: Likewise.
21687 * tree-sra.c: Likewise.
21688 * tree-ssa-ccp.c: Likewise.
21689 * tree-ssa-copy.c: Likewise.
21690 * tree-ssa-copyrename.c: Likewise.
21691 * tree-ssa-dce.c: Likewise.
21692 * tree-ssa-dom.c: Likewise.
21693 * tree-ssa-dse.c: Likewise.
21694 * tree-ssa-forwprop.c: Likewise.
21695 * tree-ssa-ifcombine.c: Likewise.
21696 * tree-ssa-loop-ch.c: Likewise.
21697 * tree-ssa-loop-ivcanon.c: Likewise.
21698 * tree-ssa-loop.c: Likewise.
21699 * tree-ssa-math-opts.c: Likewise.
21700 * tree-ssa-phiopt.c: Likewise.
21701 * tree-ssa-phiprop.c: Likewise.
21702 * tree-ssa-pre.c: Likewise.
21703 * tree-ssa-reassoc.c: Likewise.
21704 * tree-ssa-sink.c: Likewise.
21705 * tree-ssa-strlen.c: Likewise.
21706 * tree-ssa-tail-merge.c: Likewise.
21707 * tree-ssa-uncprop.c: Likewise.
21708 * tree-switch-conversion.c: Likewise.
21709 * tree-tailcall.c: Likewise.
21710 * tree-vect-generic.c: Likewise.
21711 * tree-vectorizer.c: Likewise.
21712 * tree-vrp.c: Likewise.
21713 * tsan.c: Likewise.
21714 * var-tracking.c: Likewise.
21715 * bt-load.c: Likewise.
21716 * cfgcleanup.c: Likewise.
21717 * combine-stack-adj.c: Likewise.
21718 * combine.c: Likewise.
21719 * compare-elim.c: Likewise.
21720 * config/epiphany/resolve-sw-modes.c: Likewise.
21721 * config/i386/i386.c: Likewise.
21722 * config/mips/mips.c: Likewise.
21723 * config/s390/s390.c: Likewise.
21724 * config/sh/sh_treg_combine.cc: Likewise.
21725 * config/sparc/sparc.c: Likewise.
21726 * dce.c: Likewise.
21727 * dse.c: Likewise.
21728 * final.c: Likewise.
21729 * ifcvt.c: Likewise.
21730 * mode-switching.c: Likewise.
21731 * passes.c: Likewise.
21732 * postreload.c: Likewise.
21733 * ree.c: Likewise.
21734 * reg-stack.c: Likewise.
21735 * regcprop.c: Likewise.
21736 * regrename.c: Likewise.
21737 * web.c: Likewise.
21738
21739 2014-05-06 Richard Biener <rguenther@suse.de>
21740
21741 PR middle-end/61070
21742 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
21743 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
21744
21745 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
21746
21747 PR ipa/60965
21748 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
21749
21750 2014-05-05 Radovan Obradovic <robradovic@mips.com>
21751 Tom de Vries <tom@codesourcery.com>
21752
21753 * target.def (call_fusage_contains_non_callee_clobbers): New
21754 DEFHOOKPOD.
21755 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
21756 Hooks to @menu.
21757 (@node Miscellaneous Register Hooks): New node.
21758 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
21759 * doc/tm.texi: Regenerate.
21760
21761 2014-05-05 Marek Polacek <polacek@redhat.com>
21762
21763 PR driver/61065
21764 * opts.c (common_handle_option): Call error_at instead of warning_at.
21765
21766 2014-05-05 Richard Biener <rguenther@suse.de>
21767
21768 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
21769 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
21770 under the TODO_verify_il umbrella.
21771
21772 2014-05-05 Richard Biener <rguenther@suse.de>
21773
21774 * passes.c (execute_function_todo): Move TODO_verify_flow under
21775 the TODO_verify_ul umbrella.
21776
21777 2014-05-05 Richard Biener <rguenther@suse.de>
21778
21779 PR middle-end/61010
21780 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
21781 X & CST away from a CST that is the mask of a mode.
21782
21783 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21784
21785 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
21786 int argument to enum machine_mode.
21787 (picochip_class_max_nregs): Ditto.
21788 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
21789 (picochip_class_max_nregs): Ditto.
21790
21791 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21792
21793 * target.def: Add new target hook.
21794 * doc/tm.texi: Regenerate.
21795 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
21796 * targhooks.c (default_keep_leaf_when_profiled): New function.
21797
21798 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
21799 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
21800
21801 2014-05-05 Bin Cheng <bin.cheng@arm.com>
21802
21803 PR tree-optimization/60363
21804 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
21805 (copy_phi_args): New parameters. Call get_value_locus_in_path.
21806 (update_destination_phis): New parameter.
21807 (create_edge_and_update_destination_phis): Ditto.
21808 (ssa_fix_duplicate_block_edges): Pass new arguments.
21809 (thread_single_edge): Ditto.
21810
21811 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
21812
21813 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
21814 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
21815 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
21816 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
21817 Use RS6000_BTM_HARD_FLOAT.
21818 (BU_MISC_2): Likewise.
21819 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21820 RS6000_BTM_HARD_FLOAT.
21821 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
21822 is explicitly used.
21823 (rs6000_invalid_builtin): Add hard floating builtin support.
21824 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
21825 hard float builtins.
21826 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
21827
21828 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
21829
21830 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
21831 Add missing function* argument.
21832
21833 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
21834
21835 * lra-constraints.c (valid_address_p): Move earlier in file.
21836 Add a constraint argument to the address_info version.
21837 (satisfies_memory_constraint_p): New function.
21838 (satisfies_address_constraint_p): Likewise.
21839 (process_alt_operands, curr_insn_transform): Use them.
21840 (process_address): Pass the constraint to valid_address_p when
21841 checking address operands.
21842
21843 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
21844
21845 * config/mips/mips.c (mips_isa_rev): New variable.
21846 (mips_set_architecture): Set it.
21847 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
21848 from mips_isa_rev.
21849 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
21850 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
21851 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
21852 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
21853 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
21854 conditions in terms of mips_isa_rev.
21855 (mips_isa_rev): Declare.
21856
21857 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
21858
21859 * config/sh/sh-mem.cc: Use tabs instead of spaces.
21860 (prob_unlikely, prob_likely): Make variables const.
21861
21862 2014-05-03 Denis Chertykov <chertykov@gmail.com>
21863
21864 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
21865
21866 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
21867
21868 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
21869
21870 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
21871
21872 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
21873 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
21874 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
21875 functions.
21876 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
21877 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
21878 sh_pass_in_reg_p.
21879 Replace usage of ROUND_REG with sh_round_reg.
21880 Use CEIL instead of ROUND_ADVANCE.
21881
21882 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
21883
21884 PR target/61026
21885 * config/sh/sh.c: Include stdlib headers before everything else.
21886
21887 2014-05-02 Jakub Jelinek <jakub@redhat.com>
21888
21889 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
21890 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
21891 (gimplify_adjust_omp_clauses): Simd region is never
21892 directly nested in combined parallel. Instead, for linear
21893 with copyin/copyout, if in combined for simd loop, make decl
21894 firstprivate/lastprivate on OMP_FOR.
21895 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
21896 expand_omp_for_static_chunk): When setting endvar, also set
21897 fd->loop.v to the same value.
21898
21899 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
21900
21901 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
21902
21903 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
21904
21905 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
21906 expression.
21907
21908 2014-05-02 Marek Polacek <polacek@redhat.com>
21909
21910 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
21911
21912 2014-05-02 Kito Cheng <kito@0xlab.org>
21913
21914 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
21915 to a C expression marco.
21916 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
21917 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
21918 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
21919 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
21920 HONOR_REG_ALLOC_ORDER.
21921 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
21922
21923 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21924
21925 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
21926
21927 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21928
21929 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
21930
21931 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
21932
21933 * tree-if-conv.c (is_cond_scalar_reduction): New function.
21934 (convert_scalar_cond_reduction): Likewise.
21935 (predicate_scalar_phi): Add recognition and transformation
21936 of simple conditioanl reduction to be vectorizable.
21937
21938 2014-05-01 Marek Polacek <polacek@redhat.com>
21939
21940 PR c/43245
21941 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
21942
21943 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
21944
21945 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
21946 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
21947 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
21948 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
21949 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
21950 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
21951 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
21952 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
21953
21954 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
21955
21956 * config/arc/arc.opt (mlra): Move comment above option name
21957 to avoid mis-parsing as language options.
21958
21959 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21960
21961 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
21962 * config/sol2.h: ... here.
21963 * config/sol2-10.h: Remove.
21964
21965 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
21966 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
21967 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
21968 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
21969 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
21970 * config/sol2.h: ... here.
21971 (SECTION_NAME_FORMAT): Don't redefine.
21972 (STARTFILE_ARCH32_SPEC): Rename to ...
21973 (STARTFILE_ARCH_SPEC): ... this.
21974 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
21975 * config/sparc/sol2.h: ... here.
21976 (SECTION_NAME_FORMAT): Don't undef.
21977 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
21978 (SUBTARGET_EXTRA_SPECS): Remove.
21979 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
21980
21981 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
21982 (MD_STARTFILE_PREFIX): Remove.
21983 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
21984 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
21985 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
21986 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
21987 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
21988 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
21989 * config/i386/sol2.h: ... here.
21990 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
21991 * config/i386/sol2-bi.h: Remove.
21992 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
21993 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
21994
21995 * config/i386/t-sol2-64: Rename to ...
21996 * config/i386/t-sol2: ... this.
21997 * config/sparc/t-sol2-64: Rename to ...
21998 * config/sparc/t-sol2: ... this.
21999
22000 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
22001 sol2_tm_file_head, sol2_tm_file_tail.
22002 Include ${cpu_type}/sol2.h before sol2.h.
22003 Remove sol2-10.h.
22004 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
22005 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
22006 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
22007 Reflect i386/t-sol2-64 renaming.
22008 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
22009 Reflect sparc/t-sol2-64 renaming.
22010
22011 2014-04-30 Richard Biener <rguenther@suse.de>
22012
22013 * passes.c (execute_function_todo): Move TODO_verify_stmts
22014 and TODO_verify_ssa under the TODO_verify_il umbrella.
22015 * tree-ssa.h (verify_ssa): Adjust prototype.
22016 * tree-ssa.c (verify_ssa): Add parameter to tell whether
22017 we should verify SSA operands.
22018 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
22019 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
22020 whether we should verify whether not throwing stmts have EH info.
22021 * graphite-scop-detection.c (create_sese_edges): Adjust.
22022 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
22023 * tree-eh.c (lower_try_finally_switch): Do not add the
22024 default case label twice.
22025
22026 2014-04-30 Marek Polacek <polacek@redhat.com>
22027
22028 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
22029 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
22030 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
22031 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
22032
22033 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
22034
22035 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
22036 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
22037 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
22038 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
22039 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
22040 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
22041 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
22042 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
22043
22044 2014-04-29 David Malcolm <dmalcolm@redhat.com>
22045
22046 * tree-cfg.c (dump_function_to_file): Dump the return type of
22047 functions, in a line to itself before the function body, mimicking
22048 the layout of a C function.
22049
22050 2014-04-29 Jakub Jelinek <jakub@redhat.com>
22051
22052 PR tree-optimization/60971
22053 * tree-tailcall.c (process_assignment): Reject conversions which
22054 reduce precision.
22055
22056 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
22057
22058 * calls.c (initialize_argument_information): Always treat
22059 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
22060 (expand_call): Likewise.
22061 (emit_library_call_calue_1): Likewise.
22062 * expr.c (PUSH_ARGS_REVERSED): Do not define.
22063 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
22064 code accordingly.
22065
22066 2014-04-29 Nick Clifton <nickc@redhat.com>
22067
22068 * config/msp430/msp430.md (umulsidi): Fix typo.
22069 (mulhisi3): Enable even inside interrupt handlers.
22070 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
22071 bigger return address pushed in large mode.
22072
22073 2014-04-29 Nick Clifton <nickc@redhat.com>
22074
22075 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
22076 (arc_init_reg_tables): Use a machine_mode enum to iterate over
22077 available modes.
22078 * config/m32r/m32r.c (init_reg_tables): Likewise.
22079 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
22080 enum to hold the modes.
22081
22082 2014-04-29 Richard Biener <rguenther@suse.de>
22083
22084 * dominance.c (free_dominance_info): Add overload with
22085 function parameter.
22086 (dom_info_state): Likewise.
22087 (dom_info_available_p): Likewise.
22088 * basic-block.h (free_dominance_info, dom_info_state,
22089 dom_info_available_p): Declare overloads.
22090 * passes.c (execute_function_todo): Verify that verifiers
22091 don't change dominator info state. Drop dominator info
22092 for IPA pass invocations.
22093 * cgraph.c (release_function_body): Restore asserts that
22094 dominator information is released.
22095
22096 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
22097
22098 * doc/invoke.texi: Fix typo.
22099 * tree-vrp.c: Fix typos.
22100 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
22101
22102 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
22103
22104 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
22105
22106 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
22107
22108 * config/aarch64/aarch64-builtins.c
22109 (aarch64_types_storestruct_lane_qualifiers): New.
22110 (TYPES_STORESTRUCT_LANE): Likewise.
22111 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
22112 (st3_lane): Likewise.
22113 (st4_lane): Likewise.
22114 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
22115 (vec_store_lanesci_lane<mode>): Likewise.
22116 (vec_store_lanesxi_lane<mode>): Likewise.
22117 (aarch64_st2_lane<VQ:mode>): Likewise.
22118 (aarch64_st3_lane<VQ:mode>): Likewise.
22119 (aarch64_st4_lane<VQ:mode>): Likewise.
22120 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
22121 * config/aarch64/arm_neon.h
22122 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
22123 use new macro arguments.
22124 (__ST3_LANE_FUNC): Likewise.
22125 (__ST4_LANE_FUNC): Likewise.
22126 * config/aarch64/iterators.md (V_TWO_ELEM): New.
22127 (V_THREE_ELEM): Likewise.
22128 (V_FOUR_ELEM): Likewise.
22129
22130 2014-04-28 David Malcolm <dmalcolm@redhat.com>
22131
22132 * doc/gimple.texi: Replace the description of the now-defunct
22133 union gimple_statement_d with a diagram showing the
22134 gimple_statement_base class hierarchy and its relationships to
22135 the GSS_ and GIMPLE_ enums.
22136
22137 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
22138
22139 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
22140 * config/aarch64/aarch64.c
22141 (aarch64_cannot_change_mode_class): Weaken conditions.
22142 (aarch64_modes_tieable_p): New.
22143 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
22144
22145 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
22146
22147 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
22148 (loadsync_<mode>): Change mode.
22149 (load_quadpti, store_quadpti): New.
22150 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
22151 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
22152
22153 2014-04-28 Martin Jambor <mjambor@suse.cz>
22154
22155 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
22156 same alias type as the original statement.
22157 (subreplacement_assignment_data): New type.
22158 (handle_unscalarized_data_in_subtree): New type of parameter,
22159 generate new memory accesses with same alias type as the original
22160 statement.
22161 (load_assign_lhs_subreplacements): Likewise.
22162 (sra_modify_constructor_assign): Generate new memory accesses with
22163 same alias type as the original statement.
22164
22165 2014-04-28 Richard Biener <rguenther@suse.de>
22166
22167 * tree-pass.h (TODO_verify_il): Define.
22168 (TODO_verify_all): Complete properly.
22169 * passes.c (execute_function_todo): Move existing loop-closed
22170 SSA verification under TODO_verify_il.
22171 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
22172 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
22173 Fix tree sharing issue.
22174
22175 2014-04-28 Richard Biener <rguenther@suse.de>
22176
22177 PR middle-end/60092
22178 * builtins.def (DEF_C11_BUILTIN): Add.
22179 (BUILT_IN_ALIGNED_ALLOC): Likewise.
22180 * coretypes.h (enum function_class): Add function_c11_misc.
22181 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
22182 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
22183 (call_may_clobber_ref_p_1): Likewise.
22184 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
22185 (mark_all_reaching_defs_necessary_1): Likewise.
22186 (propagate_necessity): Likewise.
22187 (eliminate_unnecessary_stmts): Likewise.
22188 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
22189
22190 2014-04-28 Richard Biener <rguenther@suse.de>
22191
22192 * tree-vrp.c (vrp_var_may_overflow): Remove.
22193 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
22194 with overflow immediately bump to one before that value and
22195 let iteration figure out overflow status.
22196
22197 2014-04-28 Richard Biener <rguenther@suse.de>
22198
22199 * configure.ac: Do valgrind header checks unconditionally.
22200 Add --enable-valgrind-annotations.
22201 * system.h: Guard valgrind header inclusion with
22202 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
22203 * alloc-pool.c (pool_alloc, pool_free): Use
22204 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
22205 to guard possibly dead code.
22206 * config.in: Regenerated.
22207 * configure: Likewise.
22208
22209 2014-04-28 Jeff Law <law@redhat.com>
22210
22211 PR tree-optimization/60902
22212 * tree-ssa-threadedge.c
22213 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
22214 over real defs when invalidating outputs from statements that do not
22215 produce useful outputs for threading.
22216
22217 2014-04-28 Richard Biener <rguenther@suse.de>
22218
22219 PR tree-optimization/60979
22220 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
22221 SCOPs that end in a block with a successor with abnormal
22222 predecessors.
22223
22224 2014-04-28 Richard Biener <rguenther@suse.de>
22225
22226 * tree-pass.h (execute_pass_list): Adjust prototype.
22227 * passes.c (pass_manager::execute_early_local_passes): Adjust.
22228 (do_per_function): Change callback signature, push all actual
22229 work to the callbals.
22230 (do_per_function_toporder): Likewise.
22231 (execute_function_dump): Adjust.
22232 (execute_function_todo): Likewise.
22233 (clear_last_verified): Likewise.
22234 (verify_curr_properties): Likewise.
22235 (update_properties_after_pass): Likewise.
22236 (execute_pass_list_1): Split out from ...
22237 (execute_pass_list): ... here. Adjust.
22238 (execute_ipa_pass_list): Likewise.
22239 * cgraphunit.c (cgraph_add_new_function): Adjust.
22240 (analyze_function): Likewise.
22241 (expand_function): Likewise.
22242 * cgraph.c (release_function_body): Free dominance info
22243 here instead of asserting it was magically freed elsewhere.
22244
22245 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
22246
22247 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
22248 * configure: Regenerate.
22249 * config/sparc/sparc.opt (muser-mode): New option.
22250 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
22251 for LEON3.
22252 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
22253 * doc/invoke.texi (SPARC options): Document -muser-mode.
22254
22255 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
22256
22257 * cselib.c (find_slot_memmode): Delete.
22258 (cselib_hasher): Change compare_type to a struct.
22259 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
22260 constants.
22261 (preserve_constants_and_equivs): Adjust for new compare_type.
22262 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
22263 (wrap_constant): Delete.
22264 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
22265
22266 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
22267
22268 * doc/install.texi (Building with profile feedback): Remove
22269 outdated sentence.
22270
22271 2014-04-26 Tom de Vries <tom@codesourcery.com>
22272
22273 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
22274 array accesses.
22275
22276 2014-04-25 Cary Coutant <ccoutant@google.com>
22277
22278 PR debug/60929
22279 * dwarf2out.c (should_move_die_to_comdat): A type definition
22280 can contain a subprogram definition, but don't move it to a
22281 comdat unit.
22282 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
22283 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
22284 from original DIE.
22285 (clone_tree_hash): Rename to...
22286 (clone_tree_partial): ...this; change callers. Copy
22287 DW_TAG_subprogram DIEs as declarations.
22288 (copy_decls_walk): Don't copy children of a declaration into a
22289 type unit.
22290
22291 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
22292
22293 PR target/60969
22294 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
22295 alternative 12.
22296
22297 2014-04-25 Jiong Wang <jiong.wang@arm.com>
22298
22299 * config/arm/predicates.md (call_insn_operand): Add long_call check.
22300 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
22301 reg for long_call.
22302 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
22303 restriction.
22304
22305 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22306
22307 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
22308
22309 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22310
22311 PR tree-optimization/60930
22312 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
22313 creating a multiply candidate by folding two constant
22314 multiplicands when the result overflows.
22315
22316 2014-04-25 Jakub Jelinek <jakub@redhat.com>
22317
22318 PR tree-optimization/60960
22319 * tree-vect-generic.c (expand_vector_operation): Only call
22320 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
22321
22322 2014-04-25 Tom de Vries <tom@codesourcery.com>
22323
22324 * expr.c (clobber_reg_mode): New function.
22325 * expr.h (clobber_reg): New function.
22326
22327 2014-04-25 Tom de Vries <tom@codesourcery.com>
22328
22329 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
22330 clobbers.
22331
22332 2014-04-25 Radovan Obradovic <robradovic@mips.com>
22333 Tom de Vries <tom@codesourcery.com>
22334
22335 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
22336 handle.
22337 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
22338 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
22339 new argument to find_all_hard_reg_sets call.
22340
22341 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22342
22343 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
22344 Use HOST_WIDE_INT_C for mask literal.
22345 (aarch_rev16_shleft_mask_imm_p): Likewise.
22346
22347 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
22348
22349 PR target/60941
22350 * config/sparc/sparc.md (ashlsi3_extend): Delete.
22351
22352 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
22353
22354 PR preprocessor/56540
22355 * config/i386/i386-c.c (ix86_target_macros): Define
22356 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
22357
22358 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22359
22360 * configure.ac (tga_func): Remove.
22361 (LIB_TLS_SPEC): Remove.
22362 * configure: Regenerate.
22363 * config.in: Regenerate.
22364 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
22365
22366 2014-04-25 Richard Biener <rguenther@suse.de>
22367
22368 PR ipa/60912
22369 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
22370 call stmt use/clobber sets during stmt walk instead of
22371 walking the possibly incomplete set of caller edges.
22372
22373 2014-04-25 Richard Biener <rguenther@suse.de>
22374
22375 PR ipa/60911
22376 * passes.c (apply_ipa_transforms): Inline into only caller ...
22377 (execute_one_pass): ... here. Properly bring in function
22378 bodies for nodes we want to apply IPA transforms to.
22379
22380 2014-04-24 Cong Hou <congh@google.com>
22381
22382 PR tree-optimization/60896
22383 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
22384 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
22385 (vect_mark_pattern_stmts): Set the def type of all statements in
22386 PATTERN_DEF_SEQ as vect_internal_def.
22387
22388 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
22389
22390 * doc/extend.texi (PowerPC Built-in Functions): Document new
22391 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
22392 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
22393
22394 * config/rs6000/predicates.md (const_0_to_3_operand): New
22395 predicate to match 0..3 integer constants.
22396
22397 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
22398 to support adding miscellaneous builtin functions.
22399 (BU_DFP_MISC_2): Likewise.
22400 (BU_P7_MISC_1): Likewise.
22401 (BU_P7_MISC_2): Likewise.
22402 (BU_P8V_MISC_3): Likewise.
22403 (BU_MISC_1): Likewise.
22404 (BU_MISC_2): Likewise.
22405 (DIVWE): Add extended divide builtin functions.
22406 (DIVWEO): Likewise.
22407 (DIVWEU): Likewise.
22408 (DIVWEUO): Likewise.
22409 (DIVDE): Likewise.
22410 (DIVDEO): Likewise.
22411 (DIVDEU): Likewise.
22412 (DIVDEUO): Likewise.
22413 (DXEX): Add decimal floating-point builtin functions.
22414 (DXEXQ): Likewise.
22415 (DDEDPD): Likewise.
22416 (DDEDPDQ): Likewise.
22417 (DENBCD): Likewise.
22418 (DENBCDQ): Likewise.
22419 (DIEX): Likewise.
22420 (DIEXQ): Likewise.
22421 (DSCLI): Likewise.
22422 (DSCLIQ): Likewise.
22423 (DSCRI): Likewise.
22424 (DSCRIQ): Likewise.
22425 (CDTBCD): Add new BCD builtin functions.
22426 (CBCDTD): Likewise.
22427 (ADDG6S): Likewise.
22428 (BCDADD): Likewise.
22429 (BCDADD_LT): Likewise.
22430 (BCDADD_EQ): Likewise.
22431 (BCDADD_GT): Likewise.
22432 (BCDADD_OV): Likewise.
22433 (BCDSUB): Likewise.
22434 (BCDSUB_LT): Likewise.
22435 (BCDSUB_EQ): Likewise.
22436 (BCDSUB_GT): Likewise.
22437 (BCDSUB_OV): Likewise.
22438 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
22439 (UNPACK_TD): Likewise.
22440 (PACK_TF): Likewise.
22441 (UNPACK_TF): Likewise.
22442 (UNPACK_TF_0): Likewise.
22443 (UNPACK_TF_1): Likewise.
22444 (PACK_V1TI): Likewise.
22445 (UNPACK_V1TI): Likewise.
22446
22447 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
22448 support for decimal floating point builtin functions.
22449 (rs6000_expand_ternop_builtin): Add checks for the new builtin
22450 functions that take constant arguments.
22451 (rs6000_invalid_builtin): Add decimal floating point builtin support.
22452 (rs6000_init_builtins): Setup long double, _Decimal64, and
22453 _Decimal128 types for new builtin functions.
22454 (builtin_function_type): Set the unsigned flags appropriately for
22455 the new builtin functions.
22456 (rs6000_opt_masks): Add support for decimal floating point builtin
22457 functions.
22458
22459 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
22460 floating point builtin functions.
22461 (RS6000_BTM_COMMON): Likewise.
22462 (RS6000_BTI_long_double): Likewise.
22463 (RS6000_BTI_dfloat64): Likewise.
22464 (RS6000_BTI_dfloat128): Likewise.
22465 (long_double_type_internal_node): Likewise.
22466 (dfloat64_type_internal_node): Likewise.
22467 (dfloat128_type_internal_node): Likewise.
22468
22469 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
22470 2.07 bcd arithmetic instructions.
22471 (UNSPEC_BCDSUB): Likewise.
22472 (UNSPEC_BCD_OVERFLOW): Likewise.
22473 (UNSPEC_BCD_ADD_SUB): Likewise.
22474 (bcd_add_sub): Likewise.
22475 (BCD_TEST): Likewise.
22476 (bcd<bcd_add_sub>): Likewise.
22477 (bcd<bcd_add_sub>_test): Likewise.
22478 (bcd<bcd_add_sub>_test2): Likewise.
22479 (bcd<bcd_add_sub>_<code>): Likewise.
22480 (peephole2 for combined bcd ops): Likewise.
22481
22482 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
22483 decimal floating point builtin functions.
22484 (UNSPEC_DENBCD): Likewise.
22485 (UNSPEC_DXEX): Likewise.
22486 (UNSPEC_DIEX): Likewise.
22487 (UNSPEC_DSCLI): Likewise.
22488 (UNSPEC_DSCRI): Likewise.
22489 (D64_D128): Likewise.
22490 (dfp_suffix): Likewise.
22491 (dfp_ddedpd_<mode>): Likewise.
22492 (dfp_denbcd_<mode>): Likewise.
22493 (dfp_dxex_<mode>): Likewise.
22494 (dfp_diex_<mode>): Likewise.
22495 (dfp_dscli_<mode>): Likewise.
22496 (dfp_dscri_<mode>): Likewise.
22497
22498 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
22499 builtin functions.
22500 (UNSPEC_CDTBCD): Likewise.
22501 (UNSPEC_CBCDTD): Likewise.
22502 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
22503 (UNSPEC_DIVEO): Likewise.
22504 (UNSPEC_DIVEU): Likewise.
22505 (UNSPEC_DIVEUO): Likewise.
22506 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
22507 pack/unpack 128-bit types.
22508 (UNSPEC_PACK_128BIT): Likewise.
22509 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
22510 (udiv<mode>3): Use idiv_ldiv mode attribute.
22511 (div<mode>3): Likewise.
22512 (addg6s): Add new BCD builtin functions.
22513 (cdtbcd): Likewise.
22514 (cbcdtd): Likewise.
22515 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
22516 (div_extend): Likewise.
22517 (div<div_extend>_<mode>"): Likewise.
22518 (FP128_64): Add support for new builtin functions to pack/unpack
22519 128-bit types.
22520 (unpack<mode>): Likewise.
22521 (unpacktf_0): Likewise.
22522 (unpacktf_1): Likewise.
22523 (unpack<mode>_dm): Likewise.
22524 (unpack<mode>_nodm): Likewise.
22525 (pack<mode>): Likewise.
22526 (unpackv1ti): Likewise.
22527 (packv1ti): Likewise.
22528
22529 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
22530
22531 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
22532 is disabled.
22533
22534 2014-04-24 Jakub Jelinek <jakub@redhat.com>
22535
22536 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
22537 * gimplify.c (omp_is_private): Change last argument's type to int.
22538 Only diagnose lastprivate if the simd argument is 1, only diagnose
22539 linear if the simd argument is 2.
22540 (gimplify_omp_for): Adjust omp_is_private callers. When adding
22541 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
22542 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
22543 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
22544 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
22545 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
22546 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
22547 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
22548 * tree-nested.c (convert_nonlocal_omp_clauses,
22549 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
22550
22551 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
22552
22553 PR target/60822
22554 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
22555 operand 1.
22556
22557 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
22558
22559 * flag-types.h (enum ivar_visibility): Add.
22560
22561 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
22562
22563 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
22564 function * argument.
22565
22566 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
22567
22568 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
22569
22570 2014-04-24 Radovan Obradovic <robradovic@mips.com>
22571 Tom de Vries <tom@codesourcery.com>
22572
22573 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
22574 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
22575 reg-note.
22576 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
22577 * emit-rtl.c (try_split): Same.
22578
22579 2014-04-24 Radovan Obradovic <robradovic@mips.com>
22580 Tom de Vries <tom@codesourcery.com>
22581
22582 * common.opt (fuse-caller-save): New option.
22583
22584 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
22585
22586 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
22587 elements for big-endian.
22588
22589 2014-04-24 Richard Biener <rguenther@suse.de>
22590
22591 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
22592 during TER and instead use the sepops interface for expanding
22593 non-GIMPLE_SINGLE_RHS.
22594
22595 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22596
22597 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
22598 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
22599
22600 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22601
22602 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
22603 assembler 64-bit option.
22604 * configure: Regenerate.
22605
22606 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22607
22608 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
22609 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
22610 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
22611 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
22612 (TARGET_CRYPTO): Take TARGET_SIMD into account.
22613
22614 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22615
22616 * config/aarch64/aarch64-builtins.c
22617 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
22618 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
22619 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
22620 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
22621 builtins.
22622 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
22623 (Vrevsuff): New mode attribute.
22624
22625 2014-04-24 Terry Guo <terry.guo@arm.com>
22626
22627 * config/arm/arm.h (machine_function): Define variable
22628 after_arm_reorg here.
22629 * config/arm/arm.c (after_arm_reorg): Remove the definition.
22630 (arm_split_constant): Update the way to access variable
22631 after_arm_reorg.
22632 (arm_reorg): Ditto.
22633 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
22634
22635 2014-04-23 Tom de Vries <tom@codesourcery.com>
22636
22637 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
22638
22639 2014-04-23 David Malcolm <dmalcolm@redhat.com>
22640
22641 * is-a.h: Update comments to reflect the following changes to the
22642 "pointerness" of the API, making the template parameter match the
22643 return type, allowing use of is-a.h with typedefs of pointers.
22644 (is_a_helper::cast): Return a T rather then a pointer to a T, so
22645 that the return type matches the parameter to the is_a_helper.
22646 (as_a): Likewise.
22647 (dyn_cast): Likewise.
22648
22649 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
22650 pointer from the is-a.h API.
22651
22652 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
22653 (is_a_helper <cgraph_node *>::test): ...this, matching change to
22654 is-a.h API.
22655 (is_a_helper <varpool_node>::test): Likewise, convert to...
22656 (is_a_helper <varpool_node *>::test): ...this.
22657
22658 (varpool_first_variable): Update for removal of implicit pointer
22659 from the is-a.h API.
22660 (varpool_next_variable): Likewise.
22661 (varpool_first_static_initializer): Likewise.
22662 (varpool_next_static_initializer): Likewise.
22663 (varpool_first_defined_variable): Likewise.
22664 (varpool_next_defined_variable): Likewise.
22665 (cgraph_first_defined_function): Likewise.
22666 (cgraph_next_defined_function): Likewise.
22667 (cgraph_first_function): Likewise.
22668 (cgraph_next_function): Likewise.
22669 (cgraph_first_function_with_gimple_body): Likewise.
22670 (cgraph_next_function_with_gimple_body): Likewise.
22671 (cgraph_alias_target): Likewise.
22672 (varpool_alias_target): Likewise.
22673 (cgraph_function_or_thunk_node): Likewise.
22674 (varpool_variable_node): Likewise.
22675 (symtab_real_symbol_p): Likewise.
22676 * cgraphunit.c (referred_to_p): Likewise.
22677 (analyze_functions): Likewise.
22678 (handle_alias_pairs): Likewise.
22679 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
22680 * gimple-ssa.h (gimple_vuse_op): Likewise.
22681 (gimple_vdef_op): Likewise.
22682 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
22683 * gimple.c (gimple_build_asm_1): Likewise.
22684 (gimple_build_try): Likewise.
22685 (gimple_build_resx): Likewise.
22686 (gimple_build_eh_dispatch): Likewise.
22687 (gimple_build_omp_for): Likewise.
22688 (gimple_omp_for_set_clauses): Likewise.
22689
22690 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
22691 (is_a_helper <gimple_statement_asm *>::test): ...this.
22692 (is_a_helper <gimple_statement_bind>::test): Convert to...
22693 (is_a_helper <gimple_statement_bind *>::test): ...this.
22694 (is_a_helper <gimple_statement_call>::test): Convert to...
22695 (is_a_helper <gimple_statement_call *>::test): ...this.
22696 (is_a_helper <gimple_statement_catch>::test): Convert to...
22697 (is_a_helper <gimple_statement_catch *>::test): ...this.
22698 (is_a_helper <gimple_statement_resx>::test): Convert to...
22699 (is_a_helper <gimple_statement_resx *>::test): ...this.
22700 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
22701 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
22702 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
22703 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
22704 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
22705 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
22706 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
22707 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
22708 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
22709 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
22710 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
22711 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
22712 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
22713 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
22714 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
22715 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
22716 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
22717 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
22718 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
22719 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
22720 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
22721 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
22722 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
22723 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
22724 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
22725 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
22726 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
22727 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
22728 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
22729 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
22730 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
22731 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
22732 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
22733 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
22734 (is_a_helper <gimple_statement_phi>::test): Convert to...
22735 (is_a_helper <gimple_statement_phi *>::test): ...this.
22736 (is_a_helper <gimple_statement_transaction>::test): Convert to...
22737 (is_a_helper <gimple_statement_transaction *>::test): ...this.
22738 (is_a_helper <gimple_statement_try>::test): Convert to...
22739 (is_a_helper <gimple_statement_try *>::test): ...this.
22740 (is_a_helper <gimple_statement_wce>::test): Convert to...
22741 (is_a_helper <gimple_statement_wce *>::test): ...this.
22742 (is_a_helper <const gimple_statement_asm>::test): Convert to...
22743 (is_a_helper <const gimple_statement_asm *>::test): ...this.
22744 (is_a_helper <const gimple_statement_bind>::test): Convert to...
22745 (is_a_helper <const gimple_statement_bind *>::test): ...this.
22746 (is_a_helper <const gimple_statement_call>::test): Convert to...
22747 (is_a_helper <const gimple_statement_call *>::test): ...this.
22748 (is_a_helper <const gimple_statement_catch>::test): Convert to...
22749 (is_a_helper <const gimple_statement_catch *>::test): ...this.
22750 (is_a_helper <const gimple_statement_resx>::test): Convert to...
22751 (is_a_helper <const gimple_statement_resx *>::test): ...this.
22752 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
22753 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
22754 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
22755 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
22756 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
22757 Convert to...
22758 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
22759 ...this.
22760 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
22761 Convert to...
22762 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
22763 ...this.
22764 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
22765 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
22766 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
22767 to...
22768 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
22769 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
22770 to...
22771 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
22772 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
22773 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
22774 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
22775 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
22776 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
22777 to...
22778 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
22779 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
22780 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
22781 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
22782 to...
22783 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
22784 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
22785 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
22786 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
22787 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
22788 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
22789 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
22790 (is_a_helper <const gimple_statement_phi>::test): Convert to...
22791 (is_a_helper <const gimple_statement_phi *>::test): ...this.
22792 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
22793 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
22794 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
22795 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
22796 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
22797 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
22798 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
22799 to...
22800 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
22801 ...this.
22802 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
22803 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
22804
22805 (gimple_use_ops): Update for removal of implicit pointer from the
22806 is-a.h API.
22807 (gimple_set_use_ops): Likewise.
22808 (gimple_vuse): Likewise.
22809 (gimple_vdef): Likewise.
22810 (gimple_vuse_ptr): Likewise.
22811 (gimple_vdef_ptr): Likewise.
22812 (gimple_set_vuse): Likewise.
22813 (gimple_set_vdef): Likewise.
22814 (gimple_omp_return_set_lhs): Likewise.
22815 (gimple_omp_return_lhs): Likewise.
22816 (gimple_omp_return_lhs_ptr): Likewise.
22817 (gimple_call_fntype): Likewise.
22818 (gimple_call_set_fntype): Likewise.
22819 (gimple_call_set_internal_fn): Likewise.
22820 (gimple_call_use_set): Likewise.
22821 (gimple_call_clobber_set): Likewise.
22822 (gimple_bind_vars): Likewise.
22823 (gimple_bind_set_vars): Likewise.
22824 (gimple_bind_body_ptr): Likewise.
22825 (gimple_bind_set_body): Likewise.
22826 (gimple_bind_add_stmt): Likewise.
22827 (gimple_bind_block): Likewise.
22828 (gimple_bind_set_block): Likewise.
22829 (gimple_asm_ninputs): Likewise.
22830 (gimple_asm_noutputs): Likewise.
22831 (gimple_asm_nclobbers): Likewise.
22832 (gimple_asm_nlabels): Likewise.
22833 (gimple_asm_input_op): Likewise.
22834 (gimple_asm_input_op_ptr): Likewise.
22835 (gimple_asm_output_op): Likewise.
22836 (gimple_asm_output_op_ptr): Likewise.
22837 (gimple_asm_set_output_op): Likewise.
22838 (gimple_asm_clobber_op): Likewise.
22839 (gimple_asm_set_clobber_op): Likewise.
22840 (gimple_asm_label_op): Likewise.
22841 (gimple_asm_set_label_op): Likewise.
22842 (gimple_asm_string): Likewise.
22843 (gimple_catch_types): Likewise.
22844 (gimple_catch_types_ptr): Likewise.
22845 (gimple_catch_handler_ptr): Likewise.
22846 (gimple_catch_set_types): Likewise.
22847 (gimple_catch_set_handler): Likewise.
22848 (gimple_eh_filter_types): Likewise.
22849 (gimple_eh_filter_types_ptr): Likewise.
22850 (gimple_eh_filter_failure_ptr): Likewise.
22851 (gimple_eh_filter_set_types): Likewise.
22852 (gimple_eh_filter_set_failure): Likewise.
22853 (gimple_eh_must_not_throw_fndecl): Likewise.
22854 (gimple_eh_must_not_throw_set_fndecl): Likewise.
22855 (gimple_eh_else_n_body_ptr): Likewise.
22856 (gimple_eh_else_e_body_ptr): Likewise.
22857 (gimple_eh_else_set_n_body): Likewise.
22858 (gimple_eh_else_set_e_body): Likewise.
22859 (gimple_try_eval_ptr): Likewise.
22860 (gimple_try_cleanup_ptr): Likewise.
22861 (gimple_try_set_eval): Likewise.
22862 (gimple_try_set_cleanup): Likewise.
22863 (gimple_wce_cleanup_ptr): Likewise.
22864 (gimple_wce_set_cleanup): Likewise.
22865 (gimple_phi_capacity): Likewise.
22866 (gimple_phi_num_args): Likewise.
22867 (gimple_phi_result): Likewise.
22868 (gimple_phi_result_ptr): Likewise.
22869 (gimple_phi_set_result): Likewise.
22870 (gimple_phi_arg): Likewise.
22871 (gimple_phi_set_arg): Likewise.
22872 (gimple_resx_region): Likewise.
22873 (gimple_resx_set_region): Likewise.
22874 (gimple_eh_dispatch_region): Likewise.
22875 (gimple_eh_dispatch_set_region): Likewise.
22876 (gimple_omp_critical_name): Likewise.
22877 (gimple_omp_critical_name_ptr): Likewise.
22878 (gimple_omp_critical_set_name): Likewise.
22879 (gimple_omp_for_clauses): Likewise.
22880 (gimple_omp_for_clauses_ptr): Likewise.
22881 (gimple_omp_for_set_clauses): Likewise.
22882 (gimple_omp_for_collapse): Likewise.
22883 (gimple_omp_for_index): Likewise.
22884 (gimple_omp_for_index_ptr): Likewise.
22885 (gimple_omp_for_set_index): Likewise.
22886 (gimple_omp_for_initial): Likewise.
22887 (gimple_omp_for_initial_ptr): Likewise.
22888 (gimple_omp_for_set_initial): Likewise.
22889 (gimple_omp_for_final): Likewise.
22890 (gimple_omp_for_final_ptr): Likewise.
22891 (gimple_omp_for_set_final): Likewise.
22892 (gimple_omp_for_incr): Likewise.
22893 (gimple_omp_for_incr_ptr): Likewise.
22894 (gimple_omp_for_set_incr): Likewise.
22895 (gimple_omp_for_pre_body_ptr): Likewise.
22896 (gimple_omp_for_set_pre_body): Likewise.
22897 (gimple_omp_parallel_clauses): Likewise.
22898 (gimple_omp_parallel_clauses_ptr): Likewise.
22899 (gimple_omp_parallel_set_clauses): Likewise.
22900 (gimple_omp_parallel_child_fn): Likewise.
22901 (gimple_omp_parallel_child_fn_ptr): Likewise.
22902 (gimple_omp_parallel_set_child_fn): Likewise.
22903 (gimple_omp_parallel_data_arg): Likewise.
22904 (gimple_omp_parallel_data_arg_ptr): Likewise.
22905 (gimple_omp_parallel_set_data_arg): Likewise.
22906 (gimple_omp_task_clauses): Likewise.
22907 (gimple_omp_task_clauses_ptr): Likewise.
22908 (gimple_omp_task_set_clauses): Likewise.
22909 (gimple_omp_task_child_fn): Likewise.
22910 (gimple_omp_task_child_fn_ptr): Likewise.
22911 (gimple_omp_task_set_child_fn): Likewise.
22912 (gimple_omp_task_data_arg): Likewise.
22913 (gimple_omp_task_data_arg_ptr): Likewise.
22914 (gimple_omp_task_set_data_arg): Likewise.
22915 (gimple_omp_taskreg_clauses): Likewise.
22916 (gimple_omp_taskreg_clauses_ptr): Likewise.
22917 (gimple_omp_taskreg_set_clauses): Likewise.
22918 (gimple_omp_taskreg_child_fn): Likewise.
22919 (gimple_omp_taskreg_child_fn_ptr): Likewise.
22920 (gimple_omp_taskreg_set_child_fn): Likewise.
22921 (gimple_omp_taskreg_data_arg): Likewise.
22922 (gimple_omp_taskreg_data_arg_ptr): Likewise.
22923 (gimple_omp_taskreg_set_data_arg): Likewise.
22924 (gimple_omp_task_copy_fn): Likewise.
22925 (gimple_omp_task_copy_fn_ptr): Likewise.
22926 (gimple_omp_task_set_copy_fn): Likewise.
22927 (gimple_omp_task_arg_size): Likewise.
22928 (gimple_omp_task_arg_size_ptr): Likewise.
22929 (gimple_omp_task_set_arg_size): Likewise.
22930 (gimple_omp_task_arg_align): Likewise.
22931 (gimple_omp_task_arg_align_ptr): Likewise.
22932 (gimple_omp_task_set_arg_align): Likewise.
22933 (gimple_omp_single_clauses): Likewise.
22934 (gimple_omp_single_clauses_ptr): Likewise.
22935 (gimple_omp_single_set_clauses): Likewise.
22936 (gimple_omp_target_clauses): Likewise.
22937 (gimple_omp_target_clauses_ptr): Likewise.
22938 (gimple_omp_target_set_clauses): Likewise.
22939 (gimple_omp_target_child_fn): Likewise.
22940 (gimple_omp_target_child_fn_ptr): Likewise.
22941 (gimple_omp_target_set_child_fn): Likewise.
22942 (gimple_omp_target_data_arg): Likewise.
22943 (gimple_omp_target_data_arg_ptr): Likewise.
22944 (gimple_omp_target_set_data_arg): Likewise.
22945 (gimple_omp_teams_clauses): Likewise.
22946 (gimple_omp_teams_clauses_ptr): Likewise.
22947 (gimple_omp_teams_set_clauses): Likewise.
22948 (gimple_omp_sections_clauses): Likewise.
22949 (gimple_omp_sections_clauses_ptr): Likewise.
22950 (gimple_omp_sections_set_clauses): Likewise.
22951 (gimple_omp_sections_control): Likewise.
22952 (gimple_omp_sections_control_ptr): Likewise.
22953 (gimple_omp_sections_set_control): Likewise.
22954 (gimple_omp_for_set_cond): Likewise.
22955 (gimple_omp_for_cond): Likewise.
22956 (gimple_omp_atomic_store_set_val): Likewise.
22957 (gimple_omp_atomic_store_val): Likewise.
22958 (gimple_omp_atomic_store_val_ptr): Likewise.
22959 (gimple_omp_atomic_load_set_lhs): Likewise.
22960 (gimple_omp_atomic_load_lhs): Likewise.
22961 (gimple_omp_atomic_load_lhs_ptr): Likewise.
22962 (gimple_omp_atomic_load_set_rhs): Likewise.
22963 (gimple_omp_atomic_load_rhs): Likewise.
22964 (gimple_omp_atomic_load_rhs_ptr): Likewise.
22965 (gimple_omp_continue_control_def): Likewise.
22966 (gimple_omp_continue_control_def_ptr): Likewise.
22967 (gimple_omp_continue_set_control_def): Likewise.
22968 (gimple_omp_continue_control_use): Likewise.
22969 (gimple_omp_continue_control_use_ptr): Likewise.
22970 (gimple_omp_continue_set_control_use): Likewise.
22971 (gimple_transaction_body_ptr): Likewise.
22972 (gimple_transaction_label): Likewise.
22973 (gimple_transaction_label_ptr): Likewise.
22974 (gimple_transaction_set_body): Likewise.
22975 (gimple_transaction_set_label): Likewise.
22976
22977 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
22978 * ipa-inline-analysis.c (inline_write_summary): Likewise.
22979 * ipa-ref.c (ipa_record_reference): Likewise.
22980 * ipa-reference.c (analyze_function): Likewise.
22981 (ipa_reference_write_optimization_summary): Likewise.
22982 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
22983 (address_taken_from_non_vtable_p): Likewise.
22984 (comdat_can_be_unshared_p_1): Likewise.
22985 * lto-cgraph.c (lto_output_ref): Likewise.
22986 (add_references): Likewise.
22987 (compute_ltrans_boundary): Likewise.
22988 (output_symtab): Likewise.
22989 (input_ref): Likewise.
22990 (input_cgraph_1): Likewise.
22991 (output_cgraph_opt_summary): Likewise.
22992 * lto-streamer-out.c (lto_output): Likewise.
22993 (output_symbol_p): Likewise.
22994 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
22995 (lsei_start_function_in_partition): Likewise.
22996 (lsei_next_variable_in_partition): Likewise.
22997 (lsei_start_variable_in_partition): Likewise.
22998 * symtab.c (insert_to_assembler_name_hash): Likewise.
22999 (unlink_from_assembler_name_hash): Likewise.
23000 (symtab_unregister_node): Likewise.
23001 (symtab_remove_node): Likewise.
23002 (dump_symtab_node): Likewise.
23003 (verify_symtab_base): Likewise.
23004 (verify_symtab_node): Likewise.
23005 (symtab_make_decl_local): Likewise.
23006 (symtab_alias_ultimate_target): Likewise.
23007 (symtab_resolve_alias): Likewise.
23008 (symtab_get_symbol_partitioning_class): Likewise.
23009 * tree-phinodes.c (allocate_phi_node): Likewise.
23010 (reserve_phi_args_for_new_edge): Likewise.
23011 (remove_phi_args): Likewise.
23012 * varpool.c (varpool_node_for_asm): Likewise.
23013 (varpool_remove_unreferenced_decls): Likewise.
23014
23015 2014-04-23 Jeff Law <law@redhat.com>
23016
23017 PR tree-optimization/60902
23018 * tree-ssa-threadedge.c
23019 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
23020 invalidate outputs from statements that do not produce useful
23021 outputs for threading.
23022
23023 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
23024
23025 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
23026 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
23027 machine descriptions for Stack Smashing Protector.
23028
23029 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
23030
23031 * aarch64.md (<optab>_rol<mode>3): New pattern.
23032 (<optab>_rolsi3_uxtw): Likewise.
23033 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
23034
23035 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
23036
23037 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
23038 (arm_cortex_a12_tune): Likewise.
23039
23040 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23041
23042 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
23043
23044 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23045
23046 * config/arm/arm.md (arm_rev16si2): New pattern.
23047 (arm_rev16si2_alt): Likewise.
23048 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
23049
23050 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23051
23052 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
23053 (rev16<mode>2_alt): Likewise.
23054 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
23055 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
23056 (aarch_rev16_shleft_mask_imm_p): Likewise.
23057 (aarch_rev16_p_1): Likewise.
23058 (aarch_rev16_p): Likewise.
23059 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
23060 (aarch_rev16_shright_mask_imm_p): Likewise.
23061 (aarch_rev16_shleft_mask_imm_p): Likewise.
23062
23063 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23064
23065 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
23066 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
23067 rev cost.
23068 (cortex_a53_extra_costs): Likewise.
23069 (cortex_a57_extra_costs): Likewise.
23070 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
23071 (cortexa7_extra_costs): Likewise.
23072 (cortexa8_extra_costs): Likewise.
23073 (cortexa12_extra_costs): Likewise.
23074 (cortexa15_extra_costs): Likewise.
23075 (v7m_extra_costs): Likewise.
23076 (arm_new_rtx_costs): Handle BSWAP.
23077
23078 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23079
23080 * config/arm/arm.c (cortexa8_extra_costs): New table.
23081 (arm_cortex_a8_tune): New tuning struct.
23082 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
23083
23084 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23085
23086 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
23087
23088 2014-04-23 Richard Biener <rguenther@suse.de>
23089
23090 * Makefile.in (OBJS): Remove loop-unswitch.o.
23091 * tree-pass.h (make_pass_rtl_unswitch): Remove.
23092 * passes.def (pass_rtl_unswitch): Likewise.
23093 * loop-init.c (gate_rtl_unswitch): Likewise.
23094 (rtl_unswitch): Likewise.
23095 (pass_data_rtl_unswitch): Likewise.
23096 (pass_rtl_unswitch): Likewise.
23097 (make_pass_rtl_unswitch): Likewise.
23098 * rtl.h (reversed_condition): Likewise.
23099 (compare_and_jump_seq): Likewise.
23100 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
23101 and make static.
23102 * loop-unroll.c (compare_and_jump_seq): Likewise.
23103
23104 2014-04-23 Richard Biener <rguenther@suse.de>
23105
23106 PR tree-optimization/60903
23107 * tree-ssa-loop-im.c (analyze_memory_references): Remove
23108 commented code block.
23109 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
23110 loop flags to newly created BBs and edges.
23111
23112 2014-04-23 Nick Clifton <nickc@redhat.com>
23113
23114 * config/msp430/msp430.c (msp430_handle_option): Move function
23115 to msp430-common.c
23116 (msp430_option_override): Simplify mcu and mcpu option handling.
23117 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
23118 support for -mhwmult command line option.
23119 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
23120 -mhwmult command line option.
23121 (msp430_hwmult_enabled): Delete.
23122 (msp43o_output_labelref): Add support for -mhwmult command line option.
23123 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
23124 (umulsidi3): Likewise.
23125 * config/msp430/msp430.opt (mmcu): Add Report attribute.
23126 (mcpu, mlarge, msmall): Likewise.
23127 (mhwmult): New option.
23128 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
23129 prototype.
23130 (msp430_is_f5_mcu): Remove prototype.
23131 (msp430_use_f5_series_hwmult): Add prototype.
23132 * config/msp430/msp430-opts.h: New file.
23133 * common/config/msp430: New directory.
23134 * common/config/msp430/msp430-common.c: New file.
23135 * config.gcc (msp430): Remove target_has_targetm_common.
23136 * doc/invoke.texi: Document -mhwmult command line option.
23137
23138 2014-04-23 Nick Clifton <nickc@redhat.com>
23139
23140 * config/i386/cygwin.h (ENDFILE_SPEC): Include
23141 default-manifest.o if it can be found in the search path.
23142 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
23143
23144 2014-04-23 Terry Guo <terry.guo@arm.com>
23145
23146 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
23147
23148 2014-04-23 Richard Biener <rguenther@suse.de>
23149
23150 PR middle-end/60895
23151 * tree-inline.c (declare_return_variable): Use mark_addressable.
23152
23153 2014-04-23 Richard Biener <rguenther@suse.de>
23154
23155 PR middle-end/60891
23156 * loop-init.c (loop_optimizer_init): Make sure to apply
23157 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
23158
23159 2014-04-22 Jakub Jelinek <jakub@redhat.com>
23160
23161 PR sanitizer/60275
23162 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
23163 New options.
23164 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
23165 if flag_sanitize_undefined_trap_on_error.
23166 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
23167 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
23168 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
23169 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
23170 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
23171 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
23172 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
23173 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
23174 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
23175 * ubsan.c (ubsan_instrument_unreachable): Return
23176 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
23177 (ubsan_expand_null_ifn): Emit __builtin_trap ()
23178 if flag_sanitize_undefined_trap_on_error and
23179 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
23180 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
23181 instrument_bool_enum_load): Emit __builtin_trap () if
23182 flag_sanitize_undefined_trap_on_error and
23183 __builtin_handle_*_abort () if !flag_sanitize_recover.
23184 * doc/invoke.texi (-fsanitize-recover,
23185 -fsanitize-undefined-trap-on-error): Document.
23186
23187 2014-04-22 Christian Bruel <christian.bruel@st.com>
23188
23189 * config/sh/sh.md (mov<mode>): Replace movQIHI.
23190 Force immediates to SImode.
23191
23192 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
23193
23194 * config/nios2/nios2.md (UNSPEC_ROUND): New.
23195 (lroundsfsi2): New.
23196 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
23197 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
23198 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
23199 (nios2_fpu_insn): Add entry for round.
23200 (N2FPU_NO_ERRNO_P): Define.
23201 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
23202 flag_errno_math.
23203 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
23204
23205 2014-04-22 Richard Henderson <rth@redhat.com>
23206
23207 * config/aarch64/aarch64 (addti3, subti3): New expanders.
23208 (add<GPI>3_compare0): Remove leading * from name.
23209 (add<GPI>3_carryin): Likewise.
23210 (sub<GPI>3_compare0): Likewise.
23211 (sub<GPI>3_carryin): Likewise.
23212 (<su_optab>mulditi3): New expander.
23213 (multi3): New expander.
23214 (madd<GPI>): Remove leading * from name.
23215
23216 2014-04-22 Martin Jambor <mjambor@suse.cz>
23217
23218 * cgraphclones.c (cgraph_function_versioning): Copy
23219 ipa_transforms_to_apply instead of asserting it is empty.
23220
23221 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
23222
23223 PR target/60868
23224 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
23225 on count_exp to get mode.
23226
23227 2014-04-22 Andrew Pinski <apinski@cavium.com>
23228
23229 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
23230 Handle TLS for ILP32.
23231 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
23232 (tlsie_small_<mode>): this and handle PTR.
23233 (tlsie_small_sidi): New pattern.
23234 (tlsle_small): Change to an expand to handle ILP32.
23235 (tlsle_small_<mode>): New pattern.
23236 (tlsdesc_small): Rename to ...
23237 (tlsdesc_small_<mode>): this and handle PTR.
23238
23239 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23240
23241 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
23242
23243 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
23244
23245 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
23246 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
23247 (aarch64_types_signed_poly_qualifiers): Likewise.
23248 (aarch64_types_unsigned_signed_qualifiers): Likewise.
23249 (aarch64_types_poly_signed_qualifiers): Likewise.
23250 (TYPES_REINTERP_SS): Type macro added.
23251 (TYPES_REINTERP_SU): Likewise.
23252 (TYPES_REINTERP_SP): Likewise.
23253 (TYPES_REINTERP_US): Likewise.
23254 (TYPES_REINTERP_PS): Likewise.
23255 (aarch64_fold_builtin): New expression folding added.
23256 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
23257 Declarations removed.
23258 (REINTERP_SS): Declarations added.
23259 (REINTERP_US): Likewise.
23260 (REINTERP_PS): Likewise.
23261 (REINTERP_SU): Likewise.
23262 (REINTERP_SP): Likewise.
23263 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
23264 (vreinterpretq_p8_f64): Likewise.
23265 (vreinterpret_p16_f64): Likewise.
23266 (vreinterpretq_p16_f64): Likewise.
23267 (vreinterpret_f32_f64): Likewise.
23268 (vreinterpretq_f32_f64): Likewise.
23269 (vreinterpret_f64_f32): Likewise.
23270 (vreinterpret_f64_p8): Likewise.
23271 (vreinterpret_f64_p16): Likewise.
23272 (vreinterpret_f64_s8): Likewise.
23273 (vreinterpret_f64_s16): Likewise.
23274 (vreinterpret_f64_s32): Likewise.
23275 (vreinterpret_f64_s64): Likewise.
23276 (vreinterpret_f64_u8): Likewise.
23277 (vreinterpret_f64_u16): Likewise.
23278 (vreinterpret_f64_u32): Likewise.
23279 (vreinterpret_f64_u64): Likewise.
23280 (vreinterpretq_f64_f32): Likewise.
23281 (vreinterpretq_f64_p8): Likewise.
23282 (vreinterpretq_f64_p16): Likewise.
23283 (vreinterpretq_f64_s8): Likewise.
23284 (vreinterpretq_f64_s16): Likewise.
23285 (vreinterpretq_f64_s32): Likewise.
23286 (vreinterpretq_f64_s64): Likewise.
23287 (vreinterpretq_f64_u8): Likewise.
23288 (vreinterpretq_f64_u16): Likewise.
23289 (vreinterpretq_f64_u32): Likewise.
23290 (vreinterpretq_f64_u64): Likewise.
23291 (vreinterpret_s64_f64): Likewise.
23292 (vreinterpretq_s64_f64): Likewise.
23293 (vreinterpret_u64_f64): Likewise.
23294 (vreinterpretq_u64_f64): Likewise.
23295 (vreinterpret_s8_f64): Likewise.
23296 (vreinterpretq_s8_f64): Likewise.
23297 (vreinterpret_s16_f64): Likewise.
23298 (vreinterpretq_s16_f64): Likewise.
23299 (vreinterpret_s32_f64): Likewise.
23300 (vreinterpretq_s32_f64): Likewise.
23301 (vreinterpret_u8_f64): Likewise.
23302 (vreinterpretq_u8_f64): Likewise.
23303 (vreinterpret_u16_f64): Likewise.
23304 (vreinterpretq_u16_f64): Likewise.
23305 (vreinterpret_u32_f64): Likewise.
23306 (vreinterpretq_u32_f64): Likewise.
23307
23308 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
23309
23310 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
23311 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
23312 (vreinterpret_p8_s8): Likewise.
23313 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
23314 (vreinterpret_p8_s16): Likewise.
23315 (vreinterpret_p8_s32): Likewise.
23316 (vreinterpret_p8_s64): Likewise.
23317 (vreinterpret_p8_f32): Likewise.
23318 (vreinterpret_p8_u8): Likewise.
23319 (vreinterpret_p8_u16): Likewise.
23320 (vreinterpret_p8_u32): Likewise.
23321 (vreinterpret_p8_u64): Likewise.
23322 (vreinterpret_p8_p16): Likewise.
23323 (vreinterpretq_p8_s8): Likewise.
23324 (vreinterpretq_p8_s16): Likewise.
23325 (vreinterpretq_p8_s32): Likewise.
23326 (vreinterpretq_p8_s64): Likewise.
23327 (vreinterpretq_p8_f32): Likewise.
23328 (vreinterpretq_p8_u8): Likewise.
23329 (vreinterpretq_p8_u16): Likewise.
23330 (vreinterpretq_p8_u32): Likewise.
23331 (vreinterpretq_p8_u64): Likewise.
23332 (vreinterpretq_p8_p16): Likewise.
23333 (vreinterpret_p16_s8): Likewise.
23334 (vreinterpret_p16_s16): Likewise.
23335 (vreinterpret_p16_s32): Likewise.
23336 (vreinterpret_p16_s64): Likewise.
23337 (vreinterpret_p16_f32): Likewise.
23338 (vreinterpret_p16_u8): Likewise.
23339 (vreinterpret_p16_u16): Likewise.
23340 (vreinterpret_p16_u32): Likewise.
23341 (vreinterpret_p16_u64): Likewise.
23342 (vreinterpret_p16_p8): Likewise.
23343 (vreinterpretq_p16_s8): Likewise.
23344 (vreinterpretq_p16_s16): Likewise.
23345 (vreinterpretq_p16_s32): Likewise.
23346 (vreinterpretq_p16_s64): Likewise.
23347 (vreinterpretq_p16_f32): Likewise.
23348 (vreinterpretq_p16_u8): Likewise.
23349 (vreinterpretq_p16_u16): Likewise.
23350 (vreinterpretq_p16_u32): Likewise.
23351 (vreinterpretq_p16_u64): Likewise.
23352 (vreinterpretq_p16_p8): Likewise.
23353 (vreinterpret_f32_s8): Likewise.
23354 (vreinterpret_f32_s16): Likewise.
23355 (vreinterpret_f32_s32): Likewise.
23356 (vreinterpret_f32_s64): Likewise.
23357 (vreinterpret_f32_u8): Likewise.
23358 (vreinterpret_f32_u16): Likewise.
23359 (vreinterpret_f32_u32): Likewise.
23360 (vreinterpret_f32_u64): Likewise.
23361 (vreinterpret_f32_p8): Likewise.
23362 (vreinterpret_f32_p16): Likewise.
23363 (vreinterpretq_f32_s8): Likewise.
23364 (vreinterpretq_f32_s16): Likewise.
23365 (vreinterpretq_f32_s32): Likewise.
23366 (vreinterpretq_f32_s64): Likewise.
23367 (vreinterpretq_f32_u8): Likewise.
23368 (vreinterpretq_f32_u16): Likewise.
23369 (vreinterpretq_f32_u32): Likewise.
23370 (vreinterpretq_f32_u64): Likewise.
23371 (vreinterpretq_f32_p8): Likewise.
23372 (vreinterpretq_f32_p16): Likewise.
23373 (vreinterpret_s64_s8): Likewise.
23374 (vreinterpret_s64_s16): Likewise.
23375 (vreinterpret_s64_s32): Likewise.
23376 (vreinterpret_s64_f32): Likewise.
23377 (vreinterpret_s64_u8): Likewise.
23378 (vreinterpret_s64_u16): Likewise.
23379 (vreinterpret_s64_u32): Likewise.
23380 (vreinterpret_s64_u64): Likewise.
23381 (vreinterpret_s64_p8): Likewise.
23382 (vreinterpret_s64_p16): Likewise.
23383 (vreinterpretq_s64_s8): Likewise.
23384 (vreinterpretq_s64_s16): Likewise.
23385 (vreinterpretq_s64_s32): Likewise.
23386 (vreinterpretq_s64_f32): Likewise.
23387 (vreinterpretq_s64_u8): Likewise.
23388 (vreinterpretq_s64_u16): Likewise.
23389 (vreinterpretq_s64_u32): Likewise.
23390 (vreinterpretq_s64_u64): Likewise.
23391 (vreinterpretq_s64_p8): Likewise.
23392 (vreinterpretq_s64_p16): Likewise.
23393 (vreinterpret_u64_s8): Likewise.
23394 (vreinterpret_u64_s16): Likewise.
23395 (vreinterpret_u64_s32): Likewise.
23396 (vreinterpret_u64_s64): Likewise.
23397 (vreinterpret_u64_f32): Likewise.
23398 (vreinterpret_u64_u8): Likewise.
23399 (vreinterpret_u64_u16): Likewise.
23400 (vreinterpret_u64_u32): Likewise.
23401 (vreinterpret_u64_p8): Likewise.
23402 (vreinterpret_u64_p16): Likewise.
23403 (vreinterpretq_u64_s8): Likewise.
23404 (vreinterpretq_u64_s16): Likewise.
23405 (vreinterpretq_u64_s32): Likewise.
23406 (vreinterpretq_u64_s64): Likewise.
23407 (vreinterpretq_u64_f32): Likewise.
23408 (vreinterpretq_u64_u8): Likewise.
23409 (vreinterpretq_u64_u16): Likewise.
23410 (vreinterpretq_u64_u32): Likewise.
23411 (vreinterpretq_u64_p8): Likewise.
23412 (vreinterpretq_u64_p16): Likewise.
23413 (vreinterpret_s8_s16): Likewise.
23414 (vreinterpret_s8_s32): Likewise.
23415 (vreinterpret_s8_s64): Likewise.
23416 (vreinterpret_s8_f32): Likewise.
23417 (vreinterpret_s8_u8): Likewise.
23418 (vreinterpret_s8_u16): Likewise.
23419 (vreinterpret_s8_u32): Likewise.
23420 (vreinterpret_s8_u64): Likewise.
23421 (vreinterpret_s8_p8): Likewise.
23422 (vreinterpret_s8_p16): Likewise.
23423 (vreinterpretq_s8_s16): Likewise.
23424 (vreinterpretq_s8_s32): Likewise.
23425 (vreinterpretq_s8_s64): Likewise.
23426 (vreinterpretq_s8_f32): Likewise.
23427 (vreinterpretq_s8_u8): Likewise.
23428 (vreinterpretq_s8_u16): Likewise.
23429 (vreinterpretq_s8_u32): Likewise.
23430 (vreinterpretq_s8_u64): Likewise.
23431 (vreinterpretq_s8_p8): Likewise.
23432 (vreinterpretq_s8_p16): Likewise.
23433 (vreinterpret_s16_s8): Likewise.
23434 (vreinterpret_s16_s32): Likewise.
23435 (vreinterpret_s16_s64): Likewise.
23436 (vreinterpret_s16_f32): Likewise.
23437 (vreinterpret_s16_u8): Likewise.
23438 (vreinterpret_s16_u16): Likewise.
23439 (vreinterpret_s16_u32): Likewise.
23440 (vreinterpret_s16_u64): Likewise.
23441 (vreinterpret_s16_p8): Likewise.
23442 (vreinterpret_s16_p16): Likewise.
23443 (vreinterpretq_s16_s8): Likewise.
23444 (vreinterpretq_s16_s32): Likewise.
23445 (vreinterpretq_s16_s64): Likewise.
23446 (vreinterpretq_s16_f32): Likewise.
23447 (vreinterpretq_s16_u8): Likewise.
23448 (vreinterpretq_s16_u16): Likewise.
23449 (vreinterpretq_s16_u32): Likewise.
23450 (vreinterpretq_s16_u64): Likewise.
23451 (vreinterpretq_s16_p8): Likewise.
23452 (vreinterpretq_s16_p16): Likewise.
23453 (vreinterpret_s32_s8): Likewise.
23454 (vreinterpret_s32_s16): Likewise.
23455 (vreinterpret_s32_s64): Likewise.
23456 (vreinterpret_s32_f32): Likewise.
23457 (vreinterpret_s32_u8): Likewise.
23458 (vreinterpret_s32_u16): Likewise.
23459 (vreinterpret_s32_u32): Likewise.
23460 (vreinterpret_s32_u64): Likewise.
23461 (vreinterpret_s32_p8): Likewise.
23462 (vreinterpret_s32_p16): Likewise.
23463 (vreinterpretq_s32_s8): Likewise.
23464 (vreinterpretq_s32_s16): Likewise.
23465 (vreinterpretq_s32_s64): Likewise.
23466 (vreinterpretq_s32_f32): Likewise.
23467 (vreinterpretq_s32_u8): Likewise.
23468 (vreinterpretq_s32_u16): Likewise.
23469 (vreinterpretq_s32_u32): Likewise.
23470 (vreinterpretq_s32_u64): Likewise.
23471 (vreinterpretq_s32_p8): Likewise.
23472 (vreinterpretq_s32_p16): Likewise.
23473 (vreinterpret_u8_s8): Likewise.
23474 (vreinterpret_u8_s16): Likewise.
23475 (vreinterpret_u8_s32): Likewise.
23476 (vreinterpret_u8_s64): Likewise.
23477 (vreinterpret_u8_f32): Likewise.
23478 (vreinterpret_u8_u16): Likewise.
23479 (vreinterpret_u8_u32): Likewise.
23480 (vreinterpret_u8_u64): Likewise.
23481 (vreinterpret_u8_p8): Likewise.
23482 (vreinterpret_u8_p16): Likewise.
23483 (vreinterpretq_u8_s8): Likewise.
23484 (vreinterpretq_u8_s16): Likewise.
23485 (vreinterpretq_u8_s32): Likewise.
23486 (vreinterpretq_u8_s64): Likewise.
23487 (vreinterpretq_u8_f32): Likewise.
23488 (vreinterpretq_u8_u16): Likewise.
23489 (vreinterpretq_u8_u32): Likewise.
23490 (vreinterpretq_u8_u64): Likewise.
23491 (vreinterpretq_u8_p8): Likewise.
23492 (vreinterpretq_u8_p16): Likewise.
23493 (vreinterpret_u16_s8): Likewise.
23494 (vreinterpret_u16_s16): Likewise.
23495 (vreinterpret_u16_s32): Likewise.
23496 (vreinterpret_u16_s64): Likewise.
23497 (vreinterpret_u16_f32): Likewise.
23498 (vreinterpret_u16_u8): Likewise.
23499 (vreinterpret_u16_u32): Likewise.
23500 (vreinterpret_u16_u64): Likewise.
23501 (vreinterpret_u16_p8): Likewise.
23502 (vreinterpret_u16_p16): Likewise.
23503 (vreinterpretq_u16_s8): Likewise.
23504 (vreinterpretq_u16_s16): Likewise.
23505 (vreinterpretq_u16_s32): Likewise.
23506 (vreinterpretq_u16_s64): Likewise.
23507 (vreinterpretq_u16_f32): Likewise.
23508 (vreinterpretq_u16_u8): Likewise.
23509 (vreinterpretq_u16_u32): Likewise.
23510 (vreinterpretq_u16_u64): Likewise.
23511 (vreinterpretq_u16_p8): Likewise.
23512 (vreinterpretq_u16_p16): Likewise.
23513 (vreinterpret_u32_s8): Likewise.
23514 (vreinterpret_u32_s16): Likewise.
23515 (vreinterpret_u32_s32): Likewise.
23516 (vreinterpret_u32_s64): Likewise.
23517 (vreinterpret_u32_f32): Likewise.
23518 (vreinterpret_u32_u8): Likewise.
23519 (vreinterpret_u32_u16): Likewise.
23520 (vreinterpret_u32_u64): Likewise.
23521 (vreinterpret_u32_p8): Likewise.
23522 (vreinterpret_u32_p16): Likewise.
23523 (vreinterpretq_u32_s8): Likewise.
23524 (vreinterpretq_u32_s16): Likewise.
23525 (vreinterpretq_u32_s32): Likewise.
23526 (vreinterpretq_u32_s64): Likewise.
23527 (vreinterpretq_u32_f32): Likewise.
23528 (vreinterpretq_u32_u8): Likewise.
23529 (vreinterpretq_u32_u16): Likewise.
23530 (vreinterpretq_u32_u64): Likewise.
23531 (vreinterpretq_u32_p8): Likewise.
23532 (vreinterpretq_u32_p16): Likewise.
23533
23534 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
23535
23536 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
23537 Pattern extended.
23538 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
23539 (sqabs): Likewise.
23540 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
23541 (vqnegd_s64): Likewise.
23542 (vqabs_s64): Likewise.
23543 (vqabsd_s64): Likewise.
23544
23545 2014-04-22 Richard Henderson <rth@redhat.com>
23546
23547 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
23548 computation to the top of the loop.
23549
23550 2014-04-22 Renlin <renlin.li@arm.com>
23551 Jiong Wang <jiong.wang@arm.com>
23552
23553 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
23554 * config/aarch64/aarch64.c (aarch64_layout_frame)
23555 (aarch64_initial_elimination_offset): Likewise.
23556
23557 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
23558
23559 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
23560 Fix indentation.
23561
23562 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
23563
23564 * machmode.h (bitwise_mode_for_mode): Declare.
23565 * stor-layout.h (bitwise_type_for_mode): Likewise.
23566 * stor-layout.c (bitwise_mode_for_mode): New function.
23567 (bitwise_type_for_mode): Likewise.
23568 * builtins.c (fold_builtin_memory_op): Use it instead of
23569 int_mode_for_mode and build_nonstandard_integer_type.
23570
23571 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23572
23573 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
23574 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
23575 (*-*-solaris2*): Simplify.
23576 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
23577 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
23578 *-*-solaris2.9* handling.
23579
23580 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
23581 as bug.
23582 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
23583 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
23584 handling, simplify.
23585 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
23586 * configure: Regenerate.
23587
23588 * config/i386/sol2-9.h: Remove.
23589
23590 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
23591 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
23592 Remove Solaris 9 references.
23593
23594 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
23595
23596 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
23597 (floatuns<GPI:mode><GPF:mode>2): Remove.
23598 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
23599 and floatuns conversions.
23600 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
23601 and floatuns conversions.
23602 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
23603 (w1,w2): New mode attributes for inequal width conversions.
23604
23605 2014-04-22 Renlin Li <Renlin.Li@arm.com>
23606
23607 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
23608 the output asm format.
23609
23610 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
23611
23612 * config/aarch64/aarch64-simd.md
23613 (aarch64_cm<optab>di): Always split.
23614 (*aarch64_cm<optab>di): New.
23615 (aarch64_cmtstdi): Always split.
23616 (*aarch64_cmtstdi): New.
23617
23618 2014-04-22 Jakub Jelinek <jakub@redhat.com>
23619
23620 PR tree-optimization/60823
23621 * omp-low.c (ipa_simd_modify_function_body): Go through
23622 all SSA_NAMEs and for those refering to vector arguments
23623 which are going to be replaced adjust SSA_NAME_VAR and,
23624 if it is a default definition, change it into a non-default
23625 definition assigned at the beginning of function from new_decl.
23626 (ipa_simd_modify_stmt_ops): Rewritten.
23627 * tree-dfa.c (set_ssa_default_def): When removing default def,
23628 check for NULL loc instead of NULL *loc.
23629
23630 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23631
23632 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
23633 restrictions on core registers for DImode values in Thumb2.
23634
23635 2014-04-22 Ian Bolton <ian.bolton@arm.com>
23636
23637 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
23638 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
23639
23640 2014-04-22 Ian Bolton <ian.bolton@arm.com>
23641
23642 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
23643 (*iordi_notzesidi_di): Likewise.
23644 (*iordi_notsesidi_di): Likewise.
23645
23646 2014-04-22 Ian Bolton <ian.bolton@arm.com>
23647
23648 * config/arm/arm-protos.h (tune_params): New struct members.
23649 * config/arm/arm.c: Initialise tune_params per processor.
23650 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
23651 for speed, based on new tune_params.
23652
23653 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
23654
23655 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
23656 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
23657 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
23658 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
23659 * config/aarch64/arm_neon.h (vrnd_f64): Added.
23660 (vrnda_f64): Likewise.
23661 (vrndi_f64): Likewise.
23662 (vrndm_f64): Likewise.
23663 (vrndn_f64): Likewise.
23664 (vrndp_f64): Likewise.
23665 (vrndx_f64): Likewise.
23666
23667 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23668
23669 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
23670 GET_MODE_SIZE argument is enum machine_mode.
23671
23672 2014-04-22 Jakub Jelinek <jakub@redhat.com>
23673
23674 PR target/60910
23675 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
23676 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
23677
23678 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
23679
23680 PR middle-end/60281
23681 * asan.c (asan_emit_stack_protection): Force the base to align to
23682 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
23683 appropriate bits if STRICT_ALIGNMENT.
23684 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
23685 when asan is on.
23686 (expand_used_vars): Leave a space in the stack frame for alignment
23687 if STRICT_ALIGNMENT.
23688
23689 2014-04-21 David Malcolm <dmalcolm@redhat.com>
23690
23691 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
23692 than a gimple.
23693 (gimple_store_p): Likewise.
23694 (gimple_assign_load_p): Likewise.
23695 (gimple_assign_cast_p): Likewise.
23696 (gimple_clobber_p): Likewise.
23697
23698 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
23699 rather than a gimple.
23700 (gimple_assign_cast_p): Likewise.
23701
23702 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
23703
23704 PR target/60735
23705 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
23706 If mode is DDmode and TARGET_E500_DOUBLE allow move.
23707
23708 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
23709 more debug information for E500 if -mdebug=reg.
23710
23711 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
23712
23713 PR target/60909
23714 * config/i386/i386.c (ix86_expand_builtin)
23715 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
23716 register for target RTX.
23717 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
23718
23719 2014-04-18 Cong Hou <congh@google.com>
23720
23721 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
23722 the widen-mult pattern by handling two operands with different sizes,
23723 and operands whose size is smaller than half of the result type.
23724
23725 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
23726
23727 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
23728 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
23729 (do_estimate_edge_time): Compute it.
23730 * ipa-inline.c (want_inline_small_function_p): Bypass
23731 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
23732
23733 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
23734
23735 * ipa-inline.c (spec_rem): New static variable.
23736 (dump_overall_stats): New function.
23737 (dump_inline_stats): New function.
23738
23739 2014-04-18 Richard Henderson <rth@redhat.com>
23740
23741 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
23742 to GET_MODE_SIZE, not a reg_class_t.
23743
23744 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23745
23746 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
23747 (vsx_xxmrglw_<mode>): Likewise.
23748
23749 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
23750
23751 PR target/60876
23752 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
23753 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
23754 (rs6000_init_hard_regno_mode_ok): Likewise.
23755
23756 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
23757
23758 * ipa-inline.c (inline_small_functions): Account only non-cold
23759 functions.
23760 * doc/invoke.texi (inline-unit-growth): Update documentation.
23761
23762 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
23763
23764 * config/rs6000/rs6000.md (addti3, subti3): New.
23765
23766 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
23767
23768 PR target/60863
23769 * config/i386/i386.c (ix86_expand_clear): Remove outdated
23770 comment. Check optimize_insn_for_size_p instead of
23771 optimize_insn_for_speed_p.
23772
23773 2014-04-17 Martin Jambor <mjambor@suse.cz>
23774
23775 * gimple-iterator.c (gsi_start_edge): New function.
23776 * gimple-iterator.h (gsi_start_edge): Declare.
23777 * tree-sra.c (single_non_eh_succ): New function.
23778 (disqualify_ops_if_throwing_stmt): Renamed to
23779 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
23780 having one non-EH successor BB.
23781 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
23782 generate loads into replacements.
23783 (sra_modify_assign): Likewise and and also use the simple path for
23784 such statements.
23785 (sra_modify_function_body): Commit statements on edges.
23786
23787 2014-04-17 Richard Biener <rguenther@suse.de>
23788
23789 PR middle-end/60849
23790 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
23791 comparison results and add clarifying comment.
23792
23793 2014-04-17 Jakub Jelinek <jakub@redhat.com>
23794
23795 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
23796 (blank_mode): Initialize it.
23797 (emit_mode_size_inline, emit_mode_nunits_inline,
23798 emit_mode_inner_inline): New functions.
23799 (emit_insn_modes_h): Call them and surround their output with
23800 #if GCC_VERSION >= 4001 ... #endif.
23801 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
23802 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
23803 mode_* arrays if the argument is __builtin_constant_p.
23804 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
23805 is enum machine_mode.
23806
23807 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
23808
23809 * passes.c (opt_pass::execute): Adjust.
23810 (pass_manager::execute_pass_mode_switching): Likewise.
23811 (early_local_passes::execute): Likewise.
23812 (execute_one_pass): Pass cfun to the pass's execute method.
23813 * tree-pass.h (opt_pass::execute): Add function * argument.
23814 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
23815 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
23816 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
23817 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
23818 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
23819 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
23820 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
23821 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
23822 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
23823 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
23824 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
23825 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
23826 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
23827 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
23828 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
23829 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
23830 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
23831 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
23832 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
23833 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
23834 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
23835 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
23836 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
23837 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
23838 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
23839 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
23840 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
23841 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
23842 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
23843 Adjust.
23844
23845 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
23846
23847 * passes.c (opt_pass::gate): Take function * argument.
23848 (gate_all_early_local_passes): Merge into
23849 (early_local_passes::gate): this.
23850 (gate_all_early_optimizations): Merge into
23851 (all_early_optimizations::gate): this.
23852 (gate_all_optimizations): Mege into
23853 (all_optimizations::gate): this.
23854 (gate_all_optimizations_g): Merge into
23855 (all_optimizations_g::gate): this.
23856 (gate_rest_of_compilation): Mege into
23857 (rest_of_compilation::gate): this.
23858 (gate_postreload): Merge into
23859 (postreload::gate): this.
23860 (dump_one_pass): Pass cfun to the pass's gate method.
23861 (execute_ipa_summary_passes): Likewise.
23862 (execute_one_pass): Likewise.
23863 (ipa_write_summaries_2): Likewise.
23864 (ipa_write_optimization_summaries_1): Likewise.
23865 (ipa_read_summaries_1): Likewise.
23866 (ipa_read_optimization_summaries_1): Likewise.
23867 (execute_ipa_stmt_fixups): Likewise.
23868 * tree-pass.h (opt_pass::gate): Add function * argument.
23869 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
23870 combine-stack-adj.c, combine.c, compare-elim.c,
23871 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
23872 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
23873 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
23874 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
23875 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
23876 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
23877 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
23878 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
23879 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
23880 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
23881 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
23882 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
23883 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
23884 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
23885 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
23886 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
23887 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
23888 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
23889 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
23890 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
23891 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
23892 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
23893 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
23894 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
23895 var-tracking.c, vtable-verify.c, web.c: Adjust.
23896
23897 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
23898
23899 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
23900 * configure: Regenerate.
23901
23902 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
23903
23904 * passes.c (dump_one_pass): don't check pass->has_gate.
23905 (execute_ipa_summary_passes): Likewise.
23906 (execute_one_pass): Likewise.
23907 (ipa_write_summaries_2): Likewise.
23908 (ipa_write_optimization_summaries_1): Likewise.
23909 (ipa_read_optimization_summaries_1): Likewise.
23910 (execute_ipa_stmt_fixups): Likewise.
23911 * tree-pass.h (pass_data::has_gate): Remove.
23912 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
23913 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
23914 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
23915 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
23916 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
23917 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
23918 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
23919 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
23920 gimple-low.c, gimple-ssa-isolate-paths.c,
23921 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
23922 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
23923 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
23924 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
23925 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
23926 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
23927 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
23928 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
23929 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
23930 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
23931 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
23932 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
23933 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
23934 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
23935 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
23936 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
23937 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
23938 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
23939 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
23940 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
23941 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
23942 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
23943 Adjust.
23944
23945 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
23946
23947 * pass_manager.h (pass_manager::register_dump_files_1): Remove
23948 declaration.
23949 * passes.c (pass_manager::register_dump_files_1): Merge into
23950 (pass_manager::register_dump_files): this, and remove its handling of
23951 properties since the pass always has the properties anyway.
23952 (pass_manager::pass_manager): Adjust.
23953
23954 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
23955
23956 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
23957 * passes.c (pass_manager::register_dump_files_1): Remove dead code
23958 dealing with properties.
23959 (pass_manager::register_dump_files): Adjust.
23960
23961 2014-03-20 Mark Wielaard <mjw@redhat.com>
23962
23963 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
23964 then represent the bound as normal constant value.
23965
23966 2014-04-17 Jakub Jelinek <jakub@redhat.com>
23967
23968 PR target/60847
23969 Forward port from 4.8 branch
23970 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
23971
23972 * config/i386/bmiintrin.h (_blsi_u32): New.
23973 (_blsi_u64): Ditto.
23974 (_blsr_u32): Ditto.
23975 (_blsr_u64): Ditto.
23976 (_blsmsk_u32): Ditto.
23977 (_blsmsk_u64): Ditto.
23978 (_tzcnt_u32): Ditto.
23979 (_tzcnt_u64): Ditto.
23980
23981 2014-04-17 Kito Cheng <kito@0xlab.org>
23982
23983 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
23984
23985 2014-04-17 Richard Biener <rguenther@suse.de>
23986
23987 PR middle-end/60849
23988 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
23989 boolean results for comparisons.
23990
23991 2014-04-17 Richard Biener <rguenther@suse.de>
23992
23993 PR tree-optimization/60836
23994 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
23995 initial PHI args to be gimple values.
23996
23997 2014-04-17 Richard Biener <rguenther@suse.de>
23998
23999 PR tree-optimization/60841
24000 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
24001 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
24002 of stmts to SLP build.
24003 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
24004 (vect_analyze_slp): Likewise.
24005 (vect_analyze_slp_instance): Likewise.
24006 (vect_build_slp_tree): Limit overall SLP tree growth.
24007 * tree-vectorizer.h (vect_analyze_data_refs,
24008 vect_analyze_slp): Adjust prototypes.
24009
24010 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
24011
24012 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
24013 Silvermont.
24014
24015 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
24016
24017 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
24018 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
24019 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
24020 for TARGET_SLOW_PSHUFB
24021
24022 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
24023
24024 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
24025 * config/i386/i386.c (intel_cost): Ditto.
24026
24027 2014-04-17 Joey Ye <joey.ye@arm.com>
24028
24029 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
24030
24031 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
24032
24033 * opts.c (common_handle_option): Disable -fipa-reference coorectly
24034 with -fuse-profile.
24035
24036 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
24037
24038 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
24039 (type_all_derivations_known_p): New predicate.
24040 (type_all_ctors_visible_p): New predicate.
24041 (type_possibly_instantiated_p): New predicate.
24042 (get_odr_type): Compute all_derivations_known.
24043 (dump_odr_type): Dump the flag.
24044 (maybe_record_type): Cleanup.
24045 (record_target_from_binfo): Add bases_to_consider array;
24046 record bases for types w/o instances and skip CXX destructor.
24047 (possible_polymorphic_call_targets_1): Add bases_to_consider
24048 and consider_construction parameters; check if type may have instance.
24049 (get_polymorphic_call_info): Set maybe_in_construction to true
24050 when we know nothing.
24051 (record_targets_from_bases): Skip CXX destructors; they are
24052 never called for types in construction.
24053 (possible_polymorphic_call_targets): Do not record target when
24054 type may not have instance.
24055
24056 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
24057
24058 PR ipa/60854
24059 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
24060 external aliases alive, too.
24061
24062 2014-04-16 Andrew Pinski <apinski@cavium.com>
24063
24064 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
24065 definition.
24066
24067 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
24068
24069 * final.c (compute_alignments): Do not apply loop alignment to a block
24070 falling through to the exit.
24071
24072 2014-04-16 Catherine Moore <clm@codesourcery.com>
24073
24074 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
24075 Adjust constraints for microMIPS store patterns.
24076
24077 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
24078
24079 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
24080
24081 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
24082
24083 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
24084 (append_use): Run at -O0.
24085 (append_vdef): Likewise.
24086 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
24087 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
24088
24089 2014-04-16 Jakub Jelinek <jakub@redhat.com>
24090
24091 PR tree-optimization/60844
24092 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
24093 (propagate_op_to_single_use, remove_visited_stmt_chain,
24094 linearize_expr, repropagate_negates, reassociate_bb): Use it
24095 instead of gsi_remove.
24096
24097 2014-04-16 Martin Jambor <mjambor@suse.cz>
24098
24099 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
24100 ipa_transforms_to_apply.
24101 (cgraph_function_versioning): Assert that old_node has empty
24102 ipa_transforms_to_apply.
24103 * trans-mem.c (ipa_tm_create_version): Likewise.
24104 * tree-inline.c (tree_function_versioning): Do not duplicate
24105 ipa_transforms_to_apply.
24106
24107 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24108
24109 PR target/60817
24110 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
24111 x86_64-*-* cases.
24112 Pass necessary as flags on 64-bit Solaris/x86.
24113 Use lowercase relocs for x86_64-*-*.
24114 * configure: Regenerate.
24115
24116 2014-04-15 Jan Hubicka <jh@suse.cz>
24117
24118 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
24119 (maybe_record_node, likely_target_p): Use it.
24120
24121 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24122
24123 PR target/60839
24124 Revert following patch
24125
24126 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
24127
24128 PR target/60735
24129 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
24130 software floating point or no floating point registers, do not
24131 allow any type in the FPRs. Eliminate a test for SPE SIMD types
24132 in GPRs that occurs after we tested for GPRs that would never be
24133 true.
24134
24135 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
24136 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
24137 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
24138 specifically allow DDmode, since that does not use the SPE SIMD
24139 instructions.
24140
24141 2014-03-21 Mark Wielaard <mjw@redhat.com>
24142
24143 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
24144 as unsigned or int depending on type and value used.
24145
24146 2014-04-15 Richard Biener <rguenther@suse.de>
24147
24148 PR rtl-optimization/56965
24149 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
24150 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
24151 ... here.
24152 * alias.c (true_dependence_1): Do not call
24153 nonoverlapping_component_refs_p.
24154 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
24155 nonoverlapping_component_refs_p.
24156 (indirect_refs_may_alias_p): Likewise.
24157
24158 2014-04-15 Teresa Johnson <tejohnson@google.com>
24159
24160 * cfg.c (dump_bb_info): Fix flags check.
24161 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
24162
24163 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24164
24165 PR rtl-optimization/60663
24166 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
24167 avoid 0 cost.
24168
24169 2014-04-15 Richard Biener <rguenther@suse.de>
24170
24171 * lto-streamer.h (LTO_major_version): Bump to 4.
24172
24173 2014-04-15 Richard Biener <rguenther@suse.de>
24174
24175 * common.opt (lto_partition_model): New enum.
24176 (flto-partition=): Merge separate options with a single with argument,
24177 add -flto-partition=one support.
24178 * flag-types.h (enum lto_partition_model): Declare.
24179 * opts.c (finish_options): Remove duplicate -flto-partition=
24180 option check.
24181 * lto-wrapper.c (run_gcc): Adjust.
24182
24183 2014-04-15 Richard Biener <rguenther@suse.de>
24184
24185 * alias.c (ncr_compar): New function.
24186 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
24187
24188 2014-04-15 Richard Biener <rguenther@suse.de>
24189
24190 * alias.c (record_component_aliases): Do not walk BINFOs.
24191
24192 2014-04-15 Richard Biener <rguenther@suse.de>
24193
24194 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24195 Add struct function argument and adjust.
24196 (find_func_aliases_for_call): Likewise.
24197 (find_func_aliases): Likewise.
24198 (find_func_clobbers): Likewise.
24199 (intra_create_variable_infos): Likewise.
24200 (compute_points_to_sets): Likewise.
24201 (ipa_pta_execute): Adjust. Do not push/pop cfun.
24202
24203 2014-04-15 Richard Biener <rguenther@suse.de>
24204
24205 * tree.c (iterative_hash_expr): Use enum tree_code_class
24206 to store TREE_CODE_CLASS.
24207 (tree_block): Likewise.
24208 (tree_set_block): Likewise.
24209 * tree.h (fold_build_pointer_plus_loc): Use
24210 convert_to_ptrofftype_loc.
24211
24212 2014-04-15 Jakub Jelinek <jakub@redhat.com>
24213
24214 PR plugins/59335
24215 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
24216 added in 4.9.
24217
24218 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
24219
24220 * cfgloop.h (struct loop): Move force_vectorize down.
24221 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
24222 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
24223 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
24224 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
24225 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
24226 * tree-core.h (enum annot_expr_kind): Add new kind values.
24227 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
24228 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
24229 kinds.
24230 * tree.def (ANNOTATE_EXPR): Tweak comment.
24231
24232 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
24233
24234 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
24235 cxa_pure_virtual).
24236
24237 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
24238
24239 * tree.h (TYPE_IDENTIFIER): Declare.
24240 * tree.c (subrange_type_for_debug_p): Use it.
24241 * godump.c (go_format_type): Likewise.
24242 * dwarf2out.c (is_cxx_auto, modified_type_die,
24243 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
24244 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
24245
24246 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
24247
24248 PR lto/60820
24249 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
24250
24251 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
24252
24253 * config/i386/i386.c (examine_argument): Return bool. Return true if
24254 parameter should be passed in memory.
24255 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
24256 (construct_container): Update calls to examine_argument.
24257 (function_arg_advance_64): Ditto.
24258 (return_in_memory_32): Merge with ix86_return_in_memory.
24259 (return_in_memory_64): Ditto.
24260 (return_in_memory_ms_64): Ditto.
24261
24262 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
24263
24264 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
24265 * coverage.c (coverage_compute_profile_id): Handle externally visible
24266 symbols.
24267
24268 2014-04-14 Martin Jambor <mjambor@suse.cz>
24269
24270 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
24271 DECL_DISREGARD_INLINE_LIMITS functions.
24272
24273 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
24274
24275 PR target/60827
24276 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
24277
24278 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
24279
24280 PR target/60827
24281 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
24282 optimize_insn_for_speed_p instead of
24283 optimize_function_for_speed_p.
24284
24285 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
24286
24287 * doc/invoke.texi (free): Document AArch64.
24288
24289 2014-04-14 Richard Biener <rguenther@suse.de>
24290
24291 PR tree-optimization/60042
24292 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
24293 (insert_into_preds_of_block): Do not prevent PHI insertion
24294 for REFERENCE exprs here ...
24295 (eliminate_dom_walker::before_dom_children): ... but prevent
24296 their use here under similar conditions when applied to the
24297 IL after PRE optimizations.
24298
24299 2014-04-14 Richard Biener <rguenther@suse.de>
24300
24301 * passes.def: Move early points-to after early SRA.
24302
24303 2014-04-14 Richard Biener <rguenther@suse.de>
24304
24305 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
24306 check for which sign-changes we allow when forwarding
24307 a converted value into a switch.
24308
24309 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
24310
24311 * stor-layout.c (place_field): Finalize non-constant offset for the
24312 field, if any.
24313
24314 2014-04-14 Richard Biener <rguenther@suse.de>
24315
24316 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
24317 as argument.
24318 (expand_switch_using_bit_tests_p): Likewise.
24319 (process_switch): Compute and pass on speed_p based on the
24320 switch stmt.
24321 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
24322 optimize_bb_for_speed_p.
24323
24324 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
24325
24326 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
24327 * function.h (struct function): Rename has_force_vect_loops into
24328 has_force_vectorize_loops.
24329 * lto-streamer-in.c (input_cfg): Adjust for renaming.
24330 (input_struct_function_base): Likewise.
24331 * lto-streamer-out.c (output_cfg): Likewise.
24332 (output_struct_function_base): Likewise.
24333 * omp-low.c (expand_omp_simd): Likewise.
24334 * tree-cfg.c (move_sese_region_to_fn): Likewise.
24335 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
24336 (version_loop_for_if_conversion): Likewise.
24337 (tree_if_conversion): Likewise.
24338 (main_tree_if_conversion): Likewise.
24339 (gate_tree_if_conversion): Likewise.
24340 * tree-inline.c (copy_loops): Likewise.
24341 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
24342 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
24343 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
24344 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
24345 * tree-vectorizer.c (vectorize_loops): Likewise.
24346 * tree-vectorizer.h (unlimited_cost_model): Likewise.
24347
24348 2014-04-14 Richard Biener <rguenther@suse.de>
24349
24350 PR lto/60720
24351 * lto-streamer-out.c (wrap_refs): New function.
24352 (lto_output): Wrap symbol references in global initializes in
24353 type-preserving MEM_REFs.
24354
24355 2014-04-14 Christian Bruel <christian.bruel@st.com>
24356
24357 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
24358
24359 2014-04-14 Christian Bruel <christian.bruel@st.com>
24360
24361 * config/sh/sh.md (setmemqi): New expand pattern.
24362 * config/sh/sh.h (CLEAR_RATIO): Define.
24363 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
24364 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
24365
24366 2014-04-14 Richard Biener <rguenther@suse.de>
24367
24368 PR middle-end/55022
24369 * fold-const.c (negate_expr_p): Don't negate directional rounding
24370 division.
24371 (fold_negate_expr): Likewise.
24372
24373 2014-04-14 Richard Biener <rguenther@suse.de>
24374
24375 PR tree-optimization/59817
24376 PR tree-optimization/60453
24377 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
24378 recursion to catch all CHRECs in the scalar evolution and restrict
24379 the predicate for the remains appropriately.
24380
24381 2014-04-12 Catherine Moore <clm@codesourcery.com>
24382
24383 * config/mips/constraints.md: Add new register constraint "kb".
24384 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
24385 (*movhi_internal): Likewise.
24386 (*movqi_internal): Likewise.
24387 * config/mips/mips.h (M16_STORE_REGS): New register class.
24388 (REG_CLASS_NAMES): Add M16_STORE_REGS.
24389 (REG_CLASS_CONTENTS): Likewise.
24390 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
24391
24392 2014-04-11 Tobias Burnus <burnus@net-b.de>
24393
24394 PR c/60194
24395 * doc/invoke.texi (-Wformat-signedness): Document it.
24396 (Wformat=2): Mention that this enables -Wformat-signedness.
24397
24398 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
24399
24400 * common/config/epiphany/epiphany-common.c
24401 (epiphany_option_optimization_table): Enable section anchors by
24402 default at -O1 or higher.
24403 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
24404 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
24405 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
24406 carries no extra cost.
24407 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
24408 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
24409 * config/epiphany/predicates.md (memclob_operand): New predicate.
24410 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
24411 Use memclob_operand predicate and X constraint for operand 3.
24412
24413 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
24414
24415 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
24416 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
24417 its operands.
24418
24419 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
24420
24421 PR rtl-optimization/60651
24422 * mode-switching.c (optimize_mode_switching): Make sure to emit
24423 sets of a lower numbered entity before sets of a higher numbered
24424 entity to a mode of the same or lower priority.
24425 When creating a seginfo for a basic block that starts with a code
24426 label, move the insertion point past the code label.
24427 (new_seginfo): Document and enforce requirement that
24428 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
24429 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
24430 * doc/tm.texi: Regenerate.
24431
24432 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
24433
24434 PR target/60811
24435 * config/arc/arc.c (arc_save_restore): Fix assert typo.
24436
24437 2013-04-11 Jakub Jelinek <jakub@redhat.com>
24438
24439 * BASE-VER: Set to 4.10.0.
24440
24441 2014-04-11 Tobias Burnus <burnus@net-b.de>
24442
24443 PR other/59055
24444 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
24445 * doc/gcc.texi (Service): Update description in the @menu
24446 * doc/invoke.texi (Option Summary): Remove misplaced and
24447 duplicated @menu.
24448
24449 2014-04-11 Steve Ellcey <sellcey@mips.com>
24450 Jakub Jelinek <jakub@redhat.com>
24451
24452 PR middle-end/60556
24453 * expr.c (convert_move): Use emit_store_flag_force instead of
24454 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
24455 argument to it.
24456
24457 2014-04-11 Richard Biener <rguenther@suse.de>
24458
24459 PR middle-end/60797
24460 * varasm.c (assemble_alias): Avoid endless error reporting
24461 recursion by setting TREE_ASM_WRITTEN.
24462
24463 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24464
24465 * config/s390/s390.md: Add a splitter for NOT rtx.
24466
24467 2014-04-11 Jakub Jelinek <jakub@redhat.com>
24468
24469 PR rtl-optimization/60663
24470 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
24471
24472 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
24473 Jakub Jelinek <jakub@redhat.com>
24474
24475 PR lto/60567
24476 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
24477 flag from decl_node to node.
24478
24479 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24480
24481 PR debug/60655
24482 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
24483 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
24484 ameliorating the cases where it can be.
24485
24486 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
24487
24488 Revert
24489 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
24490
24491 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
24492 (loadsync_<mode>): Change mode.
24493 (load_quadpti, store_quadpti): New.
24494 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
24495 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
24496 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
24497
24498 2014-04-09 Cong Hou <congh@google.com>
24499
24500 PR testsuite/60773
24501 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
24502 documentation.
24503
24504 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24505
24506 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
24507 instead of vnor to exploit possible fusion opportunity in the
24508 future.
24509 (altivec_expand_vec_perm_const_le): Likewise.
24510
24511 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
24512
24513 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
24514 (loadsync_<mode>): Change mode.
24515 (load_quadpti, store_quadpti): New.
24516 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
24517 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
24518
24519 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
24520
24521 PR target/60763
24522 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
24523 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
24524 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
24525
24526 2014-04-08 Richard Biener <rguenther@suse.de>
24527
24528 PR middle-end/60706
24529 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
24530 a 64bit widest int print double-int similar to on HWI64 hosts.
24531
24532 2014-04-08 Richard Biener <rguenther@suse.de>
24533
24534 PR tree-optimization/60785
24535 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
24536 default defs properly.
24537
24538 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
24539
24540 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
24541 (Weffc++): Likewise.
24542
24543 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
24544
24545 * ipa-devirt.c (maybe_record_node): When node is not recorded,
24546 set completep to false rather than true.
24547
24548 2014-04-07 Douglas B Rupp <rupp@adacore.com>
24549
24550 PR target/60504
24551 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
24552 ARM_TARGET2_DWARF_FORMAT.
24553
24554 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
24555
24556 PR target/60609
24557 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
24558 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
24559 ADDR_DIFF_VEC.
24560
24561 2014-04-07 Richard Biener <rguenther@suse.de>
24562
24563 PR tree-optimization/60766
24564 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
24565 (may_eliminate_iv): Convert cand_value_at result to desired type.
24566
24567 2014-04-07 Jason Merrill <jason@redhat.com>
24568
24569 PR c++/60731
24570 * common.opt (-fno-gnu-unique): Add.
24571 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
24572
24573 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24574
24575 * haifa-sched.c: Fix outdated function reference and minor
24576 grammar errors in introductory comment.
24577
24578 2014-04-07 Richard Biener <rguenther@suse.de>
24579
24580 PR middle-end/60750
24581 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
24582 for noreturn calls.
24583 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
24584
24585 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
24586
24587 PR debug/55794
24588 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
24589 size accounting for thunks.
24590 (pa_asm_output_mi_thunk): Use final_start_function() and
24591 final_end_function() to output function start and end directives.
24592
24593 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
24594
24595 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
24596 device specific ISA/ feature information. Remove short_sp and
24597 errata_skip ds. Add avr_device_specific_features enum to have device
24598 specific info.
24599 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
24600 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
24601 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
24602 updated device specific info.
24603 * config/avr/avr-mcus.def: Merge device specific details to
24604 dev_attribute field.
24605 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
24606 errata_skip.
24607 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
24608 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
24609 assembler if RMW isa supported by current device.
24610 * config/avr/genmultilib.awk: Update as device info structure changed.
24611 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
24612
24613 2014-04-04 Cong Hou <congh@google.com>
24614
24615 PR tree-optimization/60656
24616 * tree-vect-stmts.c (supportable_widening_operation):
24617 Fix a bug that elements in a vector with vect_used_by_reduction
24618 property are incorrectly reordered when the operation on it is not
24619 consistant with the one in reduction operation.
24620
24621 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
24622
24623 PR rtl-optimization/60155
24624 * gcse.c (record_set_data): New function.
24625 (single_set_gcse): New function.
24626 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
24627 (hoist_code): Likewise.
24628 (get_pressure_class_and_nregs): Likewise.
24629
24630 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
24631
24632 * explow.c (probe_stack_range): Emit a final optimization blockage.
24633
24634 2014-04-04 Anthony Green <green@moxielogic.com>
24635
24636 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
24637 typos.
24638
24639 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
24640
24641 PR ipa/59626
24642 * lto-cgraph.c (input_overwrite_node): Check that partitioning
24643 flags are set only during streaming.
24644 * ipa.c (process_references, walk_polymorphic_call_targets,
24645 symtab_remove_unreachable_nodes): Drop bodies of always inline
24646 after early inlining.
24647 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
24648
24649 2014-04-04 Jakub Jelinek <jakub@redhat.com>
24650 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24651
24652 PR debug/60655
24653 * dwarf2out.c (const_ok_for_output_1): Reject expressions
24654 containing a NOT.
24655
24656 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24657
24658 PR bootstrap/60743
24659 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
24660 duration.
24661 (cortex_a53_fdivd): Likewise.
24662
24663 2014-04-04 Martin Jambor <mjambor@suse.cz>
24664
24665 PR ipa/60640
24666 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
24667 Adjust all callers.
24668 * cgraph.c (clone_of_p): Also return true if thunks match.
24669 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
24670 cgraph_function_or_thunk_node and an obsolete comment.
24671 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
24672 file.
24673 (build_function_decl_skip_args): Likewise.
24674 (set_new_clone_decl_and_node_flags): New function.
24675 (duplicate_thunk_for_node): Likewise.
24676 (redirect_edge_duplicating_thunks): Likewise.
24677 (cgraph_clone_node): New parameter args_to_skip, pass it to
24678 redirect_edge_duplicating_thunks which is called instead of
24679 cgraph_redirect_edge_callee.
24680 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
24681 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
24682
24683 2014-04-04 Jeff Law <law@redhat.com>
24684
24685 PR target/60657
24686 * config/arm/predicates.md (const_int_I_operand): New predicate.
24687 (const_int_M_operand): Similarly.
24688 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
24689 const_int_operand.
24690 (insv_t2, extv_reg, extzv_t2): Likewise.
24691 (load_multiple_with_writeback): Similarly for const_int_I_operand.
24692 (pop_multiple_with_writeback_and_return): Likewise.
24693 (vfp_pop_multiple_with_writeback): Likewise
24694
24695 2014-04-04 Richard Biener <rguenther@suse.de>
24696
24697 PR ipa/60746
24698 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
24699 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
24700 non-GIMPLE_LABELs.
24701 * gimplify.h (gimple_add_tmp_var_fn): Declare.
24702 * gimplify.c (gimple_add_tmp_var_fn): New function.
24703 * gimple-expr.h (create_tmp_reg_fn): Declare.
24704 * gimple-expr.c (create_tmp_reg_fn): New function.
24705 * gimple-low.c (record_vars_into): Don't change cfun.
24706 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
24707 code generation without cfun.
24708
24709 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
24710
24711 PR bootstrap/60719
24712 * Makefile.in (install-driver): Fix shell scripting.
24713
24714 2014-04-03 Cong Hou <congh@google.com>
24715
24716 PR tree-optimization/60505
24717 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
24718 threshold of number of iterations below which no vectorization
24719 will be done.
24720 * tree-vect-loop.c (new_loop_vec_info):
24721 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
24722 * tree-vect-loop.c (vect_analyze_loop_operations):
24723 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
24724 * tree-vect-loop.c (vect_transform_loop):
24725 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
24726 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
24727 of iterations of the loop and see if we should build the epilogue.
24728
24729 2014-04-03 Richard Biener <rguenther@suse.de>
24730
24731 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
24732 (streamer_tree_cache_create): Adjust.
24733 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
24734 to allow optional nodes array.
24735 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
24736 (streamer_tree_cache_append): Likewise.
24737 (streamer_tree_cache_create): Create nodes array optionally
24738 as specified by parameter.
24739 * lto-streamer-out.c (create_output_block): Avoid maintaining
24740 the node array in the writer cache.
24741 (DFS_write_tree): Remove assertion.
24742 (produce_asm_for_decls): Free the out decl state hash table early.
24743 * lto-streamer-in.c (lto_data_in_create): Adjust for
24744 streamer_tree_cache_create prototype change.
24745
24746 2014-04-03 Richard Biener <rguenther@suse.de>
24747
24748 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
24749 set TREE_CHAIN to NULL_TREE.
24750
24751 2014-04-03 Richard Biener <rguenther@suse.de>
24752
24753 PR tree-optimization/60740
24754 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
24755 over all GIMPLE_COND operands.
24756
24757 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
24758
24759 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
24760 (Weffc++): Remove Scott's numbering, merge lists and reference
24761 Wnon-virtual-dtor.
24762
24763 2014-04-03 Nick Clifton <nickc@redhat.com>
24764
24765 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
24766 properly.
24767
24768 2014-04-03 Martin Jambor <mjambor@suse.cz>
24769
24770 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
24771 mention gcc_unreachable before failing.
24772 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
24773 removed symbols.
24774
24775 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
24776
24777 PR ipa/60659
24778 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
24779 inconsistent code and instead mark the context inconsistent.
24780 (possible_polymorphic_call_targets): For inconsistent contexts
24781 return empty complete list.
24782
24783 2014-04-02 Anthony Green <green@moxielogic.com>
24784
24785 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
24786 (extendqisi2, extendhisi2): Define.
24787 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
24788 (WCHAR_TYPE): Change to unsigned int.
24789
24790 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24791
24792 PR tree-optimization/60733
24793 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
24794 insertion point for PHI candidates to be the end of the feeding
24795 block for the PHI argument.
24796
24797 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
24798
24799 PR rtl-optimization/60650
24800 * lra-constraints.c (process_alt_operands): Decrease reject for
24801 earlyclobber matching.
24802
24803 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24804
24805 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
24806
24807 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24808
24809 * config/spu/spu.c (pad_bb): Do not crash when the last
24810 insn is CODE_FOR_blockage.
24811
24812 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24813
24814 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
24815 lies outside the target mode.
24816
24817 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
24818
24819 PR target/60735
24820 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
24821 software floating point or no floating point registers, do not
24822 allow any type in the FPRs. Eliminate a test for SPE SIMD types
24823 in GPRs that occurs after we tested for GPRs that would never be
24824 true.
24825
24826 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
24827 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
24828 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
24829 specifically allow DDmode, since that does not use the SPE SIMD
24830 instructions.
24831
24832 2014-04-02 Richard Biener <rguenther@suse.de>
24833
24834 PR middle-end/60729
24835 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
24836 MODE_INTs. Properly use negv_optab.
24837 (expand_abs): Likewise.
24838
24839 2014-04-02 Richard Biener <rguenther@suse.de>
24840
24841 PR bootstrap/60719
24842 * Makefile.in (install-driver): Guard extra installs with special
24843 names properly.
24844
24845 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
24846
24847 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
24848 Document vec_vgbbd.
24849
24850 2014-04-01 Richard Henderson <rth@redhat.com>
24851
24852 PR target/60704
24853 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
24854 alternative enabled before register allocation.
24855
24856 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
24857
24858 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
24859 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
24860 typo.
24861 (nios2_large_got_address): Remove unneeded 'sym' parameter.
24862 (nios2_got_address): Update nios2_large_got_address call site.
24863 (nios2_delegitimize_address): New function.
24864 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
24865 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
24866 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
24867
24868 2014-04-01 Martin Husemann <martin@duskware.de>
24869
24870 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
24871 for -mabi=32.
24872
24873 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
24874
24875 PR rtl-optimization/60604
24876 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
24877 check from register_operand.
24878 (register_operand): Redefine in terms of general_operand.
24879 (nonmemory_operand): Use register_operand for the non-constant cases.
24880
24881 2014-04-01 Richard Biener <rguenther@suse.de>
24882
24883 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
24884
24885 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
24886
24887 * doc/invoke.texi (mapp-regs): Clarify.
24888
24889 2014-03-31 Ulrich Drepper <drepper@gmail.com>
24890
24891 * config/i386/avx512fintrin.h (__v32hi): Define type.
24892 (__v64qi): Likewise.
24893 (_mm512_set1_epi8): Define.
24894 (_mm512_set1_epi16): Define.
24895 (_mm512_set4_epi32): Define.
24896 (_mm512_set4_epi64): Define.
24897 (_mm512_set4_pd): Define.
24898 (_mm512_set4_ps): Define.
24899 (_mm512_setr4_epi64): Define.
24900 (_mm512_setr4_epi32): Define.
24901 (_mm512_setr4_pd): Define.
24902 (_mm512_setr4_ps): Define.
24903 (_mm512_setzero_epi32): Define.
24904
24905 2014-03-31 Martin Jambor <mjambor@suse.cz>
24906
24907 PR middle-end/60647
24908 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
24909 callsite_arguments_match_p. Updated all callers. Also check types of
24910 corresponding formal parameters and actual arguments.
24911 (not_all_callers_have_enough_arguments_p) Renamed to
24912 some_callers_have_mismatched_arguments_p.
24913
24914 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
24915
24916 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
24917
24918 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
24919
24920 PR target/60034
24921 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
24922 section anchor.
24923
24924 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
24925
24926 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
24927 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
24928 Split out
24929 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
24930 Use FMAMODE_NOVF512 mode iterator.
24931 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
24932 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
24933 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
24934 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
24935 Split out
24936 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
24937 Use VF_128_256 mode iterator.
24938 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
24939 Ditto.
24940
24941 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
24942
24943 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
24944 static chain if needed.
24945
24946 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
24947
24948 PR target/60697
24949 * lra-constraints.c (index_part_to_reg): New.
24950 (process_address): Use it.
24951
24952 2014-03-27 Jeff Law <law@redhat.com>
24953 Jakub Jelinek <jakub@redhat.com>
24954
24955 PR target/60648
24956 * expr.c (do_tablejump): Use simplify_gen_binary rather than
24957 gen_rtx_{PLUS,MULT} to build up the address expression.
24958
24959 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
24960 creating non-canonical RTL.
24961
24962 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
24963
24964 PR ipa/60243
24965 * ipa-inline.c (want_inline_small_function_p): Short circuit large
24966 functions; reorganize to make cheap checks first.
24967 (inline_small_functions): Do not estimate growth when dumping;
24968 it is expensive.
24969 * ipa-inline.h (inline_summary): Add min_size.
24970 (growth_likely_positive): New function.
24971 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
24972 (set_cond_stmt_execution_predicate): Cleanup.
24973 (estimate_edge_size_and_time): Compute min_size.
24974 (estimate_calls_size_and_time): Likewise.
24975 (estimate_node_size_and_time): Likewise.
24976 (inline_update_overall_summary): Update min_size.
24977 (do_estimate_edge_time): Likewise.
24978 (do_estimate_edge_size): Update.
24979 (do_estimate_edge_hints): Update.
24980 (growth_likely_positive): New function.
24981
24982 2014-03-28 Jakub Jelinek <jakub@redhat.com>
24983
24984 PR target/60693
24985 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
24986 also if addr has VOIDmode.
24987
24988 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24989
24990 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
24991 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
24992 Declare extern.
24993 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
24994 instructions as well as AdvancedSIMD loads.
24995
24996 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24997
24998 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
24999 Use crypto_aese type.
25000 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
25001 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
25002 crypto_aese, crypto_aesmc. Move to types.md.
25003 * config/arm/types.md (crypto_aes): Split into crypto_aese,
25004 crypto_aesmc.
25005 * config/arm/iterators.md (crypto_type): Likewise.
25006
25007 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
25008
25009 * cgraph.c: Include expr.h and tree-dfa.h.
25010 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
25011 remove LHS.
25012
25013 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
25014
25015 PR target/60675
25016 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
25017 regs from checking multi-reg pseudos.
25018
25019 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25020
25021 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
25022
25023 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25024
25025 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
25026 if it would clobber the stack pointer, even temporarily.
25027
25028 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
25029
25030 * mode-switching.c: Make small adjustments to the top comment.
25031
25032 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
25033
25034 * config/rs6000/constraints.md (wD constraint): New constraint to
25035 match the constant integer to get the top DImode/DFmode out of a
25036 vector in a VSX register.
25037
25038 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
25039 match the constant integer to get the top DImode/DFmode out of a
25040 vector in a VSX register.
25041
25042 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
25043 for ISA 2.07.
25044
25045 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25046 vbpermq builtins.
25047
25048 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
25049 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
25050
25051 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
25052 Optimize vec_extract of 64-bit values, where the value being
25053 extracted is in the top word, where we can use scalar
25054 instructions. Add direct move and store support. Combine the big
25055 endian/little endian vector select load support into a single insn.
25056 (vsx_extract_<mode>_internal1): Likewise.
25057 (vsx_extract_<mode>_internal2): Likewise.
25058 (vsx_extract_<mode>_load): Likewise.
25059 (vsx_extract_<mode>_store): Likewise.
25060 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
25061 combined into vsx_extract_<mode>_load.
25062 (vsx_extract_<mode>_one_le): Likewise.
25063
25064 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
25065 define the top 64-bit vector element.
25066
25067 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
25068 constraint.
25069
25070 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25071 Document vec_vbpermq builtin.
25072
25073 PR target/60672
25074 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
25075 enable use of xxsldwi and xxpermdi builtin functions.
25076 (vec_xxpermdi): Likewise.
25077
25078 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25079 Document use of vec_xxsldwi and vec_xxpermdi builtins.
25080
25081 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
25082
25083 PR rtl-optimization/60650
25084 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
25085 first_p. Use it.
25086 (find_spills_for): New.
25087 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
25088 Spill all pseudos on the second iteration.
25089
25090 2014-03-27 Marek Polacek <polacek@redhat.com>
25091
25092 PR c/50347
25093 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
25094 types.
25095
25096 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25097
25098 * config/s390/s390.c (s390_can_use_return_insn): Check for
25099 call-saved FPRs on 31 bit.
25100
25101 2014-03-27 Jakub Jelinek <jakub@redhat.com>
25102
25103 PR middle-end/60682
25104 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
25105 if they need regimplification, just drop them instead of
25106 calling gimple_regimplify_operands on them.
25107
25108 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
25109
25110 PR target/60580
25111 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
25112 (aarch64_frame_pointer_required): Adjust logic.
25113 (aarch64_can_eliminate): Adjust logic.
25114 (aarch64_override_options_after_change): Adjust logic.
25115
25116 2014-03-27 Dehao Chen <dehao@google.com>
25117
25118 * ipa-inline.c (early_inliner): Update node's inline info.
25119
25120 2014-03-26 Dehao Chen <dehao@google.com>
25121
25122 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
25123 compiler inserted conditional jumps for NAN float check.
25124
25125 2014-03-26 Jakub Jelinek <jakub@redhat.com>
25126
25127 * ubsan.h (ubsan_create_data): Change second argument's type
25128 to const location_t *.
25129 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
25130 _("<unknown>").
25131 (ubsan_create_data): Change second argument to const location_t *PLOC.
25132 Create Loc field whenever PLOC is non-NULL.
25133 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
25134 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
25135 callers.
25136
25137 PR other/59545
25138 * real.c (real_to_integer2): Change type of low to UHWI.
25139
25140 2014-03-26 Tobias Burnus <burnus@net-b.de>
25141
25142 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
25143 (CILK_SELF_SPECS): New define.
25144 (driver_self_specs): Use it.
25145
25146 2014-03-26 Richard Biener <rguenther@suse.de>
25147
25148 * tree-pretty-print.c (percent_K_format): Implement special
25149 case for LTO and its stripped down BLOCK tree.
25150
25151 2014-03-26 Jakub Jelinek <jakub@redhat.com>
25152
25153 PR sanitizer/60636
25154 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
25155
25156 * tree-vrp.c (simplify_internal_call_using_ranges): If only
25157 one range is range_int_cst_p, but not both, at least optimize
25158 addition/subtraction of 0 and multiplication by 0 or 1.
25159 * gimple-fold.c (gimple_fold_call): Fold
25160 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
25161 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
25162 INTEGER_CSTs, try to fold at least x * 0 and y - y.
25163
25164 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
25165
25166 PR rtl-optimization/60452
25167 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
25168 <case REG>: Return 1 for invalid offsets from the frame pointer.
25169
25170 2014-03-26 Marek Polacek <polacek@redhat.com>
25171
25172 PR c/37428
25173 * doc/extend.texi (C Extensions): Mention variable-length arrays in
25174 a structure/union.
25175
25176 2014-03-26 Marek Polacek <polacek@redhat.com>
25177
25178 PR c/39525
25179 * doc/extend.texi (Designated Inits): Describe what happens to omitted
25180 field members.
25181
25182 2014-03-26 Marek Polacek <polacek@redhat.com>
25183
25184 PR other/59545
25185 * ira-color.c (update_conflict_hard_regno_costs): Perform the
25186 multiplication in unsigned type.
25187
25188 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
25189
25190 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
25191
25192 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
25193
25194 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
25195
25196 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
25197
25198 PR ipa/60315
25199 * cif-code.def (UNREACHABLE) New code.
25200 * ipa-inline.c (inline_small_functions): Skip edges to
25201 __builtlin_unreachable.
25202 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
25203 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
25204 predicate to __bulitin_unreachable.
25205 (set_cond_stmt_execution_predicate): Fix issue when
25206 invert_tree_comparison returns ERROR_MARK.
25207 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
25208 propagate to inline clones.
25209 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
25210 to unreachable.
25211 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
25212 * cgraphclones.c (cgraph_clone_node): If call destination is already
25213 ureachable, do not redirect it back.
25214 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
25215 unreachable.
25216
25217 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
25218
25219 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
25220 Do not modify inline clones.
25221
25222 2014-03-25 Jakub Jelinek <jakub@redhat.com>
25223
25224 * config/i386/i386.md (general_sext_operand): New mode attr.
25225 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
25226 don't generate (sign_extend (const_int)).
25227 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
25228 operands[2]. Use We constraint instead of <i> and
25229 <general_sext_operand> predicate instead of <general_operand>.
25230 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
25231 * config/i386/constraints.md (We): New constraint.
25232 * config/i386/predicates.md (x86_64_sext_operand,
25233 sext_operand): New predicates.
25234
25235 2014-03-25 Martin Jambor <mjambor@suse.cz>
25236
25237 PR ipa/60600
25238 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
25239 inconsistent devirtualizations to __builtin_unreachable.
25240
25241 2014-03-25 Marek Polacek <polacek@redhat.com>
25242
25243 PR c/35449
25244 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
25245
25246 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
25247
25248 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
25249 order of elements for big-endian.
25250
25251 2014-03-25 Richard Biener <rguenther@suse.de>
25252
25253 PR middle-end/60635
25254 * gimplify-me.c (gimple_regimplify_operands): Update the
25255 re-gimplifed stmt.
25256
25257 2014-03-25 Martin Jambor <mjambor@suse.cz>
25258
25259 PR ipa/59176
25260 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
25261 (lto_output_varpool_node): Likewise.
25262 (input_overwrite_node): Likewise.
25263 (input_varpool_node): Likewise.
25264
25265 2014-03-25 Richard Biener <rguenther@suse.de>
25266
25267 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
25268 (run_gcc): Likewise.
25269
25270 2014-03-25 Jakub Jelinek <jakub@redhat.com>
25271
25272 * combine.c (simplify_compare_const): Add MODE argument.
25273 Handle mode_width 0 as very large mode_width.
25274 (try_combine, simplify_comparison): Adjust callers.
25275
25276 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
25277 type to avoid signed integer overflow.
25278 * explow.c (plus_constant): Likewise.
25279
25280 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
25281
25282 * doc/generic.texi: Correct typos.
25283
25284 2014-03-24 Tobias Burnus <burnus@net-b.de>
25285
25286 * doc/invoke.texi (-flto): Expand section about
25287 using static libraries with LTO.
25288
25289 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25290
25291 PR rtl-optimization/60501
25292 * optabs.def (addptr3_optab): New optab.
25293 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
25294 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
25295 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
25296
25297 * lra.c (emit_add3_insn): Use the addptr pattern if available.
25298
25299 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
25300
25301 2014-03-24 Ulrich Drepper <drepper@gmail.com>
25302
25303 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
25304 _mm512_set1_pd.
25305
25306 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
25307 (_mm256_undefined_ps): Define.
25308 (_mm256_undefined_pd): Define.
25309 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
25310 (_mm_undefined_pd): Define.
25311 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
25312 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
25313 (_mm512_undefined_ps): Define.
25314 (_mm512_undefined_pd): Define.
25315 Use _mm*_undefined_*.
25316 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
25317
25318 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
25319
25320 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
25321 (lshr_simd): DI mode added.
25322 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
25323 (aarch64_ushr_simddi): Likewise.
25324 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
25325 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
25326 (vshrd_n_u64): Likewise.
25327
25328 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25329
25330 * Makefile.in (s-macro_list): Depend on cc1.
25331
25332 2014-03-23 Teresa Johnson <tejohnson@google.com>
25333
25334 * ipa-utils.c (ipa_print_order): Use specified dump file.
25335
25336 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
25337
25338 PR rtl-optimization/60601
25339 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
25340
25341 * gcc.c (eval_spec_function): Initialize save_growing_value.
25342
25343 2014-03-22 Jakub Jelinek <jakub@redhat.com>
25344
25345 PR sanitizer/60613
25346 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
25347 code == MINUS_EXPR, never swap op0 with op1.
25348
25349 * toplev.c (init_local_tick): Avoid signed integer multiplication
25350 overflow.
25351 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
25352 shift by first operand's bitsize.
25353
25354 2014-03-21 Jakub Jelinek <jakub@redhat.com>
25355
25356 PR target/60610
25357 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
25358 redefine to 1 or 0.
25359 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
25360 TARGET_ISA_64BIT_P(x).
25361
25362 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25363
25364 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
25365 pattern for vector nor instead of subtract from splat(-1).
25366 (altivec_expand_vec_perm_const_le): Likewise.
25367
25368 2014-03-21 Richard Henderson <rth@twiddle.net>
25369
25370 PR target/60598
25371 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
25372 related insns after epilogue_completed.
25373
25374 2014-03-21 Martin Jambor <mjambor@suse.cz>
25375
25376 PR ipa/59176
25377 * cgraph.h (symtab_node): New flag body_removed.
25378 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
25379 when removing bodies.
25380 * symtab.c (dump_symtab_base): Dump body_removed flag.
25381 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
25382 had their bodies removed.
25383
25384 2014-03-21 Martin Jambor <mjambor@suse.cz>
25385
25386 PR ipa/60419
25387 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
25388 in the border.
25389
25390 2014-03-21 Richard Biener <rguenther@suse.de>
25391
25392 PR tree-optimization/60577
25393 * tree-core.h (struct tree_base): Document nothrow_flag use
25394 in DECL_NONALIASED.
25395 * tree.h (DECL_NONALIASED): New.
25396 (may_be_aliased): Adjust.
25397 * coverage.c (build_var): Set DECL_NONALIASED.
25398
25399 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
25400
25401 * expr.c (expand_expr_real_1): Remove outdated comment.
25402
25403 2014-03-20 Jakub Jelinek <jakub@redhat.com>
25404
25405 PR middle-end/60597
25406 * ira.c (adjust_cleared_regs): Call copy_rtx on
25407 *reg_equiv[REGNO (loc)].src_p before passing it to
25408 simplify_replace_fn_rtx.
25409
25410 PR target/60568
25411 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
25412 into CONST, put pic register as first operand of PLUS. Use
25413 gen_const_mem for both 32-bit and 64-bit PIC got loads.
25414
25415 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25416
25417 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
25418
25419 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
25420
25421 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
25422 around for store forwarding issue in the FPU on the UT699.
25423 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
25424 loads and operations if -mfix-ut699 is specified.
25425 (divtf3_hq): Tweak attribute.
25426 (sqrttf2_hq): Likewise.
25427
25428 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
25429
25430 * calls.c (store_one_arg): Remove incorrect const qualification on the
25431 type of the temporary.
25432 * cfgexpand.c (expand_return): Likewise.
25433 * expr.c (expand_constructor): Likewise.
25434 (expand_expr_real_1): Likewise.
25435
25436 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25437
25438 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
25439 of parts.
25440
25441 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
25442
25443 PR target/60039
25444 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
25445
25446 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
25447
25448 * config/arm/aarch-common-protos.h
25449 (alu_cost_table): Fix spelling of "extend".
25450 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
25451
25452 2014-03-19 Richard Biener <rguenther@suse.de>
25453
25454 PR middle-end/60553
25455 * tree-core.h (tree_type_common): Re-order pointer members
25456 to reduce recursion depth during GC walks.
25457
25458 2014-03-19 Marek Polacek <polacek@redhat.com>
25459
25460 PR sanitizer/60569
25461 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
25462 before accessing it.
25463
25464 2014-03-19 Richard Biener <rguenther@suse.de>
25465
25466 PR lto/59543
25467 * lto-streamer-in.c (input_function): In WPA stage do not drop
25468 debug stmts.
25469
25470 2014-03-19 Jakub Jelinek <jakub@redhat.com>
25471
25472 PR tree-optimization/60559
25473 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
25474 with build_zero_cst assignment.
25475
25476 2014-03-18 Kai Tietz <ktietz@redhat.com>
25477
25478 PR rtl-optimization/56356
25479 * sdbout.c (sdbout_parms): Verify that parms'
25480 incoming argument is valid.
25481 (sdbout_reg_parms): Likewise.
25482
25483 2014-03-18 Richard Henderson <rth@redhat.com>
25484
25485 PR target/60562
25486 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
25487 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
25488 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
25489
25490 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
25491
25492 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
25493 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
25494 Italicize plugin event names in description. Explain that
25495 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
25496 Remind that no GCC functions should be called after PLUGIN_FINISH.
25497 Explain what pragmas with expansion are.
25498
25499 2014-03-18 Martin Liska <mliska@suse.cz>
25500
25501 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
25502 gimple call statement is update.
25503 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
25504 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
25505
25506 2014-03-18 Jakub Jelinek <jakub@redhat.com>
25507
25508 PR sanitizer/60557
25509 * ubsan.c (ubsan_instrument_unreachable): Call
25510 initialize_sanitizer_builtins.
25511 (ubsan_pass): Likewise.
25512
25513 PR sanitizer/60535
25514 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
25515 varpool_finalize_decl instead of rest_of_decl_compilation.
25516
25517 2014-03-18 Richard Biener <rguenther@suse.de>
25518
25519 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
25520 by using bitmap_and_compl instead of bitmap_and_compl_into.
25521 (df_rd_transfer_function): Likewise.
25522
25523 2014-03-18 Richard Biener <rguenther@suse.de>
25524
25525 * doc/lto.texi (fresolution): Fix typo.
25526
25527 2014-03-18 Richard Biener <rguenther@suse.de>
25528
25529 * doc/invoke.texi (flto): Update for changes in 4.9.
25530
25531 2014-03-18 Richard Biener <rguenther@suse.de>
25532
25533 * doc/loop.texi: Remove section on the removed lambda framework.
25534 Update loop docs with recent changes in preserving loop structure.
25535
25536 2014-03-18 Richard Biener <rguenther@suse.de>
25537
25538 * doc/lto.texi (-fresolution): Document.
25539
25540 2014-03-18 Richard Biener <rguenther@suse.de>
25541
25542 * doc/contrib.texi: Adjust my name.
25543
25544 2014-03-18 Jakub Jelinek <jakub@redhat.com>
25545
25546 PR ipa/58721
25547 * internal-fn.c: Include diagnostic-core.h.
25548 (expand_BUILTIN_EXPECT): New function.
25549 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
25550 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
25551 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
25552 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
25553 IFN_BUILTIN_EXPECT.
25554 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
25555 Revert 3 argument __builtin_expect code.
25556 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
25557 * gimple-fold.c (gimple_fold_call): Likewise.
25558 * tree.h (fold_builtin_expect): New prototype.
25559 * builtins.c (build_builtin_expect_predicate): Add predictor
25560 argument, if non-NULL, create 3 argument __builtin_expect.
25561 (fold_builtin_expect): No longer static. Add ARG2 argument,
25562 pass it through to build_builtin_expect_predicate.
25563 (fold_builtin_2): Adjust caller.
25564 (fold_builtin_3): Handle BUILT_IN_EXPECT.
25565 * internal-fn.def (BUILTIN_EXPECT): New.
25566
25567 2014-03-18 Tobias Burnus <burnus@net-b.de>
25568
25569 PR ipa/58721
25570 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
25571 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
25572 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
25573
25574 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
25575
25576 PR ipa/58721
25577 * predict.c (combine_predictions_for_bb): Fix up formatting.
25578 (expr_expected_value_1, expr_expected_value): Add predictor argument,
25579 fill what it points to if non-NULL.
25580 (tree_predict_by_opcode): Adjust caller, use the predictor.
25581 * predict.def (PRED_COMPARE_AND_SWAP): Add.
25582
25583 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
25584
25585 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
25586 proper constant for the store mode.
25587
25588 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
25589
25590 * symtab.c (change_decl_assembler_name): Fix transparent alias
25591 chain construction.
25592
25593 2014-03-16 Renlin Li <Renlin.Li@arm.com>
25594
25595 * config/aarch64/aarch64.c: Correct the comments about the
25596 aarch64 stack layout.
25597
25598 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
25599
25600 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
25601 check for GF_OMP_FOR_KIND_FOR.
25602
25603 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
25604
25605 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
25606 ymm and zmm register names.
25607
25608 2014-03-17 Jakub Jelinek <jakub@redhat.com>
25609
25610 PR target/60516
25611 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
25612 note creation for the 2010-08-31 changes.
25613
25614 2014-03-17 Marek Polacek <polacek@redhat.com>
25615
25616 PR middle-end/60534
25617 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
25618 as -fno-tree-loop-vectorize.
25619 (expand_omp_simd): Likewise.
25620
25621 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
25622
25623 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
25624 (eligible_for_call_delay): New prototype.
25625 * config/sparc/sparc.c (tls_call_delay): Rename into...
25626 (eligible_for_call_delay): ...this. Return false if the instruction
25627 cannot be put in the delay slot of a branch.
25628 (eligible_for_restore_insn): Simplify.
25629 (eligible_for_return_delay): Return false if the instruction cannot be
25630 put in the delay slot of a branch and simplify.
25631 (eligible_for_sibcall_delay): Return false if the instruction cannot be
25632 put in the delay slot of a branch.
25633 * config/sparc/sparc.md (fix_ut699): New attribute.
25634 (tls_call_delay): Delete.
25635 (in_call_delay): Reimplement.
25636 (eligible_for_sibcall_delay): Rename into...
25637 (in_sibcall_delay): ...this.
25638 (eligible_for_return_delay): Rename into...
25639 (in_return_delay): ...this.
25640 (in_branch_delay): Reimplement.
25641 (in_uncond_branch_delay): Delete.
25642 (in_annul_branch_delay): Delete.
25643
25644 2014-03-14 Richard Henderson <rth@redhat.com>
25645
25646 PR target/60525
25647 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
25648 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
25649 (*floathi<X87MODEF>2_i387_with_temp): Remove.
25650 (floathi splitters): Remove.
25651 (float<SWI48x>xf2): New pattern.
25652 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
25653 code that tried to handle DImode for 32-bit, but which was excluded
25654 by the pattern's condition. Drop allocation of stack temporary.
25655 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
25656 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
25657 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
25658 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
25659 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
25660 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
25661 (*float<SWI48><MODEF>2_sse_interunit): Remove.
25662 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
25663 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
25664 (*float<SWI48x><X87MODEF>2_i387): Remove.
25665 (all float _with_temp splitters): Remove.
25666 (*float<SWI48x><MODEF>2_i387): New pattern.
25667 (*float<SWI48><MODEF>2_sse): New pattern.
25668 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
25669 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
25670
25671 2014-03-14 Jakub Jelinek <jakub@redhat.com>
25672 Marek Polacek <polacek@redhat.com>
25673
25674 PR middle-end/60484
25675 * common.opt (dump_base_name_prefixed): New Variable.
25676 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
25677 if x_dump_base_name_prefixed is already set, set it at the end.
25678
25679 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
25680
25681 PR rtl-optimization/60508
25682 * lra-constraints.c (get_reload_reg): Add new parameter
25683 in_subreg_p.
25684 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
25685 Pass the new parameter values.
25686
25687 2014-03-14 Richard Biener <rguenther@suse.de>
25688
25689 * common.opt: Revert unintented changes from r205065.
25690 * opts.c: Likewise.
25691
25692 2014-03-14 Richard Biener <rguenther@suse.de>
25693
25694 PR middle-end/60518
25695 * cfghooks.c (split_block): Properly adjust all loops the
25696 block was a latch of.
25697
25698 2014-03-14 Martin Jambor <mjambor@suse.cz>
25699
25700 PR lto/60461
25701 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
25702 and simplify it.
25703
25704 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
25705
25706 PR target/59396
25707 * config/avr/avr.c (avr_set_current_function): Pass function name
25708 through default_strip_name_encoding before sanity checking instead
25709 of skipping the first char of the assembler name.
25710
25711 2014-03-13 Richard Henderson <rth@redhat.com>
25712
25713 PR debug/60438
25714 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
25715 (ix86_force_to_memory, ix86_free_from_memory): Remove.
25716 * config/i386/i386-protos.h: Likewise.
25717 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
25718 in the expander instead of a splitter.
25719 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
25720 any possibility of requiring a memory.
25721 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
25722 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
25723 (fp branch splitters): Update for ix86_split_fp_branch.
25724 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
25725 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
25726 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
25727 (*fop_<MODEF>_2_i387): Remove f/r alternative.
25728 (*fop_<MODEF>_3_i387): Likewise.
25729 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
25730 (splitters for the fop_* register patterns): Remove.
25731 (fscalexf4_i387): Rename from *fscalexf4_i387.
25732 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
25733
25734 2014-03-13 Jakub Jelinek <jakub@redhat.com>
25735
25736 PR tree-optimization/59779
25737 * tree-dfa.c (get_ref_base_and_extent): Use double_int
25738 type for bitsize and maxsize instead of HOST_WIDE_INT.
25739
25740 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
25741
25742 PR rtl-optimization/57320
25743 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
25744 the CFG after thread_prologue_and_epilogue_insns.
25745
25746 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
25747
25748 PR rtl-optimization/57189
25749 * lra-constraints.c (process_alt_operands): Disfavor spilling
25750 vector pseudos.
25751
25752 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
25753
25754 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
25755
25756 2014-03-13 Jakub Jelinek <jakub@redhat.com>
25757
25758 PR tree-optimization/59025
25759 PR middle-end/60418
25760 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
25761 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
25762
25763 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
25764
25765 PR target/60486
25766 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
25767 calls of avr_out_plus_1.
25768
25769 2014-03-13 Bin Cheng <bin.cheng@arm.com>
25770
25771 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
25772 BB's single pred and update the father loop's latch info later.
25773
25774 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
25775
25776 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
25777 (VEC_M): Likewise.
25778 (VEC_N): Likewise.
25779 (VEC_R): Likewise.
25780 (VEC_base): Likewise.
25781 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
25782 registers, we need to swap double words in little endian mode.
25783
25784 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
25785 to be a container mode for 128-bit integer operations added in ISA
25786 2.07. Unlike TImode and PTImode, the preferred register set is
25787 the Altivec/VMX registers for the 128-bit operations.
25788
25789 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
25790 declarations.
25791 (rs6000_split_128bit_ok_p): Likewise.
25792
25793 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
25794 macros for creating ISA 2.07 normal and overloaded builtin
25795 functions with 3 arguments.
25796 (BU_P8V_OVERLOAD_3): Likewise.
25797 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
25798 for use as overloaded functions.
25799 (VPERM_1TI_UNS): Likewise.
25800 (VSEL_1TI): Likewise.
25801 (VSEL_1TI_UNS): Likewise.
25802 (ST_INTERNAL_1ti): Likewise.
25803 (LD_INTERNAL_1ti): Likewise.
25804 (XXSEL_1TI): Likewise.
25805 (XXSEL_1TI_UNS): Likewise.
25806 (VPERM_1TI): Likewise.
25807 (VPERM_1TI_UNS): Likewise.
25808 (XXPERMDI_1TI): Likewise.
25809 (SET_1TI): Likewise.
25810 (LXVD2X_V1TI): Likewise.
25811 (STXVD2X_V1TI): Likewise.
25812 (VEC_INIT_V1TI): Likewise.
25813 (VEC_SET_V1TI): Likewise.
25814 (VEC_EXT_V1TI): Likewise.
25815 (EQV_V1TI): Likewise.
25816 (NAND_V1TI): Likewise.
25817 (ORC_V1TI): Likewise.
25818 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
25819 added in ISA 2.07. Add both normal 'altivec' builtins, and the
25820 overloaded builtin.
25821 (VADDUQM): Likewise.
25822 (VSUBCUQ): Likewise.
25823 (VADDEUQM): Likewise.
25824 (VADDECUQ): Likewise.
25825 (VSUBEUQM): Likewise.
25826 (VSUBECUQ): Likewise.
25827
25828 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
25829 __int128_t and __uint128_t types.
25830 (__uint128_type): Likewise.
25831 (altivec_categorize_keyword): Add support for vector __int128_t,
25832 vector __uint128_t, vector __int128, and vector unsigned __int128
25833 as a container type for TImode operations that need to be done in
25834 VSX/Altivec registers.
25835 (rs6000_macro_to_expand): Likewise.
25836 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
25837 to support 128-bit integer instructions vaddcuq, vadduqm,
25838 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
25839 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
25840
25841 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
25842 for V1TImode, and set up preferences to use VSX/Altivec registers.
25843 Setup VSX reload handlers.
25844 (rs6000_debug_reg_global): Likewise.
25845 (rs6000_init_hard_regno_mode_ok): Likewise.
25846 (rs6000_preferred_simd_mode): Likewise.
25847 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
25848 (easy_altivec_constant): Likewise.
25849 (output_vec_const_move): Likewise.
25850 (rs6000_expand_vector_set): Convert V1TImode set and extract to
25851 simple move.
25852 (rs6000_expand_vector_extract): Likewise.
25853 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
25854 addressing.
25855 (rs6000_const_vec): Add support for V1TImode.
25856 (rs6000_emit_le_vsx_load): Swap double words when loading or
25857 storing TImode/V1TImode.
25858 (rs6000_emit_le_vsx_store): Likewise.
25859 (rs6000_emit_le_vsx_move): Likewise.
25860 (rs6000_emit_move): Add support for V1TImode.
25861 (altivec_expand_ld_builtin): Likewise.
25862 (altivec_expand_st_builtin): Likewise.
25863 (altivec_expand_vec_init_builtin): Likewise.
25864 (altivec_expand_builtin): Likewise.
25865 (rs6000_init_builtins): Add support for V1TImode type. Add
25866 support for ISA 2.07 128-bit integer builtins. Define type names
25867 for the VSX/Altivec vector types.
25868 (altivec_init_builtins): Add support for overloaded vector
25869 functions with V1TImode type.
25870 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
25871 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
25872 external function.
25873 (rs6000_split_128bit_ok_p): Likewise.
25874 (rs6000_handle_altivec_attribute): Create V1TImode from vector
25875 __int128_t and vector __uint128_t.
25876
25877 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
25878 and mode attributes.
25879 (VSX_M): Likewise.
25880 (VSX_M2): Likewise.
25881 (VSm): Likewise.
25882 (VSs): Likewise.
25883 (VSr): Likewise.
25884 (VSv): Likewise.
25885 (VS_scalar): Likewise.
25886 (VS_double): Likewise.
25887 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
25888
25889 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
25890 we support the ISA 2.07 128-bit integer arithmetic instructions.
25891 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
25892 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
25893 and TImode types for use with the builtin functions.
25894 (V1TI_type_node): Likewise.
25895 (unsigned_V1TI_type_node): Likewise.
25896 (intTI_type_internal_node): Likewise.
25897 (uintTI_type_internal_node): Likewise.
25898
25899 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
25900 128-bit builtin functions.
25901 (UNSPEC_VADDEUQM): Likewise.
25902 (UNSPEC_VADDECUQ): Likewise.
25903 (UNSPEC_VSUBCUQ): Likewise.
25904 (UNSPEC_VSUBEUQM): Likewise.
25905 (UNSPEC_VSUBECUQ): Likewise.
25906 (VM): Add V1TImode to vector mode iterators.
25907 (VM2): Likewise.
25908 (VI_unit): Likewise.
25909 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
25910 (altivec_vaddcuq): Likewise.
25911 (altivec_vsubuqm): Likewise.
25912 (altivec_vsubcuq): Likewise.
25913 (altivec_vaddeuqm): Likewise.
25914 (altivec_vaddecuq): Likewise.
25915 (altivec_vsubeuqm): Likewise.
25916 (altivec_vsubecuq): Likewise.
25917
25918 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
25919 mode iterators.
25920 (BOOL_128): Likewise.
25921 (BOOL_REGS_OUTPUT): Likewise.
25922 (BOOL_REGS_OP1): Likewise.
25923 (BOOL_REGS_OP2): Likewise.
25924 (BOOL_REGS_UNARY): Likewise.
25925 (BOOL_REGS_AND_CR0): Likewise.
25926
25927 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
25928 128-bit integer builtin support.
25929 (vec_vadduqm): Likewise.
25930 (vec_vaddecuq): Likewise.
25931 (vec_vaddeuqm): Likewise.
25932 (vec_vsubecuq): Likewise.
25933 (vec_vsubeuqm): Likewise.
25934 (vec_vsubcuq): Likewise.
25935 (vec_vsubuqm): Likewise.
25936
25937 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25938 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
25939 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
25940 128-bit integer add/subtract to ISA 2.07.
25941
25942 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
25943
25944 * config/arc/arc.c (arc_predicate_delay_insns):
25945 Fix third argument passed to conditionalize_nonjump.
25946
25947 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
25948
25949 * config/aarch64/aarch64-builtins.c
25950 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
25951 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
25952 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
25953 instead of __builtin_lfloor.
25954 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
25955
25956 2014-03-12 Jakub Jelinek <jakub@redhat.com>
25957
25958 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
25959 (tree_ssa_ifcombine_bb_1): New function.
25960 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
25961 is an empty forwarder block to then_bb or vice versa and then_bb
25962 and else_bb are effectively swapped.
25963
25964 2014-03-12 Christian Bruel <christian.bruel@st.com>
25965
25966 PR target/60264
25967 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
25968 REG_CFA_DEF_CFA note.
25969 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
25970 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
25971
25972 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
25973
25974 PR tree-optimization/60454
25975 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
25976
25977 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25978
25979 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
25980 Do not define target_cpu_default2 to generic.
25981 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
25982 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
25983 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
25984
25985 2014-03-12 Jakub Jelinek <jakub@redhat.com>
25986 Marc Glisse <marc.glisse@inria.fr>
25987
25988 PR tree-optimization/60502
25989 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
25990 instead of build_low_bits_mask.
25991
25992 2014-03-12 Jakub Jelinek <jakub@redhat.com>
25993
25994 PR middle-end/60482
25995 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
25996 if there are multiple uses, but op doesn't live on E edge.
25997 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
25998 clobber stmts before __builtin_unreachable.
25999
26000 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
26001
26002 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
26003 hard_frame_pointer_rtx.
26004 * cse.c (cse_insn): Remove volatile check.
26005 * cselib.c (cselib_process_insn): Likewise.
26006 * dse.c (scan_insn): Likewise.
26007
26008 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
26009
26010 * config/arc/arc.c (conditionalize_nonjump): New function,
26011 broken out of ...
26012 (arc_ifcvt): ... this.
26013 (arc_predicate_delay_insns): Use it.
26014
26015 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
26016
26017 * config/arc/predicates.md (extend_operand): During/after reload,
26018 allow const_int_operand.
26019 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
26020 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
26021 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
26022 to "i".
26023 (umulsi3_highpart_i): Likewise.
26024
26025 2014-03-11 Richard Biener <rguenther@suse.de>
26026
26027 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
26028 Add asserts to guard possible wrong-code bugs.
26029
26030 2014-03-11 Richard Biener <rguenther@suse.de>
26031
26032 PR tree-optimization/60429
26033 PR tree-optimization/60485
26034 * tree-ssa-structalias.c (set_union_with_increment): Properly
26035 take into account all fields that overlap the shifted vars.
26036 (do_sd_constraint): Likewise.
26037 (do_ds_constraint): Likewise.
26038 (get_constraint_for_ptr_offset): Likewise.
26039
26040 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
26041
26042 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
26043 (nios2_compute_frame_layout):
26044 Add calculation of cfun->machine->fp_save_offset.
26045 (nios2_expand_prologue): Correct setting of frame pointer register
26046 in prologue.
26047 (nios2_expand_epilogue): Update recovery of stack pointer from
26048 frame pointer accordingly.
26049 (nios2_initial_elimination_offset): Update calculation of offset
26050 for eliminating to HARD_FRAME_POINTER_REGNUM.
26051
26052 2014-03-10 Jakub Jelinek <jakub@redhat.com>
26053
26054 PR ipa/60457
26055 * ipa.c (symtab_remove_unreachable_nodes): Don't call
26056 cgraph_get_create_node on VAR_DECLs.
26057
26058 2014-03-10 Richard Biener <rguenther@suse.de>
26059
26060 PR middle-end/60474
26061 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
26062
26063 2014-03-08 Douglas B Rupp <rupp@gnat.com>
26064
26065 * config/vms/vms.opt (vms_float_format): New variable.
26066
26067 2014-03-08 Tobias Burnus <burnus@net-b.de>
26068
26069 * doc/invoke.texi (-fcilkplus): Update implementation status.
26070
26071 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
26072 Richard Biener <rguenther@suse.de>
26073
26074 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
26075 consistently accross all TUs.
26076 (run_gcc): Enable -fshort-double automatically at link at link-time
26077 and disallow override.
26078
26079 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
26080
26081 PR target/58271
26082 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
26083 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
26084 if they can't be used.
26085
26086 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26087
26088 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
26089 for Solaris 11/x86 ld.
26090 * configure: Regenerate.
26091
26092 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26093
26094 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
26095 (LIB_TLS_SPEC): Save as ld_tls_libs.
26096 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
26097 (HAVE_AS_IX86_TLSLDM): New test.
26098 * configure, config.in: Regenerate.
26099 * config/i386/i386.c (legitimize_tls_address): Fall back to
26100 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
26101 cannot support TLS_MODEL_LOCAL_DYNAMIC.
26102 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
26103 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
26104
26105 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
26106
26107 * common.opt (fira-loop-pressure): Mark as optimization.
26108
26109 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
26110
26111 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
26112 an OpenMP mappable type.
26113
26114 2014-03-06 Matthias Klose <doko@ubuntu.com>
26115
26116 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
26117 MULTILIB_OSDIRNAMES is not defined.
26118
26119 2014-03-06 Jakub Jelinek <jakub@redhat.com>
26120 Meador Inge <meadori@codesourcery.com>
26121
26122 PR target/58595
26123 * config/arm/arm.c (arm_tls_symbol_p): Remove.
26124 (arm_legitimize_address): Call legitimize_tls_address for any
26125 arm_tls_referenced_p expression, handle constant addend. Call it
26126 before testing for !TARGET_ARM.
26127 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
26128
26129 2014-03-06 Richard Biener <rguenther@suse.de>
26130
26131 PR middle-end/60445
26132 PR lto/60424
26133 PR lto/60427
26134 Revert
26135 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
26136
26137 * tree-streamer.c (record_common_node): Assert we don't record
26138 nodes with type double.
26139 (preload_common_node): Skip type double, complex double and double
26140 pointer since it is now frontend dependent due to fshort-double option.
26141
26142 2014-03-06 Richard Biener <rguenther@suse.de>
26143
26144 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
26145 or -fno-lto is specified and the linker has full plugin support.
26146 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
26147 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
26148 * lto-wrapper.c (merge_and_complain): Merge compile-time
26149 optimization levels.
26150 (run_gcc): And pass it through to the link options.
26151
26152 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
26153
26154 PR debug/60381
26155 Revert:
26156 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
26157 PR debug/59992
26158 * cselib.c (remove_useless_values): Skip to avoid quadratic
26159 behavior if the condition moved from...
26160 (cselib_process_insn): ... here holds.
26161
26162 2014-03-05 Jakub Jelinek <jakub@redhat.com>
26163
26164 PR plugins/59335
26165 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
26166 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
26167
26168 PR plugins/59335
26169 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
26170 (TM_H): Add x86-tune.def.
26171
26172 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26173
26174 * config/aarch64/aarch64.c (generic_tunings):
26175 Use cortexa57_extra_costs.
26176
26177 2014-03-05 Jakub Jelinek <jakub@redhat.com>
26178
26179 PR lto/60404
26180 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
26181 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
26182 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
26183 cost for in_lto_p.
26184
26185 2014-03-04 Heiher <r@hev.cc>
26186
26187 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
26188 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
26189
26190 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
26191
26192 * config/i386/predicates.md (const2356_operand): Change to ...
26193 (const2367_operand): ... this.
26194 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
26195 const2367_operand.
26196 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
26197 (*avx512pf_scatterpf<mode>sf): Ditto.
26198 (avx512pf_scatterpf<mode>df): Ditto.
26199 (*avx512pf_scatterpf<mode>df_mask): Ditto.
26200 (*avx512pf_scatterpf<mode>df): Ditto.
26201 * config/i386/i386.c (ix86_expand_builtin): Update
26202 incorrect hint operand error message.
26203
26204 2014-03-04 Richard Biener <rguenther@suse.de>
26205
26206 * lto-section-in.c (lto_get_section_data): Fix const cast.
26207
26208 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
26209
26210 * tree-streamer.c (record_common_node): Assert we don't record
26211 nodes with type double.
26212 (preload_common_node): Skip type double, complex double and double
26213 pointer since it is now frontend dependent due to fshort-double option.
26214
26215 2014-03-04 Richard Biener <rguenther@suse.de>
26216
26217 PR lto/60405
26218 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
26219 (lto_input_toplevel_asms): Likewise.
26220 * lto-section-in.c (lto_get_section_data): Instead do it here
26221 for every section.
26222
26223 2014-03-04 Richard Biener <rguenther@suse.de>
26224
26225 PR tree-optimization/60382
26226 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
26227 dead PHIs a reduction.
26228
26229 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
26230
26231 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
26232 hint value.
26233 (_mm_prefetch): Move out of GCC target("sse") pragma.
26234 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
26235 GCC target("prfchw") pragma.
26236 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
26237 for locality <= 2.
26238 * config/i386/i386.c (ix86_option_override_internal): Enable
26239 -mprfchw with -mprefetchwt1.
26240
26241 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
26242
26243 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
26244 Mark as varying.
26245
26246 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
26247
26248 * opts.h (CL_PCH_IGNORE): Define.
26249 * targhooks.c (option_affects_pch_p):
26250 Return false for options that have CL_PCH_IGNORE set.
26251 * opt-functions.awk: Process PchIgnore.
26252 * doc/options.texi: Document PchIgnore.
26253
26254 * config/arc/arc.opt (misize): Add PchIgnore property.
26255
26256 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26257
26258 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
26259 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
26260 constraint on constants to permit them being loaded into
26261 GENERAL_REGS or BASE_REGS.
26262
26263 2014-03-03 Nick Clifton <nickc@redhat.com>
26264
26265 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
26266 anti-cacnonical alternatives.
26267 (negandhi3_real): New pattern.
26268 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
26269
26270 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
26271
26272 * config/avr/avr-mcus.def: Remove atxmega16x1.
26273 * config/avr/avr-tables.opt: Regenerate.
26274 * config/avr/t-multilib: Regenerate.
26275 * doc/avr-mmcu.texi: Regenerate.
26276
26277 2014-03-03 Tobias Grosser <tobias@grosser.es>
26278 Mircea Namolaru <mircea.namolaru@inria.fr>
26279
26280 PR tree-optimization/58028
26281 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
26282 scalar dimensions.
26283
26284 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26285
26286 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
26287 not handled by recognizers.
26288
26289 2014-03-03 Jakub Jelinek <jakub@redhat.com>
26290
26291 PR middle-end/60175
26292 * function.c (expand_function_end): Don't emit
26293 clobber_return_register sequence if clobber_after is a BARRIER.
26294 * cfgexpand.c (construct_exit_block): Append instructions before
26295 return_label to prev_bb.
26296
26297 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26298
26299 * config/rs6000/constraints.md: Document reserved use of "wc".
26300
26301 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
26302
26303 PR ipa/60150
26304 * ipa.c (function_and_variable_visibility): When dissolving comdat
26305 group, also set all symbols to local.
26306
26307 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
26308
26309 PR ipa/60306
26310
26311 Revert:
26312 2013-12-14 Jan Hubicka <jh@suse.cz>
26313 PR middle-end/58477
26314 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
26315
26316 2014-03-02 Jon Beniston <jon@beniston.com>
26317
26318 PR bootstrap/48230
26319 PR bootstrap/50927
26320 PR bootstrap/52466
26321 PR target/46898
26322 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
26323 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
26324 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
26325 (simple_return, *simple_return): New patterns
26326 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
26327 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
26328
26329 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
26330
26331 * dwarf2out.c (gen_subprogram_die): Tidy.
26332
26333 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
26334
26335 PR target/60071
26336 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
26337 (*mov_t_msb_neg_negc): ... this new insn.
26338
26339 2014-02-28 Jason Merrill <jason@redhat.com>
26340
26341 PR c++/58678
26342 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
26343 function.
26344
26345 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
26346
26347 PR c++/60314
26348 * dwarf2out.c (decltype_auto_die): New static.
26349 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
26350 (gen_type_die_with_usage): Handle 'decltype(auto)'.
26351 (is_cxx_auto): Likewise.
26352
26353 2014-02-28 Ian Bolton <ian.bolton@arm.com>
26354
26355 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
26356 we are not using general regs only.
26357
26358 2014-02-28 Richard Biener <rguenther@suse.de>
26359
26360 PR target/60280
26361 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
26362 previous fix and only allow to remove trivial pre-headers
26363 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
26364 (remove_forwarder_block): Properly update the latch of a loop.
26365
26366 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
26367
26368 PR debug/59992
26369 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
26370 (cselib_preserved_hash_table): New.
26371 (preserve_constants_and_equivs): Move preserved vals to it.
26372 (cselib_find_slot): Look it up first.
26373 (cselib_init): Initialize it.
26374 (cselib_finish): Release it.
26375 (dump_cselib_table): Dump it.
26376
26377 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
26378
26379 PR debug/59992
26380 * cselib.c (remove_useless_values): Skip to avoid quadratic
26381 behavior if the condition moved from...
26382 (cselib_process_insn): ... here holds.
26383
26384 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
26385
26386 PR debug/57232
26387 * var-tracking.c (vt_initialize): Apply the same condition to
26388 preserve the CFA base value.
26389
26390 2014-02-28 Joey Ye <joey.ye@arm.com>
26391
26392 PR target/PR60169
26393 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
26394 if reload in progress or completed.
26395
26396 2014-02-28 Tobias Burnus <burnus@net-b.de>
26397
26398 PR middle-end/60147
26399 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
26400 NAMELIST_DECL.
26401
26402 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
26403
26404 * doc/tm.texi.in (Condition Code Status): Update documention for
26405 relative locations of cc0-setter and cc0-user.
26406
26407 2014-02-27 Jeff Law <law@redhat.com>
26408
26409 PR rtl-optimization/52714
26410 * combine.c (try_combine): When splitting an unrecognized PARALLEL
26411 into two independent simple sets, if I3 is a jump, ensure the
26412 pattern we place into I3 is a (set (pc) ...).
26413
26414 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
26415 Jeff Law <law@redhat.com>
26416
26417 PR rtl-optimization/49847
26418 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
26419 are in different blocks.
26420 * doc/tm.texi (Condition Code Status): Update documention for
26421 relative locations of cc0-setter and cc0-user.
26422
26423 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
26424
26425 PR target/59222
26426 * lra.c (lra_emit_add): Check SUBREG too.
26427
26428 2014-02-27 Andreas Schwab <schwab@suse.de>
26429
26430 * config/m68k/m68k.c (m68k_option_override): Disable
26431 -flive-range-shrinkage for classic m68k.
26432 (m68k_override_options_after_change): Likewise.
26433
26434 2014-02-27 Marek Polacek <polacek@redhat.com>
26435
26436 PR middle-end/59223
26437 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
26438 -Wmaybe-uninitialized.
26439
26440 2014-02-27 Alan Modra <amodra@gmail.com>
26441
26442 PR target/57936
26443 * reload1.c (emit_input_reload_insns): When reload_override_in,
26444 set old to rl->in_reg when rl->in_reg is a subreg.
26445
26446 2014-02-26 Richard Biener <rguenther@suse.de>
26447
26448 PR bootstrap/60343
26449 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
26450
26451 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
26452
26453 * common/config/i386/predicates.md (const1256_operand): Remove.
26454 (const2356_operand): New.
26455 (const_1_to_2_operand): Remove.
26456 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
26457 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
26458 (*avx512pf_gatherpf<mode>sf): Ditto.
26459 (avx512pf_gatherpf<mode>df): Ditto.
26460 (*avx512pf_gatherpf<mode>df_mask): Ditto.
26461 (*avx512pf_gatherpf<mode>df): Ditto.
26462 (avx512pf_scatterpf<mode>sf): Ditto.
26463 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
26464 (*avx512pf_scatterpf<mode>sf): Ditto.
26465 (avx512pf_scatterpf<mode>df): Ditto.
26466 (*avx512pf_scatterpf<mode>df_mask): Ditto.
26467 (*avx512pf_scatterpf<mode>df): Ditto.
26468 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
26469
26470 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
26471
26472 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
26473 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
26474 (_mm512_mask_testn_epi64_mask): Move to ...
26475 * config/i386/avx512cdintrin.h: Here.
26476 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
26477 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
26478 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
26479 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
26480 TARGET_AVX512F from TARGET_AVX512CD.
26481
26482 2014-02-26 Richard Biener <rguenther@suse.de>
26483
26484 PR ipa/60327
26485 * ipa.c (walk_polymorphic_call_targets): Properly guard
26486 call to inline_update_overall_summary.
26487
26488 2014-02-26 Bin Cheng <bin.cheng@arm.com>
26489
26490 PR target/60280
26491 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
26492 and latches only if requested. Fix latch if it is removed.
26493 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
26494 LOOPS_HAVE_PREHEADERS.
26495
26496 2014-02-25 Andrew Pinski <apinski@cavium.com>
26497
26498 * builtins.c (expand_builtin_thread_pointer): Create a new target
26499 when the target is NULL.
26500
26501 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
26502
26503 PR rtl-optimization/60317
26504 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
26505 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
26506 * lra-assigns.c: Include params.h.
26507 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
26508 other reload pseudos considerations.
26509
26510 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26511
26512 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
26513 to use canonical form for nor<mode>3.
26514
26515 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26516
26517 PR target/55426
26518 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
26519 conversions.
26520
26521 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
26522
26523 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
26524 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
26525 (ix86_handle_option): Handle OPT_mprefetchwt1.
26526 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
26527 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
26528 PREFETCHWT1 CPUID.
26529 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
26530 OPTION_MASK_ISA_PREFETCHWT1.
26531 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
26532 (PTA_PREFETCHWT1): New.
26533 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
26534 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
26535 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
26536 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
26537 (*prefetch_avx512pf_<mode>_: Change into ...
26538 (*prefetch_prefetchwt1_<mode>: This.
26539 * config/i386/i386.opt (mprefetchwt1): New.
26540 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
26541 (_mm_prefetch): Handle intent to write.
26542 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
26543
26544 2014-02-25 Richard Biener <rguenther@suse.de>
26545
26546 PR middle-end/60291
26547 * emit-rtl.c (mem_attrs_htab): Remove.
26548 (mem_attrs_htab_hash): Likewise.
26549 (mem_attrs_htab_eq): Likewise.
26550 (set_mem_attrs): Always allocate new mem-attrs when something changed.
26551 (init_emit_once): Do not allocate mem_attrs_htab.
26552
26553 2014-02-25 Richard Biener <rguenther@suse.de>
26554
26555 PR lto/60319
26556 * lto-opts.c (lto_write_options): Output non-explicit conservative
26557 -fwrapv, -fno-trapv and -fno-strict-overflow.
26558 * lto-wrapper.c (merge_and_complain): Handle merging those options.
26559 (run_gcc): And pass them through.
26560
26561 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
26562
26563 * sel-sched.c (calculate_new_fences): New parameter ptime.
26564 Calculate it as a maximum over all fence cycles.
26565 (sel_sched_region_2): Adjust the call to calculate_new_fences.
26566 Print the final schedule timing when sched_verbose.
26567
26568 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
26569
26570 PR rtl-optimization/60292
26571 * sel-sched.c (fill_vec_av_set): Do not reset target availability
26572 bit fot the fence instruction.
26573
26574 2014-02-24 Alangi Derick <alangiderick@gmail.com>
26575
26576 * calls.h: Fix typo in comment.
26577
26578 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
26579
26580 * config/pa/pa.c (pa_output_move_double): Don't valididate when
26581 adjusting offsetable addresses.
26582
26583 2014-02-24 Guozhi Wei <carrot@google.com>
26584
26585 * sparseset.h (sparseset_pop): Fix the wrong index.
26586
26587 2014-02-24 Walter Lee <walt@tilera.com>
26588
26589 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
26590 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
26591 triplet.
26592 * common/config/tilegx/tilegx-common.c
26593 (TARGET_DEFAULT_TARGET_FLAGS): Define.
26594 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
26595 (LINK_SPEC): Ditto.
26596 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
26597 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
26598 (tilegx_gimplify_va_arg_expr): Handle big endian.
26599 (tilegx_expand_unaligned_load): Ditto.
26600 (tilegx_expand_unaligned_store): Ditto.
26601 (TARGET_RETURN_IN_MSB): New.
26602 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
26603 (TARGET_ENDIAN_DEFAULT): New.
26604 (TARGET_BIG_ENDIAN): Handle big endian.
26605 (BYTES_BIG_ENDIAN): Ditto.
26606 (WORDS_BIG_ENDIAN): Ditto.
26607 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
26608 (ENDIAN_SPEC): New.
26609 (EXTRA_SPECS): New.
26610 * config/tilegx/tilegx.md (extv): Handle big endian.
26611 (extzv): Ditto.
26612 (insn_st<n>): Ditto.
26613 (insn_st<n>_add<bitsuffix>): Ditto.
26614 (insn_stnt<n>): Ditto.
26615 (insn_stnt<n>_add<bitsuffix>):Ditto.
26616 (vec_interleave_highv8qi): Handle big endian.
26617 (vec_interleave_highv8qi_be): New.
26618 (vec_interleave_highv8qi_le): New.
26619 (insn_v1int_h): Handle big endian.
26620 (vec_interleave_lowv8qi): Handle big endian.
26621 (vec_interleave_lowv8qi_be): New.
26622 (vec_interleave_lowv8qi_le): New.
26623 (insn_v1int_l): Handle big endian.
26624 (vec_interleave_highv4hi): Handle big endian.
26625 (vec_interleave_highv4hi_be): New.
26626 (vec_interleave_highv4hi_le): New.
26627 (insn_v2int_h): Handle big endian.
26628 (vec_interleave_lowv4hi): Handle big endian.
26629 (vec_interleave_lowv4hi_be): New.
26630 (vec_interleave_lowv4hi_le): New.
26631 (insn_v2int_l): Handle big endian.
26632 (vec_interleave_highv2si): Handle big endian.
26633 (vec_interleave_highv2si_be): New.
26634 (vec_interleave_highv2si_le): New.
26635 (insn_v4int_h): Handle big endian.
26636 (vec_interleave_lowv2si): Handle big endian.
26637 (vec_interleave_lowv2si_be): New.
26638 (vec_interleave_lowv2si_le): New.
26639 (insn_v4int_l): Handle big endian.
26640 * config/tilegx/tilegx.opt (mbig-endian): New option.
26641 (mlittle-endian): New option.
26642 * doc/install.texi: Document tilegxbe-linux.
26643 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
26644
26645 2014-02-24 Martin Jambor <mjambor@suse.cz>
26646
26647 PR ipa/60266
26648 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
26649 there are no parameter descriptors.
26650
26651 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
26652
26653 PR rtl-optimization/60268
26654 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
26655 initialization to ...
26656 (sched_rgn_init): ... here.
26657 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
26658
26659 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
26660
26661 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
26662 names.
26663
26664 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
26665
26666 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
26667 definition.
26668
26669 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
26670
26671 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
26672 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
26673
26674 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
26675
26676 * config/microblaze/predicates.md: Add cmp_op predicate.
26677 * config/microblaze/microblaze.md: Add branch_compare instruction
26678 which uses cmp_op predicate and emits cmp insn before branch.
26679 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
26680 to microblaze_expand_conditional_branch and consolidate logic.
26681 (microblaze_expand_conditional_branch): emit branch_compare
26682 insn instead of handling cmp op separate from branch insn.
26683
26684 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26685
26686 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
26687 to permit subregs.
26688
26689 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26690
26691 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
26692 define_insn with define_expand and new define_insn
26693 *altivec_lve<VI_char>x_internal.
26694 (altivec_stve<VI_char>x): Replace define_insn with define_expand
26695 and new define_insn *altivec_stve<VI_char>x_internal.
26696 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
26697 prototype.
26698 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
26699 lve*x built-ins.
26700 (altivec_expand_stvex_be): New function.
26701
26702 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
26703
26704 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
26705 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
26706 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
26707 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
26708
26709 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
26710
26711 PR target/60298
26712 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
26713 instead of emit_move_insn.
26714
26715 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26716
26717 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
26718 vspltw with vsldoi.
26719 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
26720 gen_altivec_vsumsws.
26721
26722 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26723
26724 * config/rs6000/altivec.md (altivec_lvxl): Rename as
26725 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
26726 (altivec_lvxl_<mode>): New define_expand incorporating
26727 -maltivec=be semantics where needed.
26728 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
26729 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
26730 semantics where needed.
26731 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
26732 (altivec_stvx_<mode>): New define_expand incorporating
26733 -maltivec=be semantics where needed.
26734 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
26735 VM2 iterator instead of V4SI.
26736 (altivec_stvxl_<mode>): New define_expand incorporating
26737 -maltivec=be semantics where needed.
26738 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
26739 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
26740 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
26741 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
26742 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
26743 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
26744 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
26745 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
26746 ALTIVEC_BUILTIN_STVXL.
26747 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
26748 (altivec_expand_stvx_be): Likewise.
26749 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
26750 (altivec_expand_lvx_be): Likewise.
26751 (altivec_expand_stvx_be): Likewise.
26752 (altivec_expand_builtin): Add cases for
26753 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
26754 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
26755 (altivec_init_builtins): Add definitions for
26756 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
26757 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
26758
26759 2014-02-21 Catherine Moore <clm@codesourcery.com>
26760
26761 * doc/invoke.texi (mvirt, mno-virt): Document.
26762 * config/mips/mips.opt (mvirt): New option.
26763 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
26764
26765 2014-02-21 Richard Biener <rguenther@suse.de>
26766
26767 PR tree-optimization/60276
26768 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
26769 (STMT_VINFO_MIN_NEG_DIST): New macro.
26770 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
26771 STMT_VINFO_MIN_NEG_DIST.
26772 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
26773 made for negative dependence distances still hold.
26774
26775 2014-02-21 Richard Biener <rguenther@suse.de>
26776
26777 PR middle-end/60291
26778 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
26779 DECL_INITIAL for globals not in the current function context.
26780
26781 2014-02-21 Jakub Jelinek <jakub@redhat.com>
26782
26783 PR tree-optimization/56490
26784 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
26785 * tree-ssa-uninit.c: Include params.h.
26786 (compute_control_dep_chain): Add num_calls argument, return false
26787 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
26788 num_calls to recursive call.
26789 (find_predicates): Change dep_chain into normal array,
26790 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
26791 variable and adjust compute_control_dep_chain caller.
26792 (find_def_preds): Likewise.
26793
26794 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
26795
26796 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
26797 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
26798
26799 2014-02-21 Nick Clifton <nickc@redhat.com>
26800
26801 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
26802 (pushhi1): Likewise.
26803 (popqi1): Add mode to pre_dec.
26804 (pophi1): Likewise.
26805
26806 2014-02-21 Jakub Jelinek <jakub@redhat.com>
26807
26808 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
26809 mode for mask of V8SFmode permutation.
26810
26811 2014-02-20 Richard Henderson <rth@redhat.com>
26812
26813 PR c++/60272
26814 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
26815 a new pseudo for OLDVAL.
26816
26817 2014-02-20 Jakub Jelinek <jakub@redhat.com>
26818
26819 PR target/57896
26820 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
26821 gen_reg_rtx if d->testing_p.
26822 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
26823 if d->testing_p and we will certainly return true.
26824 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
26825 if d->testing_p.
26826
26827 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
26828
26829 * emit-rtl.c (gen_reg_rtx): Assert that
26830 crtl->emit.regno_pointer_align_length is non-zero.
26831
26832 2014-02-20 Richard Henderson <rth@redhat.com>
26833
26834 PR c++/60272
26835 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
26836 on failure the store back into EXPECT.
26837
26838 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
26839 Sandra Loosemore <sandra@codesourcery.com>
26840
26841 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
26842 * config/nios2/nios2.c (nios2_function_profiler): Add
26843 -fPIC (flag_pic == 2) support.
26844 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
26845 (nios2_large_offset_p): New function.
26846 (nios2_unspec_reloc_p): Move up position, update to use
26847 nios2_large_offset_p.
26848 (nios2_unspec_address): Remove function.
26849 (nios2_unspec_offset): New function.
26850 (nios2_large_got_address): New function.
26851 (nios2_got_address): Add large offset support.
26852 (nios2_legitimize_tls_address): Update usage of removed and new
26853 functions.
26854 (nios2_symbol_binds_local_p): New function.
26855 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
26856 (nios2_legitimize_address): Update to use nios2_large_offset_p.
26857 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
26858 (nios2_print_operand): Merge H/L processing, add hiadj/lo
26859 processing for (const (unspec ...)).
26860 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
26861
26862 2014-02-20 Richard Biener <rguenther@suse.de>
26863
26864 * tree-cfg.c (replace_uses_by): Mark altered BBs before
26865 doing the substitution.
26866 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
26867
26868 2014-02-20 Martin Jambor <mjambor@suse.cz>
26869
26870 PR ipa/55260
26871 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
26872 info when checking whether lattices are bottom.
26873
26874 2014-02-20 Richard Biener <rguenther@suse.de>
26875
26876 PR middle-end/60221
26877 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
26878 regions at -O0.
26879
26880 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
26881
26882 PR ipa/58555
26883 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
26884 parameter specifying the scaling.
26885 (inline_call): Update.
26886 (want_inline_recursively): Guard division by zero.
26887 (recursive_inlining): Update.
26888 * ipa-inline.h (clone_inlined_nodes): Update.
26889
26890 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
26891
26892 PR target/60204
26893 * config/i386/i386.c (classify_argument): Pass structures of size
26894 64 bytes or less in register.
26895
26896 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
26897 Kirill Yukhin <kirill.yukhin@intel.com>
26898
26899 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
26900 (_mm_rcp28_round_ss): Ditto.
26901 (_mm_rsqrt28_round_sd): Ditto.
26902 (_mm_rsqrt28_round_ss): Ditto.
26903 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
26904 (_mm_rcp14_round_ss): Ditto.
26905 (_mm_rsqrt14_round_sd): Ditto.
26906 (_mm_rsqrt14_round_ss): Ditto.
26907 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
26908 the first input operand, get rid of match_dup.
26909 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
26910 attribute to sse.
26911 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
26912 Ditto.
26913 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
26914 operand as the first input operand, set type attribute.
26915 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
26916 Set type attribute.
26917 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
26918 operand as the first input operand, set type attribute.
26919
26920 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26921
26922 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
26923 bit of zero.
26924
26925 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
26926
26927 PR target/60207
26928 * config/i386/i386.c (construct_container): Remove TFmode check
26929 for X86_64_INTEGER_CLASS.
26930
26931 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
26932
26933 PR target/59794
26934 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
26935 only when -Wpsabi is enabled.
26936
26937 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
26938
26939 PR target/59799
26940 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
26941 passing arrays in registers are the same as for structs, so remove the
26942 special case for them.
26943
26944 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
26945
26946 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
26947 destination type, extract only the valid bits if the source type is not
26948 integral and has a different mode.
26949
26950 2014-02-19 Richard Biener <rguenther@suse.de>
26951
26952 PR ipa/60243
26953 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
26954 for all calls.
26955
26956 2014-02-19 Richard Biener <rguenther@suse.de>
26957
26958 PR ipa/60243
26959 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
26960 (ipa_modify_call_arguments): Emit an argument load explicitely and
26961 preserve virtual SSA form there and for the replacement call.
26962 Do not update SSA form nor free dominance info.
26963
26964 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
26965
26966 * ipa.c (function_and_variable_visibility): Also clear WEAK
26967 flag when disolving COMDAT_GROUP.
26968
26969 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
26970
26971 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
26972 * ipa-prop.c (ipa_set_jf_known_type): Return early when
26973 not devirtualizing.
26974 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
26975 do more sanity checks.
26976 (detect_type_change): Return true when giving up early.
26977 (compute_complex_assign_jump_func): Fix type parameter of
26978 ipa_set_ancestor_jf.
26979 (compute_complex_ancestor_jump_func): Likewise.
26980 (update_jump_functions_after_inlining): Fix updating of
26981 ancestor function.
26982 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
26983
26984 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
26985
26986 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
26987 inline clones when edge disappears.
26988
26989 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
26990
26991 PR target/60203
26992 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
26993 Split 64-bit moves into 2 patterns. Do not allow the use of
26994 direct move for TDmode in little endian, since the decimal value
26995 has little endian bytes within a word, but the 64-bit pieces are
26996 ordered in a big endian fashion, and normal subreg's of TDmode are
26997 not allowed.
26998 (mov<mode>_64bit_dm): Likewise.
26999 (movtd_64bit_nodm): Likewise.
27000
27001 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
27002
27003 PR tree-optimization/60174
27004 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
27005 statement of an SSA_NAME that occurs in an abnormal PHI node.
27006
27007 2014-02-18 Jakub Jelinek <jakub@redhat.com>
27008
27009 PR sanitizer/60142
27010 * final.c (SEEN_BB): Remove.
27011 (SEEN_NOTE, SEEN_EMITTED): Renumber.
27012 (final_scan_insn): Don't force_source_line on second
27013 NOTE_INSN_BASIC_BLOCK.
27014
27015 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
27016
27017 PR target/60205
27018 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
27019 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
27020 (type_natural_mode): Warn ABI change when %zmm register is not
27021 available for AVX512F vector value passing.
27022
27023 2014-02-18 Kai Tietz <ktietz@redhat.com>
27024
27025 PR target/60193
27026 * config/i386/i386.c (ix86_expand_prologue): Use value in
27027 rax register as displacement when restoring %r10 or %rax.
27028 Fix wrong offset when restoring both registers.
27029
27030 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
27031
27032 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
27033 assertion with conditional return.
27034
27035 2014-02-18 Jakub Jelinek <jakub@redhat.com>
27036 Uros Bizjak <ubizjak@gmail.com>
27037
27038 PR driver/60233
27039 * config/i386/driver-i386.c (host_detect_local_cpu): If
27040 YMM state is not saved by the OS, also clear has_f16c. Move
27041 CPUID 0x80000001 handling before YMM state saving checking.
27042
27043 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
27044
27045 PR rtl-optimization/58960
27046 * haifa-sched.c (alloc_global_sched_pressure_data): New,
27047 factored out from ...
27048 (sched_init): ... here.
27049 (free_global_sched_pressure_data): New, factored out from ...
27050 (sched_finish): ... here.
27051 * sched-int.h (free_global_sched_pressure_data): Declare.
27052 * sched-rgn.c (nr_regions_initial): New static global.
27053 (haifa_find_rgns): Initialize it.
27054 (schedule_region): Disable sched-pressure for the newly
27055 generated regions.
27056
27057 2014-02-17 Richard Biener <rguenther@suse.de>
27058
27059 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
27060 release SSA defs of pattern stmts.
27061
27062 2014-02-17 Richard Biener <rguenther@suse.de>
27063
27064 * tree-inline.c (expand_call_inline): Release the virtual
27065 operand defined by the call we are about to inline.
27066
27067 2014-02-17 Richard Biener <rguenther@suse.de>
27068
27069 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
27070
27071 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
27072 Ilya Tocar <ilya.tocar@intel.com>
27073
27074 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
27075 arguments order in builtin.
27076 (_mm512_permutexvar_epi64): Ditto.
27077 (_mm512_mask_permutexvar_epi64): Ditto
27078 (_mm512_maskz_permutexvar_epi32): Ditto
27079 (_mm512_permutexvar_epi32): Ditto
27080 (_mm512_mask_permutexvar_epi32): Ditto
27081
27082 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27083
27084 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
27085 (p8_vmrgow): Likewise.
27086
27087 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27088
27089 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
27090 endian targets.
27091
27092 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
27093
27094 PR target/60203
27095 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
27096 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
27097 into 64-bit and 32-bit moves. On 64-bit moves, add support for
27098 using direct move instructions on ISA 2.07. Also adjust
27099 instruction length for 64-bit.
27100 (mov<mode>_64bit, TFmode/TDmode): Likewise.
27101 (mov<mode>_32bit, TFmode/TDmode): Likewise.
27102
27103 2014-02-15 Alan Modra <amodra@gmail.com>
27104
27105 PR target/58675
27106 PR target/57935
27107 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
27108 find_replacement on parts of insn rtl that might be reloaded.
27109
27110 2014-02-15 Richard Biener <rguenther@suse.de>
27111
27112 PR tree-optimization/60183
27113 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
27114 (tree_ssa_phiprop): Calculate and free post-dominators.
27115
27116 2014-02-14 Jeff Law <law@redhat.com>
27117
27118 PR rtl-optimization/60131
27119 * ree.c (get_extended_src_reg): New function.
27120 (combine_reaching_defs): Use it rather than assuming location of REG.
27121 (find_and_remove_re): Verify first operand of extension is
27122 a REG before adding the insns to the copy list.
27123
27124 2014-02-14 Roland McGrath <mcgrathr@google.com>
27125
27126 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
27127 * configure: Regenerated.
27128 * config.in: Regenerated.
27129 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
27130 instead of ASM_SHORT.
27131
27132 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
27133 Richard Earnshaw <rearnsha@arm.com>
27134
27135 PR rtl-optimization/59535
27136 * lra-constraints.c (process_alt_operands): Encourage alternative
27137 when unassigned pseudo class is superset of the alternative class.
27138 (inherit_reload_reg): Don't inherit when optimizing for code size.
27139 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
27140 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
27141 modes not less than 4 for Thumb1.
27142
27143 2014-02-14 Kyle McMartin <kyle@redhat.com>
27144
27145 PR pch/60010
27146 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
27147
27148 2014-02-14 Richard Biener <rguenther@suse.de>
27149
27150 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
27151 (get_frame_arg): Drop the assert with langhook types_compatible_p.
27152 Do not strip INDIRECT_REFs.
27153
27154 2014-02-14 Richard Biener <rguenther@suse.de>
27155
27156 PR lto/60179
27157 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
27158 DECL_FUNCTION_SPECIFIC_TARGET.
27159 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
27160 * tree-streamer-out.c (pack_ts_target_option): Remove.
27161 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
27162 (write_ts_function_decl_tree_pointers): Do not stream
27163 DECL_FUNCTION_SPECIFIC_TARGET.
27164 * tree-streamer-in.c (unpack_ts_target_option): Remove.
27165 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
27166 (lto_input_ts_function_decl_tree_pointers): Do not stream
27167 DECL_FUNCTION_SPECIFIC_TARGET.
27168
27169 2014-02-14 Jakub Jelinek <jakub@redhat.com>
27170
27171 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
27172 (get_initial_def_for_induction, vectorizable_induction): Ignore
27173 debug stmts when looking for exit_phi.
27174 (vectorizable_live_operation): Fix up condition.
27175
27176 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
27177
27178 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
27179 nreverse() because it changes the content of original tree list.
27180
27181 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
27182
27183 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
27184 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
27185
27186 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
27187
27188 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
27189 GNU coding standards.
27190
27191 2014-02-13 Jakub Jelinek <jakub@redhat.com>
27192
27193 PR debug/60152
27194 * dwarf2out.c (gen_subprogram_die): Don't call
27195 add_calling_convention_attribute if subr_die is old_die.
27196
27197 2014-02-13 Sharad Singhai <singhai@google.com>
27198
27199 * doc/optinfo.texi: Fix order of nodes.
27200
27201 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
27202
27203 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
27204 operands[2], not operands[3].
27205
27206 2014-02-13 Richard Biener <rguenther@suse.de>
27207
27208 PR bootstrap/59878
27209 * doc/install.texi (ISL): Update recommended version to 0.12.2,
27210 mention the possibility of an in-tree build.
27211 (CLooG): Update recommended version to 0.18.1, mention the
27212 possibility of an in-tree build and clarify that the ISL
27213 bundled with CLooG does not work.
27214
27215 2014-02-13 Jakub Jelinek <jakub@redhat.com>
27216
27217 PR target/43546
27218 * expr.c (compress_float_constant): If x is a hard register,
27219 extend into a pseudo and then move to x.
27220
27221 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
27222
27223 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
27224 caused by bad second argument to warning_at() with -mhotpatch and
27225 nested functions (e.g. with gfortran).
27226
27227 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
27228
27229 * opts.c (option_name): Remove "enabled by default" rider.
27230
27231 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
27232
27233 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
27234
27235 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
27236 Uros Bizjak <ubizjak@gmail.com>
27237
27238 PR target/60151
27239 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
27240 * configure: Regenerated.
27241
27242 2014-02-12 Richard Biener <rguenther@suse.de>
27243
27244 * vec.c (vec_prefix::calculate_allocation): Move as
27245 inline variant to vec.h.
27246 (vec_prefix::calculate_allocation_1): New out-of-line version.
27247 * vec.h (vec_prefix::calculate_allocation_1): Declare.
27248 (vec_prefix::m_has_auto_buf): Rename to ...
27249 (vec_prefix::m_using_auto_storage): ... this.
27250 (vec_prefix::calculate_allocation): Inline the easy cases
27251 and dispatch to calculate_allocation_1 which doesn't need the
27252 prefix address.
27253 (va_heap::reserve): Use gcc_checking_assert.
27254 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
27255 m_using_auto_storage.
27256 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
27257 member and adjust.
27258 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
27259 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
27260 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
27261
27262 2014-02-12 Richard Biener <rguenther@suse.de>
27263
27264 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
27265 when we found a dependence.
27266
27267 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
27268
27269 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
27270 common code...
27271 (maybe_fold_stmt): ... into this new function.
27272 * omp-low.c (lower_omp): Update comment.
27273
27274 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
27275 last use.
27276
27277 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
27278 dereference.
27279
27280 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
27281
27282 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
27283 identifiers in comments.
27284 (cortexa53_extra_costs): Likewise.
27285 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
27286 (cortexa7_extra_costs): Likewise.
27287 (cortexa12_extra_costs): Likewise.
27288 (cortexa15_extra_costs): Likewise.
27289 (v7m_extra_costs): Likewise.
27290
27291 2014-02-12 Richard Biener <rguenther@suse.de>
27292
27293 PR middle-end/60092
27294 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
27295 of posix_memalign being successful.
27296 (lower_stmt): Restrict lowering of posix_memalign to when
27297 -ftree-bit-ccp is enabled.
27298
27299 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
27300
27301 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
27302 arg_loc.
27303 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
27304
27305 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
27306
27307 PR rtl-optimization/60116
27308 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
27309 other_insn once the combination has been validated.
27310
27311 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
27312
27313 PR lto/59468
27314 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
27315 and wrapper.
27316 * ipa-devirt.c: Include demangle.h
27317 (odr_violation_reported): New static variable.
27318 (add_type_duplicate): Update odr_violations.
27319 (maybe_record_node): Add completep parameter; update it.
27320 (record_target_from_binfo): Add COMPLETEP parameter;
27321 update it as needed.
27322 (possible_polymorphic_call_targets_1): Likewise.
27323 (struct polymorphic_call_target_d): Add nonconstruction_targets;
27324 rename FINAL to COMPLETE.
27325 (record_targets_from_bases): Sanity check we found the binfo;
27326 fix COMPLETEP updating.
27327 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
27328 parameter, fix computing of COMPLETEP.
27329 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
27330 at LTO time do demangling.
27331 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
27332 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
27333 parameter.
27334 (gimple_get_virt_method_for_binfo): Likewise.
27335 * gimple-fold.h (gimple_get_virt_method_for_binfo,
27336 gimple_get_virt_method_for_vtable): Update prototypes.
27337
27338 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
27339
27340 PR target/49008
27341 * genautomata.c (add_presence_absence): Fix typo with
27342 {final_}presence_list.
27343
27344 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
27345
27346 PR target/60137
27347 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
27348 for VSX/Altivec vectors that land in GPR registers.
27349
27350 2014-02-11 Richard Henderson <rth@redhat.com>
27351 Jakub Jelinek <jakub@redhat.com>
27352
27353 PR debug/59776
27354 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
27355 around drhs if type conversion to lacc->type is not useless.
27356
27357 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27358
27359 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
27360 tuning struct.
27361 (cortex-a57.cortex-a53): Likewise.
27362 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
27363
27364 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27365
27366 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
27367 arm_restrict_it.
27368
27369 2014-02-11 Renlin Li <Renlin.Li@arm.com>
27370
27371 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
27372 add_options_for_arm_vfp3.
27373
27374 2014-02-11 Jeff Law <law@redhat.com>
27375
27376 PR middle-end/54041
27377 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
27378 object with an undesirable mode.
27379
27380 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27381
27382 PR libgomp/60107
27383 * config/i386/sol2-9.h: New file.
27384 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
27385 *-*-solaris2.9*): Use it.
27386
27387 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
27388
27389 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
27390 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
27391
27392 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
27393
27394 * config/microblaze/microblaze.c: Extend mcpu version format
27395
27396 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
27397
27398 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
27399
27400 2014-02-10 Richard Henderson <rth@redhat.com>
27401
27402 PR target/59927
27403 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
27404 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
27405 ms-abi vs -mno-accumulate-outgoing-args.
27406 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
27407 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
27408 respect to ms-abi.
27409
27410 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
27411
27412 PR middle-end/60080
27413 * cfgexpand.c (expand_asm_operands): Attach source location to
27414 ASM_INPUT rtx objects.
27415 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
27416
27417 2014-02-10 Nick Clifton <nickc@redhat.com>
27418
27419 * config/mn10300/mn10300.c (popcount): New function.
27420 (mn10300_expand_prologue): Include saved registers in stack usage
27421 count.
27422
27423 2014-02-10 Jeff Law <law@redhat.com>
27424
27425 PR middle-end/52306
27426 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
27427 when changing the SET_DEST of a prior insn to avoid an input reload.
27428
27429 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27430
27431 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
27432 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
27433 -mcall-openbsd, or -mcall-linux.
27434 (CC1_ENDIAN_BIG_SPEC): Remove.
27435 (CC1_ENDIAN_LITTLE_SPEC): Remove.
27436 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
27437 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
27438 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
27439 and %cc1_endian_default.
27440 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
27441
27442 2014-02-10 Richard Biener <rguenther@suse.de>
27443
27444 PR tree-optimization/60115
27445 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
27446 MEM_REF handling. Properly verify that the accesses are not
27447 out of the objects bound.
27448
27449 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27450
27451 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
27452 coretex to cortex.
27453
27454 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
27455
27456 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
27457 proper constants and fix formatting.
27458 (possible_polymorphic_call_targets): Fix formatting.
27459
27460 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
27461 Ilya Tocar <ilya.tocar@intel.com>
27462
27463 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
27464 (_mm512_loadu_epi32): Renamed into...
27465 (_mm512_loadu_si512): This.
27466 (_mm512_storeu_epi32): Renamed into...
27467 (_mm512_storeu_si512): This.
27468 (_mm512_maskz_ceil_ps): Removed.
27469 (_mm512_maskz_ceil_pd): Ditto.
27470 (_mm512_maskz_floor_ps): Ditto.
27471 (_mm512_maskz_floor_pd): Ditto.
27472 (_mm512_floor_round_ps): Ditto.
27473 (_mm512_floor_round_pd): Ditto.
27474 (_mm512_ceil_round_ps): Ditto.
27475 (_mm512_ceil_round_pd): Ditto.
27476 (_mm512_mask_floor_round_ps): Ditto.
27477 (_mm512_mask_floor_round_pd): Ditto.
27478 (_mm512_mask_ceil_round_ps): Ditto.
27479 (_mm512_mask_ceil_round_pd): Ditto.
27480 (_mm512_maskz_floor_round_ps): Ditto.
27481 (_mm512_maskz_floor_round_pd): Ditto.
27482 (_mm512_maskz_ceil_round_ps): Ditto.
27483 (_mm512_maskz_ceil_round_pd): Ditto.
27484 (_mm512_expand_pd): Ditto.
27485 (_mm512_expand_ps): Ditto.
27486 * config/i386/i386.c (ix86_builtins): Remove
27487 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
27488 (bdesc_args): Ditto.
27489 * config/i386/predicates.md (const1256_operand): New.
27490 (const_1_to_2_operand): Ditto.
27491 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
27492 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
27493 (*avx512pf_gatherpf<mode>sf): Ditto.
27494 (avx512pf_gatherpf<mode>df): Ditto.
27495 (*avx512pf_gatherpf<mode>df_mask): Ditto.
27496 (*avx512pf_gatherpf<mode>df): Ditto.
27497 (avx512pf_scatterpf<mode>sf): Ditto.
27498 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
27499 (*avx512pf_scatterpf<mode>sf): Ditto.
27500 (avx512pf_scatterpf<mode>df): Ditto.
27501 (*avx512pf_scatterpf<mode>df_mask): Ditto.
27502 (*avx512pf_scatterpf<mode>df): Ditto.
27503 (avx512f_expand<mode>): Removed.
27504 (<shift_insn><mode>3<mask_name>): Change predicate type.
27505
27506 2014-02-08 Jakub Jelinek <jakub@redhat.com>
27507
27508 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
27509 not at the end of datarefs vector use ordered_remove to avoid
27510 reordering datarefs vector.
27511
27512 PR c/59984
27513 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
27514 mark local addressable non-static vars as GOVD_PRIVATE
27515 instead of GOVD_LOCAL.
27516 * omp-low.c (lower_omp_for): Move gimple_bind_vars
27517 and BLOCK_VARS of gimple_bind_block to new_stmt rather
27518 than copying them.
27519
27520 PR middle-end/60092
27521 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
27522 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
27523 assume_aligned or alloc_align attributes.
27524 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
27525 arguments. Handle also assume_aligned and alloc_align attributes.
27526 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
27527 calls to functions with assume_aligned or alloc_align attributes.
27528 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
27529
27530 2014-02-08 Terry Guo <terry.guo@arm.com>
27531
27532 * doc/invoke.texi: Document ARM -march=armv7e-m.
27533
27534 2014-02-08 Jakub Jelinek <jakub@redhat.com>
27535
27536 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
27537 flag on __cilkrts_rethrow builtin.
27538
27539 PR ipa/60026
27540 * ipa-cp.c (determine_versionability): Fail at -O0
27541 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
27542 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
27543
27544 Revert:
27545 2014-02-04 Jakub Jelinek <jakub@redhat.com>
27546
27547 PR ipa/60026
27548 * tree-inline.c (copy_forbidden): Fail for
27549 __attribute__((optimize (0))) functions.
27550
27551 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
27552
27553 * varpool.c: Include pointer-set.h.
27554 (varpool_remove_unreferenced_decls): Variables in other partitions
27555 will not be output; be however careful to not lose information
27556 about partitioning.
27557
27558 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
27559
27560 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
27561 lookup in the vtable constructor.
27562
27563 2014-02-07 Jeff Law <law@redhat.com>
27564
27565 PR target/40977
27566 * config/m68k/m68k.md (ashldi_extsi): Turn into a
27567 define_insn_and_split.
27568
27569 * ipa-inline.c (inline_small_functions): Fix typos.
27570
27571 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
27572
27573 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
27574 (s390_can_use_return_insn): Declare.
27575 * config/s390/s390.h (EPILOGUE_USES): Define.
27576 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
27577 instructions.
27578 (s390_chunkify_start): Handle return JUMP_LABELs.
27579 (s390_early_mach): Emit a main_pool instruction on the entry edge.
27580 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
27581 (s390_can_use_return_insn): New functions.
27582 (s390_fix_long_loop_prediction): Handle conditional returns.
27583 (TARGET_SET_UP_BY_PROLOGUE): Define.
27584 * config/s390/s390.md (ANY_RETURN): New code iterator.
27585 (*creturn, *csimple_return, return, simple_return): New patterns.
27586
27587 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
27588
27589 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
27590 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
27591 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
27592 REG_CFA_RESTORE list when deciding not to restore a register.
27593
27594 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
27595
27596 * config/s390/s390.c: Include tree-pass.h and context.h.
27597 (s390_early_mach): New function, split out from...
27598 (s390_emit_prologue): ...here.
27599 (pass_data_s390_early_mach): New pass structure.
27600 (pass_s390_early_mach): New class.
27601 (s390_option_override): Create and register early_mach pass.
27602 Move to end of file.
27603
27604 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
27605
27606 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
27607 to match for the exit block.
27608
27609 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27610
27611 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
27612 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
27613 Reject misaligned operands.
27614
27615 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27616
27617 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
27618
27619 2014-02-07 Richard Biener <rguenther@suse.de>
27620
27621 PR middle-end/60092
27622 * gimple-low.c (lower_builtin_posix_memalign): New function.
27623 (lower_stmt): Call it to lower posix_memalign in a way
27624 to make alignment info accessible.
27625
27626 2014-02-07 Jakub Jelinek <jakub@redhat.com>
27627
27628 PR c++/60082
27629 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
27630 __builtin_setjmp_receiver.
27631
27632 2014-02-07 Richard Biener <rguenther@suse.de>
27633
27634 PR middle-end/60092
27635 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
27636 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
27637 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
27638 Handle BUILT_IN_POSIX_MEMALIGN.
27639 (find_func_clobbers): Likewise.
27640 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
27641 (call_may_clobber_ref_p_1): Likewise.
27642
27643 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
27644
27645 PR ipa/59918
27646 * ipa-devirt.c (record_target_from_binfo): Remove overactive
27647 sanity check.
27648
27649 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
27650
27651 PR ipa/59469
27652 * lto-cgraph.c (lto_output_node): Use
27653 symtab_get_symbol_partitioning_class.
27654 (lto_output_varpool_node): likewise.
27655 (symtab_get_symbol_partitioning_class): Move here from
27656 lto/lto-partition.c
27657 * cgraph.h (symbol_partitioning_class): Likewise.
27658 (symtab_get_symbol_partitioning_class): Declare.
27659
27660 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
27661
27662 * ggc.h (ggc_internal_cleared_alloc): New macro.
27663 * vec.h (vec_safe_copy): Handle memory stats.
27664 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
27665 * target-globals.c (save_target_globals): Likewise.
27666
27667 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
27668
27669 PR target/60077
27670 * expr.c (emit_move_resolve_push): Export; be bit more selective
27671 on when to clear alias set.
27672 * expr.h (emit_move_resolve_push): Declare.
27673 * function.h (struct function): Add tail_call_marked.
27674 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
27675 * config/i386/i386-protos.h (ix86_expand_push): Remove.
27676 * config/i386/i386.md (TImode move expander): De not call
27677 ix86_expand_push.
27678 (FP push expanders): Preserve memory attributes.
27679 * config/i386/sse.md (push<mode>1): Remove.
27680 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
27681 (ix86_expand_push): Remove.
27682 * config/i386/mmx.md (push<mode>1): Remove.
27683
27684 2014-02-06 Jakub Jelinek <jakub@redhat.com>
27685
27686 PR rtl-optimization/60030
27687 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
27688 lopart with paradoxical subreg before shifting it up by hprec.
27689
27690 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27691
27692 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
27693 Remove extra newline at end of file.
27694 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
27695 (arm_issue_rate): Handle cortexa57.
27696 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
27697 (cortex-a57.cortex-a53): Likewise.
27698
27699 2014-02-06 Jakub Jelinek <jakub@redhat.com>
27700
27701 PR target/59575
27702 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
27703 don't record in REG_FRAME_RELATED_EXPR registers not set in that
27704 bitmask.
27705 (arm_expand_prologue): Adjust all callers.
27706 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
27707 info, registers also at the lowest numbered registers side. Use
27708 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
27709 XEXP.
27710
27711 PR debug/59992
27712 * var-tracking.c (adjust_mems): Before adding a SET to
27713 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
27714
27715 2014-02-06 Alan Modra <amodra@gmail.com>
27716
27717 PR target/60032
27718 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
27719 change SDmode to DDmode when lra_in_progress.
27720
27721 2014-02-06 Jakub Jelinek <jakub@redhat.com>
27722
27723 PR middle-end/59150
27724 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
27725 free_data_ref on the dr first, and before goto again also set dr
27726 to the next dr. For simd_lane_access, free old datarefs[i] before
27727 overwriting it. For get_vectype_for_scalar_type failure, don't
27728 free_data_ref if simd_lane_access.
27729
27730 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
27731
27732 PR target/60062
27733 * tree.h (opts_for_fn): New inline function.
27734 (opt_for_fn): Define.
27735 * config/i386/i386.c (ix86_function_regparm): Use
27736 opt_for_fn (decl, optimize) instead of optimize.
27737
27738 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
27739
27740 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
27741 for SYMBOL_REF in large memory model.
27742
27743 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27744
27745 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
27746 and crypto support.
27747 (cortex-a57): Likewise.
27748 (cortex-a57.cortex-a53): Likewise.
27749
27750 2014-02-06 Yury Gribov <y.gribov@samsung.com>
27751 Kugan Vivekanandarajah <kuganv@linaro.org>
27752
27753 * config/arm/arm.c (arm_vector_alignment_reachable): Check
27754 unaligned_access.
27755 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
27756
27757 2014-02-06 Richard Biener <rguenther@suse.de>
27758
27759 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
27760 set_loop_copy and initialize_original_copy_tables.
27761
27762 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
27763
27764 * config/aarch64/aarch64-simd.md
27765 (aarch64_ashr_simddi): Change QI to SI.
27766
27767 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
27768 Jakub Jelinek <jakub@redhat.com>
27769
27770 PR middle-end/60013
27771 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
27772 of the dataflow.
27773
27774 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27775
27776 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
27777 CODE_FOR_altivec_vpku[hw]um to
27778 CODE_FOR_altivec_vpku[hw]um_direct.
27779 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
27780 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
27781 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
27782 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
27783
27784 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27785
27786 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
27787 generation for -maltivec=be.
27788 (altivec_vsumsws): Simplify redundant test.
27789
27790 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27791
27792 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
27793 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
27794 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
27795 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
27796 gen_altivec_vpkuwum.
27797 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
27798 BYTES_BIG_ENDIAN.
27799 (altivec_vpks<VI_char>ss): Likewise.
27800 (altivec_vpks<VI_char>us): Likewise.
27801 (altivec_vpku<VI_char>us): Likewise.
27802 (altivec_vpku<VI_char>um): Likewise.
27803 (altivec_vpku<VI_char>um_direct): New (copy of
27804 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
27805 internal use).
27806 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
27807 target is little endian and -maltivec=be is not specified.
27808 (*altivec_vupkhs<VU_char>_direct): New (copy of
27809 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
27810 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
27811 target is little endian and -maltivec=be is not specified.
27812 (*altivec_vupkls<VU_char>_direct): New (copy of
27813 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
27814 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
27815 little endian and -maltivec=be is not specified.
27816 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
27817 little endian and -maltivec=be is not specified.
27818
27819 2014-02-05 Richard Henderson <rth@redhat.com>
27820
27821 PR debug/52727
27822 * combine-stack-adj.c: Revert r206943.
27823 * sched-int.h (struct deps_desc): Add last_args_size.
27824 * sched-deps.c (init_deps): Initialize it.
27825 (sched_analyze_insn): Add OUTPUT dependencies between insns that
27826 contain REG_ARGS_SIZE notes.
27827
27828 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
27829
27830 * lto-cgraph.c (asm_nodes_output): Make global.
27831 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
27832 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
27833 (driver_handle_option): Handle OPT_fwpa.
27834
27835 2014-02-05 Jakub Jelinek <jakub@redhat.com>
27836
27837 PR ipa/59947
27838 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
27839 a comment typo and formatting issue. If odr_hash hasn't been
27840 created, return vNULL and set *completep to false.
27841
27842 PR middle-end/57499
27843 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
27844 bb with no successors.
27845
27846 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
27847
27848 PR target/59718
27849 * doc/invoke.texi (-march): Clarify documentation for ARM.
27850 (-mtune): Likewise.
27851 (-mcpu): Likewise.
27852
27853 2014-02-05 Richard Biener <rguenther@suse.de>
27854
27855 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
27856 when not vectorizing because of too many alias checks.
27857 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
27858 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
27859
27860 2014-02-05 Nick Clifton <nickc@redhat.com>
27861
27862 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
27863 accept extended registers in any mode when compiling for the MN10300.
27864
27865 2014-02-05 Yury Gribov <y.gribov@samsung.com>
27866
27867 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
27868 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
27869 sanitization attributes.
27870 (can_inline_edge_p): Likewise.
27871 (sanitize_attrs_match_for_inline_p): New function.
27872
27873 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
27874
27875 * ipa-prop.c (detect_type_change): Shor circuit testing of
27876 type changes on THIS pointer.
27877
27878 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
27879
27880 PR target/59777
27881 * config/pa/pa.c (legitimize_tls_address): Return original address
27882 if not passed a SYMBOL_REF rtx.
27883 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
27884 addresses.
27885 (pa_emit_move_sequence): Simplify TLS source operands.
27886 (pa_legitimate_constant_p): Reject all TLS constants.
27887 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
27888 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
27889
27890 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
27891
27892 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
27893 groups when we know they are controlled by LTO.
27894 * varasm.c (default_binds_local_p_1): If object is in other partition,
27895 it will be resolved locally.
27896
27897 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
27898
27899 * config/host-linux.c (linux_gt_pch_use_address): Don't
27900 use SSIZE_MAX because it is not always defined.
27901
27902 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
27903
27904 PR bootstrap/59913
27905 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
27906 threshold for pseudo splitting.
27907 (update_ebb_live_info): Process call argument hard registers and
27908 hard registers from insn definition too.
27909 (max_small_class_regs_num): New constant.
27910 (inherit_in_ebb): Update live hard regs through EBBs. Update
27911 reloads_num only for small register classes. Don't split for
27912 outputs of jumps.
27913
27914 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
27915
27916 PR ipa/60058
27917 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
27918 is non-null.
27919
27920 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
27921
27922 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
27923 visibility is safe.
27924
27925 2014-02-04 Marek Polacek <polacek@redhat.com>
27926
27927 * gdbinit.in (pel): Define.
27928
27929 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
27930
27931 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
27932 behavior.
27933
27934 2014-02-04 Richard Biener <rguenther@suse.de>
27935
27936 PR lto/59723
27937 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
27938 in function context local.
27939 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
27940 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
27941 similar to LTO_imported_decl_ref.
27942
27943 2014-02-04 Jakub Jelinek <jakub@redhat.com>
27944
27945 PR tree-optimization/60002
27946 * cgraphclones.c (build_function_decl_skip_args): Clear
27947 DECL_LANG_SPECIFIC.
27948
27949 PR tree-optimization/60023
27950 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
27951 false to gsi_replace.
27952 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
27953 has been in some EH region and vec_stmt could throw, add
27954 vec_stmt into the same EH region.
27955 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
27956 has no lhs, ignore it.
27957 * internal-fn.c (expand_MASK_LOAD): Likewise.
27958
27959 PR ipa/60026
27960 * tree-inline.c (copy_forbidden): Fail for
27961 __attribute__((optimize (0))) functions.
27962
27963 PR other/58712
27964 * omp-low.c (simd_clone_struct_copy): If from->inbranch
27965 is set, copy one less argument.
27966 (expand_simd_clones): Don't subtract clone_info->inbranch
27967 from simd_clone_struct_alloc argument.
27968
27969 PR rtl-optimization/57915
27970 * recog.c (simplify_while_replacing): If all unary/binary/relational
27971 operation arguments are constant, attempt to simplify those.
27972
27973 PR middle-end/59261
27974 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
27975 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
27976
27977 2014-02-04 Richard Biener <rguenther@suse.de>
27978
27979 PR tree-optimization/60012
27980 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
27981 TBAA disambiguation to all DDRs.
27982
27983 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27984
27985 PR target/59788
27986 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
27987 (LINK_SPEC): Use it for -shared, -shared-libgcc.
27988
27989 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
27990
27991 PR ipa/59882
27992 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
27993
27994 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
27995
27996 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
27997 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
27998
27999 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
28000
28001 PR ipa/59831
28002 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
28003 to figure out targets of polymorphic calls with known decl.
28004 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28005 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
28006 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
28007 (get_polymorphic_call_info): ... here.
28008 (get_polymorphic_call_info_from_invariant): New function.
28009
28010 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
28011
28012 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
28013 lookup via vtable pointer; check for type consistency
28014 and turn inconsitent facts into UNREACHABLE.
28015 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28016 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
28017 type inconsistent querries; return UNREACHABLE instead.
28018
28019 2014-02-03 Richard Henderson <rth@twiddle.net>
28020
28021 PR tree-opt/59924
28022 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
28023 already processed this node.
28024 (normalize_one_pred_1): Pass along mark_set.
28025 (normalize_one_pred): Create and destroy a pointer_set_t.
28026 (normalize_one_pred_chain): Likewise.
28027
28028 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
28029
28030 PR gcov-profile/58602
28031 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
28032
28033 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
28034
28035 PR ipa/59831
28036 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
28037 -fno-devirtualize; try to devirtualize by the knowledge of
28038 virtual table pointer given by aggregate propagation.
28039 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28040 (ipa_print_node_jump_functions): Dump also offset that
28041 is relevant for polymorphic calls.
28042 (determine_known_aggregate_parts): Add arg_type parameter; use it
28043 instead of determining the type from pointer type.
28044 (ipa_compute_jump_functions_for_edge): Update call of
28045 determine_known_aggregate_parts.
28046 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
28047 (gimple_get_virt_method_for_binfo): ... here; simplify using
28048 vtable_pointer_value_to_vtable.
28049 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
28050 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
28051 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
28052 (vtable_pointer_value_to_vtable): Break out from ...; handle also
28053 POINTER_PLUS_EXPR.
28054 (vtable_pointer_value_to_binfo): ... here.
28055 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
28056
28057 2014-02-03 Teresa Johnson <tejohnson@google.com>
28058
28059 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
28060 redef of outer loop index variable.
28061
28062 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
28063
28064 PR c++/53017
28065 PR c++/59211
28066 * doc/extend.texi (Function Attributes): Typo.
28067
28068 2014-02-03 Cong Hou <congh@google.com>
28069
28070 PR tree-optimization/60000
28071 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
28072 if the vectorized statement is a store. A store statement can only
28073 appear at the end of pattern statements.
28074
28075 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
28076
28077 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
28078 (ix86_option_override_internal): Default long double to 64-bit for
28079 32-bit Bionic and to 128-bit for 64-bit Bionic.
28080
28081 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
28082 TARGET_LONG_DOUBLE_128 is true.
28083 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
28084
28085 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
28086 (mlong-double-64): Negate -mlong-double-128.
28087 (mlong-double-128): New option.
28088
28089 * config/i386/i386-c.c (ix86_target_macros): Define
28090 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
28091
28092 * doc/invoke.texi: Document -mlong-double-128.
28093
28094 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
28095
28096 PR rtl-optimization/60024
28097 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
28098
28099 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
28100
28101 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
28102
28103 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
28104
28105 PR rtl-optimization/57662
28106 * sel-sched.c (code_motion_path_driver): Do not mark already not
28107 existing blocks in the visiting bitmap.
28108
28109 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
28110
28111 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
28112 on the insn being emitted.
28113
28114 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
28115 Will Deacon <will.deacon@arm.com>
28116
28117 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
28118
28119 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28120
28121 * config/arm/arm-tables.opt: Regenerate.
28122
28123 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28124
28125 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
28126 for vector types other than V16QImode.
28127 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
28128 define_expand, and call altivec_expand_vec_perm_le when producing
28129 code with little endian element order.
28130 (*altivec_vperm_<mode>_internal): New insn having previous
28131 behavior of altivec_vperm_<mode>.
28132 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
28133 altivec_expand_vec_perm_le when producing code with little endian
28134 element order.
28135 (*altivec_vperm_<mode>_uns_internal): New insn having previous
28136 behavior of altivec_vperm_<mode>_uns.
28137
28138 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28139
28140 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
28141 (altivec_vsumsws): Add handling for -maltivec=be with a little
28142 endian target.
28143 (altivec_vsumsws_direct): New.
28144 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
28145 gen_altivec_vsumsws.
28146
28147 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
28148
28149 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
28150 vtable_pointer_value_to_binfo): New functions.
28151 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
28152 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
28153
28154 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
28155
28156 * config/nios2/nios2.md (load_got_register): Initialize GOT
28157 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
28158 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
28159
28160 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
28161
28162 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
28163 preserverd by passthrough, do not propagate the type.
28164
28165 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
28166
28167 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
28168 (mips_atomic_assign_expand_fenv): New function.
28169 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
28170
28171 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
28172
28173 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
28174 (__builtin_mips_set_fcsr): Likewise.
28175 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
28176 MIPS_USI_FTYPE_VOID.
28177 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
28178 (mips16_expand_set_fcsr): Likewise.
28179 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
28180 (mips16_set_fcsr_stub): Likewise.
28181 (mips16_get_fcsr_one_only_stub): New class.
28182 (mips16_set_fcsr_one_only_stub): Likewise.
28183 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
28184 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
28185 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
28186 (hard_float): New availability predicate.
28187 (mips_builtins): Add get_fcsr and set_fcsr.
28188 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
28189 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
28190 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
28191 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
28192 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
28193 patterns.
28194
28195 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
28196
28197 * config/mips/mips.c (mips_one_only_stub): New class.
28198 (mips_need_mips16_rdhwr_p): Replace with...
28199 (mips16_rdhwr_stub): ...this new variable.
28200 (mips16_stub_call_address): New function.
28201 (mips16_rdhwr_one_only_stub): New class.
28202 (mips_expand_thread_pointer): Use mips16_stub_call_address.
28203 (mips_output_mips16_rdhwr): Delete.
28204 (mips_finish_stub): New function.
28205 (mips_code_end): Use it to handle rdhwr stubs.
28206
28207 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
28208
28209 PR target/60017
28210 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
28211 when calculating size of integer atomic types.
28212
28213 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
28214
28215 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
28216
28217 2014-02-01 Jakub Jelinek <jakub@redhat.com>
28218
28219 PR tree-optimization/60003
28220 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
28221 * profile.c (branch_prob): Use gimple_call_builtin_p
28222 to check for BUILT_IN_SETJMP_RECEIVER.
28223 * tree-inline.c (copy_bb): Call notice_special_calls.
28224
28225 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
28226
28227 PR bootstrap/59985
28228 * lra-constraints.c (process_alt_operands): Update reload_sum only
28229 on the first pass.
28230
28231 2014-01-31 Richard Henderson <rth@redhat.com>
28232
28233 PR middle-end/60004
28234 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
28235 until after else_eh is processed.
28236
28237 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
28238
28239 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
28240 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
28241 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
28242 in smmintrin.h, remove them.
28243 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
28244 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
28245 * config/i386/i386.md (ROUND_SAE): Fix value.
28246 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
28247 (const48_operand): New.
28248 * config/i386/subst.md (round), (round_expand): Use
28249 const_4_or_8_to_11_operand.
28250 (round_saeonly), (round_saeonly_expand): Use const48_operand.
28251
28252 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
28253
28254 * config/i386/constraints.md (Yk): Swap meaning with k.
28255 * config/i386/i386.md (movhi_internal): Change Yk to k.
28256 (movqi_internal): Ditto.
28257 (*k<logic><mode>): Ditto.
28258 (*andhi_1): Ditto.
28259 (*andqi_1): Ditto.
28260 (kandn<mode>): Ditto.
28261 (*<code>hi_1): Ditto.
28262 (*<code>qi_1): Ditto.
28263 (kxnor<mode>): Ditto.
28264 (kortestzhi): Ditto.
28265 (kortestchi): Ditto.
28266 (kunpckhi): Ditto.
28267 (*one_cmplhi2_1): Ditto.
28268 (*one_cmplqi2_1): Ditto.
28269 * config/i386/sse.md (): Change k to Yk.
28270 (avx512f_load<mode>_mask): Ditto.
28271 (avx512f_blendm<mode>): Ditto.
28272 (avx512f_store<mode>_mask): Ditto.
28273 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
28274 (avx512f_storedqu<mode>_mask): Ditto.
28275 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
28276 Ditto.
28277 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
28278 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
28279 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
28280 (avx512f_maskcmp<mode>3): Ditto.
28281 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
28282 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
28283 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
28284 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
28285 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
28286 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
28287 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
28288 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
28289 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
28290 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
28291 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
28292 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
28293 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
28294 (vec_extract_lo_<mode>_maskm): Ditto.
28295 (vec_extract_hi_<mode>_maskm): Ditto.
28296 (avx512f_vternlog<mode>_mask): Ditto.
28297 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
28298 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
28299 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
28300 (avx512f_<code>v8div16qi2_mask): Ditto.
28301 (avx512f_<code>v8div16qi2_mask_store): Ditto.
28302 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
28303 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
28304 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
28305 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
28306 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
28307 (*avx512pf_gatherpf<mode>df_mask): Ditto.
28308 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
28309 (*avx512pf_scatterpf<mode>df_mask): Ditto.
28310 (avx512cd_maskb_vec_dupv8di): Ditto.
28311 (avx512cd_maskw_vec_dupv16si): Ditto.
28312 (avx512f_vpermi2var<mode>3_maskz): Ditto.
28313 (avx512f_vpermi2var<mode>3_mask): Ditto.
28314 (avx512f_vpermi2var<mode>3_mask): Ditto.
28315 (avx512f_vpermt2var<mode>3_maskz): Ditto.
28316 (*avx512f_gathersi<mode>): Ditto.
28317 (*avx512f_gathersi<mode>_2): Ditto.
28318 (*avx512f_gatherdi<mode>): Ditto.
28319 (*avx512f_gatherdi<mode>_2): Ditto.
28320 (*avx512f_scattersi<mode>): Ditto.
28321 (*avx512f_scatterdi<mode>): Ditto.
28322 (avx512f_compress<mode>_mask): Ditto.
28323 (avx512f_compressstore<mode>_mask): Ditto.
28324 (avx512f_expand<mode>_mask): Ditto.
28325 * config/i386/subst.md (mask): Change k to Yk.
28326 (mask_scalar_merge): Ditto.
28327 (sd): Ditto.
28328
28329 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
28330
28331 * doc/extend.texi (Vector Extensions): Document ?: in C++.
28332
28333 2014-01-31 Richard Biener <rguenther@suse.de>
28334
28335 PR middle-end/59990
28336 * builtins.c (fold_builtin_memory_op): Make sure to not
28337 use a floating-point mode or a boolean or enumeral type for
28338 the copy operation.
28339
28340 2014-01-30 DJ Delorie <dj@redhat.com>
28341
28342 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
28343 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
28344 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
28345 whenever main() has an epilogue.
28346
28347 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28348
28349 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
28350 unused variable "field".
28351 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
28352 (vsx_mergeh_<mode>): Likewise.
28353 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
28354 (altivec_vmrghh): Likewise.
28355 (altivec_vmrghw): Likewise.
28356 (altivec_vmrglb): Likewise.
28357 (altivec_vmrglh): Likewise.
28358 (altivec_vmrglw): Likewise.
28359 (altivec_vspltb): Add missing uses.
28360 (altivec_vsplth): Likewise.
28361 (altivec_vspltw): Likewise.
28362 (altivec_vspltsf): Likewise.
28363
28364 2014-01-30 Jakub Jelinek <jakub@redhat.com>
28365
28366 PR target/59923
28367 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
28368 frame related instructions.
28369
28370 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
28371
28372 PR rtl-optimization/59959
28373 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
28374 any reload of register whose subreg is invalid.
28375
28376 2014-01-30 Jakub Jelinek <jakub@redhat.com>
28377
28378 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
28379 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
28380 Add missing return type - void.
28381
28382 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28383
28384 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
28385 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
28386 remove element index adjustment for endian (now handled in vsx.md
28387 and altivec.md).
28388 (altivec_expand_vec_perm_const): Use
28389 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
28390 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
28391 (vsx_xxspltw_<mode>): Adjust element index for little endian.
28392 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
28393 define_expand and a new define_insn *altivec_vspltb_internal;
28394 adjust for -maltivec=be on a little endian target.
28395 (altivec_vspltb_direct): New.
28396 (altivec_vsplth): Divide into a define_expand and a new
28397 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
28398 little endian target.
28399 (altivec_vsplth_direct): New.
28400 (altivec_vspltw): Divide into a define_expand and a new
28401 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
28402 little endian target.
28403 (altivec_vspltw_direct): New.
28404 (altivec_vspltsf): Divide into a define_expand and a new
28405 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
28406 a little endian target.
28407
28408 2014-01-30 Richard Biener <rguenther@suse.de>
28409
28410 PR tree-optimization/59993
28411 * tree-ssa-forwprop.c (associate_pointerplus): Check we
28412 can propagate form the earlier stmt and avoid the transform
28413 when the intermediate result is needed.
28414
28415 2014-01-30 Alangi Derick <alangiderick@gmail.com>
28416
28417 * README.Portability: Fix typo.
28418
28419 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
28420
28421 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
28422 comparison_operator with ordered_comparison_operator.
28423
28424 2014-01-30 Nick Clifton <nickc@redhat.com>
28425
28426 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
28427 Rename to mn10300_store_multiple_regs.
28428 * config/mn10300/mn10300.c: Likewise.
28429 * config/mn10300/mn10300.md (store_movm): Fix typo: call
28430 store_multiple_regs.
28431 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
28432 Call mn10300_store_multiple_regs.
28433
28434 2014-01-30 Nick Clifton <nickc@redhat.com>
28435 DJ Delorie <dj@redhat.com>
28436
28437 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
28438 %fp 2 to keep registers after it properly word-aligned.
28439 (rl78_alloc_physical_registers_umul): Handle the case where both
28440 input operands are the same.
28441
28442 2014-01-30 Richard Biener <rguenther@suse.de>
28443
28444 PR tree-optimization/59903
28445 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
28446 check properly.
28447
28448 2014-01-30 Jason Merrill <jason@redhat.com>
28449
28450 PR c++/59633
28451 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
28452
28453 PR c++/59645
28454 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
28455
28456 2014-01-30 Richard Biener <rguenther@suse.de>
28457
28458 PR tree-optimization/59951
28459 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
28460
28461 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
28462
28463 PR target/59784
28464 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
28465 SFmode to DFmode case.
28466
28467 2014-01-29 DJ Delorie <dj@redhat.com>
28468
28469 * config/msp430/msp430.opt (-minrt): New.
28470 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
28471 if -minrt given.
28472 (ENDFILE_SPEC): Likewise.
28473
28474 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
28475
28476 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
28477 (estimate_function_body_sizes): Use it.
28478
28479 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
28480
28481 PR c++/58561
28482 * dwarf2out.c (is_cxx_auto): New.
28483 (is_base_type): Use it.
28484 (gen_type_die_with_usage): Likewise.
28485
28486 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28487
28488 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
28489 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
28490 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
28491 -maltivec=be with LE targets.
28492 (vsx_mergeh_<mode>): Likewise.
28493 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
28494 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
28495 (altivec_vmrghb): Replace with define_expand and new
28496 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
28497 (altivec_vmrghb_direct): New define_insn.
28498 (altivec_vmrghh): Replace with define_expand and new
28499 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
28500 (altivec_vmrghh_direct): New define_insn.
28501 (altivec_vmrghw): Replace with define_expand and new
28502 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
28503 (altivec_vmrghw_direct): New define_insn.
28504 (*altivec_vmrghsf): Adjust for endianness.
28505 (altivec_vmrglb): Replace with define_expand and new
28506 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
28507 (altivec_vmrglb_direct): New define_insn.
28508 (altivec_vmrglh): Replace with define_expand and new
28509 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
28510 (altivec_vmrglh_direct): New define_insn.
28511 (altivec_vmrglw): Replace with define_expand and new
28512 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
28513 (altivec_vmrglw_direct): New define_insn.
28514 (*altivec_vmrglsf): Adjust for endianness.
28515 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
28516 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
28517 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
28518 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
28519 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
28520 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
28521 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
28522 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
28523
28524 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
28525
28526 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
28527 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
28528 whitespace.
28529
28530 2014-01-29 Richard Biener <rguenther@suse.de>
28531
28532 PR tree-optimization/58742
28533 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
28534 associate_pointerplus_align.
28535 (associate_pointerplus_diff): New function.
28536 (associate_pointerplus): Likewise. Call associate_pointerplus_align
28537 and associate_pointerplus_diff.
28538
28539 2014-01-29 Richard Biener <rguenther@suse.de>
28540
28541 * lto-streamer.h (LTO_major_version): Bump to 3.
28542 (LTO_minor_version): Reset to 0.
28543
28544 2014-01-29 Renlin Li <Renlin.Li@arm.com>
28545
28546 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
28547 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
28548 (arm_file_start): Generate correct asm header for armv7ve.
28549 * config/arm/bpabi.h: Add multilib support for armv7ve.
28550 * config/arm/driver-arm.c: Change the architectures of cortex-a7
28551 and cortex-a15 to armv7ve.
28552 * config/arm/t-aprofile: Add multilib support for armv7ve.
28553 * doc/invoke.texi: Document -march=armv7ve.
28554
28555 2014-01-29 Richard Biener <rguenther@suse.de>
28556
28557 PR tree-optimization/58742
28558 * tree-ssa-forwprop.c (associate_plusminus): Return true
28559 if we changed sth, defer EH cleanup to ...
28560 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
28561 (simplify_mult): New function.
28562
28563 2014-01-29 Jakub Jelinek <jakub@redhat.com>
28564
28565 PR middle-end/59917
28566 PR tree-optimization/59920
28567 * tree.c (build_common_builtin_nodes): Remove
28568 __builtin_setjmp_dispatcher initialization.
28569 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
28570 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
28571 instead of gsi_after_labels + manually skipping debug stmts.
28572 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
28573 ignore bbs with IFN_ABNORMAL_DISPATCHER.
28574 * tree-inline.c (copy_edges_for_bb): Remove
28575 can_make_abnormal_goto argument, instead add abnormal_goto_dest
28576 argument. Ignore computed_goto_p stmts. Don't call
28577 make_abnormal_goto_edges. If a call might need abnormal edges
28578 for non-local gotos, see if it already has an edge to
28579 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
28580 with true argument, don't do anything then, otherwise add
28581 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
28582 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
28583 caller.
28584 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
28585 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
28586 (lower_stmt): Don't set data->calls_builtin_setjmp.
28587 (lower_builtin_setjmp): Adjust comment.
28588 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
28589 * tree-cfg.c (found_computed_goto): Remove.
28590 (factor_computed_gotos): Remove.
28591 (make_goto_expr_edges): Return bool, true for computed gotos.
28592 Don't call make_abnormal_goto_edges.
28593 (build_gimple_cfg): Don't set found_computed_goto, don't call
28594 factor_computed_gotos.
28595 (computed_goto_p): No longer static.
28596 (make_blocks): Don't set found_computed_goto.
28597 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
28598 (make_edges): If make_goto_expr_edges returns true, push bb
28599 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
28600 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
28601 vector. Record mapping between bbs and OpenMP regions if there
28602 are any, adjust make_gimple_omp_edges caller. Call
28603 handle_abnormal_edges.
28604 (make_abnormal_goto_edges): Remove.
28605 * tree-cfg.h (make_abnormal_goto_edges): Remove.
28606 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
28607 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
28608 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
28609 * internal-fn.def (ABNORMAL_DISPATCHER): New.
28610 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
28611 filling *region also set *region_idx to (*region)->entry->index.
28612
28613 PR other/58712
28614 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
28615 For REGs set ORIGINAL_REGNO.
28616
28617 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
28618
28619 * doc/md.texi: Mention that a target shouldn't implement
28620 vec_widen_(s|u)mul_even/odd pair if it is less efficient
28621 than hi/lo pair.
28622
28623 2014-01-29 Jakub Jelinek <jakub@redhat.com>
28624
28625 PR tree-optimization/59594
28626 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
28627 a copy of the datarefs vector rather than the vector itself.
28628
28629 2014-01-28 Jason Merrill <jason@redhat.com>
28630
28631 PR c++/53756
28632 * dwarf2out.c (auto_die): New static.
28633 (gen_type_die_with_usage): Handle C++1y 'auto'.
28634 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
28635 on definition.
28636
28637 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
28638
28639 PR target/59672
28640 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
28641 (SPEC_X32): Likewise.
28642 (SPEC_64): Likewise.
28643 * config/i386/i386.c (ix86_option_override_internal): Turn off
28644 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
28645 for TARGET_16BIT.
28646 (x86_file_start): Output .code16gcc for TARGET_16BIT.
28647 * config/i386/i386.h (TARGET_16BIT): New macro.
28648 (TARGET_16BIT_P): Likewise.
28649 * config/i386/i386.opt: Add m16.
28650 * doc/invoke.texi: Document -m16.
28651
28652 2014-01-28 Jakub Jelinek <jakub@redhat.com>
28653
28654 PR preprocessor/59935
28655 * input.c (location_get_source_line): Bail out on when line number
28656 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
28657
28658 2014-01-28 Richard Biener <rguenther@suse.de>
28659
28660 PR tree-optimization/58742
28661 * tree-ssa-forwprop.c (associate_plusminus): Handle
28662 pointer subtraction of the form (T)(P + A) - (T)P.
28663
28664 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28665
28666 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
28667 at const_int_cost.
28668
28669 2014-01-28 Richard Biener <rguenther@suse.de>
28670
28671 Revert
28672 2014-01-28 Richard Biener <rguenther@suse.de>
28673
28674 PR rtl-optimization/45364
28675 PR rtl-optimization/59890
28676 * var-tracking.c (local_get_addr_clear_given_value): Handle
28677 already cleared slot.
28678 (val_reset): Handle not allocated local_get_addr_cache.
28679 (vt_find_locations): Use post-order on the inverted CFG.
28680
28681 2014-01-28 Richard Biener <rguenther@suse.de>
28682
28683 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
28684
28685 2014-01-28 Richard Biener <rguenther@suse.de>
28686
28687 PR rtl-optimization/45364
28688 PR rtl-optimization/59890
28689 * var-tracking.c (local_get_addr_clear_given_value): Handle
28690 already cleared slot.
28691 (val_reset): Handle not allocated local_get_addr_cache.
28692 (vt_find_locations): Use post-order on the inverted CFG.
28693
28694 2014-01-28 Alan Modra <amodra@gmail.com>
28695
28696 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
28697 * configure.ac <recursive call for build != host>: Define
28698 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
28699 and LD_FOR_BUILD too.
28700 * configure: Regenerate.
28701
28702 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
28703
28704 * config/i386/i386.c (get_builtin_code_for_version): Separate
28705 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
28706 Broadwell from Haswell.
28707
28708 2014-01-27 Steve Ellcey <sellcey@mips.com>
28709
28710 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
28711 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
28712 * config/mips/mips.c (mips_option_override): Change setting
28713 of TARGET_DSP.
28714 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
28715 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
28716 Change from Mask to Var.
28717
28718 2014-01-27 Jeff Law <law@redhat.com>
28719
28720 * ipa-inline.c (inline_small_functions): Fix typo.
28721
28722 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
28723
28724 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
28725 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
28726 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
28727 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
28728 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
28729 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
28730 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
28731 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
28732 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
28733 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
28734 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
28735 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
28736 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
28737 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
28738 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
28739 (_mm512_storeu_epi64): Ditto.
28740 (_mm512_cmpge_epi32_mask): Ditto.
28741 (_mm512_cmpge_epu32_mask): Ditto.
28742 (_mm512_cmpge_epi64_mask): Ditto.
28743 (_mm512_cmpge_epu64_mask): Ditto.
28744 (_mm512_cmple_epi32_mask): Ditto.
28745 (_mm512_cmple_epu32_mask): Ditto.
28746 (_mm512_cmple_epi64_mask): Ditto.
28747 (_mm512_cmple_epu64_mask): Ditto.
28748 (_mm512_cmplt_epi32_mask): Ditto.
28749 (_mm512_cmplt_epu32_mask): Ditto.
28750 (_mm512_cmplt_epi64_mask): Ditto.
28751 (_mm512_cmplt_epu64_mask): Ditto.
28752 (_mm512_cmpneq_epi32_mask): Ditto.
28753 (_mm512_cmpneq_epu32_mask): Ditto.
28754 (_mm512_cmpneq_epi64_mask): Ditto.
28755 (_mm512_cmpneq_epu64_mask): Ditto.
28756 (_mm512_expand_pd): Ditto.
28757 (_mm512_expand_ps): Ditto.
28758 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
28759 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
28760 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
28761 * config/i386/i386.c (ix86_builtins): Add
28762 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
28763 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
28764 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
28765 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
28766 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
28767 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
28768 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
28769 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
28770 IX86_BUILTIN_PMOVUSQW512_MEM.
28771 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
28772 __builtin_ia32_pmovsqd512mem_mask,
28773 __builtin_ia32_pmovqd512mem_mask,
28774 __builtin_ia32_pmovusqw512mem_mask,
28775 __builtin_ia32_pmovsqw512mem_mask,
28776 __builtin_ia32_pmovqw512mem_mask,
28777 __builtin_ia32_pmovusdw512mem_mask,
28778 __builtin_ia32_pmovsdw512mem_mask,
28779 __builtin_ia32_pmovdw512mem_mask,
28780 __builtin_ia32_pmovqb512mem_mask,
28781 __builtin_ia32_pmovusqb512mem_mask,
28782 __builtin_ia32_pmovsqb512mem_mask,
28783 __builtin_ia32_pmovusdb512mem_mask,
28784 __builtin_ia32_pmovsdb512mem_mask,
28785 __builtin_ia32_pmovdb512mem_mask.
28786 (bdesc_args): Add __builtin_ia32_expanddf512,
28787 __builtin_ia32_expandsf512.
28788 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
28789 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
28790 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
28791 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
28792 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
28793 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
28794 (avx512f_<code>v8div16qi2_mask_store): This.
28795 (avx512f_expand<mode>): New.
28796
28797 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
28798
28799 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
28800 New.
28801 (_mm512_mask_prefetch_i64gather_pd): Ditto.
28802 (_mm512_prefetch_i32scatter_pd): Ditto.
28803 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
28804 (_mm512_prefetch_i64scatter_pd): Ditto.
28805 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
28806 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
28807 (_mm512_mask_prefetch_i64gather_ps): Ditto.
28808 (_mm512_prefetch_i32scatter_ps): Ditto.
28809 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
28810 (_mm512_prefetch_i64scatter_ps): Ditto.
28811 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
28812 * config/i386/i386-builtin-types.def: Define
28813 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
28814 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
28815 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
28816 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
28817 IX86_BUILTIN_SCATTERPFQPD.
28818 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
28819 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
28820 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
28821 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
28822 __builtin_ia32_scatterpfqps.
28823 (ix86_expand_builtin): Expand new built-ins.
28824 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
28825 fix memory access data type.
28826 (*avx512pf_gatherpf<mode>_mask): Ditto.
28827 (*avx512pf_gatherpf<mode>): Ditto.
28828 (avx512pf_scatterpf<mode>): Ditto.
28829 (*avx512pf_scatterpf<mode>_mask): Ditto.
28830 (*avx512pf_scatterpf<mode>): Ditto.
28831 (GATHER_SCATTER_SF_MEM_MODE): New.
28832 (avx512pf_gatherpf<mode>df): Ditto.
28833 (*avx512pf_gatherpf<mode>df_mask): Ditto.
28834 (*avx512pf_scatterpf<mode>df): Ditto.
28835
28836 2014-01-27 Jakub Jelinek <jakub@redhat.com>
28837
28838 PR bootstrap/59934
28839 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
28840 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
28841 reached.
28842
28843 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
28844
28845 * common/config/arm/arm-common.c
28846 (arm_rewrite_mcpu): Handle multiple names.
28847 * config/arm/arm.h
28848 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
28849
28850 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
28851
28852 * gimple-builder.h (create_gimple_tmp): Delete.
28853
28854 2014-01-27 Christian Bruel <christian.bruel@st.com>
28855
28856 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
28857 words comparisons.
28858
28859 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
28860
28861 * config/pa/pa.md (call): Generate indirect long calls to non-local
28862 functions when outputing 32-bit code.
28863 (call_value): Likewise except for special call to buggy powf function.
28864
28865 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
28866 portable runtime and PIC indirect calls.
28867 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
28868 and PIC call sequences. Use ldo instead of blr to set return register
28869 in PIC call sequence.
28870
28871 2014-01-25 Walter Lee <walt@tilera.com>
28872
28873 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
28874 avoid clobbering a live register.
28875
28876 2014-01-25 Walter Lee <walt@tilera.com>
28877
28878 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
28879 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
28880 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
28881 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
28882
28883 2014-01-25 Walter Lee <walt@tilera.com>
28884
28885 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
28886 arguments on even registers.
28887 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
28888 STACK_BOUNDARY.
28889 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
28890 (BIGGEST_ALIGNMENT): Ditto.
28891 (BIGGEST_FIELD_ALIGNMENT): Ditto.
28892
28893 2014-01-25 Walter Lee <walt@tilera.com>
28894
28895 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
28896 insns before bundling.
28897 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
28898
28899 2014-01-25 Walter Lee <walt@tilera.com>
28900
28901 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
28902 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
28903 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
28904
28905 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
28906
28907 * config/mips/constraints.md (kl): Delete.
28908 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
28909 define expands, using...
28910 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
28911 instructions for MIPS16.
28912 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
28913 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
28914
28915 2014-01-25 Walter Lee <walt@tilera.com>
28916
28917 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
28918 (clzdi2): Ditto.
28919 (ffsdi2): Ditto.
28920
28921 2014-01-25 Walter Lee <walt@tilera.com>
28922
28923 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
28924 (TARGET_EXPAND_TO_RTL_HOOK): Define.
28925
28926 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
28927
28928 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
28929 Handle XOR.
28930
28931 2014-01-25 Jakub Jelinek <jakub@redhat.com>
28932
28933 * print-rtl.c (in_call_function_usage): New var.
28934 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
28935 EXPR_LIST mode as mode and not as reg note name.
28936
28937 PR middle-end/59561
28938 * cfgloopmanip.c (copy_loop_info): If
28939 loop->warned_aggressive_loop_optimizations, make sure
28940 the flag is set in target loop too.
28941
28942 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
28943
28944 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
28945 flag_cilkplus.
28946 * builtins.def: Likewise.
28947 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
28948 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
28949 * ira.c (ira_setup_eliminable_regset): Likewise.
28950 * omp-low.c (gate_expand_omp): Likewise.
28951 (execute_lower_omp): Likewise.
28952 (diagnose_sb_0): Likewise.
28953 (gate_diagnose_omp_blocks): Likewise.
28954 (simd_clone_clauses_extract): Likewise.
28955 (gate): Likewise.
28956
28957 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28958
28959 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
28960 correction for little endian...
28961 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
28962 here.
28963
28964 2014-01-24 Jeff Law <law@redhat.com>
28965
28966 PR tree-optimization/59919
28967 * tree-vrp.c (find_assert_locations_1): Do not register asserts
28968 for non-returning calls.
28969
28970 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
28971
28972 * common/config/aarch64/aarch64-common.c
28973 (aarch64_rewrite_mcpu): Handle multiple names.
28974 * config/aarch64/aarch64.h
28975 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
28976
28977 2014-01-24 Dodji Seketeli <dodji@redhat.com>
28978
28979 * input.c (add_file_to_cache_tab): Handle the case where fopen
28980 returns NULL.
28981
28982 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
28983
28984 PR target/59929
28985 * config/i386/i386.md (pushsf splitter): Get stack adjustment
28986 from push operand if code of push isn't PRE_DEC.
28987
28988 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
28989
28990 PR target/59909
28991 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
28992 -mquad-memory-atomic. Update -mquad-memory documentation to say
28993 it is only used for non-atomic loads/stores.
28994
28995 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
28996 -mquad-memory or -mquad-memory-atomic switches.
28997
28998 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
28999 -mquad-memory-atomic to ISA 2.07 support.
29000
29001 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
29002 to separate support of normal quad word memory operations (ldq, stq)
29003 from the atomic quad word memory operations.
29004
29005 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
29006 support to separate non-atomic quad word operations from atomic
29007 quad word operations. Disable non-atomic quad word operations in
29008 little endian mode so that we don't have to swap words after the
29009 load and before the store.
29010 (quad_load_store_p): Add comment about atomic quad word support.
29011 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
29012 options printed with -mdebug=reg.
29013
29014 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
29015 -mquad-memory-atomic as the test for whether we have quad word
29016 atomic instructions.
29017 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
29018 or -mp8-vector are used, allow byte/half-word atomic operations.
29019
29020 * config/rs6000/sync.md (load_lockedti): Insure that the address
29021 is a proper indexed or indirect address for the lqarx instruction.
29022 On little endian systems, swap the hi/lo registers after the lqarx
29023 instruction.
29024 (load_lockedpti): Use indexed_or_indirect_operand predicate to
29025 insure the address is valid for the lqarx instruction.
29026 (store_conditionalti): Insure that the address is a proper indexed
29027 or indirect address for the stqcrx. instruction. On little endian
29028 systems, swap the hi/lo registers before doing the stqcrx.
29029 instruction.
29030 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
29031 insure the address is valid for the stqcrx. instruction.
29032
29033 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
29034 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
29035 type of quad memory support is available.
29036
29037 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
29038
29039 PR regression/59915
29040 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
29041 there is a danger of looping.
29042
29043 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
29044
29045 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
29046 force flag_ira_loop_pressure if set via command line.
29047
29048 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
29049
29050 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
29051 (ashr_simd): New builtin handling DI mode.
29052 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
29053 (aarch64_sshr_simddi): New match pattern.
29054 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
29055 (vshrd_n_s64): Likewise.
29056 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
29057
29058 2014-01-23 Nick Clifton <nickc@redhat.com>
29059
29060 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
29061 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
29062 favour of mcu specific scripts.
29063 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
29064 430x multilibs.
29065
29066 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
29067 Alex Velenko <Alex.Velenko@arm.com>
29068
29069 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
29070 (vaddv_s16): Likewise.
29071 (vaddv_s32): Likewise.
29072 (vaddv_u8): Likewise.
29073 (vaddv_u16): Likewise.
29074 (vaddv_u32): Likewise.
29075 (vaddvq_s8): Likewise.
29076 (vaddvq_s16): Likewise.
29077 (vaddvq_s32): Likewise.
29078 (vaddvq_s64): Likewise.
29079 (vaddvq_u8): Likewise.
29080 (vaddvq_u16): Likewise.
29081 (vaddvq_u32): Likewise.
29082 (vaddvq_u64): Likewise.
29083 (vaddv_f32): Likewise.
29084 (vaddvq_f32): Likewise.
29085 (vaddvq_f64): Likewise.
29086 (vmaxv_f32): Likewise.
29087 (vmaxv_s8): Likewise.
29088 (vmaxv_s16): Likewise.
29089 (vmaxv_s32): Likewise.
29090 (vmaxv_u8): Likewise.
29091 (vmaxv_u16): Likewise.
29092 (vmaxv_u32): Likewise.
29093 (vmaxvq_f32): Likewise.
29094 (vmaxvq_f64): Likewise.
29095 (vmaxvq_s8): Likewise.
29096 (vmaxvq_s16): Likewise.
29097 (vmaxvq_s32): Likewise.
29098 (vmaxvq_u8): Likewise.
29099 (vmaxvq_u16): Likewise.
29100 (vmaxvq_u32): Likewise.
29101 (vmaxnmv_f32): Likewise.
29102 (vmaxnmvq_f32): Likewise.
29103 (vmaxnmvq_f64): Likewise.
29104 (vminv_f32): Likewise.
29105 (vminv_s8): Likewise.
29106 (vminv_s16): Likewise.
29107 (vminv_s32): Likewise.
29108 (vminv_u8): Likewise.
29109 (vminv_u16): Likewise.
29110 (vminv_u32): Likewise.
29111 (vminvq_f32): Likewise.
29112 (vminvq_f64): Likewise.
29113 (vminvq_s8): Likewise.
29114 (vminvq_s16): Likewise.
29115 (vminvq_s32): Likewise.
29116 (vminvq_u8): Likewise.
29117 (vminvq_u16): Likewise.
29118 (vminvq_u32): Likewise.
29119 (vminnmv_f32): Likewise.
29120 (vminnmvq_f32): Likewise.
29121 (vminnmvq_f64): Likewise.
29122
29123 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
29124
29125 * config/aarch64/aarch64-simd.md
29126 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
29127 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
29128 (*aarch64_mul3_elt<mode>): Likewise.
29129 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
29130 (*aarch64_mul3_elt_to_64v2df): Likewise.
29131 (*aarch64_mla_elt<mode>): Likewise.
29132 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
29133 (*aarch64_mls_elt<mode>): Likewise.
29134 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
29135 (*aarch64_fma4_elt<mode>): Likewise.
29136 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
29137 (*aarch64_fma4_elt_to_64v2df): Likewise.
29138 (*aarch64_fnma4_elt<mode>): Likewise.
29139 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
29140 (*aarch64_fnma4_elt_to_64v2df): Likewise.
29141 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
29142 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
29143 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
29144 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
29145 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
29146 (aarch64_sqdmull_lane<mode>_internal): Likewise.
29147 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
29148
29149 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
29150
29151 * config/aarch64/aarch64-simd.md
29152 (aarch64_be_checked_get_lane<mode>): New define_expand.
29153 * config/aarch64/aarch64-simd-builtins.def
29154 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
29155 New builtin definition.
29156 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
29157 Use new safe be builtin.
29158
29159 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
29160
29161 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
29162 New define_insn.
29163 (aarch64_be_st1<mode>): Likewise.
29164 (aarch_ld1<VALL:mode>): Define_expand modified.
29165 (aarch_st1<VALL:mode>): Likewise.
29166 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
29167 (UNSPEC_ST1): Likewise.
29168
29169 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
29170
29171 * config/microblaze/microblaze.md: Add trap insn and attribute
29172
29173 2014-01-23 Dodji Seketeli <dodji@redhat.com>
29174
29175 PR preprocessor/58580
29176 * input.h (location_get_source_line): Take an additional line_size
29177 parameter.
29178 (void diagnostics_file_cache_fini): Declare new function.
29179 * input.c (struct fcache): New type.
29180 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
29181 New static constants.
29182 (diagnostic_file_cache_init, total_lines_num)
29183 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
29184 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
29185 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
29186 (get_next_line, read_next_line, goto_next_line, read_line_num):
29187 New static function definitions.
29188 (diagnostic_file_cache_fini): New function.
29189 (location_get_source_line): Take an additional output line_len
29190 parameter. Re-write using lookup_or_add_file_to_cache_tab and
29191 read_line_num.
29192 * diagnostic.c (diagnostic_finish): Call
29193 diagnostic_file_cache_fini.
29194 (adjust_line): Take an additional input parameter for the length
29195 of the line, rather than calculating it with strlen.
29196 (diagnostic_show_locus): Adjust the use of
29197 location_get_source_line and adjust_line with respect to their new
29198 signature. While displaying a line now, do not stop at the first
29199 null byte. Rather, display the zero byte as a space and keep
29200 going until we reach the size of the line.
29201 * Makefile.in: Add vec.o to OBJS-libcommon
29202
29203 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
29204 Ilya Tocar <ilya.tocar@intel.com>
29205
29206 * config/i386/avx512fintrin.h (_mm512_kmov): New.
29207 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
29208 (__builtin_ia32_kmov16): Ditto.
29209 * config/i386/i386.md (UNSPEC_KMOV): New.
29210 (kmovw): Ditto.
29211
29212 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
29213
29214 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
29215 (_mm512_storeu_si512): Ditto.
29216
29217 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
29218
29219 PR target/52125
29220 * rtl.h (get_referenced_operands): Declare.
29221 * recog.c (get_referenced_operands): New function.
29222 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
29223 operands have been referenced when recording LO_SUM references.
29224
29225 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
29226
29227 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
29228
29229 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
29230
29231 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
29232 Enable for generic and recent AMD targets.
29233
29234 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
29235
29236 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
29237 ARG_SIZE note when adjustment was eliminated.
29238
29239 2014-01-22 Jeff Law <law@redhat.com>
29240
29241 PR tree-optimization/59597
29242 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
29243 in file. Accept new argument REGISTERING and use it to modify
29244 dump output appropriately.
29245 (register_jump_thread): Corresponding changes.
29246 (mark_threaded_blocks): Reinstate code to cancel unprofitable
29247 thread paths involving joiner blocks. Add code to dump cancelled
29248 jump threading paths.
29249
29250 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
29251
29252 PR rtl-optimization/59477
29253 * lra-constraints.c (inherit_in_ebb): Process call for living hard
29254 regs. Update reloads_num and potential_reload_hard_regs for all insns.
29255
29256 2014-01-22 Tom Tromey <tromey@redhat.com>
29257
29258 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
29259 PARAMS.
29260 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
29261
29262 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
29263
29264 PR rtl-optimization/59896
29265 * lra-constraints.c (process_alt_operands): Check unused note for
29266 matched operands of insn with no output reloads.
29267
29268 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
29269
29270 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
29271 (mips_move_from_gpr_cost): Likewise.
29272
29273 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
29274
29275 PR rtl-optimization/59858
29276 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
29277 ira_class_hard_regs_num.
29278 (process_alt_operands): Increase reject for dying matched operand.
29279
29280 2014-01-21 Jakub Jelinek <jakub@redhat.com>
29281
29282 PR target/59003
29283 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
29284 smaller than size, perform several stores or loads and stores
29285 at dst + count - size to store or copy all of size bytes, rather
29286 than just last modesize bytes.
29287
29288 2014-01-20 DJ Delorie <dj@redhat.com>
29289
29290 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
29291 that CLOBBERs are REGs before propogating their values.
29292
29293 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
29294
29295 PR middle-end/59789
29296 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
29297 (cgraph_inline_failed_type): New function.
29298 * cgraph.h (DEFCIFCODE): Add type.
29299 (cgraph_inline_failed_type_t): New enum.
29300 (cgraph_inline_failed_type): New prototype.
29301 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
29302 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
29303 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
29304 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
29305 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
29306 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
29307 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
29308 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
29309 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
29310 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
29311 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
29312 OPTIMIZATION_MISMATCH.
29313 * tree-inline.c (expand_call_inline): Emit errors during
29314 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
29315
29316 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
29317
29318 PR target/59685
29319 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
29320 mode attribute in insn output.
29321
29322 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
29323
29324 * output.h (output_constant): Delete.
29325 * varasm.c (output_constant): Make private.
29326
29327 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
29328
29329 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
29330
29331 2014-01-20 Jakub Jelinek <jakub@redhat.com>
29332
29333 PR middle-end/59860
29334 * tree.h (fold_builtin_strcat): New prototype.
29335 * builtins.c (fold_builtin_strcat): No longer static. Add len
29336 argument, if non-NULL, don't call c_strlen. Optimize
29337 directly into __builtin_memcpy instead of __builtin_strcpy.
29338 (fold_builtin_2): Adjust fold_builtin_strcat caller.
29339 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
29340
29341 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
29342
29343 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
29344 for SImode_address_operand operands, having only a REG argument.
29345
29346 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
29347
29348 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
29349 loader name using mbig-endian.
29350 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
29351
29352 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
29353
29354 * doc/invoke.texi (-march): Clarify documentation for AArch64.
29355 (-mtune): Likewise.
29356 (-mcpu): Likewise.
29357
29358 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
29359
29360 * config/aarch64/aarch64-protos.h
29361 (aarch64_cannot_change_mode_class_ptr): Declare.
29362 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
29363 aarch64_cannot_change_mode_class_ptr): New.
29364 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
29365 backend hook aarch64_cannot_change_mode_class.
29366
29367 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
29368
29369 * common/config/aarch64/aarch64-common.c
29370 (aarch64_handle_option): Don't handle any option order logic here.
29371 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
29372 selected_cpu, warn on architecture version mismatch.
29373 (aarch64_override_options): Fix parsing order for option strings.
29374
29375 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
29376 Iain Sandoe <iain@codesourcery.com>
29377
29378 PR bootstrap/59496
29379 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
29380 warning. Amend comment to reflect current functionality.
29381
29382 2014-01-20 Richard Biener <rguenther@suse.de>
29383
29384 PR middle-end/59860
29385 * builtins.c (fold_builtin_strcat): Remove case better handled
29386 by tree-ssa-strlen.c.
29387
29388 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
29389
29390 * config/aarch64/aarch64.opt
29391 (mcpu, march, mtune): Make case-insensitive.
29392
29393 2014-01-20 Jakub Jelinek <jakub@redhat.com>
29394
29395 PR target/59880
29396 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
29397 if operands[1] is a REG or ZERO_EXTEND of a REG.
29398
29399 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
29400
29401 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
29402
29403 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
29404
29405 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
29406 long non-pic millicode calls.
29407
29408 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
29409
29410 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
29411
29412 2014-01-19 Kito Cheng <kito@0xlab.org>
29413
29414 * builtins.c (expand_movstr): Check movstr expand done or fail.
29415
29416 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
29417 H.J. Lu <hongjiu.lu@intel.com>
29418
29419 PR target/59379
29420 * config/i386/i386.md (*lea<mode>): Zero-extend return register
29421 to DImode for zero-extended addresses.
29422
29423 2014-01-19 Jakub Jelinek <jakub@redhat.com>
29424
29425 PR rtl-optimization/57763
29426 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
29427 on the new indirect jump_insn and increment LABEL_NUSES (label).
29428
29429 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
29430
29431 PR bootstrap/59580
29432 PR bootstrap/59583
29433 * config.gcc (x86_archs): New variable.
29434 (x86_64_archs): Likewise.
29435 (x86_cpus): Likewise.
29436 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
29437 --with-arch/--with-cpu= options.
29438 Support --with-arch=/--with-cpu={nehalem,westmere,
29439 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
29440
29441 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
29442
29443 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
29444 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
29445
29446 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
29447
29448 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
29449
29450 2014-01-18 Jakub Jelinek <jakub@redhat.com>
29451
29452 PR target/58944
29453 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
29454 clear cpp_get_options (parse_in)->warn_unused_macros for
29455 ix86_target_macros_internal with cpp_define.
29456
29457 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
29458
29459 * jump.c (delete_related_insns): Keep (use (insn))s.
29460 * reorg.c (redundant_insn): Check for barriers too.
29461
29462 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
29463
29464 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
29465
29466 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
29467
29468 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
29469 call to $$dyncall when TARGET_LONG_CALLS is true.
29470
29471 2014-01-17 Jeff Law <law@redhat.com>
29472
29473 * ree.c (combine_set_extension): Temporarily disable test for
29474 changing number of hard registers.
29475
29476 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
29477
29478 PR middle-end/58125
29479 * ipa-inline-analysis.c (inline_free_summary):
29480 Do not free summary of aliases.
29481
29482 2014-01-17 Jakub Jelinek <jakub@redhat.com>
29483
29484 PR middle-end/59706
29485 * gimplify.c (gimplify_expr): Use create_tmp_var
29486 instead of create_tmp_var_raw. If cond doesn't have
29487 integral type, don't add the IFN_ANNOTATE builtin at all.
29488
29489 2014-01-17 Martin Jambor <mjambor@suse.cz>
29490
29491 PR ipa/59736
29492 * ipa-cp.c (prev_edge_clone): New variable.
29493 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
29494 Also resize prev_edge_clone vector.
29495 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
29496 (ipcp_edge_removal_hook): New function.
29497 (ipcp_driver): Register ipcp_edge_removal_hook.
29498
29499 2014-01-17 Andrew Pinski <apinski@cavium.com>
29500 Steve Ellcey <sellcey@mips.com>
29501
29502 PR target/59462
29503 * config/mips/mips.c (mips_print_operand): Check operand mode instead
29504 of operator mode.
29505
29506 2014-01-17 Jeff Law <law@redhat.com>
29507
29508 PR middle-end/57904
29509 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
29510 so that pass_ccp runs first.
29511
29512 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
29513
29514 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
29515 (ix86_adjust_cost): Use !TARGET_XXX.
29516 (do_reorder_for_imul): Likewise.
29517 (swap_top_of_ready_list): Likewise.
29518 (ix86_sched_reorder): Likewise.
29519
29520 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
29521
29522 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
29523 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
29524 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
29525 (intel_memset): New. Duplicate slm_memset.
29526 (intel_cost): New. Duplicate slm_cost.
29527 (m_INTEL): New macro.
29528 (processor_target_table): Add "intel".
29529 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
29530 with PROCESSOR_INTEL for "intel".
29531 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
29532 PROCESSOR_SILVERMONT.
29533 (ix86_issue_rate): Likewise.
29534 (ix86_adjust_cost): Likewise.
29535 (ia32_multipass_dfa_lookahead): Likewise.
29536 (swap_top_of_ready_list): Likewise.
29537 (ix86_sched_reorder): Likewise.
29538 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
29539 instead of TARGET_OPT_AGU.
29540 * config/i386/i386.h (TARGET_INTEL): New.
29541 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
29542 (processor_type): Add PROCESSOR_INTEL.
29543 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
29544 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
29545
29546 2014-01-17 Marek Polacek <polacek@redhat.com>
29547
29548 PR c/58346
29549 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
29550 size is zero.
29551
29552 2014-01-17 Richard Biener <rguenther@suse.de>
29553
29554 PR tree-optimization/46590
29555 * opts.c (default_options_table): Add entries for
29556 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
29557 all enabled at -O1 but not for -Og.
29558 * common.opt (fbranch-count-reg): Remove Init(1).
29559 (fmove-loop-invariants): Likewise.
29560 (ftree-pta): Likewise.
29561
29562 2014-01-17 Jakub Jelinek <jakub@redhat.com>
29563
29564 * config/i386/i386.c (ix86_data_alignment): For compatibility with
29565 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
29566 decls to at least the GCC 4.8 used alignments.
29567
29568 PR fortran/59440
29569 * tree-nested.c (convert_nonlocal_reference_stmt,
29570 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
29571 of GIMPLE_BIND stmts, adjust associated decls.
29572
29573 2014-01-17 Richard Biener <rguenther@suse.de>
29574
29575 PR tree-optimization/46590
29576 * vec.h (vec<>::bseach): New member function implementing
29577 binary search according to C89 bsearch.
29578 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
29579 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
29580 bitmap pointer again. Make accesses_in_loop a flat array.
29581 (mem_ref_obstack): New global.
29582 (outermost_indep_loop): Adjust for mem_ref->stored changes.
29583 (mark_ref_stored): Likewise.
29584 (ref_indep_loop_p_2): Likewise.
29585 (set_ref_stored_in_loop): New helper function.
29586 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
29587 (memref_free): Adjust.
29588 (record_mem_ref_loc): Simplify.
29589 (gather_mem_refs_stmt): Adjust.
29590 (sort_locs_in_loop_postorder_cmp): New function.
29591 (analyze_memory_references): Sort accesses_in_loop after
29592 loop postorder number.
29593 (find_ref_loc_in_loop_cmp): New function.
29594 (for_all_locs_in_loop): Find relevant cluster of locs in
29595 accesses_in_loop and iterate without recursion.
29596 (execute_sm): Avoid uninit warning.
29597 (struct ref_always_accessed): Simplify.
29598 (ref_always_accessed::operator ()): Likewise.
29599 (ref_always_accessed_p): Likewise.
29600 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
29601 loop postorder numbers here.
29602 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
29603 numbers.
29604
29605 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
29606
29607 PR c++/57945
29608 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
29609 on decls for which assemble_alias has been called.
29610
29611 2014-01-17 Nick Clifton <nickc@redhat.com>
29612
29613 * config/msp430/msp430.opt: (mcpu): New option.
29614 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
29615 (msp430_option_override): Parse target_cpu. If the MCU name
29616 matches a generic string, clear target_mcu.
29617 (msp430_attr): Allow numeric interrupt values up to 63.
29618 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
29619 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
29620 option.
29621 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
29622 Add mcpu matches.
29623 * config/msp430/msp430.md (popm): Use %J rather than %I.
29624 (addsi3): Use msp430_nonimmediate_operand for operand 2.
29625 (addhi_cy_i): Use immediate_operand for operand 2.
29626 * doc/invoke.texi: Document -mcpu option.
29627
29628 2014-01-17 Richard Biener <rguenther@suse.de>
29629
29630 PR rtl-optimization/38518
29631 * df.h (df_analyze_loop): Declare.
29632 * df-core.c: Include cfgloop.h.
29633 (df_analyze_1): Split out main part of df_analyze.
29634 (df_analyze): Adjust.
29635 (loop_inverted_post_order_compute): New function.
29636 (loop_post_order_compute): Likewise.
29637 (df_analyze_loop): New function avoiding whole-function
29638 postorder computes.
29639 * loop-invariant.c (find_defs): Use df_analyze_loop.
29640 (find_invariants): Adjust.
29641 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
29642
29643 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
29644
29645 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
29646 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
29647
29648 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
29649
29650 * ipa-ref.c (ipa_remove_stmt_references): Fix references
29651 traversal when removing references.
29652
29653 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
29654
29655 PR ipa/59775
29656 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
29657
29658 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
29659
29660 PR middle-end/56791
29661 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
29662 pushing a reload for an autoinc when we had previously reloaded an
29663 inner part of the address.
29664
29665 2014-01-16 Jakub Jelinek <jakub@redhat.com>
29666
29667 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
29668 field.
29669 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
29670 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
29671 when not giving up or versioning for alias only because of
29672 loop->safelen.
29673 (vect_analyze_data_ref_dependences): Set to true.
29674 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
29675 is a GIMPLE_PHI.
29676 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
29677 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
29678 to the condition.
29679
29680 PR middle-end/58344
29681 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
29682
29683 PR target/59839
29684 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
29685 operand 0 predicate for gathers, use a new pseudo as subtarget.
29686
29687 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
29688
29689 PR middle-end/59609
29690 * lra-constraints.c (process_alt_operands): Add printing debug info.
29691 Check absence of input/output reloads for matched operands too.
29692
29693 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
29694
29695 PR rtl-optimization/59835
29696 * ira.c (ira_init_register_move_cost): Increase cost for
29697 impossible modes.
29698
29699 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
29700
29701 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
29702
29703 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
29704
29705 PR target/59780
29706 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
29707 non-register objects. Use gen_(high/low)part more consistently.
29708 Fix assertions.
29709
29710 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
29711
29712 PR target/59844
29713 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
29714 endian support, remove tests for WORDS_BIG_ENDIAN.
29715 (p8_mfvsrd_3_<mode>): Likewise.
29716 (reload_gpr_from_vsx<mode>): Likewise.
29717 (reload_gpr_from_vsxsf): Likewise.
29718 (p8_mfvsrd_4_disf): Likewise.
29719
29720 2014-01-16 Richard Biener <rguenther@suse.de>
29721
29722 PR rtl-optimization/46590
29723 * lcm.c (compute_antinout_edge): Use postorder iteration.
29724 (compute_laterin): Use inverted postorder iteration.
29725
29726 2014-01-16 Nick Clifton <nickc@redhat.com>
29727
29728 PR middle-end/28865
29729 * varasm.c (output_constant): Return the number of bytes actually
29730 emitted.
29731 (output_constructor_array_range): Update the field size with the
29732 number of bytes emitted by output_constant.
29733 (output_constructor_regular_field): Likewise. Also do not
29734 complain if the total number of bytes emitted is now greater
29735 than the expected fieldpos.
29736 * output.h (output_constant): Update prototype and descriptive comment.
29737
29738 2014-01-16 Marek Polacek <polacek@redhat.com>
29739
29740 PR middle-end/59827
29741 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
29742 it is error_mark_node.
29743
29744 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
29745
29746 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
29747 VALID_AVX256_REG_OR_OI_MODE.
29748
29749 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
29750
29751 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
29752 current procedure should be profiled.
29753
29754 2014-01-15 Andrew Pinski <apinski@cavium.com>
29755
29756 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
29757 of moving from/to the STACK_REG register class.
29758
29759 2014-01-15 Richard Henderson <rth@redhat.com>
29760
29761 PR debug/54694
29762 * reginfo.c (global_regs_decl): Globalize.
29763 * rtl.h (global_regs_decl): Declare.
29764 * ira.c (do_reload): Diagnose frame_pointer_needed and it
29765 reserved via global_regs.
29766
29767 2014-01-15 Teresa Johnson <tejohnson@google.com>
29768
29769 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
29770
29771 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
29772
29773 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
29774 and vmulosh rather than call gen_vec_widen_smult_*.
29775 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
29776 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
29777 (vec_widen_smult_even_v16qi): Likewise.
29778 (vec_widen_umult_even_v8hi): Likewise.
29779 (vec_widen_smult_even_v8hi): Likewise.
29780 (vec_widen_umult_odd_v16qi): Likewise.
29781 (vec_widen_smult_odd_v16qi): Likewise.
29782 (vec_widen_umult_odd_v8hi): Likewise.
29783 (vec_widen_smult_odd_v8hi): Likewise.
29784 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
29785 vmuloub rather than call gen_vec_widen_umult_*.
29786 (vec_widen_umult_lo_v16qi): Likewise.
29787 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
29788 vmulosb rather than call gen_vec_widen_smult_*.
29789 (vec_widen_smult_lo_v16qi): Likewise.
29790 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
29791 rather than call gen_vec_widen_umult_*.
29792 (vec_widen_umult_lo_v8hi): Likewise.
29793 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
29794 rather than call gen_vec_widen_smult_*.
29795 (vec_widen_smult_lo_v8hi): Likewise.
29796
29797 2014-01-15 Jeff Law <law@redhat.com>
29798
29799 PR tree-optimization/59747
29800 * ree.c (find_and_remove_re): Properly handle case where a second
29801 eliminated extension requires widening a copy created for elimination
29802 of a prior extension.
29803 (combine_set_extension): Ensure that the number of hard regs needed
29804 for a destination register does not change when we widen it.
29805
29806 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
29807
29808 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
29809 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
29810 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
29811 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
29812 (avr-*-rtems*): Likewise.
29813 (bfin*-rtems*): Likewise.
29814 (moxie-*-rtems*): Likewise.
29815 (h8300-*-rtems*): Likewise.
29816 (i[34567]86-*-rtems*): Likewise.
29817 (lm32-*-rtems*): Likewise.
29818 (m32r-*-rtems*): Likewise.
29819 (m68k-*-rtems*): Likewise.
29820 (microblaze*-*-rtems*): Likewise.
29821 (mips*-*-rtems*): Likewise.
29822 (powerpc-*-rtems*): Likewise.
29823 (sh-*-rtems*): Likewise.
29824 (sparc-*-rtems*): Likewise.
29825 (sparc64-*-rtems*): Likewise.
29826 (v850-*-rtems*): Likewise.
29827 (m32c-*-rtems*): Likewise.
29828
29829 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
29830
29831 PR rtl-optimization/59511
29832 * ira.c (ira_init_register_move_cost): Use memory costs for some
29833 cases of register move cost calculations.
29834 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
29835 instead of BB frequency.
29836 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
29837 * lra-assigns.c (find_hard_regno_for): Ditto.
29838
29839 2014-01-15 Richard Biener <rguenther@suse.de>
29840
29841 PR tree-optimization/59822
29842 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
29843 (vectorizable_load): Use it to hoist defs of uses of invariant
29844 loads out of the loop.
29845
29846 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
29847 Kugan Vivekanandarajah <kuganv@linaro.org>
29848
29849 PR target/59695
29850 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
29851 truncation.
29852
29853 2014-01-15 Richard Biener <rguenther@suse.de>
29854
29855 PR rtl-optimization/59802
29856 * lcm.c (compute_available): Use inverted postorder to seed
29857 the initial worklist.
29858
29859 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29860
29861 PR target/59803
29862 * config/s390/s390.c (s390_preferred_reload_class): Don't return
29863 ADDR_REGS for invalid symrefs in non-PIC code.
29864
29865 2014-01-15 Jakub Jelinek <jakub@redhat.com>
29866
29867 PR other/58712
29868 * builtins.c (determine_block_size): Initialize *probable_max_size
29869 even if len_rtx is CONST_INT.
29870
29871 2014-01-14 Andrew Pinski <apinski@cavium.com>
29872
29873 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
29874 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
29875 (cortexa53_tunings): Likewise.
29876 (aarch64_sched_issue_rate): New function.
29877 (TARGET_SCHED_ISSUE_RATE): Define.
29878
29879 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
29880
29881 * ira-costs.c (find_costs_and_classes): Add missed
29882 ira_init_register_move_cost_if_necessary.
29883
29884 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
29885
29886 PR target/59787
29887 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
29888
29889 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
29890
29891 PR target/59794
29892 * config/i386/i386.c (type_natural_mode): Add a bool parameter
29893 to indicate if type is used for function return value. Warn ABI
29894 change if the vector mode isn't available for function return value.
29895 (ix86_function_arg_advance): Pass false to type_natural_mode.
29896 (ix86_function_arg): Likewise.
29897 (ix86_gimplify_va_arg): Likewise.
29898 (function_arg_32): Don't warn ABI change.
29899 (ix86_function_value): Pass true to type_natural_mode.
29900 (ix86_return_in_memory): Likewise.
29901 (ix86_struct_value_rtx): Removed.
29902 (TARGET_STRUCT_VALUE_RTX): Likewise.
29903
29904 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
29905
29906 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
29907 converting a conditional jump into a conditional return.
29908
29909 2014-01-14 Richard Biener <rguenther@suse.de>
29910
29911 PR tree-optimization/58921
29912 PR tree-optimization/59006
29913 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
29914 hoisting invariant stmts.
29915 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
29916 invariant loads on the preheader edge if possible.
29917
29918 2014-01-14 Joey Ye <joey.ye@arm.com>
29919
29920 * doc/plugin.texi (Building GCC plugins): Update to C++.
29921
29922 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
29923
29924 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
29925 (_mm_rcp28_round_ss): Ditto.
29926 (_mm_rsqrt28_round_sd): Ditto.
29927 (_mm_rsqrt28_round_ss): Ditto.
29928 (_mm_rcp28_sd): Ditto.
29929 (_mm_rcp28_ss): Ditto.
29930 (_mm_rsqrt28_sd): Ditto.
29931 (_mm_rsqrt28_ss): Ditto.
29932 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
29933 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
29934 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
29935 (IX86_BUILTIN_RCP28SD): Ditto.
29936 (IX86_BUILTIN_RCP28SS): Ditto.
29937 (IX86_BUILTIN_RSQRT28SD): Ditto.
29938 (IX86_BUILTIN_RSQRT28SS): Ditto.
29939 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
29940 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
29941 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
29942 (ix86_expand_special_args_builtin): Expand new FTYPE.
29943 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
29944 (srcp14<mode>): Make insn unary.
29945 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
29946 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
29947 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
29948 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
29949 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
29950 Fix rounding: make it SAE only.
29951 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
29952 Ditto.
29953 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
29954 Ditto.
29955 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
29956 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
29957 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
29958 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
29959 (round_saeonly_mask_scalar_operand4): Ditto.
29960 (round_saeonly_mask_scalar_op3): Ditto.
29961 (round_saeonly_mask_scalar_op4): Ditto.
29962
29963 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29964
29965 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
29966 Implement -maltivec=be for vec_insert and vec_extract.
29967
29968 2014-01-10 DJ Delorie <dj@redhat.com>
29969
29970 * config/msp430/msp430.md (call_internal): Don't allow memory
29971 references with SP as the base register.
29972 (call_value_internal): Likewise.
29973 * config/msp430/constraints.md (Yc): New. For memory references
29974 that don't use SP as a base register.
29975
29976 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
29977 "an integer without a # prefix"
29978 * config/msp430/msp430.md (epilogue_helper): Use it.
29979
29980 2014-01-13 Jakub Jelinek <jakub@redhat.com>
29981
29982 PR target/59617
29983 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
29984 AVX512F gather builtins.
29985 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
29986 on gather decls with INTEGER_TYPE masktype.
29987 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
29988 directly into the builtin rather than hoisting it before loop.
29989
29990 PR tree-optimization/59387
29991 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
29992 (scev_const_prop): If folded_casts and type has undefined overflow,
29993 use force_gimple_operand instead of force_gimple_operand_gsi and
29994 for each added stmt if it is assign with
29995 arith_code_with_undefined_signed_overflow, call
29996 rewrite_to_defined_overflow.
29997 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
29998 gimple-fold.h instead.
29999 (arith_code_with_undefined_signed_overflow,
30000 rewrite_to_defined_overflow): Moved to ...
30001 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
30002 rewrite_to_defined_overflow): ... here. No longer static.
30003 Include gimplify-me.h.
30004 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
30005 rewrite_to_defined_overflow): New prototypes.
30006
30007 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30008
30009 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
30010
30011 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
30012
30013 * builtins.c (get_object_alignment_2): Minor tweak.
30014 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
30015
30016 2014-01-13 Christian Bruel <christian.bruel@st.com>
30017
30018 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
30019 optimized non constant lengths.
30020
30021 2014-01-13 Jakub Jelinek <jakub@redhat.com>
30022
30023 PR libgomp/59194
30024 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
30025 load as __atomic_load_N if possible.
30026
30027 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
30028
30029 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
30030 target parameter.
30031 (rs6000_expand_builtin): Adjust call.
30032
30033 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
30034
30035 PR target/58115
30036 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
30037 * config/rs6000/rs6000.c: Include target-globals.h.
30038 (rs6000_set_current_function): Instead of doing target_reinit
30039 unconditionally, use save_target_globals_default_opts and
30040 restore_target_globals.
30041
30042 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
30043 FPSCR.
30044 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
30045 (rs6000_expand_builtin): Handle mffs and mtfsf.
30046 (rs6000_init_builtins): Define mffs and mtfsf.
30047 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
30048 (rs6000_mffs): New pattern.
30049 (rs6000_mtfsf): New pattern.
30050
30051 2014-01-11 Bin Cheng <bin.cheng@arm.com>
30052
30053 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
30054 Start narrowing with START. Apply candidate-use pair
30055 and check overall cost in narrowing.
30056 (iv_ca_prune): Pass new argument.
30057
30058 2014-01-10 Jeff Law <law@redhat.com>
30059
30060 PR middle-end/59743
30061 * ree.c (combine_reaching_defs): Ensure the defining statement
30062 occurs before the extension when optimizing extensions with
30063 different source and destination hard registers.
30064
30065 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
30066
30067 PR ipa/58585
30068 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
30069 vtables into the type inheritance graph.
30070
30071 2014-01-10 Jakub Jelinek <jakub@redhat.com>
30072
30073 PR rtl-optimization/59754
30074 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
30075 modes in the REGNO != REGNO case.
30076
30077 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30078
30079 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
30080
30081 2014-01-10 Jakub Jelinek <jakub@redhat.com>
30082
30083 PR tree-optimization/59745
30084 * tree-predcom.c (tree_predictive_commoning_loop): Call
30085 free_affine_expand_cache if giving up because components is NULL.
30086
30087 * target-globals.c (save_target_globals): Allocate < 4KB structs using
30088 GC in payload of target_globals struct instead of allocating them on
30089 the heap and the larger structs separately using GC.
30090 * target-globals.h (struct target_globals): Make regs, hard_regs,
30091 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
30092 of GTY((skip)) and change type to void *.
30093 (reset_target_globals): Cast loads from those fields to corresponding
30094 types.
30095
30096 2014-01-10 Steve Ellcey <sellcey@mips.com>
30097
30098 PR plugins/59335
30099 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
30100 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
30101 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
30102
30103 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
30104
30105 PR target/59744
30106 * aarch64-modes.def (CC_Zmode): New flags mode.
30107 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
30108 represents an equality.
30109 (aarch64_get_condition_code): Handle CC_Zmode.
30110 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
30111
30112 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30113
30114 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
30115 extraction in good case.
30116
30117 2014-01-10 Richard Biener <rguenther@suse.de>
30118
30119 PR tree-optimization/59374
30120 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
30121 checking after SLP discovery. Mark stmts not participating
30122 in any SLP instance properly.
30123
30124 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30125
30126 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
30127 when handling a SET rtx.
30128
30129 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30130
30131 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
30132 (cortex-a57): Likewise.
30133 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
30134
30135 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30136
30137 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
30138 non-iwmmxt builtins.
30139
30140 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
30141
30142 PR ipa/58252
30143 PR ipa/59226
30144 * ipa-devirt.c record_target_from_binfo): Take as argument
30145 stack of binfos and lookup matching one for virtual inheritance.
30146 (possible_polymorphic_call_targets_1): Update.
30147
30148 2014-01-10 Huacai Chen <chenhc@lemote.com>
30149
30150 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
30151 kernel strings for Loongson-2E/2F/3A.
30152
30153 2014-01-10 Jakub Jelinek <jakub@redhat.com>
30154
30155 PR middle-end/59670
30156 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
30157 is_gimple_call before calling gimple_call_internal_p.
30158
30159 2014-01-09 Steve Ellcey <sellcey@mips.com>
30160
30161 * Makefile.in (TREE_FLOW_H): Remove.
30162 (TREE_SSA_H): Add file names from tree-flow.h.
30163 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
30164 * tree.h: Remove tree-flow.h reference.
30165 * hash-table.h: Remove tree-flow.h reference.
30166 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
30167 reference with tree-ssa-loop.h.
30168
30169 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30170
30171 * doc/invoke.texi: Add -maltivec={be,le} options, and document
30172 default element-order behavior for -maltivec.
30173 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
30174 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
30175 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
30176 when targeting big endian, at least for now.
30177 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
30178
30179 2014-01-09 Jakub Jelinek <jakub@redhat.com>
30180
30181 PR middle-end/47735
30182 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
30183 var satisfies use_register_for_decl, just take into account type
30184 alignment, rather than decl alignment.
30185
30186 PR tree-optimization/59622
30187 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
30188 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
30189 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
30190 Don't devirtualize for inplace at all. For targets.length () == 1,
30191 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
30192
30193 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
30194
30195 * config/i386/i386.md (cpu): Remove the unused btver1.
30196
30197 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
30198
30199 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
30200
30201 2014-01-09 Jakub Jelinek <jakub@redhat.com>
30202
30203 PR target/58115
30204 * tree-core.h (struct target_globals): New forward declaration.
30205 (struct tree_target_option): Add globals field.
30206 * tree.h (TREE_TARGET_GLOBALS): Define.
30207 (prepare_target_option_nodes_for_pch): New prototype.
30208 * target-globals.h (struct target_globals): Define even if
30209 !SWITCHABLE_TARGET.
30210 * tree.c (prepare_target_option_node_for_pch,
30211 prepare_target_option_nodes_for_pch): New functions.
30212 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
30213 * config/i386/i386.c: Include target-globals.h.
30214 (ix86_set_current_function): Instead of doing target_reinit
30215 unconditionally, use save_target_globals_default_opts and
30216 restore_target_globals.
30217
30218 2014-01-09 Richard Biener <rguenther@suse.de>
30219
30220 PR tree-optimization/59715
30221 * tree-cfg.h (split_critical_edges): Declare.
30222 * tree-cfg.c (split_critical_edges): Export.
30223 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
30224
30225 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
30226
30227 * cfgexpand.c (expand_stack_vars): Optionally disable
30228 asan stack protection.
30229 (expand_used_vars): Likewise.
30230 (partition_stack_vars): Likewise.
30231 * asan.c (asan_emit_stack_protection): Optionally disable
30232 after return stack usage.
30233 (instrument_derefs): Optionally disable memory access instrumentation.
30234 (instrument_builtin_call): Likewise.
30235 (instrument_strlen_call): Likewise.
30236 (asan_protect_global): Optionally disable global variables protection.
30237 * doc/invoke.texi: Added doc for new options.
30238 * params.def: Added new options.
30239 * params.h: Likewise.
30240
30241 2014-01-09 Jakub Jelinek <jakub@redhat.com>
30242
30243 PR rtl-optimization/59724
30244 * ifcvt.c (cond_exec_process_if_block): Don't call
30245 flow_find_head_matching_sequence with 0 longest_match.
30246 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
30247 non-active insns if !stop_after.
30248 (try_head_merge_bb): Revert 2014-01-07 changes.
30249
30250 2014-01-08 Jeff Law <law@redhat.com>
30251
30252 * ree.c (get_sub_rtx): New function, extracted from...
30253 (merge_def_and_ext): Here.
30254 (combine_reaching_defs): Use get_sub_rtx.
30255
30256 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
30257
30258 * cgraph.h (varpool_variable_node): Do not choke on null node.
30259
30260 2014-01-08 Catherine Moore <clm@codesourcery.com>
30261
30262 * config/mips/mips.md (simple_return): Attempt to use JRC
30263 for microMIPS.
30264 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
30265
30266 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
30267
30268 PR rtl-optimization/59137
30269 * reorg.c (steal_delay_list_from_target): Call update_block for
30270 elided insns.
30271 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
30272
30273 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30274
30275 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
30276 two duplicate entries.
30277
30278 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
30279
30280 Revert:
30281 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
30282
30283 * config/mips/mips.c (mips_truncated_op_cost): New function.
30284 (mips_rtx_costs): Adjust test for BADDU.
30285 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
30286
30287 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
30288
30289 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
30290 (*baddu_si): ...this new pattern.
30291
30292 2014-01-08 Jakub Jelinek <jakub@redhat.com>
30293
30294 PR ipa/59722
30295 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
30296
30297 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
30298
30299 PR middle-end/57748
30300 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
30301 inner_reference_p.
30302 (expand_expr, expand_normal): Adjust.
30303 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
30304 inner_reference_p. Use inner_reference_p to expand inner references.
30305 (store_expr): Adjust.
30306 * cfgexpand.c (expand_call_stmt): Adjust.
30307
30308 2014-01-08 Rong Xu <xur@google.com>
30309
30310 * gcov-io.c (gcov_var): Move from gcov-io.h.
30311 (gcov_position): Ditto.
30312 (gcov_is_error): Ditto.
30313 (gcov_rewrite): Ditto.
30314 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
30315 only part to libgcc/libgcov.h.
30316
30317 2014-01-08 Marek Polacek <polacek@redhat.com>
30318
30319 PR middle-end/59669
30320 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
30321
30322 2014-01-08 Marek Polacek <polacek@redhat.com>
30323
30324 PR sanitizer/59667
30325 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
30326
30327 2014-01-08 Jakub Jelinek <jakub@redhat.com>
30328
30329 PR rtl-optimization/59649
30330 * stor-layout.c (get_mode_bounds): For BImode return
30331 0 and STORE_FLAG_VALUE.
30332
30333 2014-01-08 Richard Biener <rguenther@suse.de>
30334
30335 PR middle-end/59630
30336 * gimple.h (is_gimple_builtin_call): Remove.
30337 (gimple_builtin_call_types_compatible_p): New.
30338 (gimple_call_builtin_p): New overload.
30339 * gimple.c (is_gimple_builtin_call): Remove.
30340 (validate_call): Rename to ...
30341 (gimple_builtin_call_types_compatible_p): ... this and export. Also
30342 check return types.
30343 (validate_type): New static function.
30344 (gimple_call_builtin_p): New overload and adjust.
30345 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
30346 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
30347 (gimple_fold_stmt_to_constant_1): Likewise.
30348 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
30349
30350 2014-01-08 Richard Biener <rguenther@suse.de>
30351
30352 PR middle-end/59471
30353 * gimplify.c (gimplify_expr): Gimplify register-register type
30354 VIEW_CONVERT_EXPRs to separate stmts.
30355
30356 2014-01-07 Jeff Law <law@redhat.com>
30357
30358 PR middle-end/53623
30359 * ree.c (combine_set_extension): Handle case where source
30360 and destination registers in an extension insn are different.
30361 (combine_reaching_defs): Allow source and destination registers
30362 in extension to be different under limited circumstances.
30363 (add_removable_extension): Remove restriction that the
30364 source and destination registers in the extension are the same.
30365 (find_and_remove_re): Emit a copy from the extension's
30366 destination to its source after the defining insn if
30367 the source and destination registers are different.
30368
30369 PR middle-end/59285
30370 * ifcvt.c (merge_if_block): If we are merging a block with more than
30371 one successor with a block with no successors, remove any BARRIER
30372 after the second block.
30373
30374 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
30375
30376 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
30377
30378 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
30379
30380 PR target/59652
30381 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
30382 for 14-bit register offsets when INT14_OK_STRICT is false.
30383
30384 2014-01-07 Roland Stigge <stigge@antcom.de>
30385 Michael Meissner <meissner@linux.vnet.ibm.com>
30386
30387 PR 57386/target
30388 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
30389 Only check TFmode for SPE constants. Don't check TImode or TDmode.
30390
30391 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
30392
30393 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
30394 -mcpu.
30395
30396 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
30397
30398 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
30399 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
30400 rtx is const0_rtx or not.
30401
30402 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
30403
30404 PR target/58115
30405 * target-globals.c (save_target_globals): Remove this_fn_optab
30406 handling.
30407 * toplev.c: Include optabs.h.
30408 (target_reinit): Temporarily restore the global options if another
30409 set of options are in force.
30410
30411 2014-01-07 Jakub Jelinek <jakub@redhat.com>
30412
30413 PR rtl-optimization/58668
30414 * cfgcleanup.c (flow_find_cross_jump): Don't count
30415 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
30416 to determine what is counted.
30417 (flow_find_head_matching_sequence): Use active_insn_p to determine
30418 what is counted.
30419 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
30420 counting change.
30421 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
30422 determine what is counted.
30423
30424 PR tree-optimization/59643
30425 * tree-predcom.c (split_data_refs_to_components): If one dr is
30426 read and one write, determine_offset fails and the write isn't
30427 in the bad component, just put the read into the bad component.
30428
30429 2014-01-07 Mike Stump <mikestump@comcast.net>
30430 Jakub Jelinek <jakub@redhat.com>
30431
30432 PR pch/59436
30433 * tree-core.h (struct tree_optimization_option): Change optabs
30434 type from unsigned char * to void *.
30435 * optabs.c (init_tree_optimization_optabs): Adjust
30436 TREE_OPTIMIZATION_OPTABS initialization.
30437
30438 2014-01-06 Jakub Jelinek <jakub@redhat.com>
30439
30440 PR target/59644
30441 * config/i386/i386.h (struct machine_function): Add
30442 no_drap_save_restore field.
30443 * config/i386/i386.c (ix86_save_reg): Use
30444 !cfun->machine->no_drap_save_restore instead of
30445 crtl->stack_realign_needed.
30446 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
30447 this function clears frame_pointer_needed. Set
30448 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
30449 and DRAP reg is needed.
30450
30451 2014-01-06 Marek Polacek <polacek@redhat.com>
30452
30453 PR c/57773
30454 * doc/implement-c.texi: Mention that other integer types are
30455 permitted as bit-field types in strictly conforming mode.
30456
30457 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
30458
30459 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
30460 is newly allocated.
30461
30462 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
30463
30464 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
30465
30466 2014-01-06 Martin Jambor <mjambor@suse.cz>
30467
30468 PR ipa/59008
30469 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
30470 to int.
30471 * ipa-prop.c (ipa_print_node_params): Fix indentation.
30472
30473 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
30474
30475 PR debug/59350
30476 PR debug/59510
30477 * var-tracking.c (add_stores): Preserve the value of the source even if
30478 we don't record the store.
30479
30480 2014-01-06 Terry Guo <terry.guo@arm.com>
30481
30482 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
30483
30484 2014-01-05 Iain Sandoe <iain@codesourcery.com>
30485
30486 PR bootstrap/59541
30487 * config/darwin.c (darwin_function_section): Adjust return values to
30488 correspond to optimisation changes made in r206070.
30489
30490 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
30491
30492 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
30493 from prefetch_block tune setting.
30494 (nocona_cost): Correct size of prefetch block to 64.
30495
30496 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
30497
30498 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
30499 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
30500 used to save the static chain register in the computation of the offset
30501 from which the FP registers need to be restored.
30502
30503 2014-01-04 Jakub Jelinek <jakub@redhat.com>
30504
30505 PR tree-optimization/59519
30506 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
30507 ICE if get_current_def (current_new_name) is already non-NULL, as long
30508 as it is a phi result of some other phi in *new_exit_bb that has
30509 the same argument.
30510
30511 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
30512 or vmovdqu* for misaligned_operand.
30513 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
30514 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
30515 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
30516 aligned_mem for AVX512F masked aligned load and store builtins and for
30517 non-temporal moves.
30518
30519 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
30520
30521 PR tree-optimization/59651
30522 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
30523 Address range for negative step should be added by TYPE_SIZE_UNIT.
30524
30525 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
30526
30527 * config/m68k/m68k.c (handle_move_double): Handle pushes with
30528 overlapping registers also for registers other than the stack pointer.
30529
30530 2014-01-03 Marek Polacek <polacek@redhat.com>
30531
30532 PR other/59661
30533 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
30534 __builtin_FILE.
30535
30536 2014-01-03 Jakub Jelinek <jakub@redhat.com>
30537
30538 PR target/59625
30539 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
30540 asm goto as jump.
30541
30542 * config/i386/i386.md (MODE_SIZE): New mode attribute.
30543 (push splitter): Use <P:MODE_SIZE> instead of
30544 GET_MODE_SIZE (<P:MODE>mode).
30545 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
30546 (mov -1, reg peephole2): Likewise.
30547 * config/i386/sse.md (*mov<mode>_internal,
30548 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
30549 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
30550 *<code><mode>3, *andnot<mode>3<mask_name>,
30551 <mask_codefor><code><mode>3<mask_name>): Likewise.
30552 * config/i386/subst.md (mask_mode512bit_condition,
30553 sd_mask_mode512bit_condition): Likewise.
30554
30555 2014-01-02 Xinliang David Li <davidxl@google.com>
30556
30557 PR tree-optimization/59303
30558 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
30559 (dump_predicates): Better output format.
30560 (pred_equal_p): New function.
30561 (is_neq_relop_p): Ditto.
30562 (is_neq_zero_form_p): Ditto.
30563 (pred_expr_equal_p): Ditto.
30564 (pred_neg_p): Ditto.
30565 (simplify_pred): Ditto.
30566 (simplify_preds_2): Ditto.
30567 (simplify_preds_3): Ditto.
30568 (simplify_preds_4): Ditto.
30569 (simplify_preds): Ditto.
30570 (push_pred): Ditto.
30571 (push_to_worklist): Ditto.
30572 (get_pred_info_from_cmp): Ditto.
30573 (is_degenerated_phi): Ditto.
30574 (normalize_one_pred_1): Ditto.
30575 (normalize_one_pred): Ditto.
30576 (normalize_one_pred_chain): Ditto.
30577 (normalize_preds): Ditto.
30578 (normalize_cond_1): Remove function.
30579 (normalize_cond): Ditto.
30580 (is_gcond_subset_of): Ditto.
30581 (is_subset_of_any): Ditto.
30582 (is_or_set_subset_of): Ditto.
30583 (is_and_set_subset_of): Ditto.
30584 (is_norm_cond_subset_of): Ditto.
30585 (pred_chain_length_cmp): Ditto.
30586 (convert_control_dep_chain_into_preds): Type change.
30587 (find_predicates): Ditto.
30588 (find_def_preds): Ditto.
30589 (destroy_predicates_vecs): Ditto.
30590 (find_matching_predicates_in_rest_chains): Ditto.
30591 (use_pred_not_overlap_with_undef_path_pred): Ditto.
30592 (is_pred_expr_subset): Ditto.
30593 (is_pred_chain_subset_of): Ditto.
30594 (is_included_in): Ditto.
30595 (is_superset_of): Ditto.
30596
30597 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
30598
30599 Update copyright years.
30600
30601 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
30602
30603 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
30604 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
30605 config/arc/arc.md, config/arc/arc.opt,
30606 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
30607 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
30608 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
30609 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
30610 config/linux-protos.h, config/linux.c, config/winnt-c.c,
30611 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
30612 vtable-verify.c, vtable-verify.h: Use the standard form for the
30613 copyright notice.
30614
30615 2014-01-02 Tobias Burnus <burnus@net-b.de>
30616
30617 * gcc.c (process_command): Update copyright notice dates.
30618 * gcov-dump.c: Ditto.
30619 * gcov.c: Ditto.
30620 * doc/cpp.texi: Bump @copying's copyright year.
30621 * doc/cppinternals.texi: Ditto.
30622 * doc/gcc.texi: Ditto.
30623 * doc/gccint.texi: Ditto.
30624 * doc/gcov.texi: Ditto.
30625 * doc/install.texi: Ditto.
30626 * doc/invoke.texi: Ditto.
30627
30628 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
30629
30630 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
30631
30632 2014-01-01 Jakub Jelinek <jakub@redhat.com>
30633
30634 * config/i386/sse.md (*mov<mode>_internal): Guard
30635 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
30636
30637 PR rtl-optimization/59647
30638 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
30639 new_rtx into UNSIGNED_FLOAT rtxes.
30640 \f
30641 Copyright (C) 2014 Free Software Foundation, Inc.
30642
30643 Copying and distribution of this file, with or without modification,
30644 are permitted in any medium without royalty provided the copyright
30645 notice and this notice are preserved.