Makefile.in (TEXI_GCC_FILES): Add arm-acle-intrinsics.texi.
[gcc.git] / gcc / ChangeLog
1 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2
3 * Makefile.in (TEXI_GCC_FILES): Add arm-acle-intrinsics.texi.
4 * config.gcc (extra_headers): Add arm_acle.h.
5 * config/arm/arm.c (FL_CRC32): Define.
6 (arm_have_crc): Likewise.
7 (arm_option_override): Set arm_have_crc.
8 (arm_builtins): Add CRC32 builtins.
9 (bdesc_2arg): Likewise.
10 (arm_init_crc32_builtins): New function.
11 (arm_init_builtins): Initialise CRC32 builtins.
12 (arm_file_start): Handle architecture extensions.
13 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FEATURE_CRC32.
14 Define __ARM_32BIT_STATE.
15 (TARGET_CRC32): Define.
16 * config/arm/arm-arches.def: Add armv8-a+crc.
17 * config/arm/arm-tables.opt: Regenerate.
18 * config/arm/arm.md (type): Add crc.
19 (<crc_variant>): New insn.
20 * config/arm/arm_acle.h: New file.
21 * config/arm/iterators.md (CRC): New int iterator.
22 (crc_variant, crc_mode): New int attributes.
23 * confg/arm/unspecs.md (UNSPEC_CRC32B, UNSPEC_CRC32H, UNSPEC_CRC32W,
24 UNSPEC_CRC32CB, UNSPEC_CRC32CH, UNSPEC_CRC32CW): New unspecs.
25 * doc/invoke.texi: Document -march=armv8-a+crc option.
26 * doc/extend.texi: Document ACLE intrinsics.
27
28 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
29
30 PR target/59142
31 * config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb
32 patterns.
33 * config/arm/ldmstm.md: Regenerate.
34
35 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
36
37 PR target/59142
38 * config/arm/predicates.md (arm_hard_general_register_operand):
39 New predicate.
40 (arm_hard_register_operand): Remove.
41 * config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
42 for all patterns.
43 * config/arm/ldmstm.md: Regenerate.
44
45 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
46
47 PR target/59142
48 * config/arm/predicates.md (vfp_hard_register_operand): New predicate.
49 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use
50 vfp_hard_register_operand.
51
52 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
53
54 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
55 Define builtin types for poly64_t poly128_t.
56 (TYPES_BINOPP, aarch64_types_binopp_qualifiers): New.
57 * aarch64/aarch64-simd-builtins.def: Update builtins table.
58 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi,
59 aarch64_crypto_pmullv2di): New.
60 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Update table for
61 poly64x2_t mangler.
62 * config/aarch64/arm_neon.h (poly64x2_t, poly64_t, poly128_t): Define.
63 (vmull_p64, vmull_high_p64): New.
64 * config/aarch64/iterators.md (UNSPEC_PMULL<2>): New.
65
66 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
67
68 * config/aarch64/aarch64-simd-builtins.def: Update builtins table.
69 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha256h<sha256_op>v4si,
70 aarch64_crypto_sha256su0v4si, aarch64_crypto_sha256su1v4si): New.
71 * config/aarch64/arm_neon.h (vsha256hq_u32, vsha256h2q_u32,
72 vsha256su0q_u32, vsha256su1q_u32): New.
73 * config/aarch64/iterators.md (UNSPEC_SHA256H<2>, UNSPEC_SHA256SU<01>):
74 New.
75 (CRYPTO_SHA256): New int iterator.
76 (sha256_op): New int attribute.
77
78 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
79
80 * config/aarch64/aarch64-simd-builtins.def: Update builtins table.
81 * config/aarch64/aarch64-builtins.c (aarch64_types_ternopu_qualifiers,
82 TYPES_TERNOPU): New.
83 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hsi,
84 aarch64_crypto_sha1su1v4si, aarch64_crypto_sha1<sha1_op>v4si,
85 aarch64_crypto_sha1su0v4si): New.
86 * config/aarch64/arm_neon.h (vsha1cq_u32, sha1mq_u32, vsha1pq_u32,
87 vsha1h_u32, vsha1su0q_u32, vsha1su1q_u32): New.
88 * config/aarch64/iterators.md (UNSPEC_SHA1<CPMH>, UNSPEC_SHA1SU<01>):
89 New.
90 (CRYPTO_SHA1): New int iterator.
91 (sha1_op): New int attribute.
92
93 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
94
95 * config/aarch64/aarch64-simd-builtins.def: Update builtins table.
96 * config/aarch64/aarch64-builtins.c (aarch64_types_binopu_qualifiers,
97 TYPES_BINOPU): New.
98 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi,
99 aarch64_crypto_aes<aesmc_op>v16qi): New.
100 * config/aarch64/arm_neon.h (vaeseq_u8, vaesdq_u8, vaesmcq_u8,
101 vaesimcq_u8): New.
102 * config/aarch64/iterators.md (UNSPEC_AESE, UNSPEC_AESD, UNSPEC_AESMC,
103 UNSPEC_AESIMC): New.
104 (CRYPTO_AES, CRYPTO_AESMC): New int iterators.
105 (aes_op, aesmc_op): New int attributes.
106
107 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
108
109 * config/arm/types.md (neon_mul_d_long, crypto_aes, crypto_sha1_xor,
110 crypto_sha1_fast, crypto_sha1_slow, crypto_sha256_fast,
111 crypto_sha256_slow): New.
112
113 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
114
115 * config/aarch64/aarch64.h (TARGET_CRYPTO): New.
116 (__ARM_FEATURE_CRYPTO): Define if TARGET_CRYPTO is true.
117
118 2013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com>
119 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
120
121 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New
122 constant
123 (s390_hotpatch_trampoline_halfwords_max): New constant
124 (s390_hotpatch_trampoline_halfwords): New static variable
125 (get_hotpatch_attribute): New function
126 (s390_handle_hotpatch_attribute): New function
127 (s390_attribute_table): New target specific attribute table to implement
128 the hotpatch attribute
129 (s390_option_override): Parse hotpatch options
130 (s390_function_num_hotpatch_trampoline_halfwords): New function
131 (s390_can_inline_p): Implement target hook to
132 suppress hotpatching for explicitly inlined functions
133 (s390_asm_output_function_label): Generate hotpatch prologue
134 (TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table
135 (TARGET_CAN_INLINE_P): Define to implement target hook
136 * config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch=
137 * config/s390/s390-protos.h (s390_asm_output_function_label): Add
138 prototype
139 * config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific
140 function label generation for hotpatching
141 (FUNCTION_BOUNDARY): Align functions to eight bytes
142 * doc/extend.texi: Document hotpatch attribute
143 * doc/invoke.texi: Document -mhotpatch option
144
145 2013-12-19 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
146
147 * config/i386/i386.c: Include cfgloop.h.
148 (ix86_loop_memcount): New function.
149 (ix86_loop_unroll_adjust): New function.
150 (TARGET_LOOP_UNROLL_ADJUST): Define.
151 * config/i386/i386.h
152 (TARGET_ADJUST_UNROLL): Define.
153 * config/i386/x86-tune.def
154 (X86_TUNE_ADJUST_UNROLL): Define.
155
156 2013-12-19 Marek Polacek <polacek@redhat.com>
157
158 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Remove
159 variable alg. Use index variable i directly.
160
161 2013-12-19 Eric Botcazou <ebotcazou@adacore.com>
162
163 * print-tree.c (print_node) <case tcc_type>: Print no_force_blk_flag
164 for all types.
165
166 2013-12-19 Monk Chiang <sh.chiang04@gmail.com>
167
168 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
169 Consider TARGET_CPU_DEFAULT settings.
170
171 2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
172
173 * config/aarch64/aarch64-cores.def: Add support for
174 -mcpu=cortex-a57.cortex-a53.
175 * config/aarch64/aarch64-tune.md: Regenerate.
176 * doc/invoke.texi: Document -mcpu=cortex-a57.cortex-a53.
177
178 2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
179
180 * config/aarch64/aarch64-cores.def: Add new column for
181 SCHEDULER_IDENT.
182 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Handle
183 SCHEDULER_IDENT.
184 * config/aarch64/aarch64.c (AARCH64_CORE): Handle
185 SCHEDULER_IDENT.
186 (aarch64_parse_cpu): mcpu implies a default value for mtune.
187 * config/aarch64/aarch64.h (AARCH64_CORE): Handle
188 SCHEDULER_IDENT.
189
190 2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
191
192 * common/config/aarch64/aarch64-common.c
193 (aarch64_rewrite_selected_cpu): New.
194 (aarch64_rewrite_mcpu): New.
195 * config/aarch64/aarch64-protos.h
196 (aarch64_rewrite_selected_cpu): New.
197 * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): New.
198 (BIG_LITTLE_SPEC_FUNCTIONS): Likewise.
199 (ASM_CPU_SPEC): Likewise.
200 (EXTRA_SPEC_FUNCTIONS): Likewise.
201 (EXTRA_SPECS): Likewise.
202 (ASM_SPEC): Likewise.
203 * config/aarch64/aarch64.c (aarch64_start_file): Rewrite target
204 CPU name.
205
206 2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
207
208 * omp-low.c (simd_clone_clauses_extract): Replaced the string
209 "cilk simd elemental" with "cilk simd function."
210 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
211 Removed a carriage-return from a warning string.
212
213 2013-12-18 Aldy Hernandez <aldyh@redhat.com>
214
215 * passes.c (execute_function_dump): Set graph_dump_initialized
216 appropriately.
217 (pass_init_dump_file): Similarly.
218 (execute_one_pass): Pass new argument to do_per_function.
219 * tree-pass.h (class opt_pass): New field graph_dump_initialized.
220
221 2013-12-18 Aldy Hernandez <aldyh@redhat.com>
222
223 * doc/tree-ssa.texi (SSA Operands): Remove reference to
224 SSA_OP_VMAYUSE.
225 Synchronize SSA_OP* definitions with source.
226 * ssa-iterators.h: Fix comment for FOR_EACH_IMM_USE_STMT.
227 Add not to SSA_OP* macro definitions.
228
229 2013-12-18 Jakub Jelinek <jakub@redhat.com>
230
231 PR target/59539
232 * config/i386/sse.md
233 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
234 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): New expanders,
235 prefix existing define_insn names with *.
236
237 2013-12-18 Eric Botcazou <ebotcazou@adacore.com>
238
239 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko.
240
241 2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
242 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
243
244 * config/arm/t-aprofile: Add cortex-a15.cortex-a7, cortex-a12,
245 cortex-a57, cortex-a57.cortex-a53.
246
247 2013-12-18 Eric Botcazou <ebotcazou@adacore.com>
248
249 PR debug/59418
250 * dwarf2cfi.c (dwarf2out_frame_debug_cfa_offset): Fix comment and tidy.
251 (dwarf2out_frame_debug_cfa_restore): Handle TARGET_DWARF_REGISTER_SPAN.
252 (dwarf2out_frame_debug_expr): Tidy.
253
254 2013-12-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
255 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
256 Sergey Lega <sergey.s.lega@intel.com>
257 Anna Tikhonova <anna.tikhonova@intel.com>
258 Ilya Tocar <ilya.tocar@intel.com>
259 Andrey Turetskiy <andrey.turetskiy@intel.com>
260 Ilya Verbin <ilya.verbin@intel.com>
261 Kirill Yukhin <kirill.yukhin@intel.com>
262 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
263
264 * config/i386/sse.md (*fma_fmadd_<mode>): Extend to support masking.
265 (*fma_fmsub_<mode>): Ditto.
266 (*fma_fnmadd_<mode>): Ditto.
267 (*fma_fnmsub_<mode>): Ditto.
268 (*fma_fmaddsub_<mode>): Ditto.
269 (*fma_fmsubadd_<mode>): Ditto.
270 (avx512f_vternlog<mode>): Ditto.
271 (avx512f_fixupimm<mode>): Ditto.
272 (avx512f_sfixupimm<mode>): Ditto.
273 (avx512f_vpermi2var<mode>3): Ditto.
274 (avx512f_vpermt2var<mode>3): Ditto.
275 (avx512f_fmaddsub_<mode>_maskz): New.
276 (avx512f_vternlog<mode>_maskz): Ditto.
277 (avx512f_fixupimm<mode>_maskz): Ditto.
278 (avx512f_sfixupimm<mode>_maskz): Ditto.
279 (avx512f_vpermi2var<mode>3_maskz): Ditto.
280 (avx512f_vpermt2var<mode>3_maskz): Ditto.
281 (avx512f_expand<mode>_maskz): Ditto.
282 * config/i386/subst.md (sd_maskz_name): Ditto.
283 (sd_mask_op4): Ditto.
284 (sd_mask_op5): Ditto.
285 (sd_mask_codefor): Ditto.
286 (sd_mask_mode512bit_condition): Ditto.
287 (sd): Ditto.
288
289 2013-12-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
290 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
291 Sergey Lega <sergey.s.lega@intel.com>
292 Anna Tikhonova <anna.tikhonova@intel.com>
293 Ilya Tocar <ilya.tocar@intel.com>
294 Andrey Turetskiy <andrey.turetskiy@intel.com>
295 Ilya Verbin <ilya.verbin@intel.com>
296 Kirill Yukhin <kirill.yukhin@intel.com>
297 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
298
299 * config/i386/sse.md (avx512f_cmp<mode>3): Extend to support masking.
300 (avx512f_ucmp<mode>3): Ditto.
301 (avx512f_eq<mode>3): Ditto.
302 (avx512f_gt<mode>3): Ditto.
303 (avx512f_testm<mode>3): Ditto.
304 (avx512f_testnm<mode>3): Ditto.
305 * config/i386/subst.md (SUBST_S): New.
306 (mask_scalar_merge_name): Ditto.
307 (mask_scalar_merge_operand3): Ditto.
308 (mask_scalar_merge_operand4): Ditto.
309 (mask_scalar_merge): Ditto.
310
311 2013-12-17 Jan Hubicka <hubicka@ucw.cz>
312
313 PR middle-end/35545
314 * gimple-fold.c (fold_gimple_assign): Attempt to devirtualize
315 OBJ_TYPE_REF.
316 (gimple_fold_stmt_to_constant_1): Bypass OBJ_TYPE_REF wrappers.
317
318 2013-12-17 Jan Hubicka <hubicka@ucw.cz>
319
320 PR middle-end/35545
321 * tree-vrp.c (extract_range_from_unary_expr_1): Handle OBJ_TYPE_REF.
322
323 2013-12-17 Teresa Johnson <tejohnson@google.com>
324
325 PR gcov-profile/59527
326 * cfgrtl.c (fixup_reorder_chain): Handle a region-crossing
327 branch, which can't be eliminated.
328
329 2013-12-18 Martin Liska <marxin.liska@gmail.com>
330 Jan Hubicka <jh@suse.cz>
331
332 * cgraphunit.c (node_cmp): New function.
333 (expand_all_functions): Function ordering added.
334 * common.opt: New profile based function reordering flag introduced.
335 * lto-partition.c: Support for time profile added.
336 * lto.c: Likewise.
337 * predict.c (handle_missing_profiles): Time profile handled in
338 missing profiles.
339
340 2013-12-17 Jakub Jelinek <jakub@redhat.com>
341
342 PR tree-optimization/59523
343 * tree-vectorizer.c (fold_loop_vectorized_call): Call update_stmt
344 on updated stmts.
345
346 2013-12-17 Aldy Hernandez <aldyh@redhat.com>
347
348 * ipa-inline.c (gate_ipa_inline): Remove.
349 (const pass_data pass_data_ipa_inline): Unset has_gate.
350 (class pass_ipa_inline): Remove gate() method.
351
352 2013-12-17 Jan Hubicka <hubicka@ucw.cz>
353
354 * ipa-devirt.c (get_polymorphic_call_info): Fix offset calculatoin
355 in contains_type_p query.
356
357 2013-12-17 Thomas Schwinge <thomas@codesourcery.com>
358
359 * omp-low.c (tmp_ompfn_id_num): Remove leftover variable
360 definition.
361
362 * tree-pass.h (make_pass_expand_omp_ssa): Remove leftover function
363 declaration.
364
365 * omp-low.c: Remove leftover comment.
366
367 * omp-low.c (check_combined_parallel): Reflect reality in comment.
368
369 * doc/cfg.texi (Control Flow): Refer to passes.def instead of
370 passes.c.
371 * doc/passes.texi (Pass manager): Refer to passes.def.
372
373 * doc/gccint.texi (Top): Fix inclusion order.
374
375 2013-12-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
376
377 * config/arm/arm-cores.def (cortex-a12): Use cortexa15 scheduling.
378 * config/arm/arm.c (arm_issue_rate): Handle cortexa12.
379 * config/arm/arm.md (generic_vfp): Remove cortexa12.
380
381 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
382
383 * config/arm/arm-cores.def (cortex-a57.cortex-a53): New.
384 * doc/invoke.texi: Document -mcpu=cortex-a57.cortex-a53.
385 * config/arm/arm-tables.opt: Regenerate.
386 * config/arm/arm-tune.md: Regenerate.
387 * config/arm/bpabi.h
388 (BE8_LINK_SPEC): Handle -mcpu=cortex-a57.cortex-a53.
389
390 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
391
392 * config/arm/arm-cores.def (cortex-a57): New.
393 * doc/invoke.texi: Document -mcpu=cortex-a57.
394 * config/arm/arm-tables.opt: Regenerate.
395 * config/arm/arm-tune.md: Regenerate.
396 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle -mcpu=cortex-a57.
397
398 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
399
400 * config/arm/arm-cores.def (cortex-a15.cortex-a7): New.
401 * doc/invoke.texi: Document -mcpu=cortex-a15.cortex-a7.
402 * config/arm/arm-tables.opt: Regenerate.
403 * config/arm/arm-tune.md: Regenerate.
404 * config/arm/bpabi.h
405 (BE8_LINK_SPEC): Handle -mcpu=cortex-a5.cortex-a7.
406
407 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
408
409 * config/arm/arm-cores.def: Add new column for TUNE_IDENT.
410 * config/arm/genopt.sh: Improve layout.
411 * config/arm/arm-tune.md: Regenerate.
412 * config/arm/arm-tables.opt: Regenerate.
413 * config/arm/arm-opts.h (ARM_CORE): Modify macro for TUNE_IDENT.
414 * config/arm/arm.c (ARM_CORE): Modify macro for TUNE_IDENT.
415 (arm_option_override): When a CPU is chosen, that should also
416 form the tune target.
417 * config/arm/arm.h (ARM_CORE): Modify macro for TUNE_IDENT.
418
419 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
420
421 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): New.
422 (arm_rewrite_mcpu): Likewise.
423 * config/arm/arm-protos.h (arm_rewrite_selected_cpu): New.
424 * config/arm/arm.h (BIG_LITTLE_SPEC): New.
425 (BIG_LITTLE_SPEC_FUNCTIONS): Likewise.
426 (EXTRA_SPEC_FUNCTIONS): Include BIG_LITTLE_SPEC_FUNCTIONS.
427 (ASM_CPU_SPEC): Include BIG_LITTLE_SPEC.
428 * config/arm/arm.c (arm_file_start): Rewrite arm_selecetd_cpu values.
429
430 2013-12-17 Eric Botcazou <ebotcazou@adacore.com>
431
432 * expmed.c (lowpart_bit_field_p): Fix comment.
433 (store_bit_field_using_insv): Fix formatting.
434 (store_bit_field): Likewise.
435 (store_fixed_bit_field): More declaration and remove return.
436 (store_fixed_bit_field_1): Fix formatting.
437 (extract_fixed_bit_field): Move declaration.
438 (extract_fixed_bit_field_1): Simplify.
439
440 2013-12-17 Jan Hubicka <hubicka@ucw.cz>
441
442 * ipa-utils.h (possible_polymorphic_call_targets): Determine context of
443 the call.
444 * gimple-fold.c (gimple_fold_call): Use ipa-devirt to devirtualize.
445
446 2013-12-17 Jakub Jelinek <jakub@redhat.com>
447
448 * expr.c (convert_modes): For SUBREG_PROMOTED_VAR_P use SUBREG_REG (x)
449 instead of x as last gen_lowpart argument.
450
451 2013-12-16 Jakub Jelinek <jakub@redhat.com>
452
453 * predict.h (PROB_LIKELY): Fix the value.
454 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Add support
455 for overflow checking for modes without 2xwider supported mode,
456 if the mode has 2xnarrower mode.
457
458 * internal-fn.c: Include stringpool.h and tree-ssanames.h.
459 (ubsan_expand_si_overflow_addsub_check): In the generic expansion,
460 try to improve generated code if one of the arguments is constant
461 or get_range_info says that one of the argument is always
462 negative or always non-negative.
463 * tree-vrp.c (simplify_internal_call_using_ranges): New function.
464 (simplify_stmt_using_ranges): Call it.
465
466 2013-12-16 Vladimir Makarov <vmakarov@redhat.com>
467
468 PR rtl-optimization/59466
469 * emit-rtl.c (change_address_1): Don't validate address for LRA.
470 * recog.c (general_operand): Accept any memory for LRA.
471 * lra.c (lra_set_insn_recog_data): Add an assert.
472
473 2013-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
474
475 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a12 entry.
476
477 2013-12-14 Jan Hubicka <jh@suse.cz>
478 Markus Trippelsdorf <octoploid@yandex.com>
479
480 PR ipa/59265
481 * ipa-profile.c (ipa_profile_generate_summary): Do not ICE when
482 call is already devirtualized.
483
484 2013-12-16 Jakub Jelinek <jakub@redhat.com>
485
486 * Makefile.in (version.o): Restore dependencies on
487 $(REVISION), $(DATESTAMP), $(BASEVER) and $(DEVPHASE).
488
489 2013-12-14 Jan Hubicka <jh@suse.cz>
490
491 PR ipa/59473
492 * ipa-devirt.c (get_class_context): Do not ICE when type is found
493 at wrong offset.
494
495 2013-12-16 Jakub Jelinek <jakub@redhat.com>
496
497 PR libgomp/58756
498 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_REDUCTION>: For
499 reductions without placeholder if is_simd, but when not using
500 GOMP_SIMD* internal calls, also perform the reduction operation
501 on the outer var rather than simple assignment.
502
503 2013-12-16 Jakub Jelinek <jakub@redhat.com>
504
505 PR middle-end/58956
506 PR middle-end/59470
507 * gimple-walk.h (walk_stmt_load_store_addr_fn): New typedef.
508 (walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it
509 for callback params.
510 * gimple-walk.c (walk_stmt_load_store_ops): Likewise.
511 (walk_stmt_load_store_addr_ops): Likewise. Adjust all callback
512 calls to supply the gimple operand containing the base tree
513 as an extra argument.
514 * tree-ssa-ter.c: Include gimple-walk.h.
515 (find_ssaname, find_ssaname_in_store): New helper functions.
516 (find_replaceable_in_bb): For calls or GIMPLE_ASM, only set
517 same_root_var if USE is used somewhere in the stores of the stmt.
518 * ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt
519 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
520 * ipa-pure-const.c (check_load, check_store, check_ipa_load,
521 check_ipa_store): Likewise.
522 * gimple.c (gimple_ior_addresses_taken_1, check_loadstore): Likewise.
523 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise.
524 (verify_non_ssa_vars, visit_bb): Adjust their callers.
525 * cfgexpand.c (add_scope_conflicts_1): Use
526 walk_stmt_load_store_addr_fn type for visit variable.
527 (visit_op, visit_conflict): Remove name of the stmt
528 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
529 * tree-sra.c (asm_visit_addr): Likewise. Remove name of the data
530 argument and ATTRIBUTE_UNUSED.
531 * cgraphbuild.c (mark_address, mark_load, mark_store): Add another
532 unnamed tree argument.
533 * gimple-ssa-isolate-paths.c (check_loadstore): Likewise. Remove
534 ATTRIBUTE_UNUSED from stmt parameter.
535
536 2013-12-16 Chung-Lin Tang <cltang@codesourcery.com>
537
538 * opts-common.c (integral_argument): Add support for
539 hexadecimal command option integer arguments. Update comments.
540
541 2013-12-14 Jan Hubicka <jh@suse.cz>
542
543 PR ipa/59265
544 * ipa-prop.c (ipa_analyze_call_uses): Skip already
545 devirtualized calls.
546
547 2013-12-14 Jan Hubicka <jh@suse.cz>
548 PR middle-end/58477
549 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
550
551 2013-12-14 Jan Hubicka <jh@suse.cz>
552
553 PR middle-end/58477
554 * cgraphclones.c (cgraph_clone_edge): Do not resolve speculative edges.
555
556 2013-12-14 H.J. Lu <hongjiu.lu@intel.com>
557
558 PR target/59492
559 * config/i386/i386.c (ix86_function_specific_restore): Don't
560 change -fPIC.
561
562 2013-12-14 Eric Botcazou <ebotcazou@adacore.com>
563
564 * var-tracking.c (add_stores): Fix oversight in latest commit.
565
566 2013-12-14 Marek Polacek <polacek@redhat.com>
567
568 PR sanitizer/59503
569 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Call
570 expand_binop with correct optab depending on code.
571
572 2013-12-14 Tom de Vries <tom@codesourcery.com>
573
574 * calls.c (expand_call): Fix REG_PARM_STACK_SPACE comparison.
575
576 2013-12-13 DJ Delorie <dj@redhat.com>
577
578 * config/rl78/rl78-expand.md (one_cmplqi2): Make constant signed.
579
580 * config/msp430/msp430.md (movqi): replace general_operand with
581 msp_general_operand and nonimmediate_operand with
582 msp_nonimmediate_operand to allow volatile operands.
583 (movhi): Likewise.
584 (movpsi): Likewise.
585 (addpsi3): Likewise.
586 (addhi3): Likewise.
587 (addhi3_cy): Likewise.
588 (addchi4_cy): Likewise.
589 (xor<mode>3): Likewise.
590 (ome_cmpl<mode>2): Likewise.
591 (extendqihi2): Likewise.
592 (zero_extendqihi2): Likewise.
593 (zero_extendhipsi2): Likewise.
594 (truncpsihi2): Likewise.
595 (srai_1): Likewise.
596
597 2013-12-13 Vladimir Makarov <vmakarov@redhat.com>
598
599 * ira.h (struct ira_reg_equiv): Rename to ira_reg_equiv_s.
600 * ira.c: Ditto.
601 * lra-int.h (lra_init_equiv): New prototype.
602 * lra-constraints.c (lra_init_equiv, update_equiv): New functions.
603 (loc_equivalence_callback): Use the 3rd arg.
604 (lra_constraints): Update equivalences. Pass curr_insn to
605 simplify_replace_fn_rtx.
606 * lra.c (lra): Call lra_init_equiv.
607
608 2013-12-13 Kenneth Zadeck <zadeck@naturalbridge.com>
609
610 * genmodes.c (emit_max_int): Fixed missing parens.
611
612 2013-12-13 Aldy Hernandez <aldyh@redhat.com>
613
614 PR tree-optimization/59149
615 * calls.c (flags_from_decl_or_type): Fail on non decl or type.
616 * trans-mem.c (diagnose_tm_1): Do not call flags_from_decl_or_type
617 if no type or decl.
618
619 2013-12-13 Kenneth Zadeck <zadeck@naturalbridge.com>
620
621 * config/arc/arc.h (BITS_PER_UNIT): Removed.
622 * config/bfin/bfin.h (BITS_PER_UNIT): Removed.
623 * config/lm32/lm32.h (BITS_PER_UNIT): Removed.
624 * config/m32c/m32c.h (BITS_PER_UNIT): Removed.
625 * config/microblaze/microblaze.h (BITS_PER_UNIT): Removed.
626 * config/picochip/picochip.h (BITS_PER_UNIT): Removed.
627 * config/spu/spu.h (BITS_PER_UNIT): Removed.
628 * defaults.h (BITS_PER_UNIT): Removed.
629 * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): New.
630 * doc/rtl (BITS_PER_UNIT): Moved from tm.texi.
631 (MAX_BITSIZE_MODE_ANY_INT): Updated.
632 * doc/tm.texi (BITS_PER_UNIT): Removed.
633 * doc/tm.texi.in (BITS_PER_UNIT): Removed.
634 * genmodes.c (bits_per_unit, max_bitsize_mode_any_int): New.
635 (create_modes): Added code to set bits_per_unit and
636 max_bitsize_mode_any_int.
637 (emit_max_int): Changed code generation.
638 * mkconfig.sh: Added insn-modes.h.
639
640 2013-12-13 Jeff Law <law@redhat.com>
641
642 PR tree-optimization/45685
643 * tree-ssa-phiopt.c (neg_replacement): New function.
644 (tree_ssa_phiopt_worker): Call it.
645
646 2013-12-13 Yuri Rumyantsev <ysrumyan@gmail.com>
647
648 * config/i386/i386.c (slm_cost): Fix imul cost for HI.
649
650 2013-12-13 Bin Cheng <bin.cheng@arm.com>
651
652 PR tree-optimization/58296
653 PR tree-optimization/41488
654 * tree-scalar-evolution.c: Include necessary header files.
655 (simplify_peeled_chrec): New function.
656 (analyze_evolution_in_loop): New static variable.
657 Call simplify_peeled_chrec.
658 * tree-ssa-loop-ivopts.c (mark_bivs): Don't mark peeled IV as biv.
659 (add_old_iv_candidates): Don't add candidate for peeled IV.
660 * tree-affine.h (aff_combination_zero_p): New function.
661
662 2013-12-13 Nick Clifton <nickc@redhat.com>
663
664 * config/msp430/msp430.c (is_wakeup_func): New function. Returns
665 true if the current function has the wakeup attribute.
666 (msp430_start_function): Note if the function has the wakeup
667 attribute.
668 (msp430_attribute_table): Add wakeup attribute.
669 (msp430_expand_epilogue): Add support for wakeup functions.
670 * config/msp430/msp430.md (disable_interrupts): Emit a NOP after
671 the DINT instruction.
672 * doc/extend.texi: Document the wakeup attribute.
673
674 2013-12-13 Kai Tietz <kitetz@redhat.com>
675
676 PR c++/57897
677 * config/i386/i386.c (ix86_option_override_internal): Set for
678 x64 target flag_unwind_tables, if flag_asynchronous_unwind_tables
679 was explicit set.
680
681 2013-12-12 Jeff Law <law@redhat.com>
682
683 * i386.md (simple LEA peephole2): Add missing mode to zero_extend
684 for zero-extended MULT simple LEA pattern.
685
686 2013-12-12 Vladimir Makarov <vmakarov@redhat.com>
687
688 PR middle-end/59470
689 * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo
690 values if necessary.
691
692 2013-12-12 Jakub Jelinek <jakub@redhat.com>
693
694 PR libgomp/59467
695 * gimplify.c (omp_check_private): Add copyprivate argument, if it
696 is true, don't check omp_privatize_by_reference.
697 (gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify
698 decl is private in outer context. Adjust omp_check_private caller.
699
700 2013-12-11 Jeff Law <law@redhat.com>
701
702 PR rtl-optimization/59446
703 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
704 test for crossing a loop header.
705
706 2013-12-11 Sriraman Tallam <tmsriram@google.com>
707
708 PR target/59390
709 * config/i386/i386.c (get_builtin): New function.
710 (ix86_builtin_vectorized_function): Replace all instances of
711 ix86_builtins[...] with get_builtin(...).
712 (ix86_builtin_reciprocal): Ditto.
713
714 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com>
715
716 * langhooks.h (lang_hooks_for_decls): Remove lang_hooks_for_cilkplus.
717 (lang_hooks_for_cilkplus): Remove.
718 * langhooks.c (lhd_cilk_detect_spawn): Likewise.
719 (lhd_install_body_with_frame_cleanup): Likewise.
720 * langhooks-def.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
721 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
722 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
723 (LANG_HOOKS_CILKPLUS): Likewise.
724 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_CILKPLUS.
725 * gimplify.c (gimplify_expr): Removed CILK_SPAWN_STMT case.
726 (gimplify_modify_expr): Removed handling of _Cilk_spawn in expr.
727 (gimplify_call_expr): Likewise.
728
729 2013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
730
731 * expr.c (expand_assignment): Remove dependency on
732 flag_strict_volatile_bitfields. Always set the memory
733 access mode.
734 (expand_expr_real_1): Likewise.
735
736 2013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
737
738 PR middle-end/59134
739 * expmed.c (store_bit_field): Use narrow_bit_field_mem and
740 store_fixed_bit_field_1 for -fstrict-volatile-bitfields.
741 (store_fixed_bit_field): Split up. Call store_fixed_bit_field_1
742 to do the real work.
743 (store_fixed_bit_field_1): New function.
744 (store_split_bit_field): Limit the unit size to the memory mode size,
745 to prevent recursion.
746
747 2013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
748 Sandra Loosemore <sandra@codesourcery.com>
749
750 PR middle-end/23623
751 PR middle-end/48784
752 PR middle-end/56341
753 PR middle-end/56997
754 * expmed.c (strict_volatile_bitfield_p): Add bitregion_start
755 and bitregion_end parameters. Test for compliance with C++
756 memory model.
757 (store_bit_field): Adjust call to strict_volatile_bitfield_p.
758 Add fallback logic for cases where -fstrict-volatile-bitfields
759 is supposed to apply, but cannot.
760 (extract_bit_field): Likewise. Use narrow_bit_field_mem and
761 extract_fixed_bit_field_1 to do the extraction.
762 (extract_fixed_bit_field): Revert to previous mode selection algorithm.
763 Call extract_fixed_bit_field_1 to do the real work.
764 (extract_fixed_bit_field_1): New function.
765
766 2013-12-11 Sandra Loosemore <sandra@codesourcery.com>
767
768 PR middle-end/23623
769 PR middle-end/48784
770 PR middle-end/56341
771 PR middle-end/56997
772 * expmed.c (strict_volatile_bitfield_p): New function.
773 (store_bit_field_1): Don't special-case strict volatile
774 bitfields here.
775 (store_bit_field): Handle strict volatile bitfields here instead.
776 (store_fixed_bit_field): Don't special-case strict volatile
777 bitfields here.
778 (extract_bit_field_1): Don't special-case strict volatile
779 bitfields here.
780 (extract_bit_field): Handle strict volatile bitfields here instead.
781 (extract_fixed_bit_field): Don't special-case strict volatile
782 bitfields here. Simplify surrounding code to resemble that in
783 store_fixed_bit_field.
784 * doc/invoke.texi (Code Gen Options): Update
785 -fstrict-volatile-bitfields description.
786
787 2013-12-11 Kugan Vivekanandarajah <kuganv@linaro.org>
788
789 * configure.ac: Add check for aarch64 assembler -mabi support.
790 * configure: Regenerate.
791 * config.in: Regenerate.
792 * config/aarch64/aarch64-elf.h (ASM_MABI_SPEC): New define.
793 (ASM_SPEC): Update to substitute -mabi with ASM_MABI_SPEC.
794 * config/aarch64/aarch64.h (aarch64_override_options): Issue error
795 if assembler does not support -mabi and option ilp32 is selected.
796 * doc/install.texi: Added note that building gcc 4.9 and after
797 with pre 2.24 binutils will not support -mabi=ilp32.
798
799 2013-12-11 Marek Polacek <polacek@redhat.com>
800
801 PR sanitizer/59399
802 * expr.c (expand_expr_real_1): Remove assert dealing with
803 internal calls and turn that into a condition instead.
804
805 2013-12-11 Yvan Roux <yvan.roux@linaro.org>
806
807 * config/arm/arm.opt (mlra): Enable LRA by default.
808
809 2013-12-11 Jakub Jelinek <jakub@redhat.com>
810
811 PR tree-optimization/59417
812 * tree-ssa-copy.c (fini_copy_prop): If copy_of[i].value is defined
813 in a different bb rhan var, only duplicate points-to info and
814 not alignment info and don't duplicate range info.
815 * tree-ssa-loop-niter.c (determine_value_range): Instead of
816 assertion failure handle inconsistencies in range info by only
817 using var's range info and not PHI result range infos.
818
819 PR tree-optimization/59386
820 * tree-inline.c (remap_gimple_stmt): If not id->do_not_unshare,
821 unshare_expr (id->retval) before passing it to gimple_build_assign.
822
823 2013-12-11 Bin Cheng <bin.cheng@arm.com>
824
825 Reverted:
826 2013-12-10 Bin Cheng <bin.cheng@arm.com>
827 PR tree-optimization/41488
828 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): Don't add cand
829 for PEELED_CHREC kind IV.
830 * tree-scalar-evolution.c: Include necessary header files.
831 (peeled_chrec_map, simplify_peeled_chrec): New.
832 (analyze_evolution_in_loop): New static variable.
833 Call simplify_peeled_chrec.
834 (scev_initialize): Initialize peeled_chrec_map.
835 (scev_reset, scev_finalize): Reset and release peeled_chrec_map.
836
837 2013-12-10 H.J. Lu <hongjiu.lu@intel.com>
838
839 PR target/59458
840 * config/i386/i386.md (*movsf_internal): Set mode to SI for
841 alternative 13.
842
843 2013-12-10 Eric Botcazou <ebotcazou@adacore.com>
844
845 PR rtl-optimization/58295
846 * simplify-rtx.c (simplify_truncation): Restrict the distribution for
847 WORD_REGISTER_OPERATIONS targets.
848
849 2013-12-10 Richard Sandiford <rdsandiford@googlemail.com>
850
851 * genrecog.c (validate_pattern): Treat all messages except missing
852 modes as errors.
853 * config/epiphany/epiphany.md: Remove constraints from
854 define_peephole2s.
855 * config/h8300/h8300.md: Remove constraints from define_splits.
856 * config/msp430/msp430.md: Likewise.
857 * config/mcore/mcore.md (movdi_i, movsf_i, movdf_k): Use
858 nonimmediate_operand rather than general_operand for operand 0.
859 * config/moxie/moxie.md (*movsi, *movqi, *movhi): Likewise.
860 * config/pdp11/predicates.md (float_operand, float_nonimm_operand):
861 Use match_operator rather than match_test to invoke general_operand.
862 * config/v850/v850.md (*movqi_internal, *movhi_internal)
863 (*movsi_internal_v850e, *movsi_internal, *movsf_internal): Likewise.
864
865 2013-12-10 Richard Sandiford <rdsandiford@googlemail.com>
866
867 * config/tilegx/tilegx.md (insn_ld_add<bitsuffix>): Use
868 register_operand rather than pointer_operand. Add modes to the
869 operands.
870 (insn_ldna_add<bitsuffix>): Likewise.
871 (insn_ld<I124MODE:n><s>_add<I48MODE:bitsuffix>): Likewise.
872 (insn_ldnt_add<bitsuffix>): Likewise.
873 (insn_ldnt<I124MODE:n><s>_add<I48MODE:bitsuffix>): Likewise.
874 (insn_ld_add_L2<bitsuffix>): Likewise.
875 (insn_ldna_add_L2<bitsuffix>): Likewise.
876 (insn_ld<I124MODE:n><s>_add_L2<I48MODE:bitsuffix>): Likewise.
877 (insn_ldnt_add_L2<bitsuffix>): Likewise.
878 (insn_ldnt<I124MODE:n><s>_add_L2<I48MODE:bitsuffix>): Likewise.
879 (insn_ld_add_miss<bitsuffix>): Likewise.
880 (insn_ldna_add_miss<bitsuffix>): Likewise.
881 (insn_ld<I124MODE:n><s>_add_miss<I48MODE:bitsuffix>): Likewise.
882 (insn_ldnt_add_miss<bitsuffix>): Likewise.
883 (insn_ldnt<I124MODE:n><s>_add_miss<I48MODE:bitsuffix>): Likewise.
884 (insn_st_add<bitsuffix>): Likewise.
885 (insn_st<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise.
886 (*insn_st<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise.
887 (insn_stnt_add<bitsuffix>): Likewise.
888 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise.
889 (*insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise.
890 (vec_pack_<pack_optab>_v4hi): Use register_operand rather than
891 reg_or_0_operand for operand 0.
892 (insn_v2<pack_insn>): Likewise.
893 (vec_pack_hipart_v4hi): Likewise.
894 (insn_v2packh): Likewise.
895 (vec_pack_ssat_v2si): Likewise.
896 (insn_v4packsc): Likewise.
897
898 2013-12-10 H.J. Lu <hongjiu.lu@intel.com>
899
900 * basic-block.h (gcov_working_set_t): Put back typedef.
901 * gcov-io.h (gcov_bucket_type): Likewise.
902 (gcov_working_set_info, gcov_working_set_t): Likewise.
903
904 2013-12-10 Oleg Endo <olegendo@gcc.gnu.org>
905
906 * cgraph.h (cgraph_node_set_iterator, varpool_node_set_iterator):
907 Remove typedef.
908 (cgraph_inline_failed_enum, cgraph_inline_failed_t): Remove typedef and
909 rename to cgraph_inline_failed_t.
910 * tree-ssa-alias.h (ao_ref_s, ao_ref): Remove typedef and rename
911 to ao_ref.
912 * reload.h (reg_equivs_s, reg_equivs_t): Remove typedef and rename
913 to reg_equivs_t.
914 * conditions.h (CC_STATUS): Remove typedef.
915 * bitmap.h (bitmap_obstack): Remove typedef.
916 (bitmap_element_def, bitmap_element): Remove typedef and rename to
917 bitmap_element.
918 (bitmap_head_def, bitmap_head): Remove typedef and rename to
919 bitmap_head.
920 (bitmap_iterator): Remove typedef.
921 * target.h (cumulative_args_t, print_switch_type,
922 secondary_reload_info): Remove typedef.
923 * dwarf2out.h (dw_cfi_oprnd_struct, dw_cfi_oprnd): Remove
924 dw_cfi_oprnd_struct alias.
925 (dw_cfi_struct, dw_cfi_node): Remove typedef and rename to dw_cfi_node.
926 (dw_fde_struct, dw_fde_node): Remove typedef and rename to dw_fde_node.
927 (cfa_loc, dw_cfa_location): Remove typedef and rename to
928 dw_cfa_location.
929 (dw_vec_struct, dw_vec_const): Remove typedef and rename to
930 dw_vec_const.
931 (dw_val_struct, dw_val_node): Remove typedef and rename to dw_val_node.
932 (dw_loc_descr_struct, dw_loc_descr_node): Remove typedef and rename to
933 dw_loc_descr_node.
934 * params.h (param_info, compiler_param): Remove typedef.
935 * opts.h (cl_deferred_param): Remove typedef.
936 * sreal.h (sreal): Remove typedef.
937 * ddg.h (dep_type, dep_data_type): Remove typedef.
938 * graphite-clast-to-gimple.h (cloog_prog_clast, bb_pbb_def): Remove
939 typedef.
940 * lto-streamer.h (lto_decl_stream_e_t, lto_encoder_entry,
941 lto_symtab_encoder_iterator, res_pair): Remove typedef.
942 * tree-affine.h (affine_tree_combination, aff_tree): Remove typedef
943 and rename to aff_tree.
944 * sched-int.h (region): Remove typedef.
945 * diagnostic.h (diagnostic_info,
946 diagnostic_classification_change_t): Remove typedef.
947 * tree-ssa-loop.h (affine_iv_d): Remove typedef and rename to
948 affine_iv.
949 * sbitmap.h (sbitmap_iterator): Remove typedef.
950 * ssa-iterators.h (immediate_use_iterator_d, imm_use_iterator):
951 Remove typedef and rename to imm_use_iterator.
952 (ssa_operand_iterator_d, ssa_op_iter): Remove typedef and rename to
953 ssa_op_iter.
954 * ggc-internal.h (ggc_statistics): Remove typedef.
955 * cselib.h (cselib_val_struct, cselib_val): Remove typedef and
956 rename to cselib_val.
957 * tree-core.h (alias_pair): Remove typedef.
958 (constructor_elt_d, constructor_elt): Remove typedef and rename to
959 constructor_elt.
960 (ssa_use_operand_d, ssa_use_operand_t): Remove typedef and rename to
961 ssa_use_operand_t.
962 * graphite-sese-to-poly.h (base_alias_pair): Remove typedef.
963 * tree-data-ref.h (conflict_function): Remove typedef.
964 * tree-inline.h (copy_body_data): Remove typedef.
965 * ipa-inline.h (condition, size_time_entry, inline_param_summary_t,
966 edge_growth_cache_entry): Remove typedef.
967 * regrename.h (operand_rr_info, insn_rr_info): Remove typedef.
968 * gimple-iterator.h (gimple_stmt_iterator_d, gimple_stmt_iterator):
969 Remove typedef and rename to gimple_stmt_iterator.
970 * basic-block.h (ce_if_block, ce_if_block_t): Remove typedef and
971 rename to ce_if_block.
972 (edge_iterator): Remove typedef.
973 * ipa-prop.h (ipa_agg_jf_item, ipa_agg_jf_item_t): Remove typedef
974 and rename to ipa_agg_jf_item.
975 (ipa_agg_jump_function_t, ipa_param_descriptor_t, ipa_node_params_t,
976 ipa_parm_adjustment_t): Remove typedef.
977 (ipa_jump_func, ipa_jump_func_t): Remove typedef and rename to
978 ipa_jump_func.
979 (ipa_edge_args, ipa_edge_args_t): Remove typedef and rename to
980 ipa_edge_args.
981 * gcov-io.h (gcov_bucket_type): Remove typedef.
982 (gcov_working_set_info, gcov_working_set_t): Remove typedef and rename
983 to gcov_working_set_t.
984 * ira-int.h (minmax_set_iterator, ira_allocno_iterator,
985 ira_object_iterator, ira_allocno_object_iterator, ira_pref_iterator,
986 ira_copy_iterator, ira_object_conflict_iterator): Remove typedef.
987 * tree-iterator.h (tree_stmt_iterator): Remove typedef.
988 * rtl.h (addr_diff_vec_flags, mem_attrs, reg_attrs,
989 replace_label_data): Remove typedef.
990 (rtunion_def, rtunion): Remove typedef and rename to rtunion.
991 * hard-reg-set.h (hard_reg_set_iterator): Remove typedef.
992 * sel-sched-ir.h (_list_iterator, sel_global_bb_info_def,
993 sel_region_bb_info_def, succ_iterator): Remove typedef.
994 (deps_where_def, deps_where_t): Remove typedef and rename to
995 deps_where_t.
996 * coretypes.h: Adapt forward declarations.
997 * tree-scalar-evolution.h: Likewise.
998 * tree-ssa-address.h: Likewise.
999 * tree-ssa-operands.h: Likewise.
1000 * function.h: Likewise.
1001 * config/frv/frv-protos.h: Likewise.
1002 * targhooks.h: Likewise.
1003 * basic_block.h: Likewise.
1004 * rtl.def: Adapt documentation.
1005 * doc/tm.texi: Likewise.
1006 * ipa-cp.c: Adapt uses.
1007 * bitmap.c: Likewise.
1008 * dwarf2out.c: Likewise.
1009 * target.def: Likewise.
1010 * ipa-inline-analysis.c: Likewise.
1011 * dwarf2cfi.c: Likewise.
1012 * tree-ssa-loop-ivopts.c: Likewise.
1013 * lto-cgraph.c: Likewise.
1014 * config/frv/frv.c: Likewise.
1015 * ifcvt.c: Likewise.
1016 * ipa-prop.c: Likewise.
1017
1018 2013-12-10 Kai Tietz <ktietz@redhat.com>
1019
1020 PR target/56807
1021 * config/i386/i386.c (ix86_expand_prologue): Address saved
1022 registers stack-relative, not via frame-pointer.
1023
1024 2013-12-10 Richard Biener <rguenther@suse.de>
1025
1026 PR middle-end/38474
1027 * tree-ssa-structalias.c (solution_set_expand): Expand into
1028 a different possibly cached bitmap and return the result.
1029 (set_union_with_increment): Pass in a shared expanded bitmap
1030 and adjust.
1031 (do_sd_constraint): Likewise.
1032 (do_ds_constraint): Likewise.
1033 (do_complex_constraint): Likewise.
1034 (solve_graph): Manage the shared expanded bitmap.
1035
1036 2013-12-10 Jakub Jelinek <jakub@redhat.com>
1037
1038 * tree-vectorizer.h (struct _loop_vec_info): Add scalar_loop field.
1039 (LOOP_VINFO_SCALAR_LOOP): Define.
1040 (slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument.
1041 * config/i386/sse.md (maskload<mode>, maskstore<mode>): New expanders.
1042 * tree-data-ref.c (get_references_in_stmt): Handle MASK_LOAD and
1043 MASK_STORE.
1044 * internal-fn.def (LOOP_VECTORIZED, MASK_LOAD, MASK_STORE): New
1045 internal fns.
1046 * tree-if-conv.c: Include expr.h, optabs.h, tree-ssa-loop-ivopts.h and
1047 tree-ssa-address.h.
1048 (release_bb_predicate): New function.
1049 (free_bb_predicate): Use it.
1050 (reset_bb_predicate): Likewise. Don't unallocate bb->aux
1051 just to immediately allocate it again.
1052 (add_to_predicate_list): Add loop argument. If basic blocks that
1053 dominate loop->latch don't insert any predicate.
1054 (add_to_dst_predicate_list): Adjust caller.
1055 (if_convertible_phi_p): Add any_mask_load_store argument, if true,
1056 handle it like flag_tree_loop_if_convert_stores.
1057 (insert_gimplified_predicates): Likewise.
1058 (ifcvt_can_use_mask_load_store): New function.
1059 (if_convertible_gimple_assign_stmt_p): Add any_mask_load_store
1060 argument, check if some conditional loads or stores can't be
1061 converted into MASK_LOAD or MASK_STORE.
1062 (if_convertible_stmt_p): Add any_mask_load_store argument,
1063 pass it down to if_convertible_gimple_assign_stmt_p.
1064 (predicate_bbs): Don't return bool, only check if the last stmt
1065 of a basic block is GIMPLE_COND and handle that. Adjust
1066 add_to_predicate_list caller.
1067 (if_convertible_loop_p_1): Only call predicate_bbs if
1068 flag_tree_loop_if_convert_stores and free_bb_predicate in that case
1069 afterwards, check gimple_code of stmts here. Replace is_predicated
1070 check with dominance check. Add any_mask_load_store argument,
1071 pass it down to if_convertible_stmt_p and if_convertible_phi_p,
1072 call if_convertible_phi_p only after all if_convertible_stmt_p
1073 calls.
1074 (if_convertible_loop_p): Add any_mask_load_store argument,
1075 pass it down to if_convertible_loop_p_1.
1076 (predicate_mem_writes): Emit MASK_LOAD and/or MASK_STORE calls.
1077 (combine_blocks): Add any_mask_load_store argument, pass
1078 it down to insert_gimplified_predicates and call predicate_mem_writes
1079 if it is set. Call predicate_bbs.
1080 (version_loop_for_if_conversion): New function.
1081 (tree_if_conversion): Adjust if_convertible_loop_p and combine_blocks
1082 calls. Return todo flags instead of bool, call
1083 version_loop_for_if_conversion if if-conversion should be just
1084 for the vectorized loops and nothing else.
1085 (main_tree_if_conversion): Adjust caller. Don't call
1086 tree_if_conversion for dont_vectorize loops if if-conversion
1087 isn't explicitly enabled.
1088 * tree-vect-data-refs.c (vect_check_gather): Handle
1089 MASK_LOAD/MASK_STORE.
1090 (vect_analyze_data_refs, vect_supportable_dr_alignment): Likewise.
1091 * gimple.h (gimple_expr_type): Handle MASK_STORE.
1092 * internal-fn.c (expand_LOOP_VECTORIZED, expand_MASK_LOAD,
1093 expand_MASK_STORE): New functions.
1094 * tree-vectorizer.c: Include tree-cfg.h and gimple-fold.h.
1095 (vect_loop_vectorized_call, fold_loop_vectorized_call): New functions.
1096 (vectorize_loops): Don't try to vectorize loops with
1097 loop->dont_vectorize set. Set LOOP_VINFO_SCALAR_LOOP for if-converted
1098 loops, fold LOOP_VECTORIZED internal call depending on if loop
1099 has been vectorized or not.
1100 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
1101 New function.
1102 (slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument.
1103 If non-NULL, copy basic blocks from scalar_loop instead of loop, but
1104 still to loop's entry or exit edge.
1105 (slpeel_tree_peel_loop_to_edge): Add scalar_loop argument, pass it
1106 down to slpeel_tree_duplicate_loop_to_edge_cfg.
1107 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_loop_alignment):
1108 Adjust callers.
1109 (vect_loop_versioning): If LOOP_VINFO_SCALAR_LOOP, perform loop
1110 versioning from that loop instead of LOOP_VINFO_LOOP, move it to the
1111 right place in the CFG afterwards.
1112 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1113 MASK_STORE.
1114 * cfgloop.h (struct loop): Add dont_vectorize field.
1115 * tree-loop-distribution.c (copy_loop_before): Adjust
1116 slpeel_tree_duplicate_loop_to_edge_cfg caller.
1117 * optabs.def (maskload_optab, maskstore_optab): New optabs.
1118 * passes.def: Add a note that pass_vectorize must immediately follow
1119 pass_if_conversion.
1120 * tree-predcom.c (split_data_refs_to_components): Give up if
1121 DR_STMT is a call.
1122 * tree-vect-stmts.c (vect_mark_relevant): Don't crash if lhs
1123 is NULL.
1124 (exist_non_indexing_operands_for_use_p): Handle MASK_LOAD
1125 and MASK_STORE.
1126 (vectorizable_mask_load_store): New function.
1127 (vectorizable_call): Call it for MASK_LOAD or MASK_STORE.
1128 (vect_transform_stmt): Handle MASK_STORE.
1129 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Ignore
1130 DR_STMT where lhs is NULL.
1131 * optabs.h (can_vec_perm_p): Fix up comment typo.
1132 (can_vec_mask_load_store_p): New prototype.
1133 * optabs.c (can_vec_mask_load_store_p): New function.
1134
1135 2013-12-10 Eric Botcazou <ebotcazou@adacore.com>
1136
1137 * expr.c (expand_expr_real_1) <normal_inner_ref>: Always return 0 for
1138 the extraction of a bit-field of null size.
1139
1140 2013-12-10 Marek Polacek <polacek@redhat.com>
1141
1142 PR sanitizer/59437
1143 * vtable-verify.c (var_is_used_for_virtual_call_p): Check the
1144 return value of gimple_call_fn. Use is_gimple_call/is_gimple_assign
1145 instead of gimple_code.
1146
1147 2013-12-10 Maxim Kuvyrkov <maxim@kugelworks.com>
1148
1149 * config.gcc (mips*-mti-linux*, mips64*-*-linux*):
1150 Add android definitions.
1151 (s390x-*-linux*): Use linux-protos.h.
1152
1153 2013-12-10 Bin Cheng <bin.cheng@arm.com>
1154
1155 PR tree-optimization/41488
1156 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): Don't add cand
1157 for PEELED_CHREC kind IV.
1158 * tree-scalar-evolution.c: Include necessary header files.
1159 (peeled_chrec_map, simplify_peeled_chrec): New.
1160 (analyze_evolution_in_loop): New static variable.
1161 Call simplify_peeled_chrec.
1162 (scev_initialize): Initialize peeled_chrec_map.
1163 (scev_reset, scev_finalize): Reset and release peeled_chrec_map.
1164
1165 2013-12-09 Andrew Pinski <apinski@cavium.com>
1166
1167 * config/aarch64/t-aarch64 (MULTILIB_OPTIONS): Fix definition so
1168 that options are conflicting ones.
1169
1170 2013-12-09 Eric Botcazou <ebotcazou@adacore.com>
1171
1172 * optabs.c (gen_int_libfunc): Do not compare modes directly.
1173
1174 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1175
1176 * basic-block.h (FOR_ALL_BB): Eliminate macro.
1177
1178 * cfg.c (alloc_aux_for_blocks, clear_aux_for_blocks): Replace
1179 uses of FOR_ALL_BB with FOR_ALL_BB_FN, making uses of cfun explicit.
1180
1181 * cfganal.c (inverted_post_order_compute): Likewise.
1182 * cfgcleanup.c (try_optimize_cfg): Likewise.
1183 * cfgexpand.c (add_scope_conflicts): Likewise.
1184 * cfghooks.c (dump_flow_info, account_profile_record): Likewise.
1185 * cfgrtl.c (relink_block_chain): Likewise.
1186 * dce.c (mark_artificial_uses): Likewise.
1187 * df-core.c (df_set_blocks, df_compute_cfg_image, df_dump): Likewise.
1188 * df-problems.c (df_lr_verify_solution_start,
1189 df_lr_verify_solution_end, df_lr_verify_transfer_functions,
1190 df_live_verify_solution_start, df_live_verify_solution_end,
1191 df_live_set_all_dirty, df_live_verify_transfer_functions,
1192 df_md_local_comput): Likewise.
1193 * df-scan.c (df_scan_free_internal, df_scan_alloc)
1194 df_reorganize_refs_by_insn, df_scan_verify): Likewise.
1195 * dominance.c (compute_dom_fast_query, calculate_dominance_info,
1196 free_dominance_info): Likewise.
1197 * dse.c (dse_step1, dse_step3, dse_step4, dse_step6): Likewise.
1198 * graph.c (draw_cfg_edges): Likewise.
1199 * graphite-scop-detection.c (print_graphite_scop_statistics,
1200 dot_all_scops_1): Likewise.
1201 * graphite.c (print_global_statistics,
1202 print_graphite_scop_statistics): Likewise.
1203 * ira.c (do_reload): Likewise.
1204 * loop-init.c (loop_optimizer_finalize): Likewise.
1205 * lto-streamer-in.c (input_function): Likewise.
1206 * lto-streamer-out.c (output_function): Likewise.
1207 * mcf.c (adjust_cfg_counts): Likewise.
1208 * predict.c (estimate_loops): Likewise.
1209 * sched-rgn.c (haifa_find_rgns): Likewise.
1210 * tree-cfg.c (split_critical_edges): Likewise.
1211 * tree-dfa.c (renumber_gimple_stmt_uids): Likewise.
1212 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
1213 * tree-ssa-pre.c (compute_antic, insert, init_pre): Likewise.
1214 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
1215 * var-tracking.c (vt_initialize, vt_finalize): Likewise.
1216 * vtable-verify.c (vtable_verify_main): Likewise.
1217 * web.c (web_main): Likewise.
1218
1219 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1220
1221 * basic-block.h (FOR_EACH_BB_REVERSE): Eliminate macro.
1222
1223 * cfghooks.c (verify_flow_info): Replace uses of FOR_EACH_BB_REVERSE
1224 with FOR_EACH_BB_REVERSE_FN, making uses of cfun explicit.
1225 * cfgrtl.c (print_rtl_with_bb, rtl_verify_edges,
1226 rtl_verify_bb_insns, rtl_verify_bb_pointers,
1227 rtl_verify_bb_insn_chain, rtl_verify_fallthru): Likewise.
1228 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
1229 * config/sh/sh.c (sh_md_init_global): Likewise.
1230 * config/sh/sh_optimize_sett_clrt.cc
1231 (sh_optimize_sett_clrt::execute): Likewise.
1232 * dce.c (reset_unmarked_insns_debug_uses, delete_unmarked_insns):
1233 Likewise.
1234 * dominance.c (calc_dfs_tree): Likewise.
1235 * final.c (final): Likewise.
1236 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1237 * gcse.c (compute_code_hoist_vbeinout): Likewise.
1238 * ira.c (update_equiv_regs, build_insn_chain): Likewise.
1239 * lcm.c (compute_antinout_edge): Likewise.
1240 * mode-switching.c (optimize_mode_switching): Likewise.
1241 * postreload.c (reload_combine): Likewise.
1242 * recog.c (split_all_insns, peephole2_optimize): Likewise.
1243 * tree-ssa-live.c (live_worklist): Likewise.
1244
1245 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1246
1247 * basic-block.h (FOR_EACH_BB): Eliminate macro.
1248
1249 * asan.c (transform_statements, execute_sanopt): Eliminate
1250 use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
1251 explicit.
1252 * auto-inc-dec.c (rest_of_handle_auto_inc_dec): Likewise.
1253 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges,
1254 set_edge_can_fallthru_flag, fix_up_fall_thru_edges,
1255 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes,
1256 insert_section_boundary_note, rest_of_handle_reorder_blocks,
1257 duplicate_computed_gotos): Likewise.
1258 * cfg.c (clear_edges, compact_blocks, brief_dump_cfg): Likewise.
1259 * cfganal.c (find_unreachable_blocks, add_noreturn_fake_exit_edges,
1260 compute_dominance_frontiers_1, single_pred_before_succ_order): Likewise.
1261 * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
1262 * cfgcleanup.c (try_optimize_cfg, delete_dead_jumptables): Likewise.
1263 * cfgexpand.c (add_scope_conflicts, discover_nonconstant_array_refs):
1264 Likewise.
1265 * cfgloop.c (flow_loops_cfg_dump, get_loop_body, record_loop_exits,
1266 verify_loop_structure): Likewise.
1267 * cfgloopanal.c (mark_loop_exit_edges): Likewise.
1268 * cfgrtl.c (compute_bb_for_insn, find_partition_fixes,
1269 verify_hot_cold_block_grouping, purge_all_dead_edges,
1270 fixup_abnormal_edges, record_effective_endpoints,
1271 outof_cfg_layout_mode, fixup_reorder_chain, force_one_exit_fallthru,
1272 break_superblocks): Likewise.
1273 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges,
1274 cgraph_rebuild_references): Likewise.
1275 * combine-stack-adj.c (combine_stack_adjustments): Likewise.
1276 * combine.c (delete_noop_moves, create_log_links,
1277 combine_instructions): Likewise.
1278 * config/arm/arm.c (thumb1_reorg, thumb2_reorg): Likewise.
1279 * config/bfin/bfin.c (bfin_gen_bundles, reorder_var_tracking_notes):
1280 Likewise.
1281 * config/c6x/c6x.c (c6x_gen_bundles, conditionalize_after_sched,
1282 c6x_reorg): Likewise.
1283 * config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
1284 * config/frv/frv.c (frv_optimize_membar): Likewise.
1285 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
1286 * config/ia64/ia64.c (ia64_reorg): Likewise.
1287 * config/mips/mips.c (mips_annotate_pic_calls): Likewise.
1288 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
1289 * config/rs6000/rs6000.c (rs6000_alloc_sdmode_stack_slot): Likewise.
1290 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
1291 * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Likewise.
1292 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
1293 * config/tilegx/tilegx.c (tilegx_gen_bundles,
1294 reorder_var_tracking_notes): Likewise.
1295 * config/tilepro/tilepro.c (tilepro_gen_bundles,
1296 reorder_var_tracking_notes): Likewise.
1297 * coverage.c (coverage_compute_cfg_checksum): Likewise.
1298 * cprop.c (compute_hash_table_work, compute_cprop_data,
1299 local_cprop_pass, find_implicit_sets): Likewise.
1300 * cse.c (cse_condition_code_reg): Likewise.
1301 * dce.c (prescan_insns_for_dce): Likewise.
1302 * df-core.c (df_compact_blocks): Likewise.
1303 * df-problems.c (df_word_lr_alloc): Likewise.
1304 * df-scan.c (df_scan_start_dump, df_scan_blocks, df_insn_rescan_all,
1305 df_update_entry_exit_and_calls): Likewise.
1306 * dominance.c (calculate_dominance_info, verify_dominators,
1307 debug_dominance_info): Likewise.
1308 * dse.c (dse_step5_nospill): Likewise.
1309 * except.c (finish_eh_generation): Likewise.
1310 * final.c (compute_alignments): Likewise.
1311 * function.c (thread_prologue_and_epilogue_insns,
1312 rest_of_match_asm_constraints): Likewise.
1313 * gcse.c (compute_hash_table_work, prune_expressions,
1314 compute_pre_data, compute_code_hoist_vbeinout, hoist_code,
1315 calculate_bb_reg_pressure, compute_ld_motion_mems): Likewise.
1316 * gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
1317 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour,
1318 find_explicit_erroneous_behaviour): Likewise.
1319 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa,
1320 rewrite_cross_bb_scalar_deps_out_of_ssa): Likewise.
1321 * haifa-sched.c (haifa_sched_init): Likewise.
1322 * hw-doloop.c (discover_loops, set_bb_indices, reorder_loops):
1323 Likewise.
1324 * ifcvt.c (if_convert): Likewise.
1325 * init-regs.c (initialize_uninitialized_regs): Likewise.
1326 * ipa-prop.c (ipcp_transform_function): Likewise.
1327 * ipa-pure-const.c (analyze_function): Likewise.
1328 * ipa-split.c (find_split_points, execute_split_functions): Likewise.
1329 * ira-build.c (form_loop_tree): Likewise.
1330 * ira-costs.c (find_costs_and_classes): Likewise.
1331 * ira-emit.c (emit_moves, add_ranges_and_copies, ira_emit): Likewise.
1332 * ira.c (decrease_live_ranges_number, compute_regs_asm_clobbered,
1333 mark_elimination, update_equiv_regs, find_moveable_pseudos,
1334 split_live_ranges_for_shrink_wrap, allocate_initial_values): Likewise.
1335 * jump.c (mark_all_labels): Likewise.
1336 * lcm.c (compute_laterin, compute_insert_delete, compute_available,
1337 compute_nearerout, compute_rev_insert_delete): Likewise.
1338 * loop-init.c (fix_loop_structure): Likewise.
1339 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
1340 * lower-subreg.c (decompose_multiword_subregs,
1341 decompose_multiword_subregs): Likewise.
1342 * lra-assigns.c (assign_by_spills): Likewise.
1343 * lra-coalesce.c (lra_coalesce): Likewise.
1344 * lra-constraints.c (lra_inheritance, remove_inheritance_pseudos):
1345 Likewise.
1346 * lra-eliminations.c (lra_init_elimination): Likewise.
1347 * lra-spills.c (assign_spill_hard_regs, spill_pseudos,
1348 lra_final_code_change): Likewise.
1349 * lra.c (remove_scratches, check_rtl, has_nonexceptional_receiver,
1350 update_inc_notes): Likewise.
1351 * mcf.c (adjust_cfg_counts): Likewise.
1352 * mode-switching.c (optimize_mode_switching): Likewise.
1353 * modulo-sched.c (rest_of_handle_sms): Likewise.
1354 * omp-low.c (optimize_omp_library_calls, expand_omp_taskreg,
1355 expand_omp_target): Likewise.
1356 * postreload-gcse.c (alloc_mem, compute_hash_table): Likewise.
1357 * postreload.c (reload_cse_regs_1): Likewise.
1358 * predict.c (strip_predict_hints, tree_bb_level_predictions,
1359 tree_estimate_probability, expensive_function_p,
1360 estimate_bb_frequencies, compute_function_frequency): Likewise.
1361 * profile.c (is_inconsistent, compute_branch_probabilities,
1362 branch_prob): Likewise.
1363 * ree.c (find_removable_extensions): Likewise.
1364 * reg-stack.c (compensate_edges, convert_regs, reg_to_stack): Likewise.
1365 * regcprop.c (copyprop_hardreg_forward): Likewise.
1366 * reginfo.c (init_subregs_of_mode): Likewise.
1367 * regrename.c (regrename_analyze): Likewise.
1368 * regstat.c (regstat_compute_ri, regstat_compute_calls_crossed):
1369 Likewise.
1370 * reload1.c (has_nonexceptional_receiver, reload,
1371 calculate_elim_costs_all_insns): Likewise.
1372 * resource.c (init_resource_info, free_resource_info): Likewise.
1373 * sched-ebb.c (schedule_ebbs): Likewise.
1374 * sched-rgn.c (is_cfg_nonregular, find_single_block_region,
1375 haifa_find_rgns, sched_rgn_local_init): Likewise.
1376 * sel-sched-dump.c (sel_dump_cfg_2): Likewise.
1377 * sel-sched-ir.c (init_lv_sets, free_lv_sets,
1378 make_regions_from_the_rest): Likewise.
1379 * sese.c (build_sese_loop_nests, sese_build_liveouts): Likewise.
1380 * stack-ptr-mod.c (notice_stack_pointer_modification): Likewise.
1381 * store-motion.c (compute_store_table, build_store_vectors,
1382 one_store_motion_pass): Likewise.
1383 * tracer.c (tail_duplicate): Likewise.
1384 * trans-mem.c (compute_transaction_bits): Likewise.
1385 * tree-call-cdce.c (tree_call_cdce): Likewise.
1386 * tree-cfg.c (replace_loop_annotate, factor_computed_gotos,
1387 fold_cond_expr_cond, make_edges, assign_discriminators,
1388 make_abnormal_goto_edges, cleanup_dead_labels, group_case_labels,
1389 dump_cfg_stats, gimple_verify_flow_info, print_loop,
1390 execute_fixup_cfg): Likewise.
1391 * tree-cfgcleanup.c (cleanup_tree_cfg_1, merge_phi_nodes): Likewise.
1392 * tree-complex.c (init_dont_simulate_again, tree_lower_complex):
1393 Likewise.
1394 * tree-dfa.c (collect_dfa_stats, dump_enumerated_decls): Likewise.
1395 * tree-eh.c (execute_lower_resx, execute_lower_eh_dispatch,
1396 mark_reachable_handlers): Likewise.
1397 * tree-emutls.c (lower_emutls_function_body): Likewise.
1398 * tree-if-conv.c (main_tree_if_conversion): Likewise.
1399 * tree-inline.c (optimize_inline_calls): Likewise.
1400 * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Likewise.
1401 * tree-nrv.c (tree_nrv, execute_return_slot_opt): Likewise.
1402 * tree-object-size.c (compute_object_sizes): Likewise.
1403 * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees,
1404 insert_backedge_copies, tree_profiling): Likewise.
1405 * tree-scalar-evolution.c (scev_const_prop): Likewise.
1406 * tree-sra.c (scan_function, sra_modify_function_body,
1407 propagate_dereference_distances, ipa_sra_modify_function_body,
1408 convert_callers): Likewise.
1409 * tree-ssa-ccp.c (ccp_initialize, execute_fold_all_builtins): Likewise.
1410 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
1411 create_outofssa_var_map, coalesce_partitions): Likewise.
1412 * tree-ssa-copy.c (init_copy_prop): Likewise.
1413 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1414 * tree-ssa-dce.c (find_obviously_necessary_stmts,
1415 eliminate_unnecessary_stmts): Likewise.
1416 * tree-ssa-dom.c (free_all_edge_infos, tree_ssa_dominator_optimize):
1417 Likewise.
1418 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
1419 * tree-ssa-live.c (clear_unused_block_pointer, remove_unused_locals,
1420 new_tree_live_info, calculate_live_on_exit, dump_live_info,
1421 analyze_memory_references, fill_always_executed_in,
1422 tree_ssa_lim_finalize): Likewise.
1423 * tree-ssa-loop-manip.c (find_uses_to_rename, verify_loop_closed_ssa):
1424 Likewise.
1425 * tree-ssa-math-opts.c (execute_cse_reciprocals, execute_cse_sincos,
1426 execute_optimize_bswap, execute_optimize_widening_mul): Likewise.
1427 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1428 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
1429 * tree-ssa-tail-merge.c (find_same_succ, reset_cluster_vectors):
1430 Likewise.
1431 * tree-ssa-ter.c (find_replaceable_exprs): Likewise.
1432 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1433 * tree-ssa-uncprop.c (associate_equivalences_with_edges,
1434 tree_ssa_uncprop): Likewise.
1435 * tree-ssa-uninit.c (warn_uninitialized_vars,
1436 execute_late_warn_uninitialized): Likewise.
1437 * tree-ssa.c (verify_ssa, execute_update_addresses_taken): Likewise.
1438 * tree-stdarg.c (check_all_va_list_escapes, execute_optimize_stdarg):
1439 Likewise.
1440 * tree-switch-conversion.c (do_switchconv): Likewise.
1441 * tree-vect-generic.c (expand_vector_operations): Likewise.
1442 * tree-vectorizer.c (adjust_simduid_builtins, note_simd_array_uses,
1443 execute_vect_slp): Likewise.
1444 * tree-vrp.c (check_all_array_refs, remove_range_assertions,
1445 vrp_initialize, identify_jump_threads, instrument_memory_accesses):
1446 Likewise.
1447 * ubsan.c (ubsan_pass): Likewise.
1448 * value-prof.c (verify_histograms, gimple_value_profile_transformations,
1449 gimple_find_values_to_profile): Likewise.
1450 * var-tracking.c (vt_find_locations, dump_dataflow_sets, vt_emit_notes,
1451 vt_initialize, delete_debug_insns, vt_finalize): Likewise.
1452
1453 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1454
1455 * basic-block.h (last_basic_block): Eliminate macro.
1456
1457 * asan.c (transform_statements): Eliminate use of last_basic_block
1458 in favor of last_basic_block_for_fn, in order to make use of cfun
1459 explicit.
1460 * bb-reorder.c (copy_bb, reorder_basic_blocks): Likewise.
1461 * bt-load.c (compute_defs_uses_and_gen, compute_kill, compute_out,
1462 link_btr_uses, build_btr_def_use_webs, migrate_btr_defs): Likewise.
1463 * cfg.c (compact_blocks): Likewise.
1464 * cfganal.c (mark_dfs_back_edges,
1465 control_dependences::control_dependences, post_order_compute,
1466 pre_and_rev_post_order_compute_fn, dfs_enumerate_from, compute_idf,
1467 single_pred_before_succ_order): Likewise.
1468 * cfgbuild.c (make_edges): Likewise.
1469 * cfgexpand.c (add_scope_conflicts, gimple_expand_cfg): Likewise.
1470 * cfghooks.c (verify_flow_info): Likewise.
1471 * cfgloop.c (verify_loop_structure): Likewise.
1472 * cfgloopanal.c (just_once_each_iteration_p,
1473 mark_irreducible_loops): Likewise.
1474 * cfgloopmanip.c (fix_bb_placements, remove_path,
1475 update_dominators_in_loop): Likewise.
1476 * cfgrtl.c (create_basic_block_structure, rtl_create_basic_block,
1477 break_superblocks, rtl_flow_call_edges_add): Likewise.
1478 * config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
1479 * config/frv/frv.c (frv_optimize_membar): Likewise.
1480 * config/mips/mips.c (r10k_insert_cache_barriers): Likewise.
1481 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
1482 * cprop.c (compute_local_properties, find_implicit_sets,
1483 bypass_conditional_jumps, one_cprop_pass): Likewise.
1484 * cse.c (cse_main): Likewise.
1485 * df-core.c (rest_of_handle_df_initialize, df_worklist_dataflow,
1486 df_analyze, df_grow_bb_info, df_compact_blocks): Likewise.
1487 * df-problems.c (df_lr_verify_solution_start,
1488 df_live_verify_solution_start, df_md_local_compute): Likewise.
1489 * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
1490 calc_idoms): Likewise.
1491 * domwalk.c (dom_walker::walk): Likewise.
1492 * dse.c (dse_step0, dse_step3): Likewise.
1493 * function.c (epilogue_done): Likewise.
1494 * gcse.c (alloc_gcse_mem, compute_local_properties,
1495 prune_insertions_deletions, compute_pre_data,
1496 pre_expr_reaches_here_p, one_pre_gcse_pass,
1497 compute_code_hoist_vbeinout, should_hoist_expr_to_dom, hoist_code,
1498 one_code_hoisting_pass): Likewise.
1499 * graph.c (draw_cfg_nodes_no_loops): Likewise.
1500 * graphite-sese-to-poly.c (build_scop_bbs): Likewise.
1501 * haifa-sched.c (unlink_bb_notes): Likewise.
1502 * ipa-split.c (execute_split_functions): Likewise.
1503 * ira-build.c (create_loop_tree_nodes,
1504 remove_unnecessary_regions): Likewise.
1505 * ira-emit.c (ira_emit): Likewise.
1506 * ira.c (find_moveable_pseudos, ira): Likewise.
1507 * lcm.c (compute_antinout_edge, compute_laterin,
1508 compute_insert_delete, pre_edge_lcm, compute_available,
1509 compute_nearerout, compute_rev_insert_delete,
1510 pre_edge_rev_lcm): Likewise.
1511 * loop-unroll.c (opt_info_start_duplication,
1512 apply_opt_in_copies): Likewise.
1513 * lower-subreg.c (decompose_multiword_subregs): Likewise.
1514 * lra-lives.c (lra_create_live_ranges): Likewise.
1515 * lra.c (lra): Likewise.
1516 * mode-switching.c (optimize_mode_switching): Likewise.
1517 * recog.c (split_all_insns): Likewise.
1518 * regcprop.c (copyprop_hardreg_forward): Likewise.
1519 * regrename.c (regrename_analyze): Likewise.
1520 * reload1.c (reload): Likewise.
1521 * resource.c (init_resource_info): Likewise.
1522 * sched-rgn.c (haifa_find_rgns, extend_rgns, compute_trg_info,
1523 realloc_bb_state_array, schedule_region, extend_regions): Likewise.
1524 * sel-sched-ir.c (sel_extend_global_bb_info, extend_region_bb_info,
1525 recompute_rev_top_order, sel_init_pipelining,
1526 make_regions_from_the_rest): Likewise.
1527 * store-motion.c (remove_reachable_equiv_notes,build_store_vectors)
1528 Likewise.
1529 * tracer.c (tail_duplicate): Likewise.
1530 * trans-mem.c (tm_region_init, get_bb_regions_instrumented): Likewise.
1531 * tree-cfg.c (create_bb, cleanup_dead_labels, gimple_dump_cfg,
1532 gimple_flow_call_edges_add): Likewise.
1533 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls,
1534 cleanup_tree_cfg_1): Likewise.
1535 * tree-complex.c (tree_lower_complex): Likewise.
1536 * tree-inline.c (copy_cfg_body): Likewise.
1537 * tree-into-ssa.c (mark_phi_for_rewrite, rewrite_into_ssa,
1538 prepare_def_site_for, update_ssa): Likewise.
1539 * tree-ssa-dce.c (tree_dce_init, perform_tree_ssa_dce): Likewise.
1540 * tree-ssa-dom.c (record_edge_info): Likewise.
1541 * tree-ssa-live.c (new_tree_live_info, live_worklist): Likewise.
1542 * tree-ssa-loop-im.c (fill_always_executed_in_1): Likewise.
1543 * tree-ssa-loop-manip.c (copy_phi_node_args
1544 gimple_duplicate_loop_to_header_edge): Likewise.
1545 * tree-ssa-pre.c (compute_antic): Likewise.
1546 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
1547 * tree-ssa-reassoc.c (init_reassoc): Likewise.
1548 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
1549 * tree-ssa-tail-merge.c (init_worklist): Likewise.
1550 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
1551 * tree-stdarg.c (reachable_at_most_once): Likewise.
1552 * tree-vrp.c (find_assert_locations): Likewise.
1553 * var-tracking.c (vt_find_locations): Likewise.
1554
1555 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1556
1557 * basic-block.h (profile_status): Eliminate macro.
1558
1559 * cfgbuild.c (find_many_sub_basic_blocks): Eliminate use of
1560 profile_status macro in favor of profile_status_for_fn, making
1561 use of cfun explicit.
1562 * cfghooks.c (account_profile_record): Likewise.
1563 * cfgloopanal.c (single_likely_exit):
1564 * cfgrtl.c (rtl_verify_edges, rtl_account_profile_record): Likewise.
1565 * graphite.c (graphite_finalize):
1566 * internal-fn.c (ubsan_expand_si_overflow_addsub_check,
1567 ubsan_expand_si_overflow_neg_check,
1568 ubsan_expand_si_overflow_mul_check): Likewise.
1569 * ipa-split.c (consider_split, execute_split_functions):
1570 * loop-unroll.c (decide_peel_simple):
1571 * optabs.c (emit_cmp_and_jump_insn_1):
1572 * predict.c (maybe_hot_edge_p, probably_never_executed,
1573 predictable_edge_p, probability_reliable_p, gimple_predict_edge,
1574 tree_estimate_probability_driver, estimate_bb_frequencies,
1575 compute_function_frequency, rebuild_frequencies): Likewise.
1576 * profile.c (compute_branch_probabilities): Likewise.
1577 * tree-cfg.c (gimple_account_profile_record): Likewise.
1578 * tree-inline.c (optimize_inline_calls): Likewise.
1579
1580 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1581
1582 * basic-block.h (label_to_block_map): Eliminate macro.
1583
1584 * gimple.c (gimple_set_bb): Replace uses of label_to_block_map
1585 with uses of label_to_block_map_for_fn, making uses of cfun be
1586 explicit.
1587 * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
1588 (verify_gimple_label): Likewise.
1589
1590 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1591
1592 * basic-block.h (basic_block_info): Eliminate macro.
1593
1594 * cfgrtl.c (rtl_create_basic_block): Replace uses of
1595 basic_block_info with basic_block_info_for_fn, making uses
1596 of cfun be explicit.
1597 * tree-cfg.c (build_gimple_cfg, create_bb): Likewise.
1598
1599 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1600
1601 * basic-block.h (BASIC_BLOCK): Eliminate macro.
1602
1603 * alias.c (init_alias_analysis): Eliminate BASIC_BLOCK macro in
1604 favor of uses of BASIC_BLOCK_FOR_FN, making uses of cfun explicit.
1605 * bt-load.c (compute_defs_uses_and_gen, compute_out, link_btr_uses,
1606 block_at_edge_of_live_range_p, migrate_btr_defs): Likewise.
1607 * caller-save.c (insert_one_insn): Likewise.
1608 * cfg.c (debug_bb, get_bb_original, get_bb_copy): Likewise.
1609 * cfgexpand.c (add_scope_conflicts): Likewise.
1610 * cfghooks.c (verify_flow_info): Likewise.
1611 * cfgloop.c (flow_loops_find): Likewise.
1612 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1613 * config/mips/mips.c (r10k_insert_cache_barriers): Likewise.
1614 * config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
1615 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
1616 * cse.c (cse_main): Likewise.
1617 * dce.c (fast_dce): Likewise.
1618 * df-core.c (df_set_blocks, df_worklist_propagate_forward,
1619 df_worklist_propagate_backward, df_worklist_dataflow_doublequeue,
1620 df_bb_replace, df_dump_region): Likewise.
1621 * df-problems.c (df_rd_bb_local_compute, df_lr_bb_local_compute,
1622 df_live_bb_local_compute, df_chain_remove_problem)
1623 df_chain_create_bb, df_word_lr_bb_local_compute, df_note_bb_compute,
1624 df_md_bb_local_compute, df_md_local_compute,
1625 df_md_transfer_function): Likewise.
1626 * df-scan.c (df_scan_blocks, df_reorganize_refs_by_reg_by_insn,
1627 df_reorganize_refs_by_insn, df_bb_refs_collect,
1628 df_record_entry_block_defs, df_update_entry_block_defs,
1629 df_record_exit_block_uses): Likewise.
1630 * dominance.c (nearest_common_dominator_for_set): Likewise.
1631 * gcse.c (hoist_code): Likewise.
1632 * graph.c (draw_cfg_nodes_no_loops): Likewise.
1633 * ipa-inline-analysis.c (param_change_prob,
1634 estimate_function_body_sizes): Likewise.
1635 * ipa-split.c (dominated_by_forbidden): Likewise.
1636 * loop-unroll.c (apply_opt_in_copies): Likewise.
1637 * lower-subreg.c (decompose_multiword_subregs): Likewise.
1638 * lra-lives.c (lra_create_live_ranges): Likewise.
1639 * predict.c (propagate_freq): Likewise.
1640 * regrename.c (regrename_analyze): Likewise.
1641 * regstat.c (regstat_bb_compute_ri,
1642 regstat_bb_compute_calls_crossed): Likewise.
1643 * resource.c (mark_target_live_regs): Likewise.
1644 * sched-ebb.c (ebb_fix_recovery_cfg): Likewise.
1645 * sched-int.h (EBB_FIRST_BB, EBB_LAST_BB): Likewise.
1646 * sched-rgn.c (debug_region, dump_region_dot, too_large,
1647 haifa_find_rgns, extend_rgns, compute_dom_prob_ps, update_live,
1648 propagate_deps, sched_is_disabled_for_current_region_p): Likewise.
1649 * sched-vis.c (debug_bb_n_slim): Likewise.
1650 * sel-sched-ir.c (sel_finish_global_and_expr, verify_backedges,
1651 purge_empty_blocks, sel_remove_loop_preheader): Likewise.
1652 * sel-sched.c (remove_insns_that_need_bookkeeping)
1653 (current_region_empty_p, sel_region_init,
1654 simplify_changed_insns): Likewise.
1655 * trans-mem.c (execute_tm_mark, execute_tm_edges,
1656 tm_memopt_compute_antic, ipa_tm_scan_irr_function): Likewise.
1657 * tree-cfg.c (make_edges, end_recording_case_labels,
1658 label_to_block_fn, gimple_debug_bb, gimple_flow_call_edges_add,
1659 remove_edge_and_dominated_blocks, remove_edge_and_dominated_blocks,
1660 gimple_purge_all_dead_eh_edges,
1661 gimple_purge_all_dead_abnormal_call_edges): Likewise.
1662 * tree-cfgcleanup.c (fixup_noreturn_call,
1663 split_bbs_on_noreturn_calls, cleanup_tree_cfg_1): Likewise.
1664 * tree-inline.c (copy_cfg_body, fold_marked_statements): Likewise.
1665 * tree-into-ssa.c (set_livein_block, prune_unused_phi_nodes,
1666 insert_phi_nodes_for, insert_updated_phi_nodes_for): Likewise.
1667 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1668 * tree-ssa-live.c (live_worklist): Likewise.
1669 * tree-ssa-loop-manip.c (compute_live_loop_exits,
1670 add_exit_phis_var, find_uses_to_rename, copy_phi_node_args): Likewise.
1671 * tree-ssa-pre.c (compute_antic): Likewise.
1672 * tree-ssa-reassoc.c (update_range_test, optimize_range_tests): Likewise.
1673 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
1674 * tree-ssa-tail-merge.c (same_succ_hash, same_succ_def::equal,
1675 same_succ_flush_bbs, update_worklist, set_cluster,
1676 same_phi_alternatives, find_clusters_1, apply_clusters,
1677 update_debug_stmts): Likewise.
1678 * tree-ssa-threadupdate.c (mark_threaded_blocks,
1679 thread_through_all_blocks): Likewise.
1680 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
1681 * tree-vrp.c (find_assert_locations): Likewise.
1682
1683 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1684
1685 * basic-block.h (SET_BASIC_BLOCK): Eliminate macro.
1686
1687 * cfg.c (compact_blocks): Replace uses of SET_BASIC_BLOCK
1688 with SET_BASIC_BLOCK_FOR_FN, making use of cfun explicit.
1689 (expunge_block): Likewise.
1690 * cfgrtl.c (create_basic_block_structure): Likewise.
1691 * df-core.c (df_compact_blocks, df_bb_replace): Likewise.
1692 * sel-sched.c (create_block_for_bookkeeping): Likewise.
1693 * tree-cfg.c (create_bb): Likewise.
1694
1695 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1696
1697 * basic-block.h (profile_status_for_function): Rename to...
1698 (profile_status_for_fn): ...this.
1699
1700 * cfg.c (check_bb_profile): Update for renaming.
1701 * cgraphbuild.c (compute_call_stmt_bb_frequency): Likewise.
1702 * lto-streamer-in.c (input_cfg): Likewise.
1703 * lto-streamer-out.c (output_cfg): Likewise.
1704 * predict.c (maybe_hot_frequency_p, maybe_hot_count_p,
1705 maybe_hot_bb_p, probably_never_executed)
1706 (handle_missing_profiles): Likewise.
1707 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
1708 * tree-inline.c (copy_bb, initialize_cfun): Likewise.
1709
1710 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1711
1712 * basic-block.h (label_to_block_map_for_function): Rename to...
1713 (label_to_block_map_for_fn): ...this.
1714
1715 * lto-streamer-in.c (input_cfg): Update for renaming.
1716 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
1717
1718 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1719
1720 * basic-block.h (last_basic_block_for_function): Rename to...
1721 (last_basic_block_for_fn): ...this.
1722
1723 * ipa-utils.c (ipa_merge_profiles): Update for renaming of
1724 last_basic_block_for_function to last_basic_block_for_fn.
1725 * lto-streamer-in.c (input_cfg): Likewise.
1726 * lto-streamer-out.c (output_cfg): Likewise.
1727 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
1728 * tree-sra.c (propagate_dereference_distances, ipa_early_sra):
1729 Likewise.
1730
1731 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1732
1733 * basic-block.h (basic_block_info_for_function): Rename to...
1734 (basic_block_info_for_fn): ...this.
1735 (BASIC_BLOCK_FOR_FUNCTION): Rename to...
1736 (BASIC_BLOCK_FOR_FN): ...this.
1737 (SET_BASIC_BLOCK_FOR_FUNCTION): Rename to...
1738 (SET_BASIC_BLOCK_FOR_FN): ...this.
1739
1740 * gimple-streamer-in.c (input_phi, input_bb): Update for renaming
1741 of BASIC_BLOCK_FOR_FUNCTION to BASIC_BLOCK_FOR_FN.
1742 * ipa-utils.c (ipa_merge_profiles): Likewise.
1743 * lto-streamer-in.c (make_new_block): Update for renaming of
1744 SET_BASIC_BLOCK_FOR_FUNCTION to SET_BASIC_BLOCK_FOR_FN.
1745 (input_cfg): Update for renamings.
1746 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
1747 (dump_function_to_file): Update for renaming of
1748 basic_block_info_for_function to basic_block_info_for_fn.
1749
1750 2013-12-09 Richard Biener <rguenther@suse.de>
1751
1752 PR middle-end/38474
1753 * tree-ssa-structalias.c (set_union_with_increment): Remove
1754 unreachable code.
1755 (do_complex_constraint): Call set_union_with_increment with
1756 the solution delta, not the full solution.
1757 (make_transitive_closure_constraints): Merge the two
1758 constraints.
1759
1760 2013-12-09 Richard Earnshaw <rearnsha@arm.com>
1761
1762 * arm.c (mem_ok_for_ldrd_strd): Rename first argument as MEM. Do
1763 more address validation checks.
1764
1765 2013-12-09 Marek Polacek <polacek@redhat.com>
1766
1767 PR sanitizer/59415
1768 * vtable-verify.c (verify_bb_vtables): Check the return value
1769 of gimple_call_fn. Use is_gimple_call instead of gimple_code.
1770
1771 2013-12-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1772
1773 * config/arm/arm.md (generic_sched): Add cortexa12.
1774 (generic_vfp): Likewise.
1775 * config/arm/arm.c (cortexa12_extra_costs): New cost table.
1776 (arm_cortex_a12_tune): New tuning struct.
1777 * config/arm/arm-cores.def: Add cortex-a12.
1778 * config/arm/arm-tables.opt: Regenerate.
1779 * config/arm/arm-tune.md: Likewise.
1780 * config/arm/bpabi.h: Add cortex-a12.
1781 * doc/invoke.texi: Document -mcpu=cortex-a12.
1782
1783 2013-12-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1784
1785 * doc/install.texi (Prerequisites): Explicitly mention C library
1786 and its headers for multilib builds.
1787
1788 2013-12-08 Oleg Endo <olegendo@gcc.gnu.org>
1789
1790 PR target/52898
1791 PR target/51697
1792 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
1793 OPT_mcbranchdi entry.
1794 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Mark as undocumented and
1795 emit a warning.
1796 * config/sh/sh.c (sh_option_override): Initialize TARGET_CBRANCHDI4
1797 and TARGET_CMPEQDI_T variables.
1798 * doc/invoke.texi (SH options): Undocument -mcbranchdi and -mcmpeqdi.
1799
1800 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
1801
1802 * config/linux.h: Fix typo in a comment.
1803
1804 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
1805
1806 * config.gcc (*linux*): Split libc selection from Android support.
1807 Add libc selection to all *linux* targets. Add Android support to
1808 architectures that support it.
1809 (arm*-*-linux-*, i[34567]86-*-linux*, x86_64-*-linux*,)
1810 (mips*-*-linux*): Add Android support.
1811
1812 2013-12-07 Alexander Ivchenko <alexander.ivchenko@intel.com>
1813 Maxim Kuvyrkov <maxim@kugelworks.com>
1814
1815 * config/bfin/uclinux.h, config/c6x/uclinux-elf.h,
1816 * config/lm32/uclinux-elf.h, config/m68k/uclinux.h,
1817 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Move definitions
1818 to linux.h.
1819 * config/linux-android.h (TARGET_HAS_IFUNC_P): Move definition
1820 to linux.h.
1821 * config/linux.h (TARGET_LIBC_HAS_FUNCTION, TARGET_HAS_IFUNC_P):
1822 Define appropriately for Linux and uClinux targets.
1823
1824 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
1825
1826 * config/linux.c (linux_has_ifunc_p): Use correct test.
1827
1828 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
1829
1830 * config/linux.c (linux_android_has_ifunc_p): Rename to
1831 linux_has_ifunc_p.
1832 (linux_android_libc_has_function): Rename to linux_libc_has_function.
1833 * config/linux-protos.h (linux_android_has_ifunc_p,)
1834 (linux_android_libc_has_function): Update declarations.
1835 * config/linux.h, config/linux-android.h, config/alpha/linux.h,
1836 * config/rs6000/linux.h, config/rs6000/linux64.h: Update.
1837
1838 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
1839
1840 * linux-android.c: Rename to linux.c.
1841 * t-linux-android: Rename to t-linux. Update references
1842 to linux-android.c
1843 * config.gcc: Update references to t-linux-android and linux-android.o.
1844
1845 2013-12-07 Alan Modra <amodra@gmail.com>
1846
1847 * config/rs6000/rs6000.md (bswapdi2_32bit): Remove ?? from r->r
1848 alternative.
1849
1850 2013-12-07 Ralf Corsépius <ralf.corsepius@rtems.org>
1851
1852 * config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT.
1853
1854 2013-12-06 Vladimir Makarov <vmakarov@redhat.com>
1855
1856 * config/rs6000/rs600.md (*bswapdi2_64bit): Remove ?? from the
1857 constraint.
1858
1859 2013-12-06 Caroline Tice <cmtice@google.com>
1860
1861 Submitting patch from Stephen Checkoway, s@cs.jhu.edu
1862 * vtable-verify.c (verify_bb_vtables): Replace all uses of verified
1863 vtable pointer with the results of the verification call, rather than
1864 only the uses in the next statement.
1865
1866 2013-12-06 Andrew Pinski <apinski@cavium.com>
1867
1868 PR target/59092
1869 * config/aarch64/aarch64.md (trap): New pattern.
1870
1871 2013-12-06 Jakub Jelinek <jakub@redhat.com>
1872
1873 PR tree-optimization/59388
1874 * tree-ssa-reassoc.c (update_range_test): If op == range->exp,
1875 gimplify tem after stmt rather than before it.
1876
1877 * tree-data-ref.c (struct data_ref_loc_d): Replace pos field with ref.
1878 (get_references_in_stmt): Don't record operand addresses, but
1879 operands themselves.
1880 (find_data_references_in_stmt, graphite_find_data_references_in_stmt):
1881 Adjust for the pos -> ref change.
1882
1883 2013-12-06 H.J. Lu <hongjiu.lu@intel.com>
1884
1885 * config.gcc: Change --with-cpu=ia to --with-cpu=intel.
1886
1887 * config/i386/i386.c (cpu_names): Replace "ia" with "intel".
1888 (processor_alias_table): Likewise.
1889 (ix86_option_override_internal): Likewise.
1890 * config/i386/i386.h (target_cpu_default): Replace
1891 TARGET_CPU_DEFAULT_ia with TARGET_CPU_DEFAULT_intel.
1892
1893 * doc/invoke.texi: Replace -mtune=ia with -mtune=intel.
1894
1895 2013-12-06 Uros Bizjak <ubizjak@gmail.com>
1896
1897 PR target/59405
1898 * config/i386/i386.c (type_natural_mode): Properly handle
1899 size 8 for !TARGET_64BIT.
1900
1901 2013-12-06 Trevor Saunders <tsaunders@mozilla.com>
1902
1903 * tree-ssa-pre.c (compute_antic_aux): Remove redundant call to
1904 vec::release.
1905
1906 2013-12-06 Ian Bolton <ian.bolton@arm.com>
1907 Mark Mitchell <mark@codesourcery.com>
1908
1909 PR target/59091
1910 * config/arm/arm.md (trap): New pattern.
1911 * config/arm/types.md: Added a type for trap.
1912
1913 2013-12-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
1914
1915 * expr.c (expand_assignment): Update bitregion_start and bitregion_end.
1916
1917 2013-12-06 Eric Botcazou <ebotcazou@adacore.com>
1918
1919 PR target/59316
1920 * config/sparc/sparc.h (SPARC_LOW_FE_EXCEPT_VALUES): Define.
1921 * config/sparc/sol2.h (SPARC_LOW_FE_EXCEPT_VALUES): Redefine.
1922 * config/sparc/sparc.c (TARGET_INIT_BUILTINS): Move around.
1923 (TARGET_BUILTIN_DECL): Define.
1924 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Likewise.
1925 (sparc32_initialize_trampoline): Adjust call to gen_flush.
1926 (enum sparc_builtins): New enumeral type.
1927 (sparc_builtins): New static array.
1928 (sparc_builtins_icode): Likewise.
1929 (def_builtin): Accept a separate icode and save the result.
1930 (def_builtin_const): Likewise.
1931 (sparc_fpu_init_builtins): New function.
1932 (sparc_vis_init_builtins): Pass the builtin code.
1933 (sparc_init_builtins): Call it if TARGET_FPU.
1934 (sparc_builtin_decl): New function.
1935 (sparc_expand_builtin): Deal with SPARC_BUILTIN_{LD,ST}FSR.
1936 (sparc_handle_vis_mul8x16): Use the builtin code.
1937 (sparc_fold_builtin): Likewise. Deal with SPARC_BUILTIN_{LD,ST}FSR
1938 and SPARC_BUILTIN_PDISTN.
1939 (compound_expr): New helper function.
1940 (sparc_atomic_assign_expand_fenv): New function.
1941 * config/sparc/sparc.md (unspecv): Reorder values, add UNSPECV_LDFSR
1942 and UNSPECV_STFSR.
1943 (flush, flushdi): Merge into single pattern.
1944 (ldfsr): New instruction.
1945 (stfsr): Likewise.
1946
1947 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
1948
1949 * asan.c: Remove struct tags when referring to class varpool_node.
1950 * cgraph.h: Likewise.
1951 * cgraphbuild.c: Likewise.
1952 * cgraphunit.c: Likewise.
1953 * dbxout.c: Likewise.
1954 * dwarf2out.c: Likewise.
1955 * gimple-fold.c: Likewise.
1956 * ipa-devirt.c: Likewise.
1957 * ipa-ref-inline.h: Likewise.
1958 * ipa-ref.h: Likewise.
1959 * ipa-reference.c: Likewise.
1960 * ipa-utils.c: Likewise.
1961 * ipa.c: Likewise.
1962 * lto-cgraph.c: Likewise.
1963 * lto-streamer-out.c: Likewise.
1964 * lto-streamer.h: Likewise.
1965 * passes.c: Likewise.
1966 * toplev.c: Likewise.
1967 * tree-eh.c: Likewise.
1968 * tree-emutls.c: Likewise.
1969 * tree-pass.h: Likewise.
1970 * tree-ssa-structalias.c: Likewise.
1971 * tree-vectorizer.c: Likewise.
1972 * tree.c: Likewise.
1973 * varasm.c: Likewise.
1974 * varpool.c: Likewise.
1975
1976 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
1977
1978 * cgraphunit.c: Remove struct tags when referring to class
1979 ipa_opt_pass_d or class opt_pass.
1980 * function.h: Likewise.
1981 * lto-cgraph.c: Likewise.
1982 * pass_manager.h: Likewise.
1983 * passes.c: Likewise.
1984 * tree-pass.h: Likewise.
1985
1986 2013-12-06 Richard Biener <rguenther@suse.de>
1987
1988 PR tree-optimization/59058
1989 * tree-vectorizer.h (struct _loop_vec_info): Add num_itersm1 member.
1990 (LOOP_VINFO_NITERSM1): New macro.
1991 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Express
1992 the vector loop entry test in terms of scalar latch executions.
1993 (vect_do_peeling_for_alignment): Update LOOP_VINFO_NITERSM1.
1994 * tree-vect-loop.c (vect_get_loop_niters): Also return the
1995 number of latch executions.
1996 (new_loop_vec_info): Initialize LOOP_VINFO_NITERSM1.
1997 (vect_analyze_loop_form): Likewise.
1998 (vect_generate_tmps_on_preheader): Compute the number of
1999 vectorized iterations differently.
2000
2001 2013-12-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2002
2003 * config/score/score.c (score_force_temporary): Delete function.
2004 (score_split_symbol): Ditto.
2005 * config/score/score.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add extra
2006 parentheses to silence ambiguity warning and reindent.
2007
2008 2013-12-05 Marek Polacek <polacek@redhat.com>
2009
2010 * doc/invoke.texi: Document -fsanitize=signed-integer-overflow.
2011
2012 2013-12-05 H.J. Lu <hongjiu.lu@intel.com>
2013
2014 * config.gcc: Support --with-cpu=ia.
2015
2016 * config/i386/i386.c (cpu_names): Add "ia".
2017 (processor_alias_table): Likewise.
2018 (ix86_option_override_internal): Disallow -march=ia.
2019 * config/i386/i386.h (target_cpu_default): Add TARGET_CPU_DEFAULT_ia.
2020
2021 * doc/invoke.texi: Document -mtune=ia.
2022
2023 2013-12-05 Vladimir Makarov <vmakarov@redhat.com>
2024
2025 PR rtl-optimization/59317
2026 * lra-constraints.c (in_class_p): Don't ignore insn with constant
2027 as a source.
2028
2029 2013-12-05 Martin Jambor <mjambor@suse.cz>
2030
2031 PR ipa/58253
2032 * ipa-prop.c (ipa_modify_formal_parameters): Create decls of
2033 non-BLKmode in their naturally aligned type.
2034
2035 2013-12-05 Marek Polacek <polacek@redhat.com>
2036
2037 PR sanitizer/59333
2038 PR sanitizer/59397
2039 * ubsan.c: Include rtl.h and expr.h.
2040 (ubsan_encode_value): Add new parameter. If expanding, assign
2041 a stack slot for DECL_RTL of the temporary and call expand_assignment.
2042 Handle BOOLEAN_TYPE and ENUMERAL_TYPE.
2043 (ubsan_build_overflow_builtin): Adjust ubsan_encode_value call.
2044 * ubsan.h (ubsan_encode_value): Adjust declaration.
2045 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Move
2046 ubsan_build_overflow_builtin above expand_normal call. Surround
2047 this call with push_temp_slots and pop_temp_slots.
2048 (ubsan_expand_si_overflow_neg_check): Likewise.
2049 (ubsan_expand_si_overflow_mul_check): Likewise.
2050
2051 2013-12-05 Yufeng Zhang <yufeng.zhang@arm.com>
2052
2053 * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Guard
2054 the get_alternative_base call with flag_expensive_optimizations.
2055 (alloc_cand_and_find_basis): Likewise.
2056
2057 2013-12-05 Tejas Belagod <tejas.belagod@arm.com>
2058
2059 * rtlanal.c (set_noop_p): Return nonzero in case of redundant
2060 vec_select for overlapping register lanes.
2061
2062 2013-12-05 Kirill Yukhin <kirill.yukhin@intel.com>
2063
2064 * config/i386/i386.c (ix86_expand_builtin): Generate
2065 reg for readflags built-in when optimizing.
2066 * config/i386/i386.md (*pushfl<mode>): Rename to ...
2067 (pushfl<mode>2): This. Fix iterator.
2068 (*popfl<mode>): Rename to ...
2069 (*popfl<mode>1): This. Fix iterator.
2070
2071 2013-12-05 Kirill Yukhin <kirill.yukhin@intel.com>
2072
2073 * config/i386/i386.c (IX86_BUILTIN_READ_FLAGS): New.
2074 (IX86_BUILTIN_WRITE_FLAGS): Ditto.
2075 (ix86_init_mmx_sse_builtins): Define
2076 __builtin_ia32_writeeflags_u32, __builtin_ia32_writeeflags_u64,
2077 __builtin_ia32_readeflags_u32, __builtin_ia32_readeflags_u64.
2078 (ix86_expand_builtin): Expand them.
2079 * config/i386/ia32intrin.h (__readeflags): New.
2080 (__writeeflags): Ditto.
2081 * config/i386/i386.md (*pushfl<mode>): Ditto.
2082 (*popfl<mode>1): Ditto.
2083
2084 2013-12-05 Richard Biener <rguenther@suse.de>
2085
2086 PR tree-optimization/59374
2087 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
2088 Commonize known and unknown dependence case fixing the allowed
2089 read-write dependence case and dropping code that should not matter.
2090
2091 2013-12-05 Kirill Yukhin <kirill.yukhin@intel.com>
2092
2093 * config/ia64/ia64.md (prologue_allocate_stack): Block auto-
2094 generation of predicated version.
2095 (epilogue_deallocate_stack): Ditto.
2096 (prologue_allocate_stack_pr): Add explicit predicated version.
2097 (epilogue_deallocate_stack_pr): Ditto.
2098 * config/ia64/ia64.c (ia64_single_set): Use explicit version.
2099
2100 2013-12-05 Alan Modra <amodra@gmail.com>
2101
2102 * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
2103 build != host.
2104 <recursive call for build != host>: Clear GMPINC. Don't bother
2105 saving CFLAGS.
2106
2107 2013-12-04 Jakub Jelinek <jakub@redhat.com>
2108 Marek Polacek <polacek@redhat.com>
2109
2110 * opts.c (common_handle_option): Handle
2111 -fsanitize=signed-integer-overflow.
2112 * config/i386/i386.md (addv<mode>4, subv<mode>4, mulv<mode>4,
2113 negv<mode>3, negv<mode>3_1): Define expands.
2114 (*addv<mode>4, *subv<mode>4, *mulv<mode>4, *negv<mode>3): Define insns.
2115 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW,
2116 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW,
2117 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW,
2118 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW): Define.
2119 * ubsan.h (PROB_VERY_UNLIKELY, PROB_EVEN, PROB_VERY_LIKELY,
2120 PROB_ALWAYS): Define.
2121 (ubsan_build_overflow_builtin): Declare.
2122 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Add folding of
2123 internal functions.
2124 * ubsan.c (PROB_VERY_UNLIKELY): Don't define here.
2125 (ubsan_build_overflow_builtin): New function.
2126 (instrument_si_overflow): Likewise.
2127 (ubsan_pass): Add signed integer overflow checking.
2128 (gate_ubsan): Enable the pass also when SANITIZE_SI_OVERFLOW.
2129 * flag-types.h (enum sanitize_code): Add SANITIZE_SI_OVERFLOW.
2130 * internal-fn.c: Include ubsan.h and target.h.
2131 (ubsan_expand_si_overflow_addsub_check): New function.
2132 (ubsan_expand_si_overflow_neg_check): Likewise.
2133 (ubsan_expand_si_overflow_mul_check): Likewise.
2134 (expand_UBSAN_CHECK_ADD): Likewise.
2135 (expand_UBSAN_CHECK_SUB): Likewise.
2136 (expand_UBSAN_CHECK_MUL): Likewise.
2137 * fold-const.c (fold_binary_loc): Don't fold A + (-B) -> A - B and
2138 (-A) + B -> B - A when doing the signed integer overflow checking.
2139 * internal-fn.def (UBSAN_CHECK_ADD, UBSAN_CHECK_SUB, UBSAN_CHECK_MUL):
2140 Define.
2141 * tree-vrp.c (extract_range_basic): Handle internal calls.
2142 * optabs.def (addv4_optab, subv4_optab, mulv4_optab, negv4_optab): New
2143 optabs.
2144 * asan.c: Include predict.h.
2145 (PROB_VERY_UNLIKELY, PROB_ALWAYS): Don't define here.
2146 * predict.c: Move the PROB_* macros...
2147 * predict.h (enum br_predictor): ...here.
2148 (PROB_LIKELY, PROB_UNLIKELY): Define.
2149 * trans-mem.c: Include predict.h.
2150 (PROB_VERY_UNLIKELY, PROB_ALWAYS, PROB_VERY_LIKELY,
2151 PROB_LIKELY, PROB_UNLIKELY): Don't define here.
2152
2153 2013-12-04 Jeff Law <law@redhat.com>
2154
2155 * common.opt: Split up -fisolate-erroneous-paths into
2156 -fisolate-erroneous-paths-dereference and
2157 -fisolate-erroneous-paths-attribute.
2158 * invoke.texi: Corresponding changes.
2159 * gimple.c (infer_nonnull_range): Add and use new arguments to control
2160 what kind of statements can be used to infer a non-null range.
2161 * gimple.h (infer_nonnull_range): Update prototype.
2162 * tree-vrp.c (infer_value_range): Corresponding changes.
2163 * opts.c (default_options_table): Update due to option split.
2164 * gimple-ssa-isolate-paths.c: Fix trailing whitespace.
2165 (find_implicit_erroneous_behaviour): Pass additional arguments
2166 to infer_nonnull_range.
2167 (find_explicit_erroneous_behaviour): Similarly.
2168 (gate_isolate_erroneous_paths): Check both of the new options.
2169
2170 2013-12-04 Jeff Law <law@redhat.com>
2171
2172 * expr.c (expand_assignment): Update comments.
2173
2174 2013-12-04 Tobias Burnus <burnus@net-b.de>
2175
2176 PR debug/37132
2177 * lto-streamer.h (LTO_tags): Add LTO_namelist_decl_ref.
2178 * tree.def (NAMELIST_DECL): Add.
2179 * tree.h (NAMELIST_DECL_ASSOCIATED_DECL): New macro.
2180 * tree.c (initialize_tree_contains_struct): Add asserts for it.
2181 * dwarf2out.c (gen_namelist_decl): New function.
2182 (gen_decl_die, dwarf2out_decl): Call it.
2183 (dwarf2out_imported_module_or_decl_1): Handle NAMELIST_DECL.
2184 * lto-streamer-in.c (lto_input_tree_ref): Handle NAMELIST_DECL.
2185 (lto_input_tree_ref, lto_input_tree_1): Update lto_tag_check_range
2186 call.
2187 * lto-streamer-out.c (lto_output_tree_ref): Handle NAMELIST_DECL.
2188
2189 2013-12-03 Xinliang David Li <davidxl@google.com>
2190
2191 * tree-ssa-structalias.c (constraint_set_union): Change return type
2192 from void to bool.
2193 (merge_node_constraints): Ditto.
2194 (unify_nodes): Update changed set when constraints set changes.
2195
2196 2013-12-04 H.J. Lu <hongjiu.lu@intel.com>
2197
2198 * configure.ac: Append gdbasan.in to .gdbinit if CFLAGS contains
2199 -fsanitize=address.
2200 * configure: Regenerated.
2201
2202 * gdbasan.in: New file.
2203
2204 2013-12-04 Jakub Jelinek <jakub@redhat.com>
2205
2206 PR rtl-optimization/58726
2207 * combine.c (force_to_mode): Fix comment typo. Don't destructively
2208 modify x for ROTATE, ROTATERT and IF_THEN_ELSE.
2209
2210 2013-12-04 Jakub Jelinek <jakub@redhat.com>
2211 Uros Bizjak <ubizjak@gmail.com>
2212
2213 PR target/59163
2214 * config/i386/i386.c (ix86_legitimate_combined_insn): If for
2215 !TARGET_AVX there is misaligned MEM operand with vector mode
2216 and get_attr_ssememalign is 0, return false.
2217 (ix86_expand_special_args_builtin): Add get_pointer_alignment
2218 computed alignment and for non-temporal loads/stores also
2219 at least GET_MODE_ALIGNMENT as MEM_ALIGN.
2220 * config/i386/sse.md
2221 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
2222 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
2223 <sse2_avx_avx512f>_loaddqu<mode><mask_name>,
2224 <sse2_avx_avx512f>_storedqu<mode>, <sse3>_lddqu<avxsizesuffix>,
2225 sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
2226 sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
2227 *vec_interleave_highv2df, *vec_interleave_lowv2df,
2228 *vec_extractv2df_1_sse, sse2_movsd, sse4_1_<code>v8qiv8hi2,
2229 sse4_1_<code>v4qiv4si2, sse4_1_<code>v4hiv4si2,
2230 sse4_1_<code>v2qiv2di2, sse4_1_<code>v2hiv2di2,
2231 sse4_1_<code>v2siv2di2, sse4_2_pcmpestr, *sse4_2_pcmpestr_unaligned,
2232 sse4_2_pcmpestri, sse4_2_pcmpestrm, sse4_2_pcmpestr_cconly,
2233 sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned, sse4_2_pcmpistri,
2234 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add ssememalign attribute.
2235 * config/i386/i386.md (ssememalign): New define_attr.
2236
2237 2013-12-04 Jakub Jelinek <jakub@redhat.com>
2238
2239 PR tree-optimization/59355
2240 * ipa-devirt.c (gate_ipa_devirt): Return false if !flag_devirtualize.
2241 * opts.c (common_handle_option): Fix comment spelling.
2242
2243 2013-12-04 Yufeng Zhang <yufeng.zhang@arm.com>
2244
2245 * gimple-ssa-strength-reduction.c: Include tree-affine.h.
2246 (name_expansions): New static variable.
2247 (alt_base_map): Ditto.
2248 (get_alternative_base): New function.
2249 (find_basis_for_candidate): For CAND_REF, optionally call
2250 find_basis_for_base_expr with the returned value from
2251 get_alternative_base.
2252 (record_potential_basis): Add new parameter 'base' of type 'tree';
2253 add an assertion of non-NULL base; use base to set node->base_expr.
2254 (alloc_cand_and_find_basis): Update; call record_potential_basis
2255 for CAND_REF with the returned value from get_alternative_base.
2256 (replace_refs): Dump details on the replacing.
2257 (execute_strength_reduction): Call pointer_map_create for
2258 alt_base_map; call free_affine_expand_cache with &name_expansions.
2259
2260 2013-12-03 Wei Mi <wmi@google.com>
2261
2262 PR rtl-optimization/59020
2263 * sched-deps.c (try_group_insn): Move it from haifa-sched.c to here.
2264 (sched_analyze_insn): Call try_group_insn.
2265 (sched_analyze): Cleanup SCHED_GROUP_P before start the analysis.
2266 * haifa-sched.c (try_group_insn): Moved to sched-deps.c.
2267 (group_insns_for_macro_fusion): Removed.
2268 (sched_init): Remove calling group_insns_for_macro_fusion.
2269
2270 2013-12-03 Peter Bergner <bergner@vnet.ibm.com>
2271
2272 * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix
2273 typo in macro name.
2274 (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise.
2275
2276 2013-12-03 Vladimir Makarov <vmakarov@redhat.com>
2277
2278 * config/aarch64/aarch64.c (aarch64_frame_pointer_required): Check
2279 LR_REGNUM.
2280 (aarch64_can_eliminate): Don't check elimination source when
2281 frame_pointer_required is false.
2282
2283 2013-12-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2284
2285 * config/avr/avr.c (avr_option_override): Warn if asked to generate
2286 position independent code.
2287 * config/avr/avr.h: Modify LINK_SPEC to reject -shared.
2288
2289 2013-12-03 H.J. Lu <hongjiu.lu@intel.com>
2290
2291 PR target/59363
2292 * config/i386/i386.c (emit_memset): Adjust destination address
2293 after gen_strset.
2294 (expand_setmem_epilogue): Likewise.
2295
2296 2013-12-03 Marek Polacek <polacek@redhat.com>
2297
2298 PR middle-end/56344
2299 * calls.c (expand_call): Disallow passing huge arguments by value.
2300
2301 2013-12-03 Jakub Jelinek <jakub@redhat.com>
2302
2303 PR tree-optimization/59362
2304 * tree-object-size.c (object_sizes): Change into array of
2305 vec<unsigned HOST_WIDE_INT>.
2306 (compute_builtin_object_size): Check computed bitmap for
2307 non-NULL instead of object_sizes. Call safe_grow on object_sizes
2308 vector if new SSA_NAMEs appeared.
2309 (init_object_sizes): Check computed bitmap for non-NULL.
2310 Call safe_grow on object_sizes elements instead of initializing
2311 it with XNEWVEC.
2312 (fini_object_sizes): Call release on object_sizes elements, don't
2313 set it to NULL.
2314
2315 PR middle-end/59011
2316 * gimplify.c (nonlocal_vla_vars): New variable.
2317 (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
2318 nonlocal_vla_vars chain.
2319 (gimplify_body): Call declare_vars on nonlocal_vla_vars chain
2320 if outer_bind has DECL_INITIAL (current_function_decl) block.
2321
2322 PR target/58864
2323 * dojump.c (save_pending_stack_adjust, restore_pending_stack_adjust):
2324 New functions.
2325 * expr.h (struct saved_pending_stack_adjust): New type.
2326 (save_pending_stack_adjust, restore_pending_stack_adjust): New
2327 prototypes.
2328 * optabs.c (emit_conditional_move): Call save_pending_stack_adjust
2329 and get_last_insn before do_pending_stack_adjust, call
2330 restore_pending_stack_adjust after delete_insns_since.
2331 * expr.c (expand_expr_real_2): Don't call do_pending_stack_adjust
2332 before calling emit_conditional_move.
2333 * expmed.c (expand_sdiv_pow2): Likewise.
2334 * calls.c (expand_call): Use {save,restore}_pending_stack_adjust.
2335
2336 2013-12-02 Jeff Law <law@redhat.com>
2337
2338 PR tree-optimization/59322
2339 * tree-ssa-threadedge.c (create_edge_and_update_destination_phis):
2340 Remove code which copied jump threading paths.
2341
2342 2013-12-02 Sriraman Tallam <tmsriram@google.com>
2343
2344 PR target/58944
2345 * config/i386/i386.opt (ix86_arch_string): Mark this variable
2346 for saving in cl_target_option.
2347 (ix86_tune_string): Ditto.
2348 (ix86_cmodel): Ditto.
2349 (ix86_abi): Ditto.
2350 (ix86_asm_dialect): Ditto.
2351 (ix86_branch_cost): Ditto.
2352 (ix86_dump_tunes): Ditto.
2353 (ix86_force_align_arg_pointer): Ditto.
2354 (ix86_force_drap): Ditto.
2355 (ix86_incoming_stack_boundary_arg): Ditto.
2356 (ix86_pmode): Ditto.
2357 (ix86_preferred_stack_boundary_arg): Ditto.
2358 (ix86_recip_name): Ditto.
2359 (ix86_regparm): Ditto.
2360 (ix86_section_threshold): Ditto.
2361 (ix86_sse2avx): Ditto.
2362 (ix86_stack_protector_guard): Ditto.
2363 (ix86_stringop_alg): Ditto.
2364 (ix86_tls_dialect): Ditto.
2365 (ix86_tune_ctrl_string): Ditto.
2366 (ix86_tune_memcpy_strategy): Ditto.
2367 (ix86_tune_memset_strategy): Ditto.
2368 (ix86_tune_no_default): Ditto.
2369 (ix86_veclibabi_type): Ditto.
2370 * config/i386/i386.c (function_specific_save): Save the above
2371 variables in gcc_options to cl_target_option.
2372 (function_specific_restore): Do the reverse done in
2373 function_specific_save.
2374 (ix86_valid_target_attribute_tree): Change ix86_arch_string
2375 and ix86_tune_string to use the opts structure.
2376 (ix86_option_override_internal):Change
2377 ix86_incoming_stack_boundary_arg to
2378 opts->x_ix86_incoming_stack_boundary_arg
2379
2380 2013-12-02 Joern Rennecke <joern.rennecke@embecosm.com>
2381
2382 * config/epiphany/epiphany.h: Wrap rtl_opt_pass declarations
2383 in #ifndef IN_LIBGCC2 / #endif.
2384
2385 2013-12-02 Jakub Jelinek <jakub@redhat.com>
2386
2387 PR tree-optimization/59358
2388 * tree-vrp.c (union_ranges): To check for the partially overlapping
2389 ranges or adjacent ranges, also compare *vr0max with vr1max.
2390
2391 2013-12-02 Sterling Augustine  <saugustine@google.com>
2392
2393 * dwarf2out.c (output_pubnames): Use comp_unit_die ()->die_offset
2394 when there isn't a skeleton die.
2395
2396 2013-12-02 Marek Polacek <polacek@redhat.com>
2397
2398 PR sanitizer/59353
2399 * doc/invoke.texi: Document -fsanitize=return.
2400
2401 2013-12-02 Tobias Burnus <burnus@net-b.de>
2402 Manuel López-Ibáñez <manu@gcc.gnu.org>
2403
2404 PR middle-end/59257
2405 * doc/invoke.texi: Add missing @opindex.
2406 (-fsanitize=): Use @gcctabopt instead of @itemize.
2407
2408 2013-12-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
2409
2410 Fix C++0x memory model for unaligned fields in packed, aligned(4)
2411 structures with -fno-strict-volatile-bitfields on STRICT_ALIGNMENT
2412 targets like arm-none-eabi.
2413 * expr.c (expand_assignment): Handle normal fields like bit regions.
2414
2415 2013-12-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
2416
2417 PR target/58115
2418 * function.c (invoke_set_current_function_hook): Call
2419 targetm.set_current_function after setting this_fn_optabs.
2420
2421 2013-12-02 Richard Biener <rguenther@suse.de>
2422
2423 PR tree-optimization/59139
2424 * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match
2425 code in get_val_for.
2426 (get_val_for): Use gcc_checking_asserts.
2427
2428 2013-12-02 Richard Biener <rguenther@suse.de>
2429
2430 PR middle-end/59199
2431 * tree-ssa-operands.c (opf_implicit): Remove.
2432 (opf_address_taken): New flag.
2433 (get_expr_operands): Remove early out, pass down opf_address_taken for
2434 ADDR_EXPRs, add a use operand only for non-opf_address_taken bases.
2435 (get_indirect_ref_operands): Rename to ...
2436 (get_mem_ref_operands): ... this.
2437 (get_asm_expr_operands): Rename to ...
2438 (get_asm_stmt_operands): ... this.
2439
2440 2013-12-02 Yuri Rumyantsev <ysrumyan@gmail.com>
2441
2442 * ipa-inline.c (check_callers): Add missed pointer de-reference.
2443
2444 2013-12-02 Eric Botcazou <ebotcazou@adacore.com>
2445
2446 PR tree-optimization/59356
2447 * tree-dfa.h (get_addr_base_and_unit_offset_1) <case ARRAY_REF>: Do the
2448 offset computation using the precision of the index type.
2449
2450 2013-12-02 Yvan Roux <yvan.roux@linaro.org>
2451
2452 PR target/58785
2453 * config/arm/arm.c (arm_preferred_reload_class): Only return LO_REGS
2454 when rclass is GENERAL_REGS.
2455
2456 2013-12-02 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2457
2458 * loop-unroll.c (decide_unroll_constant_iterations): Check macro
2459 TARGET_LOOP_UNROLL_ADJUST while deciding unroll factor.
2460
2461 2013-12-01 Eric Botcazou <ebotcazou@adacore.com>
2462
2463 * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
2464 identifier node.
2465
2466 2013-12-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
2467
2468 * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument.
2469
2470 2013-11-30 Paulo Matos <pmatos@broadcom.com>
2471 Eric Botcazou <ebotcazou@adacore.com>
2472
2473 * combine.c (reg_nonzero_bits_for_combine): Apply mask transformation
2474 as applied to nonzero_sign_valid when last_set_mode has less precision
2475 than mode.
2476
2477 2013-11-30 Tobias Burnus <burnus@net-b.de>
2478
2479 PR sanitizer/59275
2480 * doc/invoke.texi (-fsanitize=address,leak): Mention the associated
2481 environment variable and link to a list with flags.
2482 (-fsanitize=thread): Ditto and update link.
2483
2484 2013-11-29 Vladimir Makarov <vmakarov@redhat.com>
2485
2486 PR rtl-optimization/59340
2487 * lra.c (check_rtl): Use recog_memoized instead of insn_invalid_p.
2488
2489 Revert
2490 2013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com>
2491
2492 * lra.c (lra): Set lra_in_progress before check_rtl call.
2493 * recog.c (insn_invalid_p): Add !lra_in_progress to prevent
2494 adding clobber regs when LRA is running.
2495
2496 2013-11-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2497
2498 PR target/59289
2499 * config/arm/arm.c (cortexa15_extra_costs): Adjust costs.
2500
2501 2013-11-29 Richard Biener <rguenther@suse.de>
2502
2503 PR middle-end/59208
2504 * tree-ssa-operands.h (fini_ssa_operands, verify_ssa_operands,
2505 free_stmt_operands, update_stmt_operands): Add struct function
2506 argument.
2507 * tree-ssa-operands.c: Remove uses of cfun, propagate struct
2508 function argument from fini_ssa_operands, verify_ssa_operands,
2509 free_stmt_operands and update_stmt_operands everywhere.
2510 * tree-ssanames.h (release_ssa_name_fn): New.
2511 (release_ssa_name): Inline wrapper around release_ssa_name_fn.
2512 * tree-ssanames.c (release_ssa_name): Rename to ...
2513 (release_ssa_name_fn): ... this and add struct function argument.
2514 * gimple-ssa.h (update_stmt, update_stmt_if_modified): Adjust.
2515 (update_stmt_fn): New function.
2516 * tree-cfg.c (move_block_to_fn): Adjust.
2517 * tree-if-conv.c (free_bb_predicate): Likewise.
2518 * tree-ssa.c (verify_ssa): Likewise.
2519 (delete_tree_ssa): Likewise.
2520 * gimple-pretty-print.c (dump_gimple_mem_ops): Remove guard.
2521 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Call
2522 update_stmt_fn instead of update_stmt.
2523
2524 2013-11-29 Yvan Roux <yvan.roux@linaro.org>
2525
2526 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS
2527 for LRA.
2528
2529 2013-11-29 Yvan Roux <yvan.roux@linaro.org>
2530
2531 * config/arm/arm.md (store_minmaxsi): Use only when
2532 optimize_function_for_size_p.
2533
2534 2013-11-29 Jakub Jelinek <jakub@redhat.com>
2535 Yury Gribov <y.gribov@samsung.com>
2536
2537 PR sanitizer/59063
2538 * config/gnu-user.h: Removed old code for setting up sanitizer libs.
2539 * gcc.c: Using libsanitizer spec instead of explicit libs.
2540
2541 2013-11-29 Ilya Enkovich <ilya.enkovich@intel.com>
2542
2543 Reverted:
2544 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
2545 * cgraph.h (varpool_node): Add need_bounds_init field.
2546 * lto-cgraph.c (lto_output_varpool_node): Output
2547 need_bounds_init value.
2548 (input_varpool_node): Read need_bounds_init value.
2549 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
2550
2551 Reverted:
2552 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
2553 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
2554 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
2555 (gen_type_die_with_usage): Skip pointer bounds.
2556 (dwarf2out_global_decl): Likewise.
2557
2558 Reverted:
2559 2013-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
2560 * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
2561 * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
2562 * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
2563 * gimple.c (gimple_call_get_nobnd_arg_index): Remove.
2564 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
2565 (gimple_call_with_bounds_p): New.
2566 (gimple_call_set_with_bounds): New.
2567 (gimple_call_num_nobnd_args): Remove.
2568 (gimple_call_nobnd_arg): Remove.
2569 * tree.h (CALL_WITH_BOUNDS_P): New.
2570 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
2571
2572 Reverted:
2573 2013-11-08 Ilya Enkovich <ilya.enkovich@intel.com>
2574 * common.opt (fcheck-pointer-bounds): Move to ...
2575 * c-family/c.opt: ... here.
2576 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
2577 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
2578 * langhooks.h (lang_hooks): Remove chkp_supported field.
2579 * toplev.c (process_options): Remove chkp_supported check.
2580
2581 Reverted:
2582 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
2583 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
2584 * tree.h (POINTER_BOUNDS_P): New.
2585 (BOUNDED_TYPE_P): New.
2586 (BOUNDED_P): New.
2587 (pointer_bounds_type_node): New.
2588 * tree.c (build_common_tree_nodes): Initialize
2589 pointer_bounds_type_node.
2590 * gimple.h (gimple_call_get_nobnd_arg_index): New.
2591 (gimple_call_num_nobnd_args): New.
2592 (gimple_call_nobnd_arg): New.
2593 (gimple_return_retbnd): New.
2594 (gimple_return_set_retbnd): New
2595 * gimple.c (gimple_build_return): Increase number of ops
2596 for return statement.
2597 (gimple_call_get_nobnd_arg_index): New.
2598 * gimple-pretty-print.c (dump_gimple_return): Print second op.
2599
2600 Reverted:
2601 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
2602 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
2603 with "chkp ctor" and "bnd_legacy" attributes.
2604 * gimplify.c (gimplify_init_constructor): Avoid infinite
2605 loop during gimplification of bounds initializer.
2606
2607 Reverted:
2608 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
2609 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
2610 (handle_bnd_legacy): New.
2611 (c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
2612 * doc/extend.texi: Document bnd_variable_size and bnd_legacy
2613 attributes.
2614
2615 Reverted:
2616 2013-10-29 Ilya Enkovich <ilya.enkovich@intel.com>
2617 * builtin-types.def (BT_FN_VOID_CONST_PTR): New.
2618 (BT_FN_PTR_CONST_PTR): New.
2619 (BT_FN_CONST_PTR_CONST_PTR): New.
2620 (BT_FN_PTR_CONST_PTR_SIZE): New.
2621 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
2622 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
2623 (BT_FN_VOID_CONST_PTR_SIZE): New.
2624 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
2625 * chkp-builtins.def: New.
2626 * builtins.def: include chkp-builtins.def.
2627 (DEF_CHKP_BUILTIN): New.
2628 * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
2629 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
2630 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
2631 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
2632 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
2633 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
2634 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
2635 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
2636 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
2637 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
2638 * common.opt (fcheck-pointer-bounds): New.
2639 * toplev.c (process_options): Check Pointer Bounds Checker is
2640 supported.
2641 * doc/extend.texi: Document Pointer Bounds Checker built-in functions.
2642
2643 Reverted:
2644 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
2645 * target.def (builtin_chkp_function): New.
2646 (chkp_bound_type): New.
2647 (chkp_bound_mode): New.
2648 (fn_abi_va_list_bounds_size): New.
2649 (load_bounds_for_arg): New.
2650 (store_bounds_for_arg): New.
2651 * targhooks.h (default_load_bounds_for_arg): New.
2652 (default_store_bounds_for_arg): New.
2653 (default_fn_abi_va_list_bounds_size): New.
2654 (default_chkp_bound_type): New.
2655 (default_chkp_bound_mode): New.
2656 (default_builtin_chkp_function): New.
2657 * targhooks.c (default_load_bounds_for_arg): New.
2658 (default_store_bounds_for_arg): New.
2659 (default_fn_abi_va_list_bounds_size): New.
2660 (default_chkp_bound_type): New.
2661 (default_chkp_bound_mode); New.
2662 (default_builtin_chkp_function): New.
2663 * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
2664 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
2665 (TARGET_STORE_BOUNDS_FOR_ARG): New.
2666 (TARGET_BUILTIN_CHKP_FUNCTION): New.
2667 (TARGET_CHKP_BOUND_TYPE): New.
2668 (TARGET_CHKP_BOUND_MODE): New.
2669 * doc/tm.texi: Regenerated.
2670 * langhooks.h (lang_hooks): Add chkp_supported field.
2671 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
2672 (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.
2673
2674 Reverted:
2675 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
2676 * config/i386/constraints.md (B): New.
2677 (Ti): New.
2678 (Tb): New.
2679 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
2680 * config/i386/i386-modes.def (BND32): New.
2681 (BND64): New.
2682 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
2683 * config/i386/i386.c (isa_opts): Add mmpx.
2684 (regclass_map): Add bound registers.
2685 (dbx_register_map): Likewise.
2686 (dbx64_register_map): Likewise.
2687 (svr4_dbx_register_map): Likewise.
2688 (PTA_MPX): New.
2689 (ix86_option_override_internal): Support MPX ISA.
2690 (ix86_conditional_register_usage): Support bound registers.
2691 (print_reg): Likewise.
2692 (ix86_code_end): Add MPX bnd prefix.
2693 (output_set_got): Likewise.
2694 (ix86_output_call_insn): Likewise.
2695 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
2696 (ix86_print_operand_punct_valid_p): Likewise.
2697 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
2698 UNSPEC_BNDMK_ADDR.
2699 (ix86_class_likely_spilled_p): Add bound regs support.
2700 (ix86_hard_regno_mode_ok): Likewise.
2701 (x86_order_regs_for_local_alloc): Likewise.
2702 (ix86_bnd_prefixed_insn_p): New.
2703 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
2704 (FIXED_REGISTERS): Add bound registers.
2705 (CALL_USED_REGISTERS): Likewise.
2706 (REG_ALLOC_ORDER): Likewise.
2707 (HARD_REGNO_NREGS): Likewise.
2708 (TARGET_MPX): New.
2709 (VALID_BND_REG_MODE): New.
2710 (FIRST_BND_REG): New.
2711 (LAST_BND_REG): New.
2712 (reg_class): Add BND_REGS.
2713 (REG_CLASS_NAMES): Likewise.
2714 (REG_CLASS_CONTENTS): Likewise.
2715 (BND_REGNO_P): New.
2716 (ANY_BND_REG_P): New.
2717 (BNDmode): New.
2718 (HI_REGISTER_NAMES): Add bound registers.
2719 * config/i386/i386.md (UNSPEC_BNDMK): New.
2720 (UNSPEC_BNDMK_ADDR): New.
2721 (UNSPEC_BNDSTX): New.
2722 (UNSPEC_BNDLDX): New.
2723 (UNSPEC_BNDLDX_ADDR): New.
2724 (UNSPEC_BNDCL): New.
2725 (UNSPEC_BNDCU): New.
2726 (UNSPEC_BNDCN): New.
2727 (UNSPEC_MPX_FENCE): New.
2728 (BND0_REG): New.
2729 (BND1_REG): New.
2730 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
2731 (length_immediate): Likewise.
2732 (prefix_0f): Likewise.
2733 (memory): Likewise.
2734 (prefix_rep): Check for bnd prefix.
2735 (length_nobnd): New.
2736 (length): Use length_nobnd if specified.
2737 (BND): New.
2738 (bnd_ptr): New.
2739 (BNDCHECK): New.
2740 (bndcheck): New.
2741 (*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
2742 (*jcc_2): Likewise.
2743 (jump): Likewise.
2744 (simple_return_internal): Likewise.
2745 (simple_return_pop_internal): Likewise.
2746 (*indirect_jump): Add MPX bnd prefix.
2747 (*tablejump_1): Likewise.
2748 (simple_return_internal_long): Likewise.
2749 (simple_return_indirect_internal): Likewise.
2750 (<mode>_mk): New.
2751 (*<mode>_mk): New.
2752 (mov<mode>): New.
2753 (*mov<mode>_internal_mpx): New.
2754 (<mode>_<bndcheck>): New.
2755 (*<mode>_<bndcheck>): New.
2756 (<mode>_ldx): New.
2757 (*<mode>_ldx): New.
2758 (<mode>_stx): New.
2759 (*<mode>_stx): New.
2760 * config/i386/predicates.md (lea_address_operand): Rename to...
2761 (address_no_seg_operand): ... this.
2762 (address_mpx_no_base_operand): New.
2763 (address_mpx_no_index_operand): New.
2764 (bnd_mem_operator): New.
2765 * config/i386/i386.opt (mmpx): New.
2766 * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
2767 * doc/rtl.texi Add documentation for BND32mode and BND64mode.
2768
2769 Reverted:
2770 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
2771 * mode-classes.def (MODE_POINTER_BOUNDS): New.
2772 * tree.def (POINTER_BOUNDS_TYPE): New.
2773 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
2774 (POINTER_BOUNDS_MODE): New.
2775 (make_pointer_bounds_mode): New.
2776 * machmode.h (POINTER_BOUNDS_MODE_P): New.
2777 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
2778 (layout_type): Support POINTER_BOUNDS_TYPE.
2779 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
2780 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
2781 (type_contains_placeholder_1): Likewise.
2782 * tree.h (POINTER_BOUNDS_TYPE_P): New.
2783 * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
2784 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
2785
2786 2013-11-29 Richard Biener <rguenther@suse.de>
2787
2788 PR middle-end/59338
2789 * tree-cfg.c (verify_expr): Restrict bounds verification of
2790 BIT_FIELD_REF arguments to non-aggregate typed base objects.
2791
2792 2013-11-29 Richard Biener <rguenther@suse.de>
2793
2794 PR tree-optimization/59334
2795 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
2796 in previous commit.
2797
2798 2013-11-29 Jakub Jelinek <jakub@redhat.com>
2799 Richard Biener <rguenther@suse.de>
2800
2801 PR lto/59326
2802 * omp-low.c (simd_clone_create): Return NULL if for definition
2803 !cgraph_function_with_gimple_body_p (old_node). Call cgraph_get_body
2804 before calling cgraph_function_versioning.
2805 (expand_simd_clones): Look for "omp declare simd" attribute first.
2806 Don't check targetm.simd_clone.compute_vecsize_and_simdlen here.
2807 Punt if node->global.inlined_to.
2808 (pass_omp_simd_clone::gate): Also enable if in_lto_p && !flag_wpa.
2809 Disable pass if targetm.simd_clone.compute_vecsize_and_simdlen is NULL.
2810 * lto-streamer-out.c (hash_tree): Handle OMP_CLAUSE.
2811
2812 2013-11-29 Jakub Jelinek <jakub@redhat.com>
2813
2814 PR lto/59326
2815 * tree-core.h (enum omp_clause_schedule_kind): Add
2816 OMP_CLAUSE_SCHEDULE_LAST.
2817 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST.
2818 (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST.
2819 (enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST.
2820 (enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST.
2821 * lto-streamer-out.c (lto_is_streamable): Allow streaming OMP_CLAUSE.
2822 (DFS_write_tree_body): Handle OMP_CLAUSE.
2823 * tree-streamer-out.c (pack_ts_omp_clause_value_fields): New function.
2824 (streamer_pack_tree_bitfields): Call it for OMP_CLAUSE.
2825 (write_ts_omp_clause_tree_pointers): New function.
2826 (streamer_write_tree_body): Call it for OMP_CLAUSE.
2827 (streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE.
2828 * tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New function.
2829 (unpack_value_fields): Call it for OMP_CLAUSE.
2830 (streamer_alloc_tree): Handle OMP_CLAUSE.
2831 (lto_input_ts_omp_clause_tree_pointers): New function.
2832 (streamer_read_tree_body): Call it for OMP_CLAUSE.
2833
2834 2013-11-29 Joseph Myers <joseph@codesourcery.com>
2835
2836 * doc/implement-c.texi: Document C11 implementation-defined
2837 behavior. Refer to -ffp-contract=fast for contraction behavior.
2838 * doc/invoke.texi (-std=c99, std=c11): Update description of
2839 completeness.
2840 (-std=gnu99): Don't mention as future default.
2841 (-std=gnu11): Mention as intended future default.
2842 * doc/standards.texi: Update descriptions of C99 and C11 support.
2843 Limit statement about C99 facilities for freestanding
2844 implementations to some platforms only.
2845
2846 2013-11-28 Jakub Jelinek <jakub@redhat.com>
2847
2848 PR middle-end/59327
2849 * cfgexpand.c (expand_used_vars): Avoid warning on 32-bit HWI hosts.
2850
2851 2013-11-28 Vladimir Makarov <vmakarov@redhat.com>
2852
2853 PR target/57293
2854 * ira.h (ira_setup_eliminable_regset): Remove parameter.
2855 * ira.c (ira_setup_eliminable_regset): Ditto. Add
2856 SUPPORTS_STACK_ALIGNMENT for crtl->stack_realign_needed.
2857 Don't call lra_init_elimination.
2858 (ira): Call ira_setup_eliminable_regset without arguments.
2859 * loop-invariant.c (calculate_loop_reg_pressure): Remove argument
2860 from ira_setup_eliminable_regset call.
2861 * gcse.c (calculate_bb_reg_pressure): Ditto.
2862 * haifa-sched.c (sched_init): Ditto.
2863 * lra.h (lra_init_elimination): Remove the prototype.
2864 * lra-int.h (lra_insn_recog_data): New member sp_offset. Move
2865 used_insn_alternative upper.
2866 (lra_eliminate_regs_1): Add one more parameter.
2867 (lra-eliminate): Ditto.
2868 * lra.c (lra_invalidate_insn_data): Set sp_offset.
2869 (setup_sp_offset): New.
2870 (lra_process_new_insns): Call setup_sp_offset.
2871 (lra): Add argument to lra_eliminate calls.
2872 * lra-constraints.c (get_equiv_substitution): Rename to get_equiv.
2873 (get_equiv_with_elimination): New.
2874 (process_addr_reg): Call get_equiv_with_elimination instead of
2875 get_equiv_substitution.
2876 (equiv_address_substitution): Ditto.
2877 (loc_equivalence_change_p): Ditto.
2878 (loc_equivalence_callback, lra_constraints): Ditto.
2879 (curr_insn_transform): Ditto. Print the sp offset
2880 (process_alt_operands): Prevent stack pointer reloads.
2881 (lra_constraints): Remove one argument from lra_eliminate call.
2882 Move it up. Mark used hard regs bfore it. Use
2883 get_equiv_with_elimination instead of get_equiv_substitution.
2884 * lra-eliminations.c (lra_eliminate_regs_1): Add parameter and
2885 assert for param values combination. Use sp offset. Add argument
2886 to lra_eliminate_regs_1 calls.
2887 (lra_eliminate_regs): Add argument to lra_eliminate_regs_1 call.
2888 (curr_sp_change): New static var.
2889 (mark_not_eliminable): Add parameter. Update curr_sp_change.
2890 Don't prevent elimination to sp if we can calculate its change.
2891 Pass the argument to mark_not_eliminable calls.
2892 (eliminate_regs_in_insn): Add a parameter. Use sp offset. Add
2893 argument to lra_eliminate_regs_1 call.
2894 (update_reg_eliminate): Move calculation of hard regs for spill
2895 lower. Switch off lra_in_progress temporarily to generate regs
2896 involved into elimination.
2897 (lra_init_elimination): Rename to init_elimination. Make it
2898 static. Set up insn sp offset, check the offsets at the end of BBs.
2899 (process_insn_for_elimination): Add parameter. Pass its value to
2900 eliminate_regs_in_insn.
2901 (lra_eliminate): : Add parameter. Pass its value to
2902 process_insn_for_elimination. Add assert for param values
2903 combination. Call init_elimination. Don't update offsets in
2904 equivalence substitutions.
2905 * lra-spills.c (assign_mem_slot): Don't call lra_eliminate_regs_1
2906 for created stack slot.
2907 (remove_pseudos): Call lra_eliminate_regs_1 before changing memory
2908 onto stack slot.
2909
2910 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2911
2912 * config/arm/iterators.md (vrint_conds): New int attribute.
2913 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
2914 (smax<mode>3): Likewise.
2915 (smin<mode>3): Likewise.
2916
2917 2013-11-28 Richard Sandiford <rdsandiford@googlemail.com>
2918
2919 * tree-core.h (tree_base): Document use of static_flag for SSA_NAME.
2920 * tree.h (SSA_NAME_ANTI_RANGE_P, SSA_NAME_RANGE_TYPE): New macros.
2921 * tree-ssanames.h (set_range_info): Add range_type argument.
2922 (duplicate_ssa_name_range_info): Likewise.
2923 * tree-ssanames.c (set_range_info): Take the range type as argument
2924 and store it in SSA_NAME_ANTI_RANGE_P.
2925 (duplicate_ssa_name_range_info): Likewise.
2926 (get_range_info): Use SSA_NAME_ANTI_RANGE_P.
2927 (set_nonzero_bits): Update call to set_range_info.
2928 (duplicate_ssa_name_fn): Update call to duplicate_ssa_name_range_info.
2929 * tree-ssa-copy.c (fini_copy_prop): Likewise.
2930 * tree-vrp.c (remove_range_assertions): Update call to set_range_info.
2931 (vrp_finalize): Likewise, passing anti-ranges directly.
2932
2933 2013-11-28 Richard Biener <rguenther@suse.de>
2934
2935 PR tree-optimization/59330
2936 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
2937 and fix delayed marking of free calls not necessary.
2938
2939 2013-11-28 Andrew MacLeod <amacleod@redhat.com>
2940
2941 * tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to
2942 is_gimple_reg_type.
2943 * ipa-prop.c (determine_known_aggregate_parts): Likewise.
2944
2945 2013-11-28 Terry Guo <terry.guo@arm.com>
2946
2947 * config/arm/arm.c (v7m_extra_costs): New table.
2948 (arm_v7m_tune): Use it.
2949
2950 2013-11-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2951
2952 * config/sol2.h (TIME_LIBRARY): Define.
2953
2954 2013-11-28 Richard Biener <rguenther@suse.de>
2955
2956 PR lto/59323
2957 * lto-streamer-out.c (tree_is_indexable): TYPE_DECLs and
2958 CONST_DECLs in function context are not indexable.
2959
2960 2013-11-28 Chung-Ju Wu <jasonwucj@gmail.com>
2961
2962 * config/nds32/nds32.c (nds32_rtx_costs): Adjust MULT cost if it is
2963 not optimized for size.
2964
2965 2013-11-28 Jakub Jelinek <jakub@redhat.com>
2966
2967 * cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb
2968 fields.
2969 (expand_stack_vars): For -fsanitize=address, use (and set initially)
2970 data->asan_base as base for vars and update asan_alignb.
2971 (expand_used_vars): Initialize data.asan_base and data.asan_alignb.
2972 Pass them to asan_emit_stack_protection.
2973 * asan.c (asan_detect_stack_use_after_return): New variable.
2974 (asan_emit_stack_protection): Add pbase and alignb arguments.
2975 Implement use after return sanitization.
2976 * asan.h (asan_emit_stack_protection): Adjust prototype.
2977 (ASAN_STACK_MAGIC_USE_AFTER_RET, ASAN_STACK_RETIRED_MAGIC): Define.
2978
2979 2013-11-28 Sergey Ostanevich <sergos.gnu@gmail.com>
2980
2981 * common.opt: Introduced a new option -fsimd-cost-model.
2982 * doc/invoke.texi: Introduced a new openmp-simd warning and
2983 a new -fsimd-cost-model option.
2984 * tree-vectorizer.h (unlimited_cost_model): Interface updated
2985 to rely on the particular loop info.
2986 * tree-vect-data-refs.c (vect_peeling_hash_insert): Ditto.
2987 (vect_peeling_hash_choose_best_peeling): Ditto.
2988 (vect_enhance_data_refs_alignment): Ditto.
2989 * tree-vect-slp.c (vect_slp_analyze_bb_1): Ditto.
2990 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Ditto
2991 plus added openmp-simd warining.
2992
2993 2013-11-27 H.J. Lu <hongjiu.lu@intel.com>
2994
2995 PR rtl-optimization/59311
2996 * dwarf2cfi.c (dwf_regno): Assert reg isn't pseudo register.
2997 * lra-spills.c (spill_pseudos): Handle REG_XXX notes.
2998
2999 2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
3000
3001 * var-tracking.c (track_expr_p): Do not track declarations for parts
3002 of tracked parameters.
3003 (add_stores): Do not track values for tracked parameters passed in
3004 multiple locations.
3005 (vt_get_decl_and_offset): Handle PARALLEL.
3006 (vt_add_function_parameter): Handle parameters with incoming PARALLEL.
3007
3008 2013-11-27 Jeff Law <law@redhat.com>
3009
3010 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
3011 clobber the loop structure thread_block was unsuccessful. If
3012 thread_block was unsuccessful, cleanup appropriately.
3013
3014 2013-11-27 Chen Liqin <liqin.gcc@gmail.com>
3015
3016 * config/score/score.h (REG_CLASS_FROM_LETTER): Delete.
3017 (score_char_to_class): Likewise.
3018
3019 2013-11-27 Kenneth Zadeck <zadeck@naturalbridge.com>
3020
3021 * fold-const.c (int_const_binop_1): Make INT_MIN % -1 return 0 with
3022 the overflow bit set.
3023
3024 2013-11-27 Richard Biener <rguenther@suse.de>
3025
3026 PR middle-end/58723
3027 * cgraphbuild.c (build_cgraph_edges): Do not build edges
3028 for internal calls.
3029 (rebuild_cgraph_edges): Likewise.
3030 * ipa-inline-analysis.c (estimate_function_body_sizes):
3031 Skip internal calls.
3032 * tree-inline.c (estimate_num_insns): Estimate size of internal
3033 calls as 0.
3034 (gimple_expand_calls_inline): Do not try inline-expanding
3035 internal calls.
3036 * lto-streamer-in.c (input_cfg): Stream loop safelen,
3037 force_vect and simduid.
3038 (input_struct_function_base): Stream has_force_vect_loops
3039 and has_simduid_loops.
3040 (input_function): Adjust.
3041 * lto-streamer-out.c (output_cfg): Stream loop safelen,
3042 force_vect and simduid.
3043 (output_struct_function_base): Stream has_force_vect_loops
3044 and has_simduid_loops.
3045
3046 2013-11-27 Kai Tietz <ktietz@redhat.com>
3047
3048 * config/i386/winnt.c (i386_pe_section_type_flags): Use const
3049 pointer cast.
3050
3051 2013-11-27 Kugan Vivekanandarajah <kuganv@linaro.org>
3052
3053 * doc/tm.texi.in (TARGET_HAS_NO_HW_DIVIDE): Define.
3054 * doc/tm.texi (TARGET_HAS_NO_HW_DIVIDE): Regenerate.
3055
3056 2013-11-27 Marek Polacek <polacek@redhat.com>
3057
3058 PR sanitizer/59306
3059 * ubsan.c (instrument_null): Use gimple_store_p/gimple_assign_load_p
3060 instead of walk_gimple_op.
3061 (ubsan_pass): Adjust. Call instrument_null only if SANITIZE_NULL.
3062
3063 2013-11-27 Aldy Hernandez <aldyh@redhat.com>
3064 Jakub Jelinek <jakub@redhat.com>
3065
3066 * cgraph.h (enum cgraph_simd_clone_arg_type): New.
3067 (struct cgraph_simd_clone_arg, struct cgraph_simd_clone): New.
3068 (struct cgraph_node): Add simdclone and simd_clones fields.
3069 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen,
3070 ix86_simd_clone_adjust, ix86_simd_clone_usable): New functions.
3071 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
3072 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Define.
3073 * doc/tm.texi.in (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
3074 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Add.
3075 * doc/tm.texi: Regenerated.
3076 * ggc.h (ggc_alloc_cleared_simd_clone_stat): New function.
3077 * ipa-cp.c (determine_versionability): Fail if "omp declare simd"
3078 attribute is present.
3079 * omp-low.c: Include pretty-print.h, ipa-prop.h and tree-eh.h.
3080 (simd_clone_vector_of_formal_parm_types): New function.
3081 (simd_clone_struct_alloc, simd_clone_struct_copy,
3082 simd_clone_vector_of_formal_parm_types, simd_clone_clauses_extract,
3083 simd_clone_compute_base_data_type, simd_clone_mangle,
3084 simd_clone_create, simd_clone_adjust_return_type,
3085 create_tmp_simd_array, simd_clone_adjust_argument_types,
3086 simd_clone_init_simd_arrays): New functions.
3087 (struct modify_stmt_info): New type.
3088 (ipa_simd_modify_stmt_ops, ipa_simd_modify_function_body,
3089 simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone): New
3090 functions.
3091 (pass_data_omp_simd_clone): New variable.
3092 (pass_omp_simd_clone): New class.
3093 (make_pass_omp_simd_clone): New function.
3094 * passes.def (pass_omp_simd_clone): New.
3095 * target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
3096 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): New target hooks.
3097 * target.h (struct cgraph_node, struct cgraph_simd_node): Declare.
3098 * tree-core.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Document.
3099 * tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Define.
3100 * tree-pass.h (make_pass_omp_simd_clone): New prototype.
3101 * tree-vect-data-refs.c: Include cgraph.h.
3102 (vect_analyze_data_refs): Inline by hand find_data_references_in_loop
3103 and find_data_references_in_bb, if find_data_references_in_stmt
3104 fails, still allow calls to #pragma omp declare simd functions
3105 in #pragma omp simd loops unless they contain data references among
3106 the call arguments or in lhs.
3107 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3108 calls with no lhs.
3109 (vect_transform_loop): Allow NULL STMT_VINFO_VECTYPE for calls
3110 without lhs.
3111 * tree-vectorizer.h (enum stmt_vec_info_type): Add
3112 call_simd_clone_vec_info_type.
3113 (struct _stmt_vec_info): Add simd_clone_fndecl field.
3114 (STMT_VINFO_SIMD_CLONE_FNDECL): Define.
3115 * tree-vect-stmts.c: Include tree-ssa-loop.h,
3116 tree-scalar-evolution.h and cgraph.h.
3117 (vectorizable_call): Handle calls without lhs. Assert
3118 !stmt_can_throw_internal instead of failing for it. Don't update
3119 EH stuff.
3120 (struct simd_call_arg_info): New.
3121 (vectorizable_simd_clone_call): New function.
3122 (vect_transform_stmt): Call it.
3123 (vect_analyze_stmt): Likewise. Allow NULL STMT_VINFO_VECTYPE for
3124 calls without lhs.
3125 * ipa-prop.c (ipa_add_new_function): Only call ipa_analyze_node
3126 if cgraph_function_with_gimple_body_p is true.
3127
3128 2013-11-27 Tom de Vries <tom@codesourcery.com>
3129 Marc Glisse <marc.glisse@inria.fr>
3130
3131 PR middle-end/59037
3132 * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
3133 BIT_FIELD_REF.
3134 * gimple-fold.c (gimple_fold_indirect_ref): Same.
3135 * tree-cfg.c (verify_expr): Give error if BIT_FIELD_REF is
3136 out-of-bounds.
3137
3138 2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
3139
3140 PR middle-end/59138
3141 * expr.c (emit_group_store): Don't write past the end of the structure.
3142 (store_bit_field): Fix formatting.
3143
3144 2013-11-27 Richard Biener <rguenther@suse.de>
3145
3146 PR tree-optimization/59288
3147 * tree-vect-loop.c (get_initial_def_for_induction): Do not
3148 re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
3149
3150 2013-11-27 Marek Polacek <polacek@redhat.com>
3151
3152 * ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL
3153 for a decl, recreate that decl. Save into the hash table VAR_DECLs
3154 rather than ADDR_EXPRs.
3155
3156 2013-11-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
3157
3158 * config/ia64/hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.
3159
3160 2013-11-26 David Malcolm <dmalcolm@redhat.com>
3161
3162 * gengtype.c (struct seen_tag): New.
3163 (already_seen_tag): New.
3164 (mark_tag_as_seen): New.
3165 (walk_subclasses): Support having multiple subclasses using the
3166 same tag by tracking which tags have already been seen, and using
3167 this to avoid adding duplicate cases to the "switch" statement.
3168 The call to already_seen_tag introduces an O(N^2) when running
3169 gengtype on N, the number of tags, due to the repeated linear
3170 search, but currently max(N) is relatively small (the number of
3171 GSS codes, which is 26).
3172 (walk_type): Pass in a seen_tag for use by the walk_subclasses
3173 recursion.
3174
3175 * gimple.def (GIMPLE_OMP_ATOMIC_STORE, GIMPLE_OMP_RETURN): Rename
3176 underlying GSS values for these codes (from GSS_OMP_ATOMIC_STORE to
3177 GSS_OMP_ATOMIC_STORE_LAYOUT) to make clear that although
3178 GIMPLE_OMP_RETURN happens to share the data layout of
3179 GIMPLE_OMP_ATOMIC_STORE, they are not otherwise related.
3180 (GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TARGET): Likewise, rename
3181 underlying GSS value from GSS_OMP_PARALLEL to
3182 GSS_OMP_PARALLEL_LAYOUT to make clear that these gimple codes are
3183 not directly related; they merely share in-memory layout.
3184 (GIMPLE_OMP_SINGLE, GIMPLE_OMP_TEAMS): Likewise, rename GSS values
3185 for these two codes from GSS_OMP_SINGLE to GSS_OMP_SINGLE_LAYOUT.
3186
3187 * gsstruct.def (GSS_OMP_PARALLEL, gimple_statement_omp_parallel):
3188 Rename to...
3189 (GSS_OMP_PARALLEL_LAYOUT, gimple_statement_omp_parallel_layout):
3190 ...these.
3191 (GSS_OMP_SINGLE, gimple_statement_omp_single): Rename to...
3192 (GSS_OMP_SINGLE_LAYOUT, gimple_statement_omp_single_layout): ...these.
3193 (GSS_OMP_ATOMIC_STORE, gimple_statement_omp_atomic_store): Rename to...
3194 (GSS_OMP_ATOMIC_STORE_LAYOUT, gimple_statement_omp_atomic_store):
3195 ...these.
3196
3197 * gimple.h (gimple_statement_resx): New subclass of
3198 gimple_statement_eh_ctrl, with the invariant that
3199 stmt->code == GIMPLE_RESX.
3200 (gimple_statement_eh_dispatch): New subclass of
3201 gimple_statement_eh_ctrl, with the invariant that
3202 stmt->code == GIMPLE_EH_DISPATH.
3203
3204 (gimple_statement_omp_parallel): The existing class expressed
3205 a layout (GSS_OMP_PARALLEL), but the codes with that layout
3206 are not all related, so it makes more sense for this class to
3207 express a *code* (GIMPLE_OMP_PARALLEL). GSS_OMP_PARALLEL has
3208 been renamed to GSS_OMP_PARALLEL_LAYOUT to express this, so
3209 rename the existing gimple_statement_omp_parallel class to...
3210 (gimple_statement_omp_parallel_layout): ...this, expressing
3211 a statement of structure layout GSS_OMP_PARALLEL_LAYOUT.
3212 (gimple_statement_omp_taskreg): New subclass of
3213 gimple_statement_omp_parallel_layout, expressing the invariant
3214 that the code is one of GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK,
3215 as used by the various gimple_omp_taskreg_ accessors.
3216 (gimple_statement_omp_parallel): Reintroduce this class, this time
3217 as a subclass of gimple_statement_omp_taskreg to express the
3218 invariant stmt->code == GIMPLE_OMP_PARALLEL.
3219 (gimple_statement_omp_target) New class, subclassing
3220 gimple_statement_omp_parallel_layout, to express the invariant
3221 stmt->code == GIMPLE_OMP_TARGET.
3222 (gimple_statement_omp_task): Update to inherit from
3223 gimple_statement_omp_taskreg rather than
3224 gimple_statement_omp_parallel.
3225
3226 (gimple_statement_omp_single): Rename to...
3227 (gimple_statement_omp_single_layout): ...this, expressing the
3228 invariant that the layout is GSS_OMP_SINGLE_LAYOUT.
3229 (gimple_statement_omp_single): ...and reintroduce this name as
3230 a subclass of gimple_statement_omp_single_layout, expressing
3231 the invariant that code == GIMPLE_OMP_SINGLE.
3232 (gimple_statement_omp_teams): New class, subclassing
3233 gimple_statement_omp_single_layout, for the code GIMPLE_OMP_TEAMS.
3234
3235 (gimple_statement_omp_atomic_store): Rename to...
3236 (gimple_statement_omp_atomic_store_layout): ...this, expressing
3237 the invariant that the layout is GSS_OMP_ATOMIC_STORE_LAYOUT.
3238 (gimple_statement_omp_atomic_store): ...and reintroduce this
3239 name as a subclass of gimple_statement_omp_atomic_store_layout
3240 with code == GIMPLE_OMP_ATOMIC_STORE.
3241 (gimple_statement_omp_return): New class, subclassing
3242 gimple_statement_omp_atomic_store_layout for the code
3243 GIMPLE_OMP_RETURN.
3244
3245 (is_a_helper <gimple_statement_eh_ctrl>::test): Delete.
3246 (is_a_helper <gimple_statement_resx>::test): New.
3247 (is_a_helper <gimple_statement_eh_dispatch>::test): New.
3248 (is_a_helper <gimple_statement_omp_atomic_store>::test): Only
3249 check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
3250 (is_a_helper <gimple_statement_omp_return>::test): New.
3251 (is_a_helper <gimple_statement_omp_taskreg>::test): New.
3252 (is_a_helper <gimple_statement_omp_parallel>::test): Only check
3253 for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
3254 GIMPLE_OMP_TARGET.
3255 (is_a_helper <gimple_statement_omp_target>::test): New.
3256 (is_a_helper <gimple_statement_omp_single>::test): Only check
3257 for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
3258 (is_a_helper <gimple_statement_omp_teams>::test): New.
3259
3260 (is_a_helper <const gimple_statement_eh_ctrl>::test): Delete.
3261 (is_a_helper <const gimple_statement_resx>::test): New.
3262 (is_a_helper <const gimple_statement_eh_dispatch>::test): New.
3263 (is_a_helper <const gimple_statement_omp_atomic_store>::test): Only
3264 check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
3265 (is_a_helper <const gimple_statement_omp_return>::test): New.
3266 (is_a_helper <const gimple_statement_omp_taskreg>::test): New.
3267 (is_a_helper <const gimple_statement_omp_parallel>::test): Only
3268 check for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
3269 GIMPLE_OMP_TARGET.
3270 (is_a_helper <const gimple_statement_omp_target>::test): New.
3271 (is_a_helper <const gimple_statement_omp_single>::test): Only
3272 check for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
3273 (is_a_helper <const gimple_statement_omp_teams>::test): New.
3274
3275 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
3276 gimple_omp_return_lhs_ptr): Replace bogus downcasts to
3277 gimple_statement_omp_atomic_store with downcasts to
3278 gimple_statement_omp_return, thus requiring that the code be
3279 GIMPLE_OMP_RETURN.
3280 (gimple_resx_region, gimple_resx_set_region): Replace bogus
3281 downcasts to gimple_statement_eh_ctrl with downcasts to
3282 gimple_statement_resx, thus requiring that the code be GIMPLE_RESX.
3283 (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region):
3284 Replace bogus downcasts to const gimple_statement_eh_ctrl with
3285 downcasts to gimple_statement_eh_dispatch, thus requiring that
3286 the code be GIMPLE_EH_DISPATCH.
3287 (gimple_omp_taskreg_clauses, gimple_omp_taskreg_clauses_ptr)
3288 gimple_omp_taskreg_set_clauses, gimple_omp_taskreg_child_fn,
3289 gimple_omp_taskreg_child_fn_ptr, gimple_omp_taskreg_set_child_fn,
3290 gimple_omp_taskreg_data_arg, gimple_omp_taskreg_data_arg_ptr,
3291 gimple_omp_taskreg_set_data_arg): Replace bogus downcasts to
3292 gimple_statement_omp_parallel with downcasts to
3293 gimple_statement_omp_taskreg, thus requiring that the code be
3294 either GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK.
3295 (gimple_omp_target_clauses, gimple_omp_target_clauses_ptr
3296 gimple_omp_target_set_clauses, gimple_omp_target_child_fn
3297 gimple_omp_target_child_fn_ptr, gimple_omp_target_set_child_fn
3298 gimple_omp_target_data_arg, gimple_omp_target_data_arg_ptr
3299 gimple_omp_target_set_data_arg): Replace bogus downcasts to
3300 gimple_statement_omp_parallel with downcasts to
3301 gimple_statement_omp_target, thus requiring that the code be
3302 GIMPLE_OMP_TARGET.
3303 (gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr
3304 gimple_omp_teams_set_clauses): Replace bogus downcasts to
3305 gimple_statement_omp_single with downcasts to
3306 gimple_statement_omp_teams, thus requiring that the code be
3307 GIMPLE_OMP_TEAMS.
3308
3309 * gimple.c (gimple_build_resx): Fix bogus as_a<> to use
3310 gimple_statement_resx.
3311 (gimple_build_eh_dispatch): Fix bogus as_a<> to use
3312 gimple_statement_eh_dispatch.
3313
3314 2013-11-26 Jakub Jelinek <jakub@redhat.com>
3315
3316 PR tree-optimization/59014
3317 * tree-vrp.c (register_edge_assert_for_1): Don't look
3318 through conversions from non-integral types or through
3319 narrowing conversions.
3320
3321 PR target/59229
3322 * config/i386/i386.c (device_alg): Fix up formatting.
3323 (ix86_expand_set_or_movmem): Handle max_size < epilogue_size_needed
3324 similarly to count && count < epilogue_size_needed. Fix up
3325 comment typo.
3326 * builtins.c (determine_block_size): Fix comment typo.
3327
3328 PR sanitizer/59258
3329 * ubsan.c (ubsan_source_location): Don't add any location
3330 to ADDR_EXPR in the ctor. Revert 2013-11-22 change.
3331 (ubsan_create_data): Strip block info from LOC.
3332
3333 PR middle-end/59273
3334 * tree-vect-generic.c (optimize_vector_constructor): Don't optimize
3335 if there isn't optab handler for the corresponding vector PLUS_EXPR.
3336
3337 PR rtl-optimization/59166
3338 * ira.c (find_moveable_pseudos): Use DF_REF_REAL_LOC instead of
3339 DF_REF_LOC in validate_change call.
3340 (split_live_ranges_for_shrink_wrap): Likewise.
3341
3342 PR middle-end/59150
3343 * omp-low.c (lower_rec_input_clause): For reduction with placeholder
3344 of references to constant size types in simd loops, defer emitting
3345 initializer for the new_var, emit it later on only if not using
3346 SIMD arrays for it.
3347
3348 PR middle-end/59152
3349 * omp-low.c (expand_omp_for_static_chunk): Don't set loop->latch
3350 for the inner loop if collapse_bb is non-NULL.
3351 (expand_omp_simd): Use cont_bb rather than e->dest as latch.
3352
3353 2013-11-26 Yufeng Zhang <yufeng.zhang@arm.com>
3354
3355 * config/arm/arm.c (arm_legitimize_address): Check xop1 is not
3356 a constant immediate before force_reg.
3357
3358 2013-11-26 Richard Biener <rguenther@suse.de>
3359
3360 PR tree-optimization/59245
3361 * tree-vrp.c (set_value_range): Assert that we don't have
3362 overflowed constants (but our infinities).
3363 (set_value_range_to_value): Drop all overflow flags.
3364 (vrp_visit_phi_node): Likewise.
3365 (vrp_visit_assignment_or_call): Use set_value_range_to_value
3366 to set a constant range.
3367
3368 2013-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3369
3370 PR target/59290
3371 * config/arm/arm.md (*zextendsidi_negsi): New pattern.
3372 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost correctly
3373 for zero_extend case.
3374
3375 2013-11-26 H.J. Lu <hongjiu.lu@intel.com>
3376
3377 PR bootstrap/55552
3378 * configure.ac (install_gold_as_default): New. Set to yes for
3379 --disable-ld or --enable-gold=default.
3380 (gcc_cv_ld_gold_srcdir): New.
3381 (gcc_cv_ld): Also check in-tree gold if install_gold_as_default is yes.
3382 (ORIGINAL_LD_BFD_FOR_TARGET): New AC_SUBST.
3383 (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
3384 * configure: Regenerated.
3385
3386 * exec-tool.in (ORIGINAL_LD_BFD_FOR_TARGET): New variable.
3387 (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
3388 (original) [collect-ld && -fuse-ld=bfd]: Set to
3389 $ORIGINAL_LD_BFD_FOR_TARGET.
3390 (original) [collect-ld && -fuse-ld=gold]: Set to
3391 $ORIGINAL_LD_GOLD_FOR_TARGET.
3392 (dir) [collect-ld && ../gold/ld-new]: Set to gold.
3393 (fast_install) [collect-ld && ../gold/ld-new]: Set to yes.
3394
3395 2013-11-26 Terry Guo <terry.guo@arm.com>
3396
3397 * config/arm/arm.c (require_pic_register): Handle high pic base
3398 register for thumb-1.
3399 (arm_load_pic_register): Also initialize high pic base register.
3400 * doc/invoke.texi: Update documentation for option -mpic-register.
3401
3402 2013-11-26 Oleg Endo <olegendo@gcc.gnu.org>
3403
3404 PR target/58314
3405 PR target/50751
3406 * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
3407 Prefix function names with 'sh_'. Make them non-static.
3408 * config/sh/sh-protos.h (sh_disp_addr_displacement,
3409 sh_max_mov_insn_displacement): Add declarations.
3410 * config/sh/constraints.md (Q): Reject QImode.
3411 (Sdd): Use match_code "mem".
3412 (Snd): Fix erroneous matching of non-memory operands.
3413 * config/sh/predicates.md (short_displacement_mem_operand): New
3414 predicate.
3415 (general_movsrc_operand): Disallow PC relative QImode loads.
3416 * config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
3417 (*movqi, *movhi): Merge both insns into...
3418 (*mov<mode>): ... this new insn. Replace generic 'm' constraints with
3419 'Snd' and 'Sdd' constraints. Calculate insn length dynamically based
3420 on the operand types.
3421
3422 2013-11-26 Joern Rennecke <joern.rennecke@embecosm.com>
3423
3424 * config/epiphany/epiphany.c (epiphany_expand_prologue):
3425 Remove unused variable save_config.
3426 (epiphany_compute_frame_size): Avoid signed/unsigned comparison in
3427 assert.
3428
3429 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
3430
3431 * config/aarch64/arm_neon.h (vtbx1_<psu>8): Emulate behaviour
3432 using other intrinsics.
3433 (vtbx3_<psu>8): Likewise.
3434
3435 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
3436
3437 * config/aarch64/aarch64-builtins.c
3438 (aarch64_types_bsl_p_qualifiers): New.
3439 (aarch64_types_bsl_s_qualifiers): Likewise.
3440 (aarch64_types_bsl_u_qualifiers): Likewise.
3441 (TYPES_BSL_P): Likewise.
3442 (TYPES_BSL_S): Likewise.
3443 (TYPES_BSL_U): Likewise.
3444 (BUILTIN_VALLDIF): Likewise.
3445 (BUILTIN_VDQQH): Likewise.
3446 * config/aarch64/aarch64-simd-builtins.def (simd_bsl): New.
3447 * config/aarch64/aarch64-simd.md
3448 (aarch64_simd_bsl<mode>_internal): Handle more modes.
3449 (aarch64_simd_bsl<mode>): Likewise.
3450 * config/aarch64/arm_neon.h
3451 (vbsl<q>_<fpsu><8,16,32,64): Implement using builtins.
3452 * config/aarch64/iterators.md (VALLDIF): New.
3453 (Vbtype): Handle more modes.
3454
3455 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
3456
3457 * config/aarch64/aarch64-builtins.c
3458 (aarch64_type_qualifiers): Add qualifier_poly.
3459 (aarch64_build_scalar_type): Also build Poly types.
3460 (aarch64_build_vector_type): Likewise.
3461 (aarch64_build_type): Likewise.
3462 (aarch64_build_signed_type): New.
3463 (aarch64_build_unsigned_type): Likewise.
3464 (aarch64_build_poly_type): Likewise.
3465 (aarch64_init_simd_builtins): Also handle Poly types.
3466
3467 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
3468
3469 * config/aarch64/aarch64-builtins.c
3470 (VAR1): Use new naming scheme for aarch64_builtins.
3471 (aarch64_builtin_vectorized_function): Use new aarch64_builtins names.
3472
3473 2013-11-26 Richard Biener <rguenther@suse.de>
3474
3475 PR tree-optimization/59287
3476 * tree-ssa-structalias.c (get_constraint_for_component_ref):
3477 Remove no longer necessary special-casing of union accesses.
3478
3479 2013-11-26 Richard Biener <rguenther@suse.de>
3480
3481 * pretty-print.c (output_buffer::~output_buffer): Really
3482 free the obstacks.
3483
3484 2013-11-25 Jeff Law <law@redhat.com>
3485
3486 * tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively
3487 invalidate loop information.
3488
3489 2013-11-25 Oleg Endo <olegendo@gcc.gnu.org>
3490
3491 * config/sh/sh.md (doloop_end_split): Add missing SI mode.
3492
3493 2013-11-25 Oleg Endo <olegendo@gcc.gnu.org>
3494
3495 PR target/53976
3496 PR target/59243
3497 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value): Update
3498 comments.
3499 (sh_optimize_sett_clrt::find_last_ccreg_values): Check stack of
3500 previously visited basic blocks before recursing instead of only one
3501 basic block.
3502
3503 2013-11-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3504
3505 * config/aarch64/aarch64.c (cortexa53_tuning): New struct.
3506 * config/aarch64/aarch64-cores.def (cortex-a53):
3507 Use cortexa53 tuning struct.
3508
3509 2013-11-25 Andrew Macleod <amacleod@redhat.com>
3510
3511 PR bootstrap/59260
3512 * fold-const.c: Include hash-table.h.
3513
3514 2013-11-25 Marek Polacek <polacek@redhat.com>
3515
3516 PR sanitizer/59258
3517 * ubsan.c (ubsan_create_data): Increase the size of the fields array.
3518
3519 2013-11-25 Richard Biener <rguenther@suse.de>
3520
3521 * tree-dfa.c: Remove unused convert.h include.
3522
3523 2013-11-25 Terry Guo <terry.guo@arm.com>
3524
3525 * doc/invoke.texi (-mslow-flash-data): Document new option.
3526 * config/arm/arm.opt (mslow-flash-data): New option.
3527 * config/arm/arm-protos.h (arm_max_const_double_inline_cost):
3528 Declare it.
3529 * config/arm/arm.h (TARGET_USE_MOVT): Always true when literal pools
3530 are disabled.
3531 (arm_disable_literal_pool): Declare it.
3532 * config/arm/arm.c (arm_disable_literal_pool): New variable.
3533 (arm_option_override): Handle new option.
3534 (thumb2_legitimate_address_p): Don't allow symbol references when
3535 literal pools are disabled.
3536 (arm_max_const_double_inline_cost): New function.
3537 * config/arm/arm.md (types.md): Include it before ...
3538 (use_literal_pool): New attribute.
3539 (enabled): Use new attribute.
3540 (split pattern): Replace symbol+offset with MOVW/MOVT.
3541
3542 2013-11-24 Steven Bosscher <steven@gcc.gnu.org>
3543
3544 PR bootstrap/59279
3545 Revert previous commit.
3546
3547 2013-11-24 Steven Bosscher <steven@gcc.gnu.org>
3548
3549 * jump.c (reset_insn_reg_label_operand_notes): New function,
3550 split out from ...
3551 (init_label_info): ... here. Reset LABEL_NUSES in cfglayout mode.
3552 * cfgcleanup.c (delete_dead_jump_tables_between): New function,
3553 split out from ...
3554 (delete_dead_jumptables): ... here. Handle cfglayout mode.
3555 (cleanup_cfg): Delete dead jump tables in cfglayout mode if an
3556 expensive CFG cleanup is called for.
3557 * cfgrtl.c (fixup_reorder_chain): Remove BARRIERs from fallthru paths.
3558 (cfg_layout_finalize): Delete dead jump tables before re-building
3559 the insns chain.
3560 * ira.c (ira): Rebuild jump labels *after* deleting unreachable
3561 basic blocks, not before.
3562 * loop-init.c (rtl_loop_done): Call for an expensive CFG cleanup.
3563
3564 * modulo-sched.c (sms_schedule): Do not look for BARRIERs in the
3565 insns chain of a scheduling extended basic block, they cannot appear
3566 there in cfglayout mode.
3567
3568 2013-11-24 Tobias Burnus <burnus@net-b.de>
3569
3570 * doc/invoke.texi (-fsanitize=leak): Add link to the wiki page.
3571
3572 2013-11-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3573
3574 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
3575 for little endian.
3576
3577 2013-11-24 H.J. Lu <hongjiu.lu@intel.com>
3578
3579 * graphite-sese-to-poly.c: Don't include extra "expr.h".
3580
3581 2013-11-23 Eric Botcazou <ebotcazou@adacore.com>
3582
3583 * cilk-common.c (expand_builtin_cilk_detach): Dereference worker.
3584
3585 2013-11-23 David Edelson <dje.gcc@gmail.com>
3586 Andrew Dixie <andrewd@gentrack.com>
3587
3588 PR target/33704
3589 * config/rs6000/aix.h (COLLECT_SHARED_INIT_FUNC): Define.
3590 (COLLECT_SHARED_FINI_FUNC): Define.
3591
3592 * collect2.c (aix_shared_initname): Declare.
3593 (aix_shared_fininame): Declare.
3594 (symkind): Add SYM_AIXI and SYM_AIXD.
3595 (scanfilter_masks): Add SCAN_AIXI and SCAN_AIXD.
3596 (struct names special): Add GLOBAL__AIXI_ and GLOBAL__AIXD_.
3597 (aixlazy_flag): Parse.
3598 (extract_init_priority): SYM_AIXI and SYM_AIXD have highest priority.
3599 (scan_prog_file, COFF): Handle SYM_AIXI and SYM_AIXD.
3600
3601 2013-11-23 David Edelsohn <dje.gcc@gmail.com>
3602
3603 * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
3604 (rs6000_xcoff_select_section): Place decls with stricter alignment
3605 into named sections.
3606 (rs6000_xcoff_unique_section): Allow unique sections for
3607 uninitialized data with strict alignment.
3608
3609 2013-11-23 Jakub Jelinek <jakub@redhat.com>
3610
3611 PR tree-optimization/59154
3612 * tree-ssa-reassoc.c (maybe_optimize_range_tests): When changing
3613 rhs1 of a cast and new_op is invariant, fold_convert it.
3614 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Only call
3615 simplify_conversion_from_bitmask if rhs1 is a SSA_NAME.
3616
3617 2013-11-23 Uros Bizjak <ubizjak@gmail.com>
3618
3619 PR target/56788
3620 * config/i386/i386.c (bdesc_multi_arg) <IX86_BUILTIN_VFRCZSS>:
3621 Declare as MULTI_ARG_1_SF instruction.
3622 <IX86_BUILTIN_VFRCZSD>: Decleare as MULTI_ARG_1_DF instruction.
3623 * config/i386/sse.md (*xop_vmfrcz<mode>2): Rename
3624 from *xop_vmfrcz_<mode>.
3625 * config/i386/xopintrin.h (_mm_frcz_ss): Use __builtin_ia32_movss
3626 to merge scalar result with __A.
3627 (_mm_frcz_sd): Use __builtin_ia32_movsd to merge scalar
3628 result with __A.
3629
3630 2013-11-23 Eric Botcazou <ebotcazou@adacore.com>
3631
3632 * gimplify.h (recalculate_side_effects): Delete.
3633 * gimplify.c (recalculate_side_effects): Make static and add comment.
3634
3635 2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
3636
3637 * config/sh/sh.md: Use nonimmediate_operand rather than general_operand
3638 for the destination of a define_peephole2. Likewise register_operand
3639 rather than arith_reg_operand. Remove constraints from
3640 define_peephole2s.
3641
3642 2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
3643
3644 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation):
3645 Delete.
3646 (mn10300_store_multiple_operation_p): Declare.
3647 * config/mn10300/mn10300.c (mn10300_store_multiple_operation):
3648 Rename to...
3649 (mn10300_store_multiple_operation_p): ...this and remove mode
3650 argument.
3651 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
3652 Define.
3653
3654 2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
3655
3656 * config/bfin/bfin-protos.h (push_multiple_operation): Delete.
3657 (pop_multiple_operation): Delete.
3658 (analyze_push_multiple_operation): Declare.
3659 (analyze_pop_multiple_operation): Declare.
3660 * config/bfin/bfin.c (push_multiple_operation): Rename to...
3661 (analyze_push_multiple_operation): ...this and remove mode argument.
3662 (pop_multiple_operation): Rename to...
3663 (analyze_pop_multiple_operation): ...this and remove mode argument.
3664 * config/bfin/predicates.md (push_multiple_operation): Define.
3665 (pop_multiple_operation): Likewise.
3666
3667 2013-11-23 Alan Modra <amodra@gmail.com>
3668
3669 * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.
3670
3671 2013-11-22 Jakub Jelinek <jakub@redhat.com>
3672
3673 PR sanitizer/59061
3674 * common.opt (static-liblsan): Add.
3675 * config/gnu-user.h (STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS):
3676 Define.
3677 * flag-types.h (enum sanitize_code): Add SANITIZE_LEAK. Renumber
3678 SANITIZE_SHIFT, SANITIZE_DIVIDE, SANITIZE_UNREACHABLE, SANITIZE_VLA,
3679 SANITIZE_RETURN.
3680 * opts.c (common_handle_option): Handle -fsanitize=leak.
3681 * gcc.c (ADD_STATIC_LIBLSAN_LIBS, LIBLSAN_SPEC): Define.
3682 (LIBUBSAN_SPEC): Don't test LIBUBSAN_EARLY_SPEC.
3683 (LIBUBSAN_EARLY_SPEC): Remove.
3684 (SANITIZER_EARLY_SPEC): Don't do anything for libubsan.
3685 (SANITIZER_SPEC): Add -fsanitize=leak handling.
3686 (sanitize_spec_function): Handle %sanitize(leak).
3687 * doc/invoke.texi (-static-liblsan, -fsanitize=leak): Document.
3688
3689 2013-11-22 Aldy Hernandez <aldyh@redhat.com>
3690 Jakub Jelinek <jakub@redhat.com>
3691
3692 * ipa.c (symtab_remove_unreachable_nodes): Fix up comment typos.
3693 * ipa-prop.c (get_vector_of_formal_parm_types): Renamed to ...
3694 (ipa_get_vector_of_formal_parm_types): ... this. No longer static.
3695 (ipa_modify_formal_parameters): Adjust caller. Remove
3696 synth_parm_prefix argument. Use operator enum instead of bit fields.
3697 Add assert for properly handling vector of references. Handle
3698 creating brand new parameters.
3699 (ipa_modify_call_arguments): Use operator enum instead of bit
3700 fields.
3701 (ipa_combine_adjustments): Same. Assert that IPA_PARM_OP_NEW is not
3702 used.
3703 (ipa_modify_expr, get_ssa_base_param, ipa_get_adjustment_candidate):
3704 New functions.
3705 (ipa_dump_param_adjustments): Rename reduction to new_decl.
3706 Use operator enum instead of bit fields.
3707 * ipa-prop.h (enum ipa_parm_op): New.
3708 (struct ipa_parm_adjustment): New field op. Rename reduction
3709 to new_decl, new_arg_prefix to arg_prefix and remove remove_param
3710 and copy_param.
3711 (ipa_modify_formal_parameters): Remove last argument.
3712 (ipa_get_vector_of_formal_parm_types, ipa_modify_expr,
3713 ipa_get_adjustment_candidate): New prototypes.
3714 * tree-sra.c (turn_representatives_into_adjustments): Use operator
3715 enum. Set arg_prefix.
3716 (get_adjustment_for_base): Use operator enum.
3717 (sra_ipa_modify_expr): Rename to ipa_modify_expr and move to
3718 ipa-prop.c.
3719 (sra_ipa_modify_assign): Rename sra_ipa_modify_expr to ipa_modify_expr.
3720 (ipa_sra_modify_function_body): Same. No longer static.
3721 (sra_ipa_reset_debug_stmts): Use operator enum.
3722 (modify_function): Do not pass prefix argument.
3723
3724 2013-11-22 Jakub Jelinek <jakub@redhat.com>
3725
3726 * ubsan.c (ubsan_source_location): Don't crash on unknown locations.
3727 (ubsan_pass): Ignore clobber stmts.
3728
3729 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_MISSING_RETURN): New built-in.
3730 * opts.c (common_handle_option): Add -fsanitize=return.
3731 * flag-types.h (enum sanitize_code): Add SANITIZE_RETURN and
3732 or it into SANITIZE_UNDEFINED.
3733
3734 * sanitizer.def (BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT,
3735 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT): New.
3736 * asan.c (instrument_derefs): Handle also VAR_DECL loads/stores.
3737 Don't instrument accesses to VAR_DECLs which are known to fit
3738 into their bounds and the vars are known to have shadow bytes
3739 indicating allowed access.
3740 (asan_dynamic_init_call): New function.
3741 (asan_add_global): If vnode->dynamically_initialized,
3742 set __has_dynamic_init to 1 instead of 0.
3743 (initialize_sanitizer_builtins): Add BT_FN_VOID_CONST_PTR var.
3744 * asan.h (asan_dynamic_init_call): New prototype.
3745 * cgraph.h (varpool_node): Add dynamically_initialized bitfield.
3746
3747 2013-11-22 Martin Jambor <mjambor@suse.cz>
3748
3749 PR rtl-optimization/10474
3750 * ira.c (interesting_dest_for_shprep_1): New function.
3751 (interesting_dest_for_shprep): Use interesting_dest_for_shprep_1,
3752 also check parallels.
3753
3754 2013-11-22 Jeff Law <law@redhat.com>
3755
3756 * tree-ssa-threadedge.c (record_temporary_equivalence): Handle
3757 NULL for RHS, which we used to invalidate equivalences.
3758 (record_temporary_equivalences_from_phis): New bitmap arguments
3759 and a boolean indicating if we have passed a backedge. If we
3760 have passed a backedge, then set the appropriate bit in the
3761 bitmaps for the SRC & DEST of PHIs creating equivalences.
3762 (invalidate_equivalences, dummy_simplify): New functions.
3763 (cond_arg_set_in_b): Remove.
3764 (record_temporary_equivalences_from_stmts_at_dest): New bitmap
3765 arguments and a boolean indicating if we have passed a backedge.
3766 If we have passed a backedge, then perform invalidations as needed.
3767 (thread_around_empty_blocks): If we have seen a backedge, then
3768 use the dummy simplify routine.
3769 (thread_through_normal_block): Likewise. Pass bitmaps and
3770 backedge status to children. Do not pessimize so much when
3771 traversing backedges in the CFG.
3772 (thread_across_edge): Manage the SRC_MAP/DST_MAP bitmaps.
3773 If we have seen a backedge, then use the dummy simplify routine.
3774 Do not pessimize so much when traversing backedges.
3775
3776 2013-11-22 Hans-Peter Nilsson <hp@axis.com>
3777
3778 * config/cris/cris.c (cris_atomic_align_for_mode): New function.
3779 (TARGET_ATOMIC_ALIGN_FOR_MODE): Define.
3780
3781 2013-11-22 Yuri Rumyantsev <ysrumyan@gmail.com>
3782
3783 * config/i386/i386.c (processor_alias_table): Enable PTA_AES,
3784 PTA_PCLMUL and PTA_RDRND for Silvermont.
3785 * config/i386/driver-i386.c (host_detect_local_cpu): Set up cpu
3786 for Silvermont.
3787
3788 * doc/invoke.texi: Mention AES, PCLMUL and RDRND for Silvermont.
3789
3790 2013-11-22 Andrew MacLeod <amacleod@redhat.com>
3791
3792 * hooks.h (hook_uint_mode_0): Add Prototype.
3793 * hooks.c (hook_uint_mode_0): New default function.
3794 * target.def (atomic_align_for_mode): New target hook.
3795 * tree.c (build_atomic_base): Add alignment override parameter.
3796 (build_common_tree_nodes): Use atomic alignment override.
3797 * doc/tm.texi.in (TARGET_ATOMIC_ALIGN_FOR_MODE): Define.
3798 * doc/tm.texi (TARGET_ATOMIC_ALIGN_FOR_MODE): Add description.
3799
3800 2013-11-22 Andrew MacLeod <amacleod@redhat.com>
3801
3802 * gimple.h: Remove all includes.
3803 (recalculate_side_effects): Move prototype to gimplify.h.
3804 * Makefile.in (PLUGIN_HEADERS): Add flattened gimple.h includes.
3805 * gengtype.c (open_base_files): Add gimple.h include list.
3806 * gimplify.h (recalculate_side_effects): Relocate prototype here.
3807 * gimple.c: Adjust include list.
3808 (recalculate_side_effects): Move to gimplify.c.
3809 * gimplify.c: Adjust include list.
3810 (recalculate_side_effects): Relocate from gimple.c.
3811 * alias.c: Add required include files removed from gimple.h.
3812 * asan.c: Likewise.
3813 * builtins.c: Likewise.
3814 * calls.c: Likewise.
3815 * cfgexpand.c: Likewise.
3816 * cfgloop.c: Likewise.
3817 * cfgloopmanip.c: Likewise.
3818 * cgraphbuild.c: Likewise.
3819 * cgraph.c: Likewise.
3820 * cgraphclones.c: Likewise.
3821 * cgraphunit.c: Likewise.
3822 * cilk-common.c: Likewise.
3823 * data-streamer.c: Likewise.
3824 * data-streamer-in.c: Likewise.
3825 * data-streamer-out.c: Likewise.
3826 * dse.c: Likewise.
3827 * dwarf2out.c: Likewise.
3828 * emit-rtl.c: Likewise.
3829 * except.c: Likewise.
3830 * expr.c: Likewise.
3831 * fold-const.c: Likewise.
3832 * function.c: Likewise.
3833 * gimple-builder.c: Likewise.
3834 * gimple-expr.c: Likewise.
3835 * gimple-fold.c: Likewise.
3836 * gimple-iterator.c: Likewise.
3837 * gimple-low.c: Likewise.
3838 * gimple-pretty-print.c: Likewise.
3839 * gimple-ssa-isolate-paths.c: Likewise.
3840 * gimple-ssa-strength-reduction.c: Likewise.
3841 * gimple-streamer-in.c: Likewise.
3842 * gimple-streamer-out.c: Likewise.
3843 * gimple-walk.c: Likewise.
3844 * gimplify-me.c: Likewise.
3845 * graphite-blocking.c: Likewise.
3846 * graphite.c: Likewise.
3847 * graphite-clast-to-gimple.c: Likewise.
3848 * graphite-dependences.c: Likewise.
3849 * graphite-interchange.c: Likewise.
3850 * graphite-optimize-isl.c: Likewise.
3851 * graphite-poly.c: Likewise.
3852 * graphite-scop-detection.c: Likewise.
3853 * graphite-sese-to-poly.c: Likewise.
3854 * internal-fn.c: Likewise.
3855 * ipa.c: Likewise.
3856 * ipa-cp.c: Likewise.
3857 * ipa-devirt.c: Likewise.
3858 * ipa-inline-analysis.c: Likewise.
3859 * ipa-inline.c: Likewise.
3860 * ipa-profile.c: Likewise.
3861 * ipa-prop.c: Likewise.
3862 * ipa-pure-const.c: Likewise.
3863 * ipa-reference.c: Likewise.
3864 * ipa-split.c: Likewise.
3865 * ipa-utils.c: Likewise.
3866 * langhooks.c: Likewise.
3867 * lto-cgraph.c: Likewise.
3868 * lto-compress.c: Likewise.
3869 * lto-opts.c: Likewise.
3870 * lto-section-in.c: Likewise.
3871 * lto-section-out.c: Likewise.
3872 * lto-streamer.c: Likewise.
3873 * lto-streamer-in.c: Likewise.
3874 * lto-streamer-out.c: Likewise.
3875 * omp-low.c: Likewise.
3876 * opts-global.c: Likewise.
3877 * passes.c: Likewise.
3878 * predict.c: Likewise.
3879 * profile.c: Likewise.
3880 * sese.c: Likewise.
3881 * stmt.c: Likewise.
3882 * stor-layout.c: Likewise.
3883 * symtab.c: Likewise.
3884 * targhooks.c: Likewise.
3885 * toplev.c: Likewise.
3886 * tracer.c: Likewise.
3887 * trans-mem.c: Likewise.
3888 * tree-affine.c: Likewise.
3889 * tree.c: Likewise.
3890 * tree-call-cdce.c: Likewise.
3891 * tree-cfg.c: Likewise.
3892 * tree-cfgcleanup.c: Likewise.
3893 * tree-chrec.c: Likewise.
3894 * tree-complex.c: Likewise.
3895 * tree-data-ref.c: Likewise.
3896 * tree-dfa.c: Likewise.
3897 * tree-eh.c: Likewise.
3898 * tree-emutls.c: Likewise.
3899 * tree-if-conv.c: Likewise.
3900 * tree-inline.c: Likewise.
3901 * tree-into-ssa.c: Likewise.
3902 * tree-loop-distribution.c: Likewise.
3903 * tree-nested.c: Likewise.
3904 * tree-nrv.c: Likewise.
3905 * tree-object-size.c: Likewise.
3906 * tree-outof-ssa.c: Likewise.
3907 * tree-parloops.c: Likewise.
3908 * tree-phinodes.c: Likewise.
3909 * tree-predcom.c: Likewise.
3910 * tree-pretty-print.c: Likewise.
3911 * tree-profile.c: Likewise.
3912 * tree-scalar-evolution.c: Likewise.
3913 * tree-sra.c: Likewise.
3914 * tree-ssa-address.c: Likewise.
3915 * tree-ssa-alias.c: Likewise.
3916 * tree-ssa.c: Likewise.
3917 * tree-ssa-ccp.c: Likewise.
3918 * tree-ssa-coalesce.c: Likewise.
3919 * tree-ssa-copy.c: Likewise.
3920 * tree-ssa-copyrename.c: Likewise.
3921 * tree-ssa-dce.c: Likewise.
3922 * tree-ssa-dom.c: Likewise.
3923 * tree-ssa-dse.c: Likewise.
3924 * tree-ssa-forwprop.c: Likewise.
3925 * tree-ssa-ifcombine.c: Likewise.
3926 * tree-ssa-live.c: Likewise.
3927 * tree-ssa-loop.c: Likewise.
3928 * tree-ssa-loop-ch.c: Likewise.
3929 * tree-ssa-loop-im.c: Likewise.
3930 * tree-ssa-loop-ivcanon.c: Likewise.
3931 * tree-ssa-loop-ivopts.c: Likewise.
3932 * tree-ssa-loop-manip.c: Likewise.
3933 * tree-ssa-loop-niter.c: Likewise.
3934 * tree-ssa-loop-prefetch.c: Likewise.
3935 * tree-ssa-loop-unswitch.c: Likewise.
3936 * tree-ssa-math-opts.c: Likewise.
3937 * tree-ssanames.c: Likewise.
3938 * tree-ssa-operands.c: Likewise.
3939 * tree-ssa-phiopt.c: Likewise.
3940 * tree-ssa-phiprop.c: Likewise.
3941 * tree-ssa-pre.c: Likewise.
3942 * tree-ssa-propagate.c: Likewise.
3943 * tree-ssa-reassoc.c: Likewise.
3944 * tree-ssa-sccvn.c: Likewise.
3945 * tree-ssa-sink.c: Likewise.
3946 * tree-ssa-strlen.c: Likewise.
3947 * tree-ssa-structalias.c: Likewise.
3948 * tree-ssa-tail-merge.c: Likewise.
3949 * tree-ssa-ter.c: Likewise.
3950 * tree-ssa-threadedge.c: Likewise.
3951 * tree-ssa-threadupdate.c: Likewise.
3952 * tree-ssa-uncprop.c: Likewise.
3953 * tree-ssa-uninit.c: Likewise.
3954 * tree-stdarg.c: Likewise.
3955 * tree-streamer.c: Likewise.
3956 * tree-streamer-in.c: Likewise.
3957 * tree-streamer-out.c: Likewise.
3958 * tree-switch-conversion.c: Likewise.
3959 * tree-tailcall.c: Likewise.
3960 * tree-vect-data-refs.c: Likewise.
3961 * tree-vect-generic.c: Likewise.
3962 * tree-vect-loop.c: Likewise.
3963 * tree-vect-loop-manip.c: Likewise.
3964 * tree-vectorizer.c: Likewise.
3965 * tree-vect-patterns.c: Likewise.
3966 * tree-vect-slp.c: Likewise.
3967 * tree-vect-stmts.c: Likewise.
3968 * tree-vrp.c: Likewise.
3969 * tsan.c: Likewise.
3970 * ubsan.c: Likewise.
3971 * value-prof.c: Likewise.
3972 * varpool.c: Likewise.
3973 * var-tracking.c: Likewise.
3974 * vtable-verify.c: Likewise.
3975 * config/darwin.c: Likewise.
3976 * config/aarch64/aarch64-builtins.c: Likewise.
3977 * config/aarch64/aarch64.c: Likewise.
3978 * config/alpha/alpha.c: Likewise.
3979 * config/i386/i386.c: Likewise.
3980 * config/i386/winnt.c: Likewise.
3981 * config/ia64/ia64.c: Likewise.
3982 * config/m32c/m32c.c: Likewise.
3983 * config/mep/mep.c: Likewise.
3984 * config/mips/mips.c: Likewise.
3985 * config/rs6000/rs6000.c: Likewise.
3986 * config/s390/s390.c: Likewise.
3987 * config/sh/sh.c: Likewise.
3988 * config/sparc/sparc.c: Likewise.
3989 * config/spu/spu.c: Likewise.
3990 * config/stormy16/stormy16.c: Likewise.
3991 * config/tilegx/tilegx.c: Likewise.
3992 * config/tilepro/tilepro.c: Likewise.
3993 * config/xtensa/xtensa.c: Likewise.
3994
3995 2013-11-22 Richard Earnshaw <rearnsha@arm.com>
3996
3997 PR target/59216
3998 * arm.md (negdi_extendsidi): Fix invalid split.
3999
4000 2013-11-22 Alex Velenko <Alex.Velenko@arm.com>
4001
4002 * config/aarch64/arm_neon.h (vmov_n_f32): Implemented in C.
4003 (vmov_n_f64): Likewise.
4004 (vmov_n_p8): Likewise.
4005 (vmov_n_p16): Likewise.
4006 (vmov_n_s8): Likewise.
4007 (vmov_n_s16): Likewise.
4008 (vmov_n_s32): Likewise.
4009 (vmov_n_s64): Likewise.
4010 (vmov_n_u8): Likewise.
4011 (vmov_n_u16): Likewise.
4012 (vmov_n_u32): Likewise.
4013 (vmov_n_u64): Likewise.
4014 (vmovq_n_f32): Likewise.
4015 (vmovq_n_f64): Likewise.
4016 (vmovq_n_p8): Likewise.
4017 (vmovq_n_p16): Likewise.
4018 (vmovq_n_s8): Likewise.
4019 (vmovq_n_s16): Likewise.
4020 (vmovq_n_s32): Likewise.
4021 (vmovq_n_s64): Likewise.
4022 (vmovq_n_u8): Likewise.
4023 (vmovq_n_u16): Likewise.
4024 (vmovq_n_u32): Likewise.
4025 (vmovq_n_u64): Likewise.
4026
4027 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
4028
4029 * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>,
4030 vec_pack_trunc_v2df, vec_pack_trunc_df): Swap for big-endian.
4031 (reduc_<sur>plus_<mode>): Factorize V2DI into this.
4032 (reduc_<sur>plus_<mode>): Change this to reduc_splus_<mode> for floats
4033 and also change to float UNSPEC.
4034 (reduc_maxmin_uns>_<mode>): Remove V2DI.
4035 * config/aarch64/arm_neon.h (vaddv<q>_<suf><8,16,32,64>,
4036 vmaxv<q>_<suf><8,16,32,64>, vminv<q>_<suf><8,16,32,64>): Fix up scalar
4037 result access for big-endian.
4038 (__LANE0): New macro used to fix up lane access of 'across-lanes'
4039 intrinsics for big-endian.
4040 * config/aarch64/iterators.md (VDQV): Add V2DI.
4041 (VDQV_S): New.
4042 (vp): New mode attribute.
4043
4044 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
4045
4046 * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>,
4047 vec_pack_trunc_v2df, vec_pack_trunc_df): Swap source ops for
4048 big-endian.
4049
4050 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
4051
4052 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Adjust
4053 for big-endian element order.
4054 (aarch64_simd_vec_setv2di): Likewise.
4055 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>,
4056 *aarch64_get_lane_zero_extendsi<mode>, aarch64_get_lane): Likewise.
4057 (vec_extract): Expand using aarch64_get_lane.
4058 * config/aarch64/aarch64.h (ENDIAN_LANE_N): New.
4059
4060 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
4061
4062 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Fix loads
4063 and stores to be ABI compliant.
4064
4065 2013-11-22 David Malcolm <dmalcolm@redhat.com>
4066
4067 * input.h (input_line): Remove.
4068 (input_filename): Likewise.
4069 (in_system_header): Likewise.
4070 * tree.h (EXPR_LOC_OR_HERE): Remove.
4071 * config/bfin/bfin.c (output_file_start): Remove use of
4072 input_filename macro.
4073 * builtins.c (c_strlen): Remove use of EXPR_LOC_OR_HERE macro.
4074 * gimplify.c (internal_get_tmp_var): Likewise.
4075 EXPR_LOC_OR_HERE macro.
4076 (shortcut_cond_expr): Likewise.
4077 * tree-diagnostic.c (diagnostic_report_current_function): Remove
4078 use of input_filename macro.
4079 * tree.c (get_file_function_name): Likewise.
4080
4081 2013-11-22 Kenneth Zadeck <zadeck@naturalbridge.com>
4082
4083 * store-layout.c (place-field): Fix hwi test and accessor mismatch.
4084
4085 2013-11-22 Jakub Jelinek <jakub@redhat.com>
4086
4087 * expr.c (store_constructor): Allow CONSTRUCTOR with VECTOR_TYPE
4088 (same sized) elements even if the type of the CONSTRUCTOR has
4089 vector mode and target is a REG.
4090
4091 2013-11-22 Richard Biener <rguenther@suse.de>
4092
4093 Revert
4094 2013-11-21 Richard Biener <rguenther@suse.de>
4095
4096 * tree-ssa-loop-ch.c (copy_loop_headers): Decrement
4097 nb_iterations_upper_bound by one.
4098
4099 2013-11-22 H.J. Lu <hongjiu.lu@intel.com>
4100
4101 * config/i386/i386.c (processor_alias_table): Enable PTA_POPCNT
4102 for Silvermont.
4103
4104 * doc/invoke.texi: Mention POPCNT for corei7, corei7-avx,
4105 core-avx-i, core-avx2 and slm.
4106
4107 2013-11-22 Eric Botcazou <ebotcazou@adacore.com>
4108
4109 * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
4110
4111 2013-11-22 Richard Sandiford <rdsandiford@googlemail.com>
4112
4113 * config/m32c/cond.md (stzx_16): Use register_operand for operand 0.
4114 (stzx_24_<mode>): Likewise mra_operand.
4115
4116 2013-11-22 Jeff Law <law@redhat.com>
4117
4118 * tree-ssa-threadupdate.c: Include tree-cfg.h and tree-pass.h
4119 (thread_block_1): Do not cancel jump threads which go from
4120 inside a loop, through the header, then back inside the loop.
4121 (bb_ends_with_multiway_branch): New function.
4122 (thread_through_all_blocks): Handle threading cases which start
4123 in a loop through the loop header to a point in the loop.
4124
4125 * tree-ssa-threadedge.c (thread_across_edge): Mark the start of the
4126 jump thread path properly.
4127
4128 2013-11-22 Trevor Saunders <tsaunders@mozilla.com>
4129
4130 * vec.h (auto_vec): New class.
4131 * cfganal.c, cfgloop.c, cgraphunit.c, config/i386/i386.c, dwarf2out.c,
4132 function.c, genautomata.c, gimple.c, haifa-sched.c, ipa-inline.c,
4133 ira-build.c, loop-unroll.c, omp-low.c, ree.c, trans-mem.c,
4134 tree-call-cdce.c, tree-eh.c, tree-if-conv.c, tree-into-ssa.c,
4135 tree-loop-distribution.c, tree-predcom.c, tree-sra.c,
4136 tree-sssa-forwprop.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
4137 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
4138 tree-vect-loop.c, tree-vect-stmts.c: Use auto_vec and stack_vec as
4139 appropriate instead of vec for local variables.
4140
4141 2013-11-21 Teresa Johnson <tejohnson@google.com>
4142
4143 PR target/59233
4144 * cfgcleanup.c (outgoing_edges_match): Walk up past note instructions
4145 not understood by old_insns_match_p.
4146
4147 2013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com>
4148
4149 * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
4150 little endian change.
4151 (vec_pack_sfix_trunc_v2df): Likewise.
4152 (vec_pack_ufix_trunc_v2df): Likewise.
4153 * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
4154 double checking of endianness.
4155
4156 2013-11-22 Jakub Jelinek <jakub@redhat.com>
4157
4158 * tree-vect-generic.c (optimize_vector_constructor): New function.
4159 (expand_vector_operations_1): Call it.
4160
4161 2013-11-21 Uros Bizjak <ubizjak@gmail.com>
4162
4163 * config/i386/i386.c (ix86_expand_special_args_builtin): Use
4164 ix86_zero_extend_to_Pmode where appropriate.
4165 (ix86_expand_builtin): Ditto.
4166
4167 2013-11-21 Cary Coutant <ccoutant@google.com>
4168
4169 * dwarf2out.c (want_pubnames): Don't do pubnames for -g1.
4170 (add_linkage_name): Don't add linkage name for -g1.
4171 (decls_for_scope): Process subblocks for -g1.
4172 (dwarf2out_source_line): Output line tables for -g1.
4173 (dwarf2out_finish): Likewise.
4174 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
4175 unused scopes for -g1.
4176 * opts.c (common_handle_option): Handle -g same as -g2.
4177 * doc/invoke.texi: Update description for -g1.
4178
4179 2013-11-21 Peter Bergner <bergner@vnet.ibm.com>
4180
4181 * doc/extend.texi: Document htm builtins.
4182
4183 2013-11-21 Jeff Law <law@redhat.com>
4184
4185 PR tree-optimization/59221
4186 * tree-ssa-threadedge.c (thread_across_edge): Properly manage
4187 temporary equivalences when threading through joiner blocks.
4188
4189 2013-11-21 Joseph Myers <joseph@codesourcery.com>
4190
4191 PR rtl-optimization/55950
4192 * real.c (real_sqrt): Remove function.
4193 * real.h (real_sqrt): Remove prototype.
4194 * simplify-rtx.c (simplify_const_unary_operation): Do not fold
4195 SQRT using real_sqrt.
4196
4197 2013-11-21 Richard Biener <rguenther@suse.de>
4198
4199 PR tree-optimization/59058
4200 * tree-scalar-evolution.h (number_of_exit_cond_executions): Remove.
4201 * tree-scalar-evolution.c (number_of_exit_cond_executions): Likewise.
4202 * tree-vectorizer.h (LOOP_PEELING_FOR_ALIGNMENT): Rename to ...
4203 (LOOP_VINFO_PEELING_FOR_ALIGNMENT): ... this.
4204 (NITERS_KNOWN_P): Fold into ...
4205 (LOOP_VINFO_NITERS_KNOWN_P): ... this.
4206 (LOOP_VINFO_PEELING_FOR_NITER): Add.
4207 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
4208 Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
4209 (vect_do_peeling_for_alignment): Re-use precomputed niter
4210 instead of re-emitting it.
4211 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4212 Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
4213 * tree-vect-loop.c (vect_get_loop_niters): Use
4214 number_of_latch_executions.
4215 (new_loop_vec_info): Initialize LOOP_VINFO_PEELING_FOR_NITER.
4216 (vect_analyze_loop_form): Simplify.
4217 (vect_analyze_loop_operations): Move epilogue peeling code ...
4218 (vect_analyze_loop_2): ... here and adjust it to compute
4219 LOOP_VINFO_PEELING_FOR_NITER.
4220 (vect_estimate_min_profitable_iters): Use
4221 LOOP_VINFO_PEELING_FOR_ALIGNMENT.
4222 (vect_build_loop_niters): Emit on the preheader.
4223 (vect_generate_tmps_on_preheader): Likewise.
4224 (vect_transform_loop): Use LOOP_VINFO_PEELING_FOR_NITER instead
4225 of recomputing it. Adjust.
4226
4227 2013-11-21 Richard Biener <rguenther@suse.de>
4228
4229 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
4230 LOC_LINE): Remove wrappers and fix all users.
4231 (struct _loop_vec_info): Remove loop_line_number member.
4232 (LOOP_VINFO_LOC): Remove.
4233 * tree-parloops.c, tree-vect-loop-manip.c, tree-vect-slp.c,
4234 tree-vectorizer.c: Fix users of LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE
4235 and LOC_LINE.
4236
4237 2013-11-21 Richard Biener <rguenther@suse.de>
4238
4239 * tree-ssa-forwprop.c (simplify_vce): New function.
4240 (ssa_forward_propagate_and_combine): Call it.
4241
4242 2013-11-21 Richard Biener <rguenther@suse.de>
4243
4244 * tree-vect-loop-manip.c (vect_build_loop_niters,
4245 vect_generate_tmps_on_preheader): Move ...
4246 * tree-vect-loop.c (vect_build_loop_niters,
4247 vect_generate_tmps_on_preheader): ... here and simplify.
4248 (vect_transform_loop): Call them here and pass down results
4249 to consumers.
4250 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound):
4251 Get niter variables from caller.
4252 (vect_do_peeling_for_alignment): Likewise.
4253 * tree-vectorizer.h (vect_generate_tmps_on_preheader): Remove.
4254 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
4255 Adjust prototypes.
4256
4257 2013-11-21 Richard Biener <rguenther@suse.de>
4258
4259 * tree-ssa-loop-ch.c (copy_loop_headers): Decrement
4260 nb_iterations_upper_bound by one.
4261
4262 2013-11-21 Richard Biener <rguenther@suse.de>
4263
4264 PR tree-optimization/59058
4265 * tree-loop-distribution.c (struct partition_s): Add plus_one member.
4266 (build_size_arg_loc): Apply niter adjustment here.
4267 (generate_memset_builtin): Adjust.
4268 (generate_memcpy_builtin): Likewise.
4269 (classify_partition): Do not use number_of_exit_cond_executions
4270 but record whether niter needs to be adjusted.
4271
4272 2013-11-21 Eric Botcazou <ebotcazou@adacore.com>
4273
4274 * tree-ssa-tail-merge.c (stmt_local_def): Return false if the statement
4275 could throw.
4276
4277 2013-11-21 Oleg Endo <olegendo@gcc.gnu.org>
4278
4279 PR target/53976
4280 * config/sh/sh_optimize_sett_clrt.cc: New SH specific RTL pass.
4281 * config/sh/sh.c (register_sh_passes): Add sh_optimize_sett_clrt pass.
4282 * config/sh/sh/t-sh (sh_optimize_sett_clrt pass.o): New entry.
4283 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add
4284 sh_optimize_sett_clrt pass.o to extra_objs.
4285
4286 2013-11-20 David Malcolm <dmalcolm@redhat.com>
4287
4288 * cfg.c (dump_edge_info): Remove redundant comment.
4289 * cfgcleanup.c (outgoing_edges_match): Reword reference to
4290 EXIT_BLOCK_PTR in comment.
4291 (try_optimize_cfg): Likewise.
4292 * cfgrtl.c (last_bb_in_partition): Likewise.
4293 * cgraph.c (cgraph_node_cannot_return): Likewise.
4294 * function.c (thread_prologue_and_epilogue_insns): Likewise.
4295 * graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
4296 * ipa-split.c (consider_split): Likewise.
4297 * profile.c (find_spanning_tree): Likewise.
4298 * sched-int.h (common_sched_info_def.add_block): Likewise.
4299 * dominance.c (calc_dfs_tree_nonrec): Reword references in
4300 comments to now removed ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros.
4301 * tree-cfgcleanup.c (cleanup_control_flow_bb): Reword references
4302 in comments to now removed ENTRY_BLOCK_PTR macro.
4303 (tree_forwarder_block_p): Reword reference in comment to
4304 EXIT_BLOCK_PTR.
4305 * tree-inline.c (copy_cfg_body): Reword references in comments to
4306 now removed ENTRY_BLOCK_PTR macro.
4307 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
4308 * tree-scalar-evolution.h ( block_before_loop): Likewise. Add
4309 a comma to the comment to clarify the meaning.
4310
4311 2013-11-20 Andrew MacLeod <amacleod@redhat.com>
4312
4313 * gimplify.h (gimplify_hasher:typed_free_remove, struct gimplify_ctx):
4314 Move to gimplify.c.
4315 (free_gimplify_stack): Add prototype.
4316 * gimplify.c (gimplify_hasher:typed_free_remove): Relocate here.
4317 (struct gimplify_ctx): Relocate here.
4318 (gimplify_ctxp): Make static.
4319 (ctx_pool, ctx_alloc, ctx_free, free_gimplify_stack): New. Manage a
4320 list of struct gimplify_ctx.
4321 (push_gimplify_context): Add default parameters and allocate a struct
4322 from the pool.
4323 (pop_gimplify_context): Free a struct back to the pool.
4324 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
4325 gimplify_omp_workshare, gimplify_transaction, gimplify_body): Don't
4326 use a local 'struct gimplify_ctx'.
4327 * cgraphunit.c (expand_all_functions): call free_gimplify_stack.
4328 * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
4329 Likewise.
4330 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
4331 lower_omp_ordered, lower_omp_critical, lower_omp_for,
4332 create_task_copyfn, lower_omp_taskreg, lower_omp_target,
4333 lower_omp_teams, execute_lower_omp): Likewise.
4334 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
4335 * tree-inline.c (optimize_inline_calls): Likewise.
4336
4337 2013-11-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4338
4339 * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
4340 (vsx_extract_<mode>): Likewise.
4341 (*vsx_extract_<mode>_one_le): New LE variant on
4342 *vsx_extract_<mode>_zero.
4343 (vsx_extract_v4sf): Adjust for little endian.
4344
4345 2013-11-20 Vladimir Makarov <vmakarov@redhat.com>
4346
4347 PR rtl-optimization/59133
4348 * lra.c (expand_reg_data): Add new argument. Set up ALL_REGS for
4349 new pseudos.
4350 (lra_create_new_reg_with_unique_value): Pass new argument value.
4351 (lra_emit_add, lra_emit_move): Ditto.
4352 * lra-constraints.c (in_class_p): Add check for move for a new insn.
4353 (change_class): Rename to lra_change_class. Move to lra-int.h.
4354 (get_reload_reg, narrow_reload_pseudo_class): Adjust calls of
4355 change_class.
4356 (process_addr_reg, process_addr): Ditto.
4357 (curr_insn_transform): Ditto. Add check on old pseudo for
4358 optional reload.
4359 * lra-int.h (lra_get_regno_hard_regno): Move below.
4360 (lra_change_class): Renamed change_class from lra.c.
4361
4362 2013-11-20 David Malcolm <dmalcolm@redhat.com>
4363
4364 * gdbhooks.py (VecPrinter.children): Don't attempt to iterate
4365 the children of a NULL pointer.
4366
4367 2013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com>
4368
4369 * lra.c (lra): Set lra_in_progress before check_rtl call.
4370 * recog.c (insn_invalid_p): Add !lra_in_progress to prevent
4371 adding clobber regs when LRA is running.
4372
4373 2013-11-20 Maciej W. Rozycki <macro@codesourcery.com>
4374
4375 * config/mips/mips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64
4376 restriction for ISA_MIPS32R2.
4377 (ISA_HAS_LXC1_SXC1): New macro.
4378 (ISA_HAS_FP_MADD4_MSUB4): Remove ISA_MIPS32R2 special-casing.
4379 (ISA_HAS_NMADD4_NMSUB4): Likewise.
4380 (ISA_HAS_FP_RECIP_RSQRT): Likewise.
4381 (ISA_HAS_PREFETCHX): Redefine in terms of ISA_HAS_FP4.
4382 * config/mips/mips.md (*<ANYF:loadx>_<P:mode>): Use
4383 ISA_HAS_LXC1_SXC1 rather than ISA_HAS_FP4.
4384 (*<ANYF:storex>_<P:mode>): Likewise.
4385
4386 2013-11-20 Maciej W. Rozycki <macro@codesourcery.com>
4387
4388 * config/mips/mips.h (ISA_HAS_FP_RECIP_RSQRT): New macro.
4389 * config/mips/mips.c (mips_rtx_costs) <DIV>: Check for
4390 ISA_HAS_FP_RECIP_RSQRT rather than ISA_HAS_FP4.
4391 * config/mips/mips.md (recip_condition): Remove mode attribute.
4392 (div<mode>3): Use ISA_HAS_FP_RECIP_RSQRT rather than
4393 <recip_condition>.
4394 (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Likewise.
4395
4396 2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
4397
4398 PR target/59207
4399 * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
4400 Make sure neg2_ovf is set before being used.
4401
4402 2013-11-20 Basile Starynkevitch <basile@starynkevitch.net>
4403
4404 * plugin.def: Add comment about register_callback and
4405 invoke_plugin_callbacks_full.
4406
4407 * plugin.c (register_callback, invoke_plugin_callbacks_full):
4408 Handle PLUGIN_INCLUDE_FILE event.
4409
4410 2013-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4411
4412 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
4413 allow subregs of TDmode in FPRs of smaller size in little-endian.
4414 (rs6000_split_multireg_move): When splitting an access to TDmode
4415 in FPRs, do not use simplify_gen_subreg.
4416
4417 2013-11-20 Joseph Myers <joseph@codesourcery.com>
4418
4419 PR middle-end/21718
4420 * real.c: Remove comment about decimal string conversion and
4421 rounding errors.
4422 (real_from_string): Use MPFR to convert nonzero decimal constant
4423 to REAL_VALUE_TYPE.
4424
4425 2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
4426
4427 * config/arm/arm.c (arm_dwarf_register_span): Take into account the
4428 endianness of the D registers for the legacy encodings.
4429
4430 2013-11-20 Richard Earnshaw <rearnsha@arm.com>
4431
4432 PR rtl-optimization/54300
4433 * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
4434 outputs in a single-set are killed from the value chains.
4435
4436 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
4437
4438 * cgraph.h (varpool_node): Add need_bounds_init field.
4439 * lto-cgraph.c (lto_output_varpool_node): Output
4440 need_bounds_init value.
4441 (input_varpool_node): Read need_bounds_init value.
4442 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
4443
4444 2013-11-20 Jan Hubicka <jh@suse.cz>
4445
4446 * opts.c (finish_options): Imply -ffat-lto-objects with
4447 -fno-use-linker-plugin.
4448 * common.opt (fuse-linker-plugin): Add var.
4449
4450 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
4451
4452 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
4453 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
4454 (gen_type_die_with_usage): Skip pointer bounds.
4455 (dwarf2out_global_decl): Likewise.
4456
4457 2013-11-20 James Greenhalgh <james.greenhalgh@arm.com>
4458
4459 * config/aarch64/aarch64.md: Remove "mode" and "mode2" attributes
4460 from all insns.
4461
4462 2013-11-20 Yuri Rumyantsev <ysrumyan@gmail.com>
4463
4464 PR target/57756
4465 * config/i386/i386.c (ix86_option_override_internal): Add missed
4466 argument prefix for 'ix86_fpmath'.
4467 * config/i386/ssemath.h: Add missed definition of
4468 TARGET_FPMATH_DEFAULT_P macros.
4469
4470 2013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com>
4471 Mike Stump <mikestump@comcast.net>
4472 Richard Sandiford <rdsandiford@googlemail.com>
4473
4474 * alias.c (ao_ref_from_mem): Use tree_to_shwi and tree_to_uhwi
4475 instead of TREE_INT_CST_LOW, in cases where there is a protecting
4476 tree_fits_shwi_p or tree_fits_uhwi_p.
4477 * builtins.c (fold_builtin_powi): Likewise.
4478 * config/epiphany/epiphany.c (epiphany_special_round_type_align):
4479 Likewise.
4480 * dbxout.c (dbxout_symbol): Likewise.
4481 * expr.c (expand_expr_real_1): Likewise.
4482 * fold-const.c (fold_single_bit_test, fold_plusminus_mult_expr)
4483 (fold_binary_loc): Likewise.
4484 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
4485 * gimple-ssa-strength-reduction.c (stmt_cost): Likewise.
4486 * omp-low.c (lower_omp_for_lastprivate): Likewise.
4487 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
4488 * stor-layout.c (compute_record_mode): Likewise.
4489 * tree-cfg.c (verify_expr): Likewise.
4490 * tree-dfa.c (get_ref_base_and_extent): Likewise.
4491 * tree-pretty-print.c (dump_array_domain): Likewise.
4492 * tree-sra.c (build_user_friendly_ref_for_offset): Likewise.
4493 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
4494 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr_id): Likewise.
4495 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
4496 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
4497 * tree-ssa-reassoc.c (acceptable_pow_call): Likewise.
4498 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4499 (ao_ref_init_from_vn_reference, vn_reference_fold_indirect): Likewise.
4500 (vn_reference_lookup_3, simplify_binary_expression): Likewise.
4501 * tree-ssa-structalias.c (bitpos_of_field): Likewise.
4502 (get_constraint_for_1, push_fields_onto_fieldstack): Likewise.
4503 (create_variable_info_for_1): Likewise.
4504 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
4505 (vect_verify_datarefs_alignment): Likewise.
4506 (vect_analyze_data_ref_accesses): Likewise.
4507 (vect_prune_runtime_alias_test_list): Likewise.
4508 * tree-vectorizer.h (NITERS_KNOWN_P): Likewise.
4509
4510 2013-11-20 Richard Sandiford <rdsandiford@googlemail.com>
4511
4512 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Avoid signed
4513 overflow. Use tree_to_shwi.
4514
4515 2013-11-20 Richard Sandiford <rdsandiford@googlemail.com>
4516
4517 * fold-const.c (fold_binary_loc): Use unsigned rather than signed
4518 HOST_WIDE_INTs when folding (x >> c) << c.
4519
4520 2013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4521 Dominik Vogt <vogt@linux.vnet.ibm.com>
4522
4523 * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
4524 int comparisons with an out of range condition code.
4525 (s390_optimize_nonescaping_tx): Skip empty BBs.
4526 Generate the new tbegin RTX when removing the FPR clobbers (with
4527 two SETs).
4528 (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the
4529 result before doing the retry calculations.
4530 (s390_init_builtins): Make tbegin "returns_twice" and tabort
4531 "noreturn".
4532 * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
4533 the TDB setting part of an tbegin.
4534 ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
4535 ("tx_assist"): Set unused argument to an immediate zero instead of
4536 loading zero into a GPR and pass it as argument.
4537 * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
4538 Remove inline and related attributes.
4539 (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
4540 (__TM_is_illegal, __TM_is_footprint_exceeded)
4541 (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value check.
4542
4543 2013-11-20 Richard Biener <rguenther@suse.de>
4544
4545 PR lto/59035
4546 * lto-opts.c (lto_write_options): Write defaults only if
4547 they were not explicitely specified. Also write
4548 -ffp-contract default.
4549 * lto-wrapper.c (merge_and_complain): Merge -ffp-contract
4550 conservatively.
4551 (run_gcc): Pass through -ffp-contract.
4552
4553 2013-11-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4554
4555 * config/mips/mips.c (r10k_simplify_address): Eliminate macro usage.
4556
4557 2013-11-20 James Greenhalgh <james.greenhalgh@arm.com>
4558
4559 * config/aarch64/aarch64-builtins.c
4560 (aarch64_simd_itype): Remove.
4561 (aarch64_simd_builtin_datum): Remove itype, add qualifiers pointer.
4562 (VAR1): Use qualifiers.
4563 (aarch64_build_scalar_type): New.
4564 (aarch64_build_vector_type): Likewise.
4565 (aarch64_build_type): Likewise.
4566 (aarch64_init_simd_builtins): Refactor, remove special cases,
4567 consolidate main loop.
4568 (aarch64_simd_expand_args): Likewise.
4569
4570 2013-11-19 Joshua J Cogliati <jrincayc@yahoo.com>
4571
4572 PR c/53001
4573 * doc/invoke.texi: Adding documentation about -Wfloat-conversion.
4574
4575 2013-11-19 Miro Kropacek <miro.kropacek@gmail.com>
4576
4577 * config/m68k/m68k.c (m68k_option_overrides): Fix typo.
4578
4579 2013-11-19 David Malcolm <dmalcolm@redhat.com>
4580
4581 * gdbhooks.py (VecPrinter): New class, for prettyprinting pointers
4582 to "vec<>" instances.
4583 (build_pretty_printer): Register the vec<>* prettyprinter.
4584
4585 2013-11-19 David Malcolm <dmalcolm@redhat.com>
4586
4587 * gdbhooks.py (GdbSubprinter.__init__): Drop str_type_ field.
4588 (GdbSubprinter.handles_type): New.
4589 (GdbSubprinterTypeList): New subclass of GdbSubprinter.
4590 (GdbSubprinterRegex): New subclass of GdbSubprinter.
4591 (GdbPrettyPrinters.add_printer): Remove in favor of...
4592 (GdbPrettyPrinters.add_printer_for_types): ...this new method and...
4593 (GdbPrettyPrinters.add_printer_for_regex): ...this other new method.
4594 (GdbPrettyPrinters.__call__): Update search for subprinter
4595 to use handles_type method.
4596 (build_pretty_printer): Update registration of subprinters to
4597 use the new API above, supporting multiple spelling of each type,
4598 and allowing for future regex-based subprinters.
4599
4600 2013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4601
4602 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
4603 V16QI vector splat case for little endian.
4604
4605 2013-11-19 Jeff Law <law@redhat.com>
4606
4607 * tree-ssa-threadedge.c (thread_across_edge): After threading
4608 through a joiner, allow threading a normal block requiring duplication.
4609
4610 * tree-ssa-threadupdate.c (thread_block_1): Improve code to detect
4611 jump threading requests that would muck up the loop structures.
4612
4613 * tree-ssa-threadupdate.c: Fix trailing whitespace.
4614 * tree-ssa-threadupdate.h: Likewise.
4615
4616 2013-11-19 Mike Stump <mikestump@comcast.net>
4617
4618 * gdbinit.in: Add pmz to print out mpz values.
4619
4620 2013-11-20 Jan Hubicka <jh@suse.cz>
4621
4622 * common.opt (ffat-lto-objects): Disable by default.
4623 * doc/invoke.texi (fat-lto-objects): Update documentation.
4624 * opts.c: Enable fat-lto-objects on lto plugin disable setups.
4625
4626 2013-11-19 Martin Jambor <mjambor@suse.cz>
4627
4628 PR rtl-optimization/59099
4629 * ira.c (find_moveable_pseudos): Put back various analyses from ira()
4630 here.
4631 (ira): Move init_reg_equiv and call to
4632 split_live_ranges_for_shrink_wrap up, remove analyses around call
4633 to find_moveable_pseudos.
4634
4635 2013-11-20 Alan Modra <amodra@gmail.com>
4636
4637 * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
4638 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
4639 to strict alignment on older processors when little-endian.
4640 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
4641 for ELFv2.
4642
4643 2013-11-19 Teresa Johnson <tejohnson@google.com>
4644
4645 * common/config/i386/i386-common.c: Enable
4646 -freorder-blocks-and-partition at -O2 and up for x86.
4647 * doc/invoke.texi: Update -freorder-blocks-and-partition default.
4648 * opts.c (finish_options): Only warn if
4649 -freorder-blocks-and-partition was set on command line.
4650
4651 2013-11-19 Sriraman Tallam <tmsriram@google.com>
4652
4653 * final.c (final_scan_insn): Emit a label for the split
4654 cold function part. Label name is formed by suffixing
4655 the original function name with "cold".
4656
4657 2013-11-19 David Malcolm <dmalcolm@redhat.com>
4658
4659 * basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
4660 (EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
4661 (ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
4662 (EXIT_BLOCK_PTR_FOR_FN): ...this.
4663 (ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
4664 cfun be explicit.
4665 (EXIT_BLOCK_PTR): Likewise.
4666 (FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
4667 (FOR_ALL_BB_FN): Update for renaming of
4668 "ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".
4669
4670 * cfg.c (init_flow): Likewise.
4671 (check_bb_profile): Likewise.
4672 * cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
4673 * cfgcleanup.c (walk_to_nondebug_insn): Likewise.
4674 * cfghooks.c (account_profile_record): Likewise.
4675 * cfgloop.c (init_loops_structure): Likewise.
4676 * cgraphbuild.c (record_eh_tables): Likewise.
4677 (compute_call_stmt_bb_frequency): Likewise.
4678 * ipa-inline-analysis.c (compute_bb_predicates): Likewise.
4679 * lto-streamer-in.c (input_cfg): Likewise.
4680 * predict.c (maybe_hot_frequency_p): Likewise.
4681 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
4682 * tree-inline.c (initialize_cfun): Likewise.
4683 (copy_cfg_body): Likewise.
4684 (copy_body): Likewise.
4685 (tree_function_versioning): Likewise.
4686
4687 * bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
4688 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4689 (duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
4690 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
4691 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4692 (connect_traces): Likewise.
4693 (rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
4694 (bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
4695 (fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
4696 macro.
4697 (find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
4698 EXIT_BLOCK_PTR.
4699 (fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
4700 (find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
4701 (fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
4702 (rotate_loop): Likewise.
4703 * bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
4704 * cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
4705 EXIT_BLOCK_PTR.
4706 (alloc_aux_for_edges): Likewise.
4707 (clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
4708 (cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
4709 EXIT_BLOCK_PTR.
4710 (compact_blocks): Likewise.
4711 (clear_edges): Likewise.
4712 * cfganal.c (single_pred_before_succ_order): Remove usage of
4713 ENTRY_BLOCK_PTR macro.
4714 (bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
4715 (bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
4716 (bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
4717 (bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
4718 (inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
4719 EXIT_BLOCK_PTR.
4720 (compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR macro.
4721 (post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
4722 EXIT_BLOCK_PTR.
4723 (connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR macro.
4724 (remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
4725 (add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
4726 (find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4727 (remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
4728 (verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
4729 EXIT_BLOCK_PTR.
4730 (print_edge_list): Likewise.
4731 (create_edge_list): Likewise.
4732 (find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
4733 (mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
4734 EXIT_BLOCK_PTR.
4735 * cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
4736 macro.
4737 (find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
4738 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4739 * cfgcleanup.c (delete_unreachable_blocks): Likewise.
4740 (try_optimize_cfg): Likewise.
4741 (try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
4742 (try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
4743 (try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
4744 (merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
4745 (outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
4746 (try_forward_edges): Likewise.
4747 (try_simplify_condjump): Likewise.
4748 * cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
4749 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4750 (construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
4751 (construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
4752 EXIT_BLOCK_PTR.
4753 (expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
4754 (expand_gimple_tailcall): Likewise.
4755 * cfghooks.c (can_duplicate_block_p): Remove uses of macros:
4756 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4757 (tidy_fallthru_edges): Likewise.
4758 (verify_flow_info): Likewise.
4759 * cfgloop.c (flow_bb_inside_loop_p): Likewise.
4760 (num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
4761 (disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR macro.
4762 (get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
4763 (bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
4764 (get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
4765 (get_loop_body_in_dom_order): Likewise.
4766 (get_loop_body): Likewise.
4767 * cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
4768 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4769 * cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
4770 macro.
4771 (remove_path): Remove usage of EXIT_BLOCK_PTR macro.
4772 (fix_bb_placement): Likewise.
4773 * cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
4774 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4775 (rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
4776 (cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
4777 EXIT_BLOCK_PTR.
4778 (rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
4779 (cfg_layout_can_merge_blocks_p): Remove uses of macros:
4780 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4781 (cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
4782 macro.
4783 (fixup_fallthru_exit_predecessor): Remove uses of macros:
4784 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4785 (fixup_reorder_chain): Likewise.
4786 (relink_block_chain): Likewise.
4787 (cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
4788 (rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
4789 (cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
4790 (force_one_exit_fallthru): Likewise.
4791 (rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
4792 EXIT_BLOCK_PTR.
4793 (rtl_verify_edges): Likewise.
4794 (commit_edge_insertions): Likewise.
4795 (commit_one_edge_insertion): Likewise.
4796 (rtl_split_edge): Likewise.
4797 (force_nonfallthru_and_redirect): Likewise.
4798 (outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
4799 (skip_insns_after_block): Likewise.
4800 (fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
4801 EXIT_BLOCK_PTR.
4802 (purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
4803 (rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
4804 EXIT_BLOCK_PTR.
4805 (contains_no_active_insn_p): Likewise.
4806 (emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
4807 (entry_of_function): Likewise.
4808 (last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
4809 (fixup_new_cold_bb): Likewise.
4810 (patch_jump_insn): Likewise.
4811 (try_redirect_by_replacing_jump): Likewise.
4812 (block_label): Likewise.
4813 (could_fall_through): Likewise.
4814 (can_fallthru): Likewise.
4815 * cgraphbuild.c (cgraph_rebuild_references): Remove usage of
4816 ENTRY_BLOCK_PTR macro.
4817 (rebuild_cgraph_edges): Likewise.
4818 * cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
4819 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4820 (expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
4821 * combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
4822 (distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
4823 (get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
4824 (try_combine): Remove usage of EXIT_BLOCK_PTR macro.
4825 (reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
4826 macro.
4827 (reg_nonzero_bits_for_combine): Likewise.
4828 (set_nonzero_bits_and_sign_copies): Likewise.
4829 (combine_instructions): Likewise.
4830 * cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
4831 EXIT_BLOCK_PTR.
4832 (bypass_conditional_jumps): Likewise.
4833 (bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
4834 (find_implicit_sets): Likewise.
4835 (cprop_jump): Likewise.
4836 * cse.c (cse_cc_succs): Likewise.
4837 (cse_find_path): Likewise.
4838 * df-problems.c (df_lr_confluence_0): Likewise.
4839 * df-scan.c (df_entry_block_defs_collect): Remove usage of
4840 ENTRY_BLOCK_PTR macro.
4841 (df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
4842 * dominance.c (iterate_fix_dominators): Remove usage of
4843 ENTRY_BLOCK_PTR macro.
4844 (calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4845 (determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR macro.
4846 (calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
4847 EXIT_BLOCK_PTR.
4848 (prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
4849 macro.
4850 (calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
4851 EXIT_BLOCK_PTR.
4852 * domwalk.c (cmp_bb_postorder): Likewise.
4853 * dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
4854 * except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
4855 macro.
4856 (sjlj_emit_function_enter): Likewise.
4857 * final.c (compute_alignments): Likewise.
4858 * function.c (thread_prologue_and_epilogue_insns): Remove uses of
4859 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4860 (reposition_prologue_and_epilogue_notes): Remove usage of
4861 EXIT_BLOCK_PTR macro.
4862 (convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
4863 EXIT_BLOCK_PTR.
4864 (regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
4865 (next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
4866 * gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
4867 (update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
4868 (compute_code_hoist_vbeinout): Likewise.
4869 (should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
4870 (pre_expr_reaches_here_p_work): Likewise.
4871 * gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
4872 (gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
4873 EXIT_BLOCK_PTR.
4874 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
4875 ENTRY_BLOCK_PTR macro.
4876 * graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
4877 macro.
4878 * graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
4879 ENTRY_BLOCK_PTR macro.
4880 * graphite-scop-detection.c (build_scops): Likewise.
4881 (create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
4882 (scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
4883 * haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
4884 macro.
4885 (unlink_bb_notes): Likewise.
4886 (create_check_block_twin): Likewise.
4887 (init_before_recovery): Likewise.
4888 (sched_extend_bb): Likewise.
4889 (priority): Likewise.
4890 * hw-doloop.c (reorder_loops): Likewise.
4891 (discover_loop): Likewise.
4892 * ifcvt.c (dead_or_predicable): Remove uses of macros:
4893 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4894 (find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
4895 (block_has_only_trap): Likewise.
4896 (cond_exec_find_if_block): Likewise.
4897 (merge_if_block): Likewise.
4898 * ipa-inline-analysis.c (param_change_prob): Remove usage of
4899 ENTRY_BLOCK_PTR macro.
4900 (record_modified): Likewise.
4901 * ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
4902 EXIT_BLOCK_PTR macro.
4903 (local_pure_const): Likewise.
4904 * ipa-split.c (split_function): Remove uses of macros:
4905 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4906 (find_split_points): Likewise.
4907 (consider_split): Likewise.
4908 (find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
4909 (verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
4910 * ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
4911 * ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR macro.
4912 * ira-emit.c (entered_from_non_parent_p): Remove usage of
4913 ENTRY_BLOCK_PTR macro.
4914 (ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
4915 * ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
4916 * ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
4917 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4918 * lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
4919 macro.
4920 (compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
4921 EXIT_BLOCK_PTR.
4922 (compute_farthest): Likewise.
4923 (compute_available): Likewise.
4924 (compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
4925 (compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
4926 EXIT_BLOCK_PTR.
4927 (compute_earliest): Likewise.
4928 (compute_antinout_edge): Likewise.
4929 * loop-iv.c (simplify_using_initial_values): Remove usage of
4930 ENTRY_BLOCK_PTR macro.
4931 * loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
4932 macro.
4933 * lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
4934 macro.
4935 * lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
4936 macro.
4937 * lra-lives.c (lra_create_live_ranges): Remove uses of macros:
4938 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4939 * lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
4940 macro.
4941 * lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
4942 macro.
4943 * lto-streamer-out.c (output_cfg): Likewise.
4944 * mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
4945 EXIT_BLOCK_PTR.
4946 (create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
4947 * mode-switching.c (optimize_mode_switching): Likewise.
4948 (create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
4949 * modulo-sched.c (rest_of_handle_sms): Likewise.
4950 (canon_loop): Likewise.
4951 * omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR macro.
4952 * postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
4953 of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4954 * predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
4955 macro.
4956 (propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
4957 (estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
4958 (tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
4959 (expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
4960 (tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
4961 (counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
4962 (apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
4963 (estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
4964 (gimple_predict_edge): Likewise.
4965 (probably_never_executed): Likewise.
4966 * profile.c (find_spanning_tree): Remove uses of macros:
4967 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
4968 (branch_prob): Likewise.
4969 (compute_branch_probabilities): Likewise.
4970 (compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
4971 (is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
4972 (read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
4973 (set_bb_counts): Likewise.
4974 (correct_negative_edge_counts): Likewise.
4975 (get_exec_counts): Likewise.
4976 (instrument_values): Likewise.
4977 (instrument_edges): Likewise.
4978 * reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
4979 EXIT_BLOCK_PTR.
4980 (compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
4981 (convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
4982 (convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
4983 (reg_to_stack): Likewise.
4984 * regs.h (REG_N_SETS): Likewise.
4985 * reload.c (find_dummy_reload): Likewise.
4986 (combine_reloads): Likewise.
4987 (push_reload): Likewise.
4988 * reload1.c (has_nonexceptional_receiver): Remove usage of
4989 EXIT_BLOCK_PTR macro.
4990 * resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
4991 macro.
4992 (find_basic_block): Likewise.
4993 * sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
4994 (schedule_ebbs): Likewise.
4995 * sched-int.h (sel_sched_p): Likewise.
4996 * sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
4997 macro.
4998 (rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
4999 (haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
5000 EXIT_BLOCK_PTR.
5001 (propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
5002 (extend_rgns): Likewise.
5003 (find_single_block_region): Likewise.
5004 * sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
5005 ENTRY_BLOCK_PTR macro.
5006 (setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
5007 (sel_create_recovery_block): Likewise.
5008 (bb_ends_ebb_p): Likewise.
5009 (sel_bb_end): Likewise.
5010 (sel_bb_head): Likewise.
5011 (free_lv_sets): Likewise.
5012 (init_lv_sets): Likewise.
5013 (tidy_control_flow): Likewise.
5014 (maybe_tidy_empty_bb): Likewise.
5015 * sel-sched-ir.h (_succ_iter_cond): Likewise.
5016 (_succ_iter_start): Likewise.
5017 (sel_bb_empty_or_nop_p): Likewise.
5018 (get_loop_exit_edges_unique_dests): Likewise.
5019 (inner_loop_header_p): Likewise.
5020 * sel-sched.c (create_block_for_bookkeeping): Likewise.
5021 (find_block_for_bookkeeping): Likewise.
5022 * store-motion.c (remove_reachable_equiv_notes): Likewise.
5023 (insert_store): Likewise.
5024 * trans-mem.c (ipa_tm_transform_clone): Remove usage of
5025 ENTRY_BLOCK_PTR macro.
5026 (tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
5027 (ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
5028 (gate_tm_init): Likewise.
5029 (tm_region_init): Likewise.
5030 * tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
5031 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5032 (execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
5033 (split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
5034 EXIT_BLOCK_PTR.
5035 (print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
5036 (move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
5037 EXIT_BLOCK_PTR.
5038 (gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
5039 macro.
5040 (gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
5041 EXIT_BLOCK_PTR.
5042 (remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
5043 macro.
5044 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5045 (gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
5046 (make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
5047 (build_gimple_cfg): Likewise.
5048 (gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
5049 (gimple_can_merge_blocks_p): Likewise.
5050 * tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
5051 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5052 * tree-complex.c (update_parameter_components): Remove usage of
5053 ENTRY_BLOCK_PTR macro.
5054 * tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
5055 EXIT_BLOCK_PTR macro.
5056 * tree-inline.c (tree_function_versioning): Remove uses of macros:
5057 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5058 (delete_unreachable_blocks_update_callgraph): Likewise.
5059 (initialize_cfun): Likewise.
5060 (copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
5061 (copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
5062 (remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
5063 * tree-into-ssa.c (update_ssa): Likewise.
5064 (maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
5065 (insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
5066 (rewrite_into_ssa): Likewise.
5067 (rewrite_debug_stmt_uses): Likewise.
5068 * tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
5069 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5070 * tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
5071 ENTRY_BLOCK_PTR macro.
5072 * tree-scalar-evolution.h (block_before_loop): Likewise.
5073 * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
5074 (dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
5075 EXIT_BLOCK_PTR.
5076 (analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
5077 macro.
5078 (propagate_dereference_distances): Remove uses of macros:
5079 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5080 (initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
5081 macro.
5082 * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
5083 (optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
5084 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5085 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
5086 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5087 (remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
5088 (propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
5089 (mark_control_dependent_edges_necessary): Remove uses of macros:
5090 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5091 * tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
5092 ENTRY_BLOCK_PTR macro.
5093 (tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
5094 * tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
5095 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5096 (calculate_live_on_exit): Likewise.
5097 (set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
5098 (loe_visit_block): Likewise.
5099 * tree-ssa-live.h (live_on_exit): Remove uses of macros:
5100 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5101 (live_on_entry): Likewise.
5102 * tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
5103 EXIT_BLOCK_PTR macro.
5104 * tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
5105 ENTRY_BLOCK_PTR macro.
5106 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
5107 (bound_difference): Likewise.
5108 * tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
5109 of EXIT_BLOCK_PTR macro.
5110 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
5111 of ENTRY_BLOCK_PTR macro.
5112 * tree-ssa-math-opts.c (register_division_in): Likewise.
5113 * tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
5114 * tree-ssa-pre.c (compute_avail): Likewise.
5115 (compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
5116 (insert): Remove usage of ENTRY_BLOCK_PTR macro.
5117 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
5118 (simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
5119 (cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
5120 EXIT_BLOCK_PTR.
5121 (add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
5122 * tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
5123 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5124 (build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
5125 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
5126 (execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
5127 * tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
5128 (compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
5129 (find_pdom): Likewise.
5130 (warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
5131 * tree-stdarg.c (reachable_at_most_once): Likewise.
5132 * tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
5133 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5134 (eliminate_tail_call): Likewise.
5135 * tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
5136 macro.
5137 (instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
5138 * var-tracking.c (vt_initialize): Remove uses of macros:
5139 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5140 (vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
5141 (vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
5142 (vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
5143 EXIT_BLOCK_PTR.
5144 * varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
5145 macro.
5146 * config/bfin/bfin.c (hwloop_optimize): Likewise.
5147 * config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
5148 of EXIT_BLOCK_PTR macro.
5149 * config/arm/arm.c (require_pic_register): Remove usage of
5150 ENTRY_BLOCK_PTR macro.
5151 (arm_r3_live_at_start_p): Likewise.
5152 (any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
5153 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
5154 * config/frv/frv.c (frv_optimize_membar_global): Likewise.
5155 * config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
5156 ENTRY_BLOCK_PTR macro.
5157 * config/i386/i386.c (ix86_count_insn): Likewise.
5158 (ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
5159 (ix86_pad_short_function): Likewise.
5160 (ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
5161 (ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
5162 (ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
5163 (add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
5164 (ix86_expand_epilogue): Likewise.
5165 * config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
5166 (ia64_expand_prologue): Likewise.
5167
5168 2013-11-19 Catherine Moore <clm@codesourcery.com>
5169
5170 * doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document.
5171 * config/mips/mips.opt (mfix-rm7000): New option.
5172 * config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000.
5173 * config/mips/mips.c (mips_reorg_process_insns): Disable
5174 noreorder for TARGET_FIX_RM7000.
5175
5176 2013-11-19 Oleg Endo <olegendo@gcc.gnu.org>
5177
5178 * config/sh/sh-c.c: Fix typo in include of file attribs.h.
5179
5180 2013-11-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5181
5182 * config/arm/arm.c (arm_new_rtx_costs):
5183 Handle narrow mode add-shifts properly.
5184 * config/arm/arm-common.c (arm_rtx_shift_left_p): Remove static.
5185 * config/arm/arm-common-protos.h (arm_rtx_shift_left_p):
5186 Declare extern.
5187
5188 2013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
5189
5190 * config/arm/arm.md (zero_extend<mode>di2): Add type attribute.
5191
5192 2013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5193
5194 * config/rs6000/vector.md ("mov<mode>"): Do not call
5195 rs6000_emit_le_vsx_move to move into or out of GPRs.
5196 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
5197 source and destination are not GPR hard regs.
5198
5199 2013-11-19 David Malcolm <dmalcolm@redhat.com>
5200
5201 * basic-block.h (n_edges_for_function): Rename macro to...
5202 (n_edges_for_fn): ...this.
5203 (n_edges): Eliminate macro as work towards making uses of
5204 cfun be explicit.
5205
5206 * cfg.c (init_flow): Update for renaming of "n_edges_for_function"
5207 to "n_edges_for_fn".
5208
5209 * cfg.c (unchecked_make_edge): Remove usage of n_edges macro.
5210 (clear_edges): Likewise.
5211 (free_edge): Likewise.
5212 * cfghooks.c (dump_flow_info): Likewise.
5213 * cprop.c (is_too_expensive): Likewise.
5214 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
5215 * gcse.c (is_too_expensive): Likewise.
5216 (prune_insertions_deletions): Likewise.
5217 * mcf.c (create_fixup_graph): Likewise.
5218 * sched-rgn.c (haifa_find_rgns): Likewise.
5219 * tree-cfg.c (gimple_dump_cfg): Likewise.
5220 * var-tracking.c (variable_tracking_main_1): Likewise.
5221
5222 2013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
5223
5224 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix over
5225 length lines.
5226
5227 2013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
5228
5229 * config/aarch64/aarch64.md
5230 (aarch64_movdi_<mode>low, *add_<shift>_si_uxtw): Adjust whitespace.
5231
5232 2013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
5233
5234 * config/aarch64/aarch64.h (PROFILE_HOOK): Fix whitespace.
5235
5236 2013-11-19 Joseph Myers <joseph@codesourcery.com>
5237
5238 * varasm.c (align_variable): Give error instead of warning for
5239 unsupported alignment.
5240 (assemble_noswitch_variable): Likewise.
5241
5242 2013-11-19 Basile Starynkevitch <basile@starynkevitch.net>
5243
5244 * plugin.def (PLUGIN_INCLUDE_FILE): New event, invoked in
5245 cb_file_change.
5246
5247 2013-11-19 Peter Bergner <bergner@vnet.ibm.com>
5248
5249 * loop-doloop.c (doloop_optimize_loops): Remove unused
5250 loop iterator argument from FOR_EACH_LOOP.
5251
5252 2013-11-19 David Malcolm <dmalcolm@redhat.com>
5253
5254 Convert gimple types from a union to C++ inheritance.
5255 * Makefile.in (GIMPLE_H): Add dep on is-a.h.
5256 * coretypes.h (union gimple_statement_d): Remove declaration.
5257 (gimple): Convert from being a "union gimple_statement_d *"
5258 to a "struct gimple_statement_base *".
5259 (const_gimple): Likewise (with "const").
5260 * ggc.h (ggc_alloc_cleared_gimple_statement_d_stat): Replace with...
5261 (ggc_alloc_cleared_gimple_statement_stat): ...this.
5262 * gimple-pretty-print.c (debug): Change parameter from a
5263 "gimple_statement_d &" to a "gimple_statement_base &".
5264 (debug): Change parameter from a "gimple_statement_d *" to
5265 a "gimple_statement_base *".
5266 * gimple-pretty-print.h (debug): Update declarations as above.
5267 * gimple.c (gimple_alloc_stat): Update for renaming of
5268 ggc_alloc_cleared_gimple_statement_d_stat to
5269 ggc_alloc_cleared_gimple_statement_stat.
5270 * gimple.h: Include "is-a.h" for use by is_a_helper
5271 specializations in followup autogenerated patch.
5272 (struct gimple statement_base): Make this type usable as a base
5273 class by adding "desc", "tag" and "variable_size" to GTY, thus
5274 using opting-in to gengtype's support for simple inheritance.
5275 (gimple_statement_with_ops_base): Convert to a subclass of
5276 gimple_statement_base, dropping initial "gsbase" field. Note that
5277 this type is abstract, with no GSS_ value, and thus no GTY tag value.
5278 (gimple_statement_with_ops): Convert to a subclass of
5279 gimple_statement_with_ops_base, dropping initial "opbase" field.
5280 Add tag value to GTY marking. Update marking of op field to
5281 reflect how num_ops field is accessed via inheritance.
5282 (gimple_statement_with_memory_ops_base): Convert to a subclass of
5283 gimple_statement_with_ops_base, dropping initial "opbase" field.
5284 Add tag value to GTY marking.
5285 (gimple_statement_with_memory_ops): Convert to a subclass of
5286 public gimple_statement_with_memory_ops_base, dropping initial
5287 "membase" field. Add tag value to GTY marking. Update marking
5288 of op field to reflect how num_ops field is accessed via inheritance.
5289 (gimple_statement_call): Analogous changes that also update the
5290 marking of the "u" union.
5291 (gimple_statement_omp): Convert to a subclass of
5292 gimple_statement_base, dropping initial "gsbase" field, adding
5293 tag value to GTY marking.
5294 (gimple_statement_bind): Likewise.
5295 (gimple_statement_catch): Likewise.
5296 (gimple_statement_eh_filter): Likewise.
5297 (gimple_statement_eh_else): Likewise.
5298 (gimple_statement_eh_mnt): Likewise.
5299 (gimple_statement_phi): Likewise.
5300 (gimple_statement_eh_ctrl): Likewise.
5301 (gimple_statement_try): Likewise.
5302 (gimple_statement_wce): Likewise.
5303 (gimple_statement_asm): Convert to a subclass of
5304 gimple_statement_with_memory_ops_base, dropping initial
5305 "membase" field, adding tag value to GTY marking, and updating
5306 marking of op field.
5307 (gimple_statement_omp_critical): Convert to a subclass of
5308 gimple_statement_omp, dropping initial "omp" field, adding tag
5309 value to GTY marking.
5310 (gimple_statement_omp_for): Likewise.
5311 (gimple_statement_omp_parallel): Likewise.
5312 (gimple_statement_omp_task): Convert to a subclass of
5313 gimple_statement_omp_parallel, dropping initial "par" field,
5314 adding tag value to GTY marking.
5315 (gimple_statement_omp_sections): Convert to a subclass of
5316 gimple_statement_omp, dropping initial "omp" field, adding
5317 tag value to GTY marking.
5318 (gimple_statement_omp_continue): Convert to a subclass of
5319 gimple_statement_base, dropping initial "gsbase" field, adding
5320 tag value to GTY marking.
5321 (gimple_statement_omp_single): Convert to a subclass of
5322 gimple_statement_omp, dropping initial "omp" field, adding
5323 tag value to GTY marking.
5324 (gimple_statement_omp_atomic_load): Convert to a subclass of
5325 gimple_statement_base, dropping initial "gsbase" field, adding
5326 tag value to GTY marking.
5327 (gimple_statement_omp_atomic_store): Convert to a subclass of
5328 gimple_statement_base, dropping initial "gsbase" field, adding
5329 tag value to GTY marking.
5330 (gimple_statement_transaction): Convert to a subclass of
5331 gimple_statement_with_memory_ops_base, dropping initial "gsbase"
5332 field, adding tag value to GTY marking.
5333 (union gimple_statement_d): Remove.
5334 * system.h (CONST_CAST_GIMPLE): Update to use
5335 "struct gimple_statement_base *" rather than
5336 "union gimple_statement_d *".
5337 * tree-ssa-ccp.c (gimple_htab): Convert underlying type from
5338 gimple_statement_d to gimple_statement_base.
5339
5340 * gimple.h (gimple_use_ops): Port from union to usage of dyn_cast.
5341 (gimple_set_use_ops): Port from union to usage of as_a.
5342 (gimple_set_vuse): Likewise.
5343 (gimple_set_vdef): Likewise.
5344 (gimple_call_internal_fn): Port from union to a static_cast,
5345 given that the type has already been asserted.
5346 (gimple_omp_body_ptr): Port from unchecked union usage to
5347 a static_cast.
5348 (gimple_omp_set_body): Likewise.
5349
5350 * gimple-iterator.c (update_bb_for_stmts): Update for conversion of
5351 gimple types to a true class hierarchy.
5352 (update_call_edge_frequencies): Likewise.
5353 (gsi_insert_seq_nodes_before): Likewise.
5354 (gsi_insert_seq_nodes_after): Likewise.
5355 (gsi_split_seq_after): Likewise.
5356 (gsi_set_stmt): Likewise.
5357 (gsi_split_seq_before): Likewise.
5358 (gsi_remove): Likewise.
5359 * gimple-iterator.h (gsi_one_before_end_p): Likewise.
5360 (gsi_next): Likewise.
5361 (gsi_prev): Likewise.
5362 * gimple-pretty-print.c (dump_gimple_debug): Likewise.
5363 * gimple-ssa.h (gimple_vuse_op): Likewise.
5364 (gimple_vdef_op): Likewise.
5365 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
5366 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
5367 * gimple.c (gimple_set_code): Likewise.
5368 (gimple_alloc_stat): Likewise.
5369 (gimple_set_subcode): Likewise.
5370 (gimple_build_call_internal_1): Likewise.
5371 (gimple_check_failed): Likewise.
5372 (gimple_call_flags): Likewise.
5373 (gimple_set_bb): Likewise.
5374 * gimple.h (is_a_helper <gimple_statement_asm> (gimple)): New.
5375 (is_a_helper <gimple_statement_bind> (gimple)): Likewise.
5376 (is_a_helper <gimple_statement_call> (gimple)): Likewise.
5377 (is_a_helper <gimple_statement_catch> (gimple)): Likewise.
5378 (is_a_helper <gimple_statement_eh_ctrl> (gimple)): Likewise.
5379 (is_a_helper <gimple_statement_eh_else> (gimple)): Likewise.
5380 (is_a_helper <gimple_statement_eh_filter> (gimple)): Likewise.
5381 (is_a_helper <gimple_statement_eh_mnt> (gimple)): Likewise.
5382 (is_a_helper <gimple_statement_omp_atomic_load> (gimple)): Likewise.
5383 (is_a_helper <gimple_statement_omp_atomic_store> (gimple)): Likewise.
5384 (is_a_helper <gimple_statement_omp_continue> (gimple)): Likewise.
5385 (is_a_helper <gimple_statement_omp_critical> (gimple)): Likewise.
5386 (is_a_helper <gimple_statement_omp_for> (gimple)): Likewise.
5387 (is_a_helper <gimple_statement_omp_parallel> (gimple)): Likewise.
5388 (is_a_helper <gimple_statement_omp_sections> (gimple)): Likewise.
5389 (is_a_helper <gimple_statement_omp_single> (gimple)): Likewise.
5390 (is_a_helper <gimple_statement_omp_task> (gimple)): Likewise.
5391 (is_a_helper <gimple_statement_phi> (gimple)): Likewise.
5392 (is_a_helper <gimple_statement_transaction> (gimple)): Likewise.
5393 (is_a_helper <gimple_statement_try> (gimple)): Likewise.
5394 (is_a_helper <gimple_statement_wce> (gimple)): Likewise.
5395 (is_a_helper <const gimple_statement_asm> (const_gimple)): Likewise.
5396 (is_a_helper <const gimple_statement_bind> (const_gimple)): Likewise.
5397 (is_a_helper <const gimple_statement_call> (const_gimple)): Likewise.
5398 (is_a_helper <const gimple_statement_catch> (const_gimple)): Likewise.
5399 (is_a_helper <const gimple_statement_eh_ctrl> (const_gimple)):
5400 Likewise.
5401 (is_a_helper <const gimple_statement_eh_filter> (const_gimple)):
5402 Likewise.
5403 (is_a_helper <const gimple_statement_omp_atomic_load> (const_gimple)):
5404 Likewise.
5405 (is_a_helper <const gimple_statement_omp_atomic_store>
5406 (const_gimple)): Likewise.
5407 (is_a_helper <const gimple_statement_omp_continue> (const_gimple)):
5408 Likewise.
5409 (is_a_helper <const gimple_statement_omp_critical> (const_gimple)):
5410 Likewise.
5411 (is_a_helper <const gimple_statement_omp_for> (const_gimple)):
5412 Likewise.
5413 (is_a_helper <const gimple_statement_omp_parallel> (const_gimple)):
5414 Likewise.
5415 (is_a_helper <const gimple_statement_omp_sections> (const_gimple)):
5416 Likewise.
5417 (is_a_helper <const gimple_statement_omp_single> (const_gimple)):
5418 Likewise.
5419 (is_a_helper <const gimple_statement_omp_task> (const_gimple)):
5420 Likewise.
5421 (is_a_helper <const gimple_statement_phi> (const_gimple)): Likewise.
5422 (is_a_helper <const gimple_statement_transaction> (const_gimple)):
5423 Likewise.
5424 (gimple_seq_last): Update for conversion of gimple types to a true
5425 class hierarchy.
5426 (gimple_seq_set_last): Likewise.
5427 (gimple_code): Likewise.
5428 (gimple_bb): Likewise.
5429 (gimple_block): Likewise.
5430 (gimple_set_block): Likewise.
5431 (gimple_location): Likewise.
5432 (gimple_location_ptr): Likewise.
5433 (gimple_set_location): Likewise.
5434 (gimple_no_warning_p): Likewise.
5435 (gimple_set_no_warning): Likewise.
5436 (gimple_set_visited): Likewise.
5437 (gimple_visited_p): Likewise.
5438 (gimple_set_plf): Likewise.
5439 (gimple_plf): Likewise.
5440 (gimple_set_uid): Likewise.
5441 (gimple_uid): Likewise.
5442 (gimple_init_singleton): Likewise.
5443 (gimple_modified_p): Likewise.
5444 (gimple_set_modified): Likewise.
5445 (gimple_expr_code): Likewise.
5446 (gimple_has_volatile_ops): Likewise.
5447 (gimple_set_has_volatile_ops): Likewise.
5448 (gimple_omp_subcode): Likewise.
5449 (gimple_omp_set_subcode): Likewise.
5450 (gimple_omp_return_set_nowait): Likewise.
5451 (gimple_omp_section_set_last): Likewise.
5452 (gimple_omp_parallel_set_combined_p): Likewise.
5453 (gimple_omp_atomic_set_need_value): Likewise.
5454 (gimple_omp_atomic_set_seq_cst): Likewise.
5455 (gimple_num_ops): Likewise.
5456 (gimple_set_num_ops): Likewise.
5457 (gimple_assign_nontemporal_move_p): Likewise.
5458 (gimple_assign_set_nontemporal_move): Likewise.
5459 (gimple_assign_rhs_code): Likewise.
5460 (gimple_assign_set_rhs_code): Likewise.
5461 (gimple_call_internal_p): Likewise.
5462 (gimple_call_with_bounds_p): Likewise.
5463 (gimple_call_set_with_bounds): Likewise.
5464 (gimple_call_set_tail): Likewise.
5465 (gimple_call_tail_p): Likewise.
5466 (gimple_call_set_return_slot_opt): Likewise.
5467 (gimple_call_return_slot_opt_p): Likewise.
5468 (gimple_call_set_from_thunk): Likewise.
5469 (gimple_call_from_thunk_p): Likewise.
5470 (gimple_call_set_va_arg_pack): Likewise.
5471 (gimple_call_va_arg_pack_p): Likewise.
5472 (gimple_call_set_nothrow): Likewise.
5473 (gimple_call_set_alloca_for_var): Likewise.
5474 (gimple_call_alloca_for_var_p): Likewise.
5475 (gimple_call_copy_flags): Likewise.
5476 (gimple_cond_code): Likewise.
5477 (gimple_cond_set_code): Likewise.
5478 (gimple_cond_make_false): Likewise.
5479 (gimple_cond_make_true): Likewise.
5480 (gimple_asm_volatile_p): Likewise.
5481 (gimple_asm_set_volatile): Likewise.
5482 (gimple_asm_set_input): Likewise.
5483 (gimple_asm_input_p): Likewise.
5484 (gimple_try_kind): Likewise.
5485 (gimple_try_set_kind): Likewise.
5486 (gimple_try_catch_is_cleanup): Likewise.
5487 (gimple_try_set_catch_is_cleanup): Likewise.
5488 (gimple_wce_cleanup_eh_only): Likewise.
5489 (gimple_wce_set_cleanup_eh_only): Likewise.
5490 (gimple_debug_bind_p): Likewise.
5491 (gimple_debug_source_bind_p): Likewise.
5492 (gimple_omp_for_set_kind): Likewise.
5493 (gimple_omp_for_set_combined_p): Likewise.
5494 (gimple_omp_for_set_combined_into_p): Likewise.
5495 (gimple_omp_target_set_kind): Likewise.
5496 (gimple_transaction_subcode): Likewise.
5497 (gimple_transaction_set_subcode): Likewise.
5498 (gimple_predict_predictor): Likewise.
5499 (gimple_predict_set_predictor): Likewise.
5500 (gimple_predict_outcome): Likewise.
5501 (gimple_predict_set_outcome): Likewise.
5502 (gimple_transaction_set_label): Likewise.
5503 (gimple_transaction_set_body): Likewise.
5504 (gimple_transaction_label_ptr): Likewise.
5505 (gimple_transaction_label): Likewise.
5506 (gimple_transaction_body_ptr): Likewise.
5507 (gimple_omp_continue_set_control_use): Likewise.
5508 (gimple_omp_continue_control_use_ptr): Likewise.
5509 (gimple_omp_continue_control_use): Likewise.
5510 (gimple_omp_continue_set_control_def): Likewise.
5511 (gimple_omp_continue_control_def_ptr): Likewise.
5512 (gimple_omp_continue_control_def): Likewise.
5513 (gimple_omp_atomic_load_rhs_ptr): Likewise.
5514 (gimple_omp_atomic_load_rhs): Likewise.
5515 (gimple_omp_atomic_load_set_rhs): Likewise.
5516 (gimple_omp_atomic_load_lhs_ptr): Likewise.
5517 (gimple_omp_atomic_load_lhs): Likewise.
5518 (gimple_omp_atomic_load_set_lhs): Likewise.
5519 (gimple_omp_atomic_store_val_ptr): Likewise.
5520 (gimple_omp_atomic_store_val): Likewise.
5521 (gimple_omp_atomic_store_set_val): Likewise.
5522 (gimple_omp_for_cond): Likewise.
5523 (gimple_omp_for_set_cond): Likewise.
5524 (gimple_omp_sections_set_control): Likewise.
5525 (gimple_omp_sections_control_ptr): Likewise.
5526 (gimple_omp_sections_control): Likewise.
5527 (gimple_omp_sections_set_clauses): Likewise.
5528 (gimple_omp_sections_clauses_ptr): Likewise.
5529 (gimple_omp_sections_clauses): Likewise.
5530 (gimple_omp_teams_set_clauses): Likewise.
5531 (gimple_omp_teams_clauses_ptr): Likewise.
5532 (gimple_omp_teams_clauses): Likewise.
5533 (gimple_omp_target_set_data_arg): Likewise.
5534 (gimple_omp_target_data_arg_ptr): Likewise.
5535 (gimple_omp_target_data_arg): Likewise.
5536 (gimple_omp_target_set_child_fn): Likewise.
5537 (gimple_omp_target_child_fn_ptr): Likewise.
5538 (gimple_omp_target_child_fn): Likewise.
5539 (gimple_omp_target_set_clauses): Likewise.
5540 (gimple_omp_target_clauses_ptr): Likewise.
5541 (gimple_omp_target_clauses): Likewise.
5542 (gimple_omp_single_set_clauses): Likewise.
5543 (gimple_omp_single_clauses_ptr): Likewise.
5544 (gimple_omp_single_clauses): Likewise.
5545 (gimple_omp_task_set_arg_align): Likewise.
5546 (gimple_omp_task_arg_align_ptr): Likewise.
5547 (gimple_omp_task_arg_align): Likewise.
5548 (gimple_omp_task_set_arg_size): Likewise.
5549 (gimple_omp_task_arg_size_ptr): Likewise.
5550 (gimple_omp_task_arg_size): Likewise.
5551 (gimple_omp_task_set_copy_fn): Likewise.
5552 (gimple_omp_task_copy_fn_ptr): Likewise.
5553 (gimple_omp_task_copy_fn): Likewise.
5554 (gimple_omp_task_set_data_arg): Likewise.
5555 (gimple_omp_task_data_arg_ptr): Likewise.
5556 (gimple_omp_task_data_arg): Likewise.
5557 (gimple_omp_task_set_child_fn): Likewise.
5558 (gimple_omp_task_child_fn_ptr): Likewise.
5559 (gimple_omp_task_child_fn): Likewise.
5560 (gimple_omp_task_set_clauses): Likewise.
5561 (gimple_omp_task_clauses_ptr): Likewise.
5562 (gimple_omp_task_clauses): Likewise.
5563 (gimple_omp_parallel_set_data_arg): Likewise.
5564 (gimple_omp_parallel_data_arg_ptr): Likewise.
5565 (gimple_omp_parallel_data_arg): Likewise.
5566 (gimple_omp_parallel_set_child_fn): Likewise.
5567 (gimple_omp_parallel_child_fn_ptr): Likewise.
5568 (gimple_omp_parallel_child_fn): Likewise.
5569 (gimple_omp_parallel_set_clauses): Likewise.
5570 (gimple_omp_parallel_clauses_ptr): Likewise.
5571 (gimple_omp_parallel_clauses): Likewise.
5572 (gimple_omp_for_set_pre_body): Likewise.
5573 (gimple_omp_for_pre_body_ptr): Likewise.
5574 (gimple_omp_for_set_incr): Likewise.
5575 (gimple_omp_for_incr_ptr): Likewise.
5576 (gimple_omp_for_incr): Likewise.
5577 (gimple_omp_for_set_final): Likewise.
5578 (gimple_omp_for_final_ptr): Likewise.
5579 (gimple_omp_for_final): Likewise.
5580 (gimple_omp_for_set_initial): Likewise.
5581 (gimple_omp_for_initial_ptr): Likewise.
5582 (gimple_omp_for_initial): Likewise.
5583 (gimple_omp_for_set_index): Likewise.
5584 (gimple_omp_for_index_ptr): Likewise.
5585 (gimple_omp_for_index): Likewise.
5586 (gimple_omp_for_collapse): Likewise.
5587 (gimple_omp_for_set_clauses): Likewise.
5588 (gimple_omp_for_clauses_ptr): Likewise.
5589 (gimple_omp_for_clauses): Likewise.
5590 (gimple_omp_critical_set_name): Likewise.
5591 (gimple_omp_critical_name_ptr): Likewise.
5592 (gimple_omp_critical_name): Likewise.
5593 (gimple_eh_dispatch_set_region): Likewise.
5594 (gimple_eh_dispatch_region): Likewise.
5595 (gimple_resx_set_region): Likewise.
5596 (gimple_resx_region): Likewise.
5597 (gimple_phi_set_arg): Likewise.
5598 (gimple_phi_arg): Likewise.
5599 (gimple_phi_set_result): Likewise.
5600 (gimple_phi_result_ptr): Likewise.
5601 (gimple_phi_result): Likewise.
5602 (gimple_phi_num_args): Likewise.
5603 (gimple_phi_capacity): Likewise.
5604 (gimple_wce_set_cleanup): Likewise.
5605 (gimple_wce_cleanup_ptr): Likewise.
5606 (gimple_try_set_cleanup): Likewise.
5607 (gimple_try_set_eval): Likewise.
5608 (gimple_try_cleanup_ptr): Likewise.
5609 (gimple_try_eval_ptr): Likewise.
5610 (gimple_eh_else_set_e_body): Likewise.
5611 (gimple_eh_else_set_n_body): Likewise.
5612 (gimple_eh_else_e_body_ptr): Likewise.
5613 (gimple_eh_else_n_body_ptr): Likewise.
5614 (gimple_eh_must_not_throw_set_fndecl): Likewise.
5615 (gimple_eh_must_not_throw_fndecl): Likewise.
5616 (gimple_eh_filter_set_failure): Likewise.
5617 (gimple_eh_filter_set_types): Likewise.
5618 (gimple_eh_filter_failure_ptr): Likewise.
5619 (gimple_eh_filter_types_ptr): Likewise.
5620 (gimple_eh_filter_types): Likewise.
5621 (gimple_catch_set_handler): Likewise.
5622 (gimple_catch_set_types): Likewise.
5623 (gimple_catch_handler_ptr): Likewise.
5624 (gimple_catch_types_ptr): Likewise.
5625 (gimple_catch_types): Likewise.
5626 (gimple_asm_string): Likewise.
5627 (gimple_asm_set_label_op): Likewise.
5628 (gimple_asm_label_op): Likewise.
5629 (gimple_asm_set_clobber_op): Likewise.
5630 (gimple_asm_clobber_op): Likewise.
5631 (gimple_asm_set_output_op): Likewise.
5632 (gimple_asm_output_op_ptr): Likewise.
5633 (gimple_asm_output_op): Likewise.
5634 (gimple_asm_set_input_op): Likewise.
5635 (gimple_asm_input_op_ptr): Likewise.
5636 (gimple_asm_input_op): Likewise.
5637 (gimple_asm_nlabels): Likewise.
5638 (gimple_asm_nclobbers): Likewise.
5639 (gimple_asm_noutputs): Likewise.
5640 (gimple_asm_ninputs): Likewise.
5641 (gimple_bind_set_block): Likewise.
5642 (gimple_bind_block): Likewise.
5643 (gimple_bind_add_seq): Likewise.
5644 (gimple_bind_add_stmt): Likewise.
5645 (gimple_bind_set_body): Likewise.
5646 (gimple_bind_body_ptr): Likewise.
5647 (gimple_bind_append_vars): Likewise.
5648 (gimple_bind_set_vars): Likewise.
5649 (gimple_bind_vars): Likewise.
5650 (gimple_call_clobber_set): Likewise.
5651 (gimple_call_use_set): Likewise.
5652 (gimple_call_set_internal_fn): Likewise.
5653 (gimple_call_set_fntype): Likewise.
5654 (gimple_call_fntype): Likewise.
5655 (gimple_omp_return_lhs_ptr): Likewise.
5656 (gimple_omp_return_lhs): Likewise.
5657 (gimple_omp_return_set_lhs): Likewise.
5658 (gimple_omp_taskreg_set_data_arg): Likewise.
5659 (gimple_omp_taskreg_data_arg_ptr): Likewise.
5660 (gimple_omp_taskreg_data_arg): Likewise.
5661 (gimple_omp_taskreg_set_child_fn): Likewise.
5662 (gimple_omp_taskreg_child_fn_ptr): Likewise.
5663 (gimple_omp_taskreg_child_fn): Likewise.
5664 (gimple_omp_taskreg_set_clauses): Likewise.
5665 (gimple_omp_taskreg_clauses_ptr): Likewise.
5666 (gimple_omp_taskreg_clauses): Likewise.
5667 (gimple_vuse): Likewise.
5668 (gimple_vdef): Likewise.
5669 (gimple_vuse_ptr): Likewise.
5670 (gimple_vdef_ptr): Likewise.
5671 * tree-inline.c (copy_debug_stmt): Likewise.
5672 * tree-phinodes.c (make_phi_node): Likewise.
5673
5674 * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New.
5675 (is_a_helper <gimple_statement_with_ops>::test): New.
5676 (is_a_helper <const gimple_statement_with_memory_ops>::test): New.
5677 (is_a_helper <gimple_statement_with_memory_ops>::test): New.
5678
5679 * gimple-streamer-in.c (input_gimple_stmt): Port from union
5680 access to use of as_a.
5681 * gimple.c (gimple_build_asm_1): Likewise.
5682 (gimple_build_try): Likewise. Also, return a specific subclass
5683 rather than just gimple.
5684 (gimple_build_resx): Port from union access to use of as_a.
5685 (gimple_build_eh_dispatch): Likewise.
5686 (gimple_build_omp_for): Likewise. Also, convert allocation of iter
5687 now that gengtype no longer provides a typed allocator function.
5688 (gimple_copy): Likewise.
5689 * gimple.h (gimple_build_try): Return a specific subclass rather
5690 than just gimple.
5691 * gimplify.c (gimplify_cleanup_point_expr): Replace union access
5692 with subclass access by making use of new return type of
5693 gimple_build_try.
5694 * tree-phinodes.c: (allocate_phi_node): Return a
5695 "gimple_statement_phi *" rather than just a gimple.
5696 (resize_phi_node): Likewise.
5697 (make_phi_node): Replace union access with subclass access by
5698 making use of new return type of allocate_phi_node.
5699 (reserve_phi_args_for_new_edge): Replace union access with as_a.
5700 (remove_phi_arg_num): Accept a "gimple_statement_phi *" rather
5701 than just a gimple.
5702 (remove_phi_args): Update for change to remove_phi_arg_num.
5703
5704 * gdbhooks.py (GimplePrinter.to_string): Update lookup of
5705 code field to reflect inheritance, rather than embedding of
5706 the base gimple type.
5707
5708 2013-11-19 Richard Biener <rguenther@suse.de>
5709
5710 * cfgloop.h (struct loop_iterator): C++-ify, add constructor
5711 and destructor and make fel_next a member function.
5712 (fel_next): Transform into ...
5713 (loop_iterator::next): ... this.
5714 (fel_init): Transform into ...
5715 (loop_iterator::loop_iterator): ... this.
5716 (loop_iterator::~loop_iterator): New.
5717 (FOR_EACH_LOOP): Remove loop-iterator argument.
5718 (FOR_EACH_LOOP_BREAK): Remove no longer necessary macro.
5719 * cfgloop.c, cfgloopmanip.c, config/mn10300/mn10300.c,
5720 graphite-clast-to-gimple.c, graphite-scop-detection.c,
5721 graphite-sese-to-poly.c, ipa-inline-analysis.c, ipa-pure-const.c,
5722 loop-init.c, loop-invariant.c, loop-unroll.c, loop-unswitch.c,
5723 modulo-sched.c, predict.c, sel-sched-ir.c, tree-cfg.c, tree-data-ref.c,
5724 tree-if-conv.c, tree-loop-distribution.c, tree-parloops.c,
5725 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-dce.c,
5726 tree-ssa-loop-ch.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
5727 tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
5728 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
5729 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vrp.c: Adjust
5730 uses of FOR_EACH_LOOP and remove loop_iterator variables. Replace
5731 FOR_EACH_LOOP_BREAK with break.
5732
5733 2013-11-19 Richard Biener <rguenther@suse.de>
5734
5735 PR tree-optimization/59164
5736 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5737 Uncomment assert.
5738 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust check
5739 whether we can create an epilogue loop to reflect thecases where
5740 we create one.
5741
5742 2013-11-19 Andrew MacLeod <amacleod@redhat.com>
5743
5744 * graphite-sese-to-poly.c: Include expr.h.
5745
5746 2013-11-19 Richard Biener <rguenther@suse.de>
5747
5748 PR middle-end/58956
5749 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
5750 loads into stmts that may clobber it.
5751
5752 2013-11-19 Bernd Schmidt <bernds@codesourcery.com>
5753
5754 * cgraphunit.c (symtab_terminator): New variable.
5755 (queued_nodes): Renamed from first. Use symtab_terminator as
5756 initializer.
5757 (analyze_functions): Adjust accordingly.
5758 (cgraph_process_new_functions): Return void.
5759 * cgraph.h (cgraph_process_new_functions): Adjust declaration.
5760
5761 2013-11-19 Marek Polacek <polacek@redhat.com>
5762
5763 * opts.c (common_handle_option): Add -fsanitize=null option.
5764 Turn off -fdelete-null-pointer-checks option when doing the
5765 NULL pointer checking.
5766 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH): Add.
5767 * tree-pass.h (make_pass_ubsan): Declare.
5768 (make_pass_sanopt): Declare.
5769 * timevar.def (TV_TREE_UBSAN): New timevar.
5770 * passes.def: Add pass_sanopt and pass_ubsan.
5771 * ubsan.h (ubsan_null_ckind): New enum.
5772 (ubsan_mismatch_data): New struct.
5773 (ubsan_expand_null_ifn): Declare.
5774 (ubsan_create_data): Adjust declaration.
5775 (ubsan_type_descriptor): Likewise.
5776 * asan.c: Include "ubsan.h".
5777 (pass_data_sanopt): New pass.
5778 (execute_sanopt): New function.
5779 (gate_sanopt): Likewise.
5780 (make_pass_sanopt): Likewise.
5781 (class pass_sanopt): New class.
5782 * ubsan.c: Include tree-pass.h, gimple-ssa.h, gimple-walk.h,
5783 gimple-iterator.h and cfgloop.h.
5784 (PROB_VERY_UNLIKELY): Define.
5785 (tree_type_map_hash): New function.
5786 (ubsan_type_descriptor): Add new parameter.
5787 Improve type name generation.
5788 (ubsan_create_data): Add new parameter. Add pointer data into
5789 ubsan structure.
5790 (ubsan_expand_null_ifn): New function.
5791 (instrument_member_call): Likewise.
5792 (instrument_mem_ref): Likewise.
5793 (instrument_null): Likewise.
5794 (ubsan_pass): Likewise.
5795 (gate_ubsan): Likewise.
5796 (make_pass_ubsan): Likewise.
5797 (ubsan_instrument_unreachable): Adjust ubsan_create_data call.
5798 (class pass_ubsan): New class.
5799 (pass_data_ubsan): New pass.
5800 * flag-types.h (enum sanitize_code): Add SANITIZE_NULL.
5801 * internal-fn.c (expand_UBSAN_NULL): New function.
5802 * cgraphunit.c (varpool_finalize_decl): Call varpool_assemble_decl
5803 even when !flag_toplevel_reorder.
5804 * internal-fn.def (UBSAN_NULL): New.
5805
5806 2013-11-19 Jan Hubicka <jh@suse.cz>
5807
5808 * cgraph.c (cgraph_create_indirect_edge): Use
5809 get_polymorphic_call_info.
5810 * cgraph.h (cgraph_indirect_call_info): Add outer_type,
5811 maybe_in_construction and maybe_derived_type.
5812 * ipa-utils.h (ipa_polymorphic_call_context): New structure.
5813 (ipa_dummy_polymorphic_call_context): New global var.
5814 (possible_polymorphic_call_targets): Add context paramter.
5815 (dump_possible_polymorphic_call_targets): Likewise; update wrappers.
5816 (possible_polymorphic_call_target_p): Likewise.
5817 (get_polymorphic_call_info): New function.
5818 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function.
5819 (add_type_duplicate): Remove forgotten debug output.
5820 (method_class_type): Add sanity check.
5821 (maybe_record_node): Add FINALP parameter.
5822 (record_binfo): Add OUTER_TYPE and OFFSET; walk the inner
5823 by info by get_binfo_at_offset.
5824 (possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET
5825 parameters; pass them to record-binfo.
5826 (polymorphic_call_target_d): Add context and FINAL.
5827 (polymorphic_call_target_hasher::hash): Hash context.
5828 (polymorphic_call_target_hasher::equal): Compare context.
5829 (free_polymorphic_call_targets_hash):
5830 (get_class_context): New function.
5831 (contains_type_p): New function.
5832 (get_polymorphic_call_info): New function.
5833 (walk_bases): New function.
5834 (possible_polymorphic_call_targets): Add context parameter; honnor it.
5835 (dump_possible_polymorphic_call_targets): Dump context.
5836 (possible_polymorphic_call_target_p): Add context.
5837 (update_type_inheritance_graph): Update comment.s
5838 (ipa_set_jf_known_type): Assert that compoentn type is known.
5839 (ipa_note_param_call): Do not tamper with offsets.
5840 (ipa_analyze_indirect_call_uses): When offset is being changed; clear
5841 outer type.
5842 (update_indirect_edges_after_inlining): Likewise.
5843 (ipa_write_indirect_edge_info): Stream new fields.
5844 (ipa_read_indirect_edge_info): Stream in new fields.
5845
5846 2013-11-19 Jan Hubicka <jh@suse.cz>
5847
5848 * tree-pretty-print.c (dump_generic_node): Print class type of
5849 OBJ_TYPE_REF.
5850
5851 2013-11-19 Joey Ye <joey.ye@arm.com>
5852
5853 * config/arm/arm.opt (-marm-pic-data-is-text-relative): New option.
5854 * doc/invoke.texi (-marm-pic-data-is-text-relative): Documentation
5855 for new option.
5856 * config/arm/arm.c (arm_option_override): By default disable
5857 -marm-pic-data-is-text-relative.
5858 (legitimize_pic_address): Use arm_pic_data_is_text_relative.
5859 (arm_assemble_integer): Likewise.
5860 * config/arm/arm.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
5861 New macro to initialize -marm-pic-data-is-text-relative.
5862
5863 2013-11-19 Bin Cheng <bin.cheng@arm.com>
5864
5865 * tree-ssa-loop-ivopts.c (enum ainc_type): New.
5866 (address_cost_data): New field.
5867 (get_address_cost): Compute auto-increment rtx cost in ainc_costs.
5868 Use ainc_costs for auto-increment rtx patterns. Cleanup TWS.
5869
5870 2013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
5871
5872 * config/aarch64/aarch64.md: Remove v8type from all insns.
5873
5874 2013-11-19 Richard Biener <rguenther@suse.de>
5875
5876 PR tree-optimization/57517
5877 * tree-predcom.c (combinable_refs_p): Verify the combination
5878 is always executed when the refs are.
5879
5880 2013-11-19 Jeff Law <law@redhat.com>
5881
5882 * tree-ssa-threadupdate.c: Include ssa-iterators.h
5883 (copy_phi_arg_into_existing_phi): New function.
5884 (any_remaining_duplicated_blocks): Likewise.
5885 (ssa_fix_duplicate_block_edges): Handle multiple duplicated
5886 blocks on a jump threading path.
5887
5888 * tree-ssa-threadupdate.c (thread_through_loop_header): Do not
5889 thread through a joiner which has the latch edge.
5890
5891 2013-11-19 Jan Hubicka <jh@suse.cz>
5892
5893 * md.texi (setmem): Document new parameter.
5894 * optabs.c (maybe_gen_insn): Support 9 operands.
5895 * builtins.c (determine_block_size): Add probable_max_size;
5896 support anti-ranges.
5897 (expand_builtin_memcpy. expand_builtin_memset_args): Pass around
5898 probable_max_size.
5899 * expr.c (emit_block_move_via_movmem, emit_block_move_hints,
5900 emit_block_move, clear_storage_hints, set_storage_via_setmem):
5901 Likewise.
5902 * expr.h (emit_block_move_hints, clear_storage_hints,
5903 set_storage_via_setmem): Update prototype.
5904 * i386.md (setmem, movmem patterns): Add 9th operand.
5905 * i386-protos.h (ix86_expand_set_or_movmem): Update prototype.
5906 * i386.c (ix86_expand_set_or_movmem): Take probable_max_size_exp
5907 argument; pass it to decide_alg.
5908
5909 2013-11-19 David Malcolm <dmalcolm@redhat.com>
5910
5911 * basic-block.h (n_basic_blocks_for_function): Rename macro to...
5912 (n_basic_blocks_for_fn): ...this.
5913
5914 (n_basic_blocks): Eliminate macro as work towards making uses of
5915 cfun be explicit.
5916
5917 * cfgloop.c (init_loops_structure): Update for renaming of
5918 "n_basic_blocks_for_function" to "n_basic_blocks_for_fn".
5919 * graph.c (draw_cfg_nodes_no_loops): Likewise.
5920 * ipa-utils.c (ipa_merge_profiles): Likewise.
5921 * lto-streamer-in.c (make_new_block): Likewise.
5922 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
5923 (dump_function_to_file): Likewise.
5924
5925 * alias.c (init_alias_analysis): Replace usage of "n_basic_blocks"
5926 macro with "n_basic_blocks_for_fn (cfun)".
5927 * bb-reorder.c (partition_hot_cold_basic_blocks): Likewise.
5928 (duplicate_computed_gotos): Likewise.
5929 (reorder_basic_blocks): Likewise.
5930 * bt-load.c (augment_live_range): Likewise.
5931 * cfg.c (expunge_block): Likewise.
5932 (compact_blocks): Likewise.
5933 * cfganal.c (single_pred_before_succ_order): Likewise.
5934 (compute_idf): Likewise.
5935 (flow_dfs_compute_reverse_init): Likewise.
5936 (pre_and_rev_post_order_compute): Likewise.
5937 (pre_and_rev_post_order_compute_fn): Likewise.
5938 (inverted_post_order_compute): Likewise.
5939 (post_order_compute): Likewise.
5940 (print_edge_list): Likewise.
5941 (find_unreachable_blocks): Likewise.
5942 (mark_dfs_back_edges): Likewise.
5943 * cfgcleanup.c (try_optimize_cfg): Likewise.
5944 (try_forward_edges): Likewise.
5945 * cfghooks.c (dump_flow_info): Likewise.
5946 * cfgloop.c (verify_loop_structure): Likewise.
5947 (get_loop_body): Likewise.
5948 (flow_loops_find): Likewise.
5949 * cfgloopmanip.c (add_loop): Likewise.
5950 (remove_path): Likewise.
5951 (find_path): Likewise.
5952 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
5953 (rtl_verify_bb_layout): Likewise.
5954 (entry_of_function): Likewise.
5955 (rtl_create_basic_block): Likewise.
5956 * coverage.c (coverage_compute_cfg_checksum): Likewise.
5957 * cprop.c (one_cprop_pass): Likewise.
5958 (is_too_expensive): Likewise.
5959 * df-core.c (df_compute_cfg_image): Likewise.
5960 (df_compact_blocks): Likewise.
5961 (df_worklist_dataflow_doublequeue): Likewise.
5962 * dominance.c (calculate_dominance_info): Likewise.
5963 (calc_dfs_tree): Likewise.
5964 (calc_dfs_tree_nonrec): Likewise.
5965 (init_dom_info): Likewise.
5966 * domwalk.c (cmp_bb_postorder): Likewise.
5967 * function.c (thread_prologue_and_epilogue_insns): Likewise.
5968 (generate_setjmp_warnings): Likewise.
5969 * fwprop.c (build_single_def_use_links): Likewise.
5970 * gcse.c (is_too_expensive): Likewise.
5971 (one_code_hoisting_pass): Likewise.
5972 (one_pre_gcse_pass): Likewise.
5973 * graphite.c (graphite_initialize): Likewise.
5974 * haifa-sched.c (haifa_sched_init): Likewise.
5975 * ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
5976 * ira.c (split_live_ranges_for_shrink_wrap): Likewise.
5977 * ira-build.c (ira_build): Likewise.
5978 * lcm.c (compute_nearerout): Likewise.
5979 (compute_available): Likewise.
5980 (compute_laterin): Likewise.
5981 (compute_antinout_edge): Likewise.
5982 * lra-lives.c (lra_create_live_ranges): Likewise.
5983 * lra.c (has_nonexceptional_receiver): Likewise.
5984 * mcf.c (create_fixup_graph): Likewise.
5985 * profile.c (branch_prob): Likewise.
5986 * reg-stack.c (convert_regs_2): Likewise.
5987 * regrename.c (regrename_analyze): Likewise.
5988 * reload1.c (has_nonexceptional_receiver): Likewise.
5989 * reorg.c (dbr_schedule): Likewise.
5990 * sched-deps.c (sched_deps_init): Likewise.
5991 * sched-ebb.c (schedule_ebbs): Likewise.
5992 * sched-rgn.c (extend_regions): Likewise.
5993 (schedule_insns): Likewise.
5994 (sched_rgn_init): Likewise.
5995 (extend_rgns): Likewise.
5996 (haifa_find_rgns): Likewise.
5997 * sel-sched-ir.c (recompute_rev_top_order): Likewise.
5998 (sel_recompute_toporder): Likewise.
5999 * sel-sched.c (run_selective_scheduling): Likewise.
6000 * store-motion.c (one_store_motion_pass): Likewise.
6001 (remove_reachable_equiv_notes): Likewise.
6002 * tracer.c (tracer): Likewise.
6003 (tail_duplicate): Likewise.
6004 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
6005 (dump_cfg_stats): Likewise.
6006 (gimple_dump_cfg): Likewise.
6007 (create_bb): Likewise.
6008 (build_gimple_cfg): Likewise.
6009 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
6010 * tree-inline.c (optimize_inline_calls): Likewise.
6011 (fold_marked_statements): Likewise.
6012 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Likewise.
6013 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
6014 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
6015 * tree-ssa-loop-manip.c (compute_live_loop_exits): Likewise.
6016 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6017 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
6018 * tree-ssa-pre.c (do_pre): Likewise.
6019 (init_pre): Likewise.
6020 (compute_avail): Likewise.
6021 * tree-ssa-reassoc.c (init_reassoc): Likewise.
6022 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
6023 * tree-ssa-tail-merge.c (alloc_cluster_vectors): Likewise.
6024 (init_worklist): Likewise.
6025 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
6026 * var-tracking.c (variable_tracking_main_1): Likewise.
6027 (vt_find_locations): Likewise.
6028 (vt_stack_adjustments): Likewise.
6029 * config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
6030 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
6031
6032 2013-11-18 Jan Hubicka <jh@suse.cz>
6033
6034 * profile.c (compute_branch_probabilities): Do not sanity check
6035 run_max.
6036
6037 2013-11-18 Kenneth Zadeck <zadeck@naturalbridge.com>
6038
6039 * tree.c (int_fits_type_p): Change GET_MODE_BITSIZE to
6040 GET_MODE_PRECISION.
6041 * fold-const.c (fold_single_bit_test_into_sign_test)
6042 (fold_binary_loc): Change GET_MODE_BITSIZE to GET_MODE_PRECISION.
6043
6044 2013-11-18 Teresa Johnson <tejohnson@google.com>
6045
6046 * cfgrtl.c (cfg_layout_initialize): Assert if we try to go into
6047 cfglayout after bb reordering.
6048 * passes.def: Move compgotos before bb reordering since it goes into
6049 cfglayout.
6050
6051 2013-11-18 Bernd Schmidt <bernds@codesourcery.com>
6052
6053 * cgraphunit.c (ipa_passes): Don't execute all_lto_gen_passes.
6054 * lto-streamer-out.c (lto_output, produce_asm_for_decls): No longer
6055 static.
6056 (pass_data_ipa_lto_gimple_out, pass_ipa_lto_gimple_out,
6057 make_pass_ipa_lto_gimple_out, pass_data_ipa_lto_finish_out,
6058 pass_ipa_lto_finish_out, make_pass_ipa_lto_finish_out): Remove.
6059 * lto-streamer.h (lto_output, produce_asm_for_decls): Declare.
6060 * pass-manager.h (GCC_PASS_LISTS, class pass_manager):
6061 Remove all_lto_gen_passes.
6062 * passes.c (pass_manager::dump_passes): Remove its use.
6063 (pass_manager::register_pass): Likewise.
6064 (ipa_read_summaries, ipa_read_optimization_summaries): Likewise.
6065 (pass_manager::pass_manager): Don't initialize or use it.
6066 (write_lto): New static function.
6067 (ipa_write_summaries_1, ipa_write_optimization_summaries): Use it
6068 instead of using all_lto_gen_passes.
6069 * passes.def (all_lto_gen_passes, pass_ipa_lto_gimple_out,
6070 pass_ipa_lto_finish_out): Delete.
6071 * tree-pass.h (make_pass_ipa_lto_gimple_out,
6072 make_pass_ipa_lto_finish_out): Don't declare.
6073
6074 2013-11-18 Jeff Law <law@redhat.com>
6075
6076 * tree-ssa-threadupdate.c (redirection_data): Record two
6077 duplicated blocks instead of just one.
6078 (local_info): Explain why we don't create a template for the
6079 second duplicated block in a thread path.
6080 (create_block_for_threading): Accept argument indicating array
6081 index into redirection_data to store its result.
6082 (lookup_redirection_data): Initialize both duplicate blocks.
6083 (ssa_create_duplicates): If a jump threading path needs multiple
6084 blocks duplicated, then duplicate them.
6085 (ssa_fix_duplicate_block_edges): Corresponding changes.
6086 (ssa_fixup_template_block, thread_single_edge): Likewise.
6087
6088 2013-11-18 Marek Polacek <polacek@redhat.com>
6089
6090 * doc/invoke.texi: Extend -fsanitize=undefined documentation.
6091
6092 2013-11-18 Andrew Pinski <apinski@cavium.com>
6093 Steve Ellcey <sellcey@mips.com>
6094
6095 PR target/56552
6096 * config/mips/mips.md (*mov<GPR:mode>_on_<MOVECC:mode>): Remove
6097 type restriction from equality_operator on conditonal move.
6098 (*mov<SCALARF:mode>_on_<MOVECC:mode>): Ditto.
6099 (*mov<GPR:mode>_on_<GPR2:mode>_ne): New.
6100
6101 2013-11-18 Jeff Law <law@redhat.com>
6102
6103 * tree-ssa-threadupdate.c: Fix file block comment.
6104 Fix minor indention issue.
6105
6106 2013-11-18 Uros Bizjak <ubizjak@gmail.com>
6107
6108 * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
6109 ix86_address_subreg_operand. Move subreg checks to
6110 ix86_validate_address_register. Move address override check to
6111 ix86_legitimate_address_p.
6112 (ix86_validate_address_register): New function.
6113 (ix86_legitimate_address_p): Call ix86_validate_address_register
6114 to validate base and index registers. Add address override check
6115 from ix86_decompose_address.
6116 (ix86_decompose_address): Remove.
6117
6118 2013-11-18 Richard Biener <rguenther@suse.de>
6119
6120 PR tree-optimization/59125
6121 PR tree-optimization/54570
6122 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
6123 is not complete do not treat component-references with offset zero
6124 but different fields as equal.
6125 * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
6126 (compute_object_sizes): Apply TLC. Propagate the constant
6127 results into all uses and fold their stmts.
6128 * passes.def (pass_all_optimizations): Move pass_object_sizes
6129 after the first pass_forwprop and before pass_fre.
6130
6131 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6132
6133 * tree.h (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
6134 * tree.c (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
6135 (tree_ctz): Remove cast to unsigned type.
6136 * builtins.c (fold_builtin_memory_op): Likewise.
6137 * dwarf2out.c (descr_info_loc): Likewise.
6138 * godump.c (go_output_typedef): Likewise.
6139 * omp-low.c (expand_omp_simd): Likewise.
6140 * stor-layout.c (excess_unit_span): Likewise.
6141 * tree-object-size.c (addr_object_size): Likewise.
6142 * tree-sra.c (analyze_all_variable_accesses): Likewise.
6143 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
6144 (simplify_rotate): Likewise.
6145 * tree-ssa-strlen.c (adjust_last_stmt, handle_builtin_memcpy)
6146 (handle_pointer_plus): Likewise.
6147 * tree-switch-conversion.c (check_range): Likewise.
6148 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
6149 * tsan.c (instrument_builtin_call): Likewise.
6150 * cfgexpand.c (defer_stack_allocation): Add cast to HOST_WIDE_INT.
6151 * trans-mem.c (tm_log_add): Likewise.
6152 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
6153 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
6154 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
6155 * config/mips/mips.c (r10k_safe_mem_expr_p): Make offset unsigned.
6156
6157 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6158
6159 * tree.h (host_integerp, tree_low_cst): Delete.
6160 * tree.c (host_integerp, tree_low_cst): Delete.
6161
6162 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6163
6164 * expr.h: Update comments to refer to tree_to_[su]hwi rather
6165 than tree_low_cst.
6166 * fold-const.c (fold_binary_loc): Likewise.
6167 * expr.c (store_constructor): Use tree_to_uhwi rather than
6168 tree_low_cst.
6169 * ipa-utils.h (possible_polymorphic_call_target_p): Likewise.
6170 * stmt.c (emit_case_dispatch_table): Likewise.
6171 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
6172
6173 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6174
6175 * alias.c, asan.c, builtins.c, cfgexpand.c, cgraph.c,
6176 config/aarch64/aarch64.c, config/alpha/predicates.md,
6177 config/arm/arm.c, config/darwin.c, config/epiphany/epiphany.c,
6178 config/i386/i386.c, config/iq2000/iq2000.c, config/m32c/m32c-pragma.c,
6179 config/mep/mep-pragma.c, config/mips/mips.c,
6180 config/picochip/picochip.c, config/rs6000/rs6000.c, cppbuiltin.c,
6181 dbxout.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, fold-const.c,
6182 function.c, gimple-fold.c, godump.c, ipa-cp.c, ipa-prop.c, omp-low.c,
6183 predict.c, sdbout.c, stor-layout.c, trans-mem.c, tree-object-size.c,
6184 tree-sra.c, tree-ssa-ccp.c, tree-ssa-forwprop.c,
6185 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c,
6186 tree-ssa-loop-prefetch.c, tree-ssa-strlen.c, tree-stdarg.c,
6187 tree-switch-conversion.c, tree-vect-generic.c, tree-vect-loop.c,
6188 tree-vect-patterns.c, tree-vrp.c, tree.c, tsan.c, ubsan.c, varasm.c:
6189 Replace tree_low_cst (..., 1) with tree_to_uhwi throughout.
6190
6191 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6192
6193 * builtins.c, cilk-common.c, config/aarch64/aarch64.c,
6194 config/alpha/alpha.c, config/arm/arm.c, config/c6x/predicates.md,
6195 config/i386/i386.c, config/ia64/predicates.md, config/s390/s390.c,
6196 coverage.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c, expr.h,
6197 fold-const.c, gimple-fold.c, godump.c, ipa-prop.c, omp-low.c,
6198 predict.c, rtlanal.c, sdbout.c, stmt.c, stor-layout.c, targhooks.c,
6199 tree-cfg.c, tree-data-ref.c, tree-inline.c, tree-ssa-forwprop.c,
6200 tree-ssa-loop-prefetch.c, tree-ssa-phiopt.c, tree-ssa-sccvn.c,
6201 tree-ssa-strlen.c, tree-stdarg.c, tree-vect-data-refs.c,
6202 tree-vect-patterns.c, tree.c, tree.h, var-tracking.c, varasm.c:
6203 Replace tree_low_cst (..., 0) with tree_to_shwi throughout.
6204
6205 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6206
6207 * tree.h (tree_to_shwi, tree_to_uhwi): Declare, with inline expansions.
6208 * tree.c (tree_to_shwi, tree_to_uhwi): New functions.
6209
6210 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6211
6212 * expr.h: Update comments to refer to tree_fits_[su]hwi_p rather
6213 than host_integerp.
6214
6215 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6216
6217 * builtins.c, config/alpha/alpha.c, config/iq2000/iq2000.c,
6218 config/mips/mips.c, dbxout.c, dwarf2out.c, expr.c, fold-const.c,
6219 gimple-fold.c, godump.c, omp-low.c, predict.c, sdbout.c, stor-layout.c,
6220 tree-dfa.c, tree-sra.c, tree-ssa-forwprop.c, tree-ssa-loop-prefetch.c,
6221 tree-ssa-phiopt.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
6222 tree-ssa-structalias.c, tree-vect-data-refs.c, tree-vect-patterns.c,
6223 tree.c, varasm.c, alias.c, cfgexpand.c, config/aarch64/aarch64.c,
6224 config/arm/arm.c, config/epiphany/epiphany.c, config/i386/i386.c,
6225 config/m32c/m32c-pragma.c, config/mep/mep-pragma.c,
6226 config/rs6000/rs6000.c, config/sparc/sparc.c, emit-rtl.c, function.c,
6227 gimplify.c, ipa-prop.c, stmt.c, trans-mem.c, tree-cfg.c,
6228 tree-object-size.c, tree-ssa-ccp.c, tree-ssa-loop-ivcanon.c,
6229 tree-stdarg.c, tree-switch-conversion.c, tree-vect-generic.c,
6230 tree-vrp.c, tsan.c, ubsan.c: Replace host_integerp (..., 1) with
6231 tree_fits_uhwi_p throughout.
6232
6233 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6234
6235 * builtins.c, config/alpha/alpha.c, config/c6x/predicates.md,
6236 config/ia64/predicates.md, config/iq2000/iq2000.c, config/mips/mips.c,
6237 config/s390/s390.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c,
6238 expr.h, fold-const.c, gimple-fold.c, gimple-ssa-strength-reduction.c,
6239 gimple.c, godump.c, graphite-scop-detection.c, graphite-sese-to-poly.c,
6240 omp-low.c, predict.c, rtlanal.c, sdbout.c, simplify-rtx.c,
6241 stor-layout.c, tree-data-ref.c, tree-dfa.c, tree-pretty-print.c,
6242 tree-sra.c, tree-ssa-alias.c, tree-ssa-forwprop.c,
6243 tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c,
6244 tree-ssa-phiopt.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
6245 tree-ssa-strlen.c, tree-ssa-structalias.c, tree-vect-data-refs.c,
6246 tree-vect-patterns.c, tree-vectorizer.h, tree.c, var-tracking.c,
6247 varasm.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
6248 throughout.
6249
6250 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6251
6252 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Declare.
6253 * tree.c (tree_fits_shwi_p, tree_fits_uhwi_p): Define.
6254
6255 2013-11-18 Kirill Yukhin <kirill.yukhin@intel.com>
6256
6257 * config/ia64/ia64.c (ia64_split_tmode_move): Mark load with `dead'
6258 flag if it kills its address, not its post-increment.
6259
6260 2013-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
6261
6262 * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
6263 * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
6264 * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
6265 * gimple.c (gimple_call_get_nobnd_arg_index): Remove.
6266 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
6267 (gimple_call_with_bounds_p): New.
6268 (gimple_call_set_with_bounds): New.
6269 (gimple_call_num_nobnd_args): Remove.
6270 (gimple_call_nobnd_arg): Remove.
6271 * tree.h (CALL_WITH_BOUNDS_P): New.
6272 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
6273
6274 2013-11-18 Trevor Saunders <tsaunders@mozilla.com>
6275
6276 * cgraph.h (symtab_node_asm_name): Rename to symtab_node::asm_name.
6277 (symtab_node_name): Rename to symtab_node::name.
6278 (cgraph_node_asm_name): Remove.
6279 (varpool_node_asm_name): Remove.
6280 * cgraph.c cgraphclones.c cgraphunit.c ipa-cp.c ipa-devirt.c
6281 ipa-inline-analysis.c ipa-inline-transform.c ipa-inline.c
6282 ipa-profile.c ipa-prop.c ipa-pure-const.c ipa-ref.c ipa-reference.c
6283 ipa-utils.c ipa.c symtab.c tree-inline.c tree-sra.c
6284 tree-ssa-structalias.c value-prof.c varpool.c Adjust.
6285
6286 2013-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6287
6288 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): New table.
6289 * config/arm/arm.c (arm_cortex_a53_tune): New.
6290 * config/arm/arm-cores.def (cortex-a53): Use cortex_a53 tuning struct.
6291
6292 2013-11-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
6293
6294 * config.gcc (i[34567]86-*-linux* | ...): Add bdver4.
6295 (case ${target}): Add bdver4.
6296 * config/i386/bdver3.md: Add bdver4.
6297 * config/i386/driver-i386.c: (host_detect_local_cpu): Let
6298 -march=native recognize bdver4 processors.
6299 * config/i386/i386-c.c (ix86_target_macros_internal): Add
6300 bdver4 def_and_undef
6301 * config/i386/i386.c (struct processor_costs bdver4_cost): New.
6302 (m_BDVER4): New definition.
6303 (m_AMD_MULTIPLE): Includes m_BDVER4.
6304 (processor_target_table): Add bdver4 entry.
6305 (static const char *const cpu_names): Add bdver4 entry.
6306 (software_prefetching_beneficial_p): Add bdver3.
6307 (ix86_option_override_internal): Add bdver4 instruction sets.
6308 (ix86_issue_rate): Add bdver4.
6309 (ix86_adjust_cost): Add bdver4.
6310 (ia32_multipass_dfa_lookahead): Add bdver4.
6311 (enum processor_model): Add M_AMDFAM15H_BDVER4.
6312 (struct _arch_names_table): Add M_AMDFAM15H_BDVER4.
6313 (has_dispatch): Add bdver4.
6314 * config/i386/i386.h (TARGET_BDVER4): New definition.
6315 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver4.
6316 (enum processor_type): Add PROCESSOR_BDVER4.
6317 * config/i386/i386.md (define_attr "cpu"): Add bdver4.
6318 * config/i386/i386.opt (flag_dispatch_scheduler): Add bdver4.
6319 * doc/extend.texi: Add details about bdver4.
6320 * doc/invoke.texi: Add details about bdver4. Add
6321 fma4 and fsgsbase for bdver3. Add fma4 for bdver2.
6322
6323 2013-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6324
6325 * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
6326 sdmode_stack_slot also in little-endian mode.
6327
6328 2013-11-17 Jan Hubicka <jh@suse.cz>
6329
6330 * doc/md.texi (setmem, movstr): Update documentation.
6331 * builtins.c (determine_block_size): New function.
6332 (expand_builtin_memcpy): Use it and pass it to emit_block_move_hints.
6333 (expand_builtin_memset_args): Use it and pass it to
6334 set_storage_via_setmem.
6335 * expr.c (emit_block_move_via_movmem): Add min_size/max_size
6336 parameters; update call to expander.
6337 (emit_block_move_hints): Add min_size/max_size parameters.
6338 (clear_storage_hints): Likewise.
6339 (set_storage_via_setmem): Likewise.
6340 (clear_storage): Update.
6341 * expr.h (emit_block_move_hints, clear_storage_hints,
6342 set_storage_via_setmem): Update prototypes.
6343 * i386.c (ix86_expand_set_or_movmem): Add bounds; export.
6344 (ix86_expand_movmem, ix86_expand_setmem): Remove.
6345 (ix86_expand_movmem, ix86_expand_setmem): Remove.
6346 * i386.md (movmem, setmem): Pass parameters.
6347
6348 2013-11-17 Uros Bizjak <ubizjak@gmail.com>
6349
6350 PR target/59153
6351 * config/i386/i386.c (ix86_address_subreg_operand): Do not
6352 reject non-integer subregs.
6353 (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
6354 Move check for invalid x32 constant addresses ...
6355 (ix86_legitimate_address_p): ... here.
6356
6357 2011-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6358
6359 * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
6360 parameter and use it in REG_FRAME_RELATED_EXPR note.
6361 (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
6362 parameter.
6363 (rs6000_emit_prologue): Likewise, but for little endian VSX
6364 stores, pass the source register of the store instead.
6365
6366 2013-11-17 Andrew MacLeod <amacleod@redhat.com>
6367
6368 * gimple.h: Reorder prototypes to match .c declaration order, and
6369 remove protyotypes for functions not in gimple.c.
6370 (LABEL): Move to tree-into-ssa.c.
6371 * gimple.c: Remove unused prototypes.
6372 (get_base_address): Move to tree.c.
6373 * tree.c (get_base_address): Relocate from gimple.c.
6374 * builtins.h (validate_gimple_arglist): Add prototype.
6375 * trans-mem.h (compute_transaction_bits, is_tm_ending): Add prototype.
6376 * cfgexpand.h: New File.
6377 (gimple_assign_rhs_to_tree, estimated_stack_frame_size): Add protoype.
6378 * tree.h (build_addr): Move to tree-nested.h.
6379 * tree-nested.h: New File.
6380 (build_addr, lower_nested_functions, insert_field_into_struct): Add
6381 prototypes.
6382 * tree-inline.h (estimated_stack_frame_size): Remove prototype.
6383 * ipa-inline-analysis.c: Include cfgexpand.h.
6384 * cgraphunit.c: Include tree-nested.h.
6385 * omp-low.c: Likewise.
6386 * tree-parloops.c: Likewise.
6387 * gimple-low.h: Likewise.
6388 * tree-profile.h: Likewise.
6389 * expr.c: Include cfgexpand.h.
6390 * tree-affine.c: Likewise.
6391 * tree-ssa.c: Likewise.
6392 * tree-ssa-loop-im.c: Include trans-mem.h.
6393 * tree-ssa-tail-merge.c: Likewise.
6394 * value-prof.c: Include builtins.h and tree-nested.h.
6395 * tree-into-ssa.c (LABEL): Define here.
6396
6397 2013-11-16 Joern Rennecke <joern.rennecke@embecosm.com>
6398
6399 * config/arc/arc.c (arc_predicate_delay_insns): New function.
6400 (pass_data_arc_predicate_delay_insns): New pass_data instance.
6401 (pass_arc_predicate_delay_insns): New subclass of rtl_opt_class.
6402 (make_pass_arc_predicate_delay_insns): New function.
6403 (arc_init): Register pass_arc_predicate_delay_insns if
6404 flag_delayed_branch is active.
6405
6406 2013-11-16 Joern Rennecke <joern.rennecke@embecosm.com>
6407
6408 * config/arc/constraints.md (Rcq): Simplify register number test.
6409
6410 2013-11-15 Aldy Hernandez <aldyh@redhat.com>
6411
6412 * gimple.h (enum gf_mask): Change the ordering of GF_OMP_* bits.
6413
6414 2013-11-15 Kaz Kojima <kkojima@gcc.gnu.org>
6415
6416 * config/sh/sh.c (barrier_align): Return 0 when barrier_or_label
6417 is null.
6418
6419 2013-11-15 Aldy Hernandez <aldyh@redhat.com>
6420
6421 * Makefile.in (C_COMMON_OBJS): Depend on c-cilkplus.o.
6422 * gimple-pretty-print.c (dump_omp_for): Add case for
6423 GF_OMP_FOR_KIND_CILKSIMD.
6424 * gimple.h (enum gf_mask): Restructure entries to add
6425 GF_OMP_FOR_KIND_CILKSIMD.
6426 * gimplify.c (is_gimple_stmt): Add case for CILK_SIMD.
6427 (gimplify_omp_for): Handle CILK_SIMD.
6428 (gimplify_expr): Add ccase for CILK_SIMD.
6429 * omp-low.c (extract_omp_for_data): Handle CILK_SIMD.
6430 (build_outer_var_ref): Same.
6431 (check_omp_nesting_restrictions): Same.
6432 (lower_rec_input_clauses): Same.
6433 (lower_lastprivate_clauses): Same.
6434 (expand_omp_for): Same.
6435 (execute_expand_omp): Check flag_enable_cilkplus.
6436 (execute_lower_omp): Same.
6437 (diagnose_sb_0): Handle CILK_SIMD.
6438 (diagnose_omp_structured_block_errors): Check flag_enable_cilkplus.
6439 (setjmp_or_longjmp_p): New.
6440 (scan_omp_1_stmt): Error on setjmp/longjmp in a simd construct.
6441 * tree-pretty-print.c (dump_generic_node): Add case for CILK_SIMD.
6442 * tree.def: Add tree code for CILK_SIMD.
6443
6444 2013-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6445
6446 * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
6447 Remove.
6448 (altivec_vperm_<mode>): Revert earlier little endian change.
6449 (*altivec_vperm_<mode>_internal): Remove.
6450 (altivec_vperm_<mode>_uns): Revert earlier little endian change.
6451 (*altivec_vperm_<mode>_uns_internal): Remove.
6452 * config/rs6000/vector.md (vec_realign_load_<mode>): Revise commentary.
6453
6454 2013-11-15 Jeff Law <law@redhat.com>
6455
6456 * basic-block.h (has_abnormal_or_eh_outgoing_edge): Renamed from
6457 has_abnormal_or_outgoing_edge. Check for EH edges as well.
6458 * gimple-ssa-isolate-paths.c
6459 (find_implicit_erroneous_behaviour): Corresponding changes.
6460 Do not check stmt_ends_bb_p or GIMPLE_RETURN anymore.
6461 (find_explicit_erroneous_behaviour): Likewise.
6462
6463 2013-11-15 Jeff Law <law@redhat.com>
6464
6465 * ifcvt.c (find_cond_trap): Properly handle case where
6466 trap_bb == else_bb.
6467
6468 2013-11-15 Andreas Schwab <schwab@linux-m68k.org>
6469
6470 * configure: Regenerate.
6471
6472 2013-11-15 James Greenhalgh <james.greenhalgh@arm.com>
6473
6474 * config/aarch64/aarch64-simd.md: Remove simd_type from all patterns.
6475 * config/aarch64/aarch64.md: Likewise, correct "type" attribute
6476 where it is incorrect or missing.
6477
6478 2013-11-15 Richard Sandiford <rdsandiford@googlemail.com>
6479
6480 * dwarf2out.c (gen_enumeration_type_die): Remove unnecessary
6481 host_integerp test.
6482 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
6483 Use TREE_INT_CST_LOW rather than tree_low_cst when reading the
6484 constant.
6485 * fold-const.c (fold_binary_loc): Replace a host_integerp/tree_low_cst
6486 pair with a TREE_CODE test and TREE_INT_CST_LOW.
6487 * tree-vect-generic.c (expand_vector_divmod): Likewise.
6488
6489 2013-11-15 Richard Biener <rguenther@suse.de>
6490
6491 PR tree-optimization/50262
6492 * tree-ssa-alias.h (struct pt_solution): Split
6493 vars_contains_global into vars_contains_nonlocal,
6494 vars_contains_escaped and vars_contains_escaped_heap.
6495 * tree-ssa-structalias.c (label_visit): Expand comment.
6496 (handle_lhs_call): Adjust comment.
6497 (set_uids_in_ptset): Set the new flags appropriately.
6498 (pt_solution_set): Adjust.
6499 (pt_solution_set_var): Likewise.
6500 (pt_solution_ior_into): Likewise.
6501 (pt_solution_includes_global): Likewise.
6502 (pt_solutions_intersect_1): Optimize escaped handling.
6503 (compute_points_to_sets): Remove heap variable globalization.
6504 (ipa_escaped_pt): Adjust initializer.
6505 (pass_data_ipa_pta): Do not run TODO_update_ssa.
6506 * gimple-pretty-print.c (pp_points_to_solution): Print split flags.
6507 * tree-ssa-alias.c (dump_points_to_solution): Likewise.
6508
6509 2013-11-15 Richard Biener <rguenther@suse.de>
6510
6511 * tree-loop-distribution.c (tree_loop_distribution): Make sure
6512 to distribute all stores.
6513
6514 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6515
6516 * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.
6517
6518 2013-11-15 Joseph Myers <joseph@codesourcery.com>
6519
6520 * acinclude.m4 (GCC_GLIBC_VERSION_GTE_IFELSE): New configure macro.
6521 * configure.ac: Determine target_header_dir earlier.
6522 (--with-glibc-version): New configure option.
6523 Use GCC_GLIBC_VERSION_GTE_IFELSE in enable_gnu_unique_object,
6524 gcc_cv_libc_provides_ssp and gcc_cv_target_ldbl128 tests.
6525 * configure: Regenerate.
6526 * doc/install.texi (--enable-gnu-unique-object): Don't refer to
6527 native toolchains for default.
6528 (--with-glibc-version): Document.
6529
6530 2013-11-15 Eric Botcazou <ebotcazou@adacore.com>
6531
6532 * fold-const.c (fold_binary_loc) <comparisons>: Reuse local variable.
6533
6534 2013-11-15 Uros Bizjak <ubizjak@gmail.com>
6535
6536 * lto-streamer-in.c (input function): Call cgraph_create_node if
6537 cgraph_get_node failed.
6538
6539 2013-11-14 Olivier Hainque <hainque@adacore.com>
6540
6541 * cfgexpand.c (defer_stack_allocation): When optimization is enabled,
6542 defer allocation of DECL_IGNORED_P variables at toplevel unless really
6543 small. Factorize size threshold computation from the existing one.
6544 (expand_used_vars): Refine comment.
6545
6546 2013-11-14 Cong Hou <congh@google.com>
6547
6548 * tree-vectorizer.h (struct dr_with_seg_len): Remove the base
6549 address field as it can be obtained from dr. Rename the struct.
6550 * tree-vect-data-refs.c (comp_dr_with_seg_len_pair): Consider
6551 steps of data references during sort.
6552 (vect_prune_runtime_alias_test_list): Adjust with the change to
6553 struct dr_with_seg_len.
6554 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6555 Adjust with the change to struct dr_with_seg_len.
6556
6557 2013-11-14 Jeff Law <law@redhat.com>
6558
6559 PR middle-end/59127
6560 * basic-block.h (has_abnormal_outgoing_edge_p): Moved here from...
6561 * tree-inline.c (has_abnormal_outgoing_edge_p): Remove.
6562 * gimple-ssa-isolate-paths.c: Include tree-cfg.h.
6563 (find_implicit_erroneous_behaviour): If a block has abnormal outgoing
6564 edges, then ignore it. If the statement exhibiting erroneous
6565 behaviour ends basic blocks, with the exception of GIMPLE_RETURNs,
6566 then we can not optimize.
6567 (find_explicit_erroneous_behaviour): Likewise.
6568
6569 2013-11-14 Andrew MacLeod <amacleod@redhat.com>
6570
6571 * gimplify-me.h: New file. Add prototypes.
6572 * gimplify.h: Don't include gimple.h.
6573 (struct gimplify_hasher, struct gimplify_ctx, is_gimple_sizepos):
6574 Relocate from gimple.h.
6575 * gimple.h (struct gimplify_hasher, struct gimplify_ctx,
6576 is_gimple_sizepos): Move to gimplify.h.
6577 (gimplify_hasher::hash, gimplify_hasher::equal): Move to gimplify.c.
6578 (enum gsi_iterator_update): Move to gimple-iterator.h.
6579 * gimple-iterator.h (enum gsi_iterator_update): Relocate from gimple.h.
6580 * gimplify-me.c: New File.
6581 (force_gimple_operand_1, force_gimple_operand,
6582 force_gimple_operand_gsi_1, force_gimple_operand_gsi,
6583 gimple_regimplify_operands): Relocate from gimplify.c.
6584 * gimplify.c (force_gimple_operand_1, force_gimple_operand,
6585 force_gimple_operand_gsi_1, force_gimple_operand_gsi,
6586 gimple_regimplify_operands): Move to gimplify-me.c.
6587 (gimplify_hasher::hash, gimplify_hasher::equal): Relocate
6588 from gimple.h.
6589 * Makefile.in (OBJS): Add gimplify-me.o
6590 * asan.c: Include only gimplify.h, gimplify-me.h, and/or gimple.h as
6591 required.
6592 * cfgloopmanip.c: Likewise.
6593 * cgraphunit.c: Likewise.
6594 * cilk-common.c: Likewise.
6595 * fold-const.c: Likewise.
6596 * function.c: Likewise.
6597 * gimple-expr.c: Likewise.
6598 * gimple-fold.c: Likewise.
6599 * gimple-ssa-strength-reduction.c: Likewise.
6600 * gimple.c: Likewise.
6601 * graphite-clast-to-gimple.c: Likewise.
6602 * graphite-sese-to-poly.c: Likewise.
6603 * ipa-prop.c: Likewise.
6604 * ipa-split.c: Likewise.
6605 * ipa.c: Likewise.
6606 * langhooks.c: Likewise.
6607 * omp-low.c: Likewise.
6608 * sese.c: Likewise.
6609 * stor-layout.c: Likewise.
6610 * targhooks.c: Likewise.
6611 * trans-mem.c: Likewise.
6612 * tree-affine.c: Likewise.
6613 * tree-cfg.c: Likewise.
6614 * tree-cfgcleanup.c: Likewise.
6615 * tree-complex.c: Likewise.
6616 * tree-if-conv.c: Likewise.
6617 * tree-inline.c: Likewise.
6618 * tree-loop-distribution.c: Likewise.
6619 * tree-nested.c: Likewise.
6620 * tree-parloops.c: Likewise.
6621 * tree-predcom.c: Likewise.
6622 * tree-profile.c: Likewise.
6623 * tree-scalar-evolution.c: Likewise.
6624 * tree-sra.c: Likewise.
6625 * tree-ssa-address.c: Likewise.
6626 * tree-ssa-ccp.c: Likewise.
6627 * tree-ssa-dce.c: Likewise.
6628 * tree-ssa-forwprop.c: Likewise.
6629 * tree-ssa-ifcombine.c: Likewise.
6630 * tree-ssa-loop-im.c: Likewise.
6631 * tree-ssa-loop-ivopts.c: Likewise.
6632 * tree-ssa-loop-manip.c: Likewise.
6633 * tree-ssa-loop-niter.c: Likewise.
6634 * tree-ssa-loop-prefetch.c: Likewise.
6635 * tree-ssa-loop-unswitch.c: Likewise.
6636 * tree-ssa-math-opts.c: Likewise.
6637 * tree-ssa-phiopt.c: Likewise.
6638 * tree-ssa-phiprop.c: Likewise.
6639 * tree-ssa-pre.c: Likewise.
6640 * tree-ssa-propagate.c: Likewise.
6641 * tree-ssa-reassoc.c: Likewise.
6642 * tree-ssa-sccvn.c: Likewise.
6643 * tree-ssa-strlen.c: Likewise.
6644 * tree-ssa.c: Likewise.
6645 * tree-switch-conversion.c: Likewise.
6646 * tree-tailcall.c: Likewise.
6647 * tree-vect-data-refs.c: Likewise.
6648 * tree-vect-generic.c: Likewise.
6649 * tree-vect-loop-manip.c: Likewise.
6650 * tree-vect-loop.c: Likewise.
6651 * tree-vect-patterns.c: Likewise.
6652 * tree-vect-stmts.c: Likewise.
6653 * tree.c: Likewise.
6654 * tsan.c: Likewise.
6655 * value-prof.c: Likewise.
6656 * config/aarch64/aarch64.c: Likewise.
6657 * config/alpha/alpha.c: Likewise.
6658 * config/darwin.c: Likewise.
6659 * config/i386/i386.c: Likewise.
6660 * config/ia64/ia64.c: Likewise.
6661 * config/mep/mep.c: Likewise.
6662 * config/mips/mips.c: Likewise.
6663 * config/rs6000/rs6000.c: Likewise.
6664 * config/s390/s390.c: Likewise.
6665 * config/sh/sh.c: Likewise.
6666 * config/sparc/sparc.c: Likewise.
6667 * config/spu/spu.c: Likewise.
6668 * config/stormy16/stormy16.c: Likewise.
6669 * config/tilegx/tilegx.c: Likewise.
6670 * config/tilepro/tilepro.c: Likewise.
6671 * config/xtensa/xtensa.c: Likewise.
6672
6673 2013-11-14 Diego Novillo <dnovillo@google.com>
6674
6675 * Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
6676
6677 2013-11-14 Diego Novillo <dnovillo@google.com>
6678
6679 * tree.h: Include fold-const.h.
6680 (aggregate_value_p): Moved to function.h.
6681 (alloca_call_p): Moved to calls.h.
6682 (allocate_struct_function): Moved to function.h.
6683 (apply_tm_attr): Moved to attribs.h.
6684 (array_at_struct_end_p): Moved to expr.h.
6685 (array_ref_element_size): Moved to tree-dfa.h.
6686 (array_ref_low_bound): Moved to tree-dfa.h.
6687 (array_ref_up_bound): Moved to tree.h.
6688 (assemble_alias): Moved to cgraph.h.
6689 (bit_from_pos): Moved to stor-layout.h.
6690 (build_addr): Moved to tree-nested.h.
6691 (build_duplicate_type): Moved to tree-inline.h.
6692 (build_fold_addr_expr): Moved to fold-const.h.
6693 (build_fold_addr_expr_with_type): Moved to fold-const.h.
6694 (build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
6695 (build_fold_indirect_ref): Moved to fold-const.h.
6696 (build_fold_indirect_ref_loc): Moved to fold-const.h.
6697 (build_personality_function): Moved to tree.h.
6698 (build_range_check): Moved to fold-const.h.
6699 (build_simple_mem_ref): Moved to fold-const.h.
6700 (build_simple_mem_ref_loc): Moved to fold-const.h.
6701 (build_tm_abort_call): Moved to trans-mem.h.
6702 (byte_from_pos): Moved to stor-layout.h.
6703 (call_expr_flags): Moved to calls.h.
6704 (can_move_by_pieces): Moved to expr.h.
6705 (categorize_ctor_elements): Moved to expr.h.
6706 (change_decl_assembler_name): Moved to gcc-symtab.h.
6707 (combine_comparisons): Moved to fold-const.h.
6708 (complete_ctor_at_level_p): Moved to tree.h.
6709 (component_ref_field_offset): Moved to tree-dfa.h.
6710 (compute_builtin_object_size): Moved to tree-object-size.h.
6711 (compute_record_mode): Moved to stor-layout.h.
6712 (constant_boolean_node): Moved to fold-const.h.
6713 (constructor_static_from_elts_p): Moved to varasm.h.
6714 (cxx11_attribute_p): Moved to attribs.h.
6715 (debug_body): Moved to print-tree.h.
6716 (debug_find_tree): Moved to tree-inline.h.
6717 (debug_fold_checksum): Moved to fold-const.h.
6718 (debug_head): Moved to print-tree.h.
6719 (debug_head): Moved to print-tree.h.
6720 (debug_raw): Moved to print-tree.h.
6721 (debug_tree): Moved to print-tree.h.
6722 (debug_vec_tree): Moved to print-tree.h.
6723 (debug_verbose): Moved to print-tree.h.
6724 (debug_verbose): Moved to print-tree.h.
6725 (decl_attributes): Moved to attribs.h.
6726 (decl_binds_to_current_def_p): Moved to varasm.h.
6727 (decl_default_tls_model): Moved to varasm.h.
6728 (decl_replaceable_p): Moved to varasm.h.
6729 (div_if_zero_remainder): Moved to fold-const.h.
6730 (double_int mem_ref_offset): Moved to fold-const.h.
6731 (dump_addr): Moved to print-tree.h.
6732 (element_precision): Moved to machmode.h.
6733 (expand_dummy_function_end): Moved to function.h.
6734 (expand_function_end): Moved to function.h.
6735 (expand_function_start): Moved to function.h.
6736 (expand_label): Moved to stmt.h.
6737 (expr_first): Moved to tree-iterator.h.
6738 (expr_last): Moved to tree-iterator.h.
6739 (finalize_size_functions): Moved to stor-layout.h.
6740 (finish_builtin_struct): Moved to stor-layout.h.
6741 (finish_record_layout): Moved to stor-layout.h.
6742 (fixup_signed_type): Moved to stor-layout.h.
6743 (fixup_unsigned_type): Moved to stor-layout.h.
6744 (flags_from_decl_or_type): Moved to calls.h.
6745 (fold): Moved to fold-const.h.
6746 (fold_abs_const): Moved to fold-const.h.
6747 (fold_binary): Moved to fold-const.h.
6748 (fold_binary_loc): Moved to fold-const.h.
6749 (fold_binary_to_constant): Moved to fold-const.h.
6750 (fold_build1): Moved to fold-const.h.
6751 (fold_build1_initializer_loc): Moved to fold-const.h.
6752 (fold_build1_loc): Moved to fold-const.h.
6753 (fold_build1_stat_loc): Moved to fold-const.h.
6754 (fold_build2): Moved to fold-const.h.
6755 (fold_build2_initializer_loc): Moved to fold-const.h.
6756 (fold_build2_loc): Moved to fold-const.h.
6757 (fold_build2_stat_loc): Moved to fold-const.h.
6758 (fold_build3): Moved to fold-const.h.
6759 (fold_build3_loc): Moved to fold-const.h.
6760 (fold_build3_stat_loc): Moved to fold-const.h.
6761 (fold_build_call_array): Moved to fold-const.h.
6762 (fold_build_call_array_initializer): Moved to fold-const.h.
6763 (fold_build_call_array_initializer_loc): Moved to fold-const.h.
6764 (fold_build_call_array_loc): Moved to fold-const.h.
6765 (fold_build_cleanup_point_expr): Moved to fold-const.h.
6766 (fold_convert): Moved to fold-const.h.
6767 (fold_convert_loc): Moved to fold-const.h.
6768 (fold_convertible_p): Moved to fold-const.h.
6769 (fold_defer_overflow_warnings): Moved to fold-const.h.
6770 (fold_deferring_overflow_warnings_p): Moved to fold-const.h.
6771 (fold_fma): Moved to fold-const.h.
6772 (fold_ignored_result): Moved to fold-const.h.
6773 (fold_indirect_ref): Moved to fold-const.h.
6774 (fold_indirect_ref_1): Moved to fold-const.h.
6775 (fold_indirect_ref_loc): Moved to fold-const.h.
6776 (fold_read_from_constant_string): Moved to fold-const.h.
6777 (fold_real_zero_addition_p): Moved to fold-const.h.
6778 (fold_single_bit_test): Moved to fold-const.h.
6779 (fold_strip_sign_ops): Moved to fold-const.h.
6780 (fold_ternary): Moved to fold-const.h.
6781 (fold_ternary_loc): Moved to fold-const.h.
6782 (fold_unary): Moved to tree-data-ref.h.
6783 (fold_unary_ignore_overflow): Moved to fold-const.h.
6784 (fold_unary_ignore_overflow_loc): Moved to fold-const.h.
6785 (fold_unary_loc): Moved to fold-const.h.
6786 (fold_unary_to_constant): Moved to fold-const.h.
6787 (fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
6788 (fold_undefer_overflow_warnings): Moved to fold-const.h.
6789 (folding_initializer): Moved to fold-const.h.
6790 (free_temp_slots): Moved to function.h.
6791 (generate_setjmp_warnings): Moved to function.h.
6792 (get_attribute_name): Moved to attribs.h.
6793 (get_identifier): Moved to stringpool.h.
6794 (get_identifier_with_length): Moved to stringpool.h.
6795 (get_inner_reference): Moved to tree.h.
6796 (gimple_alloca_call_p): Moved to calls.h.
6797 (gimplify_parameters): Moved to function.h.
6798 (highest_pow2_factor): Moved to expr.h.
6799 (indent_to): Moved to print-tree.h.
6800 (init_attributes): Moved to attribs.h.
6801 (init_dummy_function_start): Moved to function.h.
6802 (init_function_start): Moved to function.h.
6803 (init_inline_once): Moved to tree-inline.h.
6804 (init_object_sizes): Moved to tree-object-size.h.
6805 (init_temp_slots): Moved to function.h.
6806 (init_tree_optimization_optabs): Moved to optabs.h.
6807 (initialize_sizetypes): Moved to stor-layout.h.
6808 (initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
6809 (initializer_constant_valid_p): Moved to varasm.h.
6810 (int_const_binop): Moved to fold-const.h.
6811 (internal_reference_types): Moved to stor-layout.h.
6812 (invert_tree_comparison): Moved to fold-const.h.
6813 (invert_truthvalue): Moved to fold-const.h.
6814 (invert_truthvalue_loc): Moved to fold-const.h.
6815 (is_tm_ending_fndecl): Moved to trans-mem.h.
6816 (is_tm_may_cancel_outer): Moved to trans-mem.h.
6817 (is_tm_pure): Moved to trans-mem.h.
6818 (is_tm_safe): Moved to trans-mem.h.
6819 (layout_decl): Moved to stor-layout.h.
6820 (layout_type): Moved to stor-layout.h.
6821 (lookup_attribute_spec): Moved to attribs.h.
6822 (make_accum_type): Moved to stor-layout.h.
6823 (make_decl_one_only): Moved to varasm.h.
6824 (make_decl_rtl): Moved to tree.h.
6825 (make_decl_rtl_for_debug): Moved to varasm.h.
6826 (make_fract_type): Moved to stor-layout.h.
6827 (make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
6828 (make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
6829 (make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
6830 (make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
6831 (make_or_reuse_signed_accum_type): Moved to stor-layout.h.
6832 (make_or_reuse_signed_fract_type): Moved to stor-layout.h.
6833 (make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
6834 (make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
6835 (make_range): Moved to fold-const.h.
6836 (make_range_step): Moved to fold-const.h.
6837 (make_sat_signed_accum_type): Moved to stor-layout.h.
6838 (make_sat_signed_fract_type): Moved to stor-layout.h.
6839 (make_sat_unsigned_accum_type): Moved to stor-layout.h.
6840 (make_sat_unsigned_fract_type): Moved to stor-layout.h.
6841 (make_signed_accum_type): Moved to stor-layout.h.
6842 (make_signed_fract_type): Moved to stor-layout.h.
6843 (make_signed_type): Moved to stor-layout.h.
6844 (make_unsigned_accum_type): Moved to stor-layout.h.
6845 (make_unsigned_fract_type): Moved to stor-layout.h.
6846 (make_unsigned_type): Moved to stor-layout.h.
6847 (mark_decl_referenced): Moved to varasm.h.
6848 (mark_referenced): Moved to varasm.h.
6849 (may_negate_without_overflow_p): Moved to fold-const.h.
6850 (maybe_get_identifier): Moved to stringpool.h.
6851 (merge_ranges): Moved to fold-const.h.
6852 (merge_weak): Moved to varasm.h.
6853 (mode_for_size_tree): Moved to stor-layout.h.
6854 (multiple_of_p): Moved to fold-const.h.
6855 (must_pass_in_stack_var_size): Moved to calls.h.
6856 (must_pass_in_stack_var_size_or_pad): Moved to calls.h.
6857 (native_encode_expr): Moved to fold-const.h.
6858 (native_interpret_expr): Moved to fold-const.h.
6859 (non_lvalue): Moved to fold-const.h.
6860 (non_lvalue_loc): Moved to fold-const.h.
6861 (normalize_offset): Moved to stor-layout.h.
6862 (normalize_rli): Moved to stor-layout.h.
6863 (notice_global_symbol): Moved to varasm.h.
6864 (omit_one_operand): Moved to fold-const.h.
6865 (omit_one_operand_loc): Moved to fold-const.h.
6866 (omit_two_operands): Moved to fold-const.h.
6867 (omit_two_operands_loc): Moved to fold-const.h.
6868 (operand_equal_p): Moved to tree-data-ref.h.
6869 (parse_input_constraint): Moved to stmt.h.
6870 (parse_output_constraint): Moved to stmt.h.
6871 (place_field): Moved to stor-layout.h.
6872 (pop_function_context): Moved to function.h.
6873 (pop_temp_slots): Moved to function.h.
6874 (pos_from_bit): Moved to stor-layout.h.
6875 (preserve_temp_slots): Moved to function.h.
6876 (print_node): Moved to print-tree.h.
6877 (print_node_brief): Moved to print-tree.h.
6878 (print_rtl): Moved to rtl.h.
6879 (process_pending_assemble_externals): Moved to varasm.h.
6880 (ptr_difference_const): Moved to fold-const.h.
6881 (push_function_context): Moved to function.h.
6882 (push_struct_function): Moved to function.h.
6883 (push_temp_slots): Moved to function.h.
6884 (record_tm_replacement): Moved to trans-mem.h.
6885 (relayout_decl): Moved to stor-layout.h.
6886 (resolve_asm_operand_names): Moved to stmt.h.
6887 (resolve_unique_section): Moved to varasm.h.
6888 (rli_size_so_far): Moved to stor-layout.h.
6889 (rli_size_unit_so_far): Moved to stor-layout.h.
6890 (round_down): Moved to fold-const.h.
6891 (round_down_loc): Moved to fold-const.h.
6892 (round_up): Moved to fold-const.h.
6893 (round_up_loc): Moved to fold-const.h.
6894 (set_decl_incoming_rtl): Moved to emit-rtl.h.
6895 (set_decl_rtl): Moved to tree.h.
6896 (set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
6897 (set_user_assembler_name): Moved to varasm.h.
6898 (setjmp_call_p): Moved to calls.h.
6899 (size_binop): Moved to fold-const.h.
6900 (size_binop_loc): Moved to fold-const.h.
6901 (size_diffop): Moved to fold-const.h.
6902 (size_diffop_loc): Moved to fold-const.h.
6903 (size_int_kind): Moved to fold-const.h.
6904 (stack_protect_epilogue): Moved to function.h.
6905 (start_record_layout): Moved to stor-layout.h.
6906 (supports_one_only): Moved to varasm.h.
6907 (swap_tree_comparison): Moved to fold-const.h.
6908 (tm_malloc_replacement): Moved to trans-mem.h.
6909 (tree build_fold_addr_expr_loc): Moved to fold-const.h.
6910 (tree build_invariant_address): Moved to fold-const.h.
6911 (tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
6912 (tree_binary_nonzero_warnv_p): Moved to fold-const.h.
6913 (tree_call_nonnegative_warnv_p): Moved to fold-const.h.
6914 (tree_expr_nonnegative_p): Moved to fold-const.h.
6915 (tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
6916 (tree_output_constant_def): Moved to varasm.h.
6917 (tree_overlaps_hard_reg_set): Moved to stmt.h.
6918 (tree_single_nonnegative_warnv_p): Moved to fold-const.h.
6919 (tree_single_nonzero_warnv_p): Moved to fold-const.h.
6920 (tree_swap_operands_p): Moved to fold-const.h.
6921 (tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
6922 (tree_unary_nonzero_warnv_p): Moved to fold-const.h.
6923 (update_alignment_for_field): Moved to stor-layout.h.
6924 (use_register_for_decl): Moved to function.h.
6925 (variable_size): Moved to rtl.h.
6926 (vector_type_mode): Moved to stor-layout.h.
6927 * cgraph.h: Corresponding changes.
6928 * emit-rtl.h: Corresponding changes.
6929 * expr.h: Corresponding changes.
6930 * function.h: Corresponding changes.
6931 * optabs.h: Corresponding changes.
6932 * trans-mem.h: Corresponding changes.
6933 Protect against multiple inclusion.
6934 * tree-inline.h: Corresponding changes.
6935 * tree-iterator.h: Corresponding changes.
6936 * tree-dfa.h: Include expr.h.
6937 * tree-ssanames.h: Include stringpool.h.
6938 * attribs.h: New file.
6939 * calls.h: New file.
6940 * fold-const.h: New file.
6941 * gcc-symtab.h: New file.
6942 * print-rtl.h: New file.
6943 * print-tree.h: New file.
6944 * stmt.h: New file.
6945 * stor-layout.h: New file.
6946 * strinpool.h: New file.
6947 * tree-nested.h: New file
6948 * tree-object-size.h: New file.
6949 * varasm.h: New file.
6950
6951 2013-11-14 Diego Novillo <dnovillo@google.com>
6952
6953 * alias.c: Include varasm.h.
6954 Include expr.h.
6955 * asan.c: Include calls.h.
6956 Include stor-layout.h.
6957 Include varasm.h.
6958 * attribs.c: Include stringpool.h.
6959 Include attribs.h.
6960 Include stor-layout.h.
6961 * builtins.c: Include stringpool.h.
6962 Include stor-layout.h.
6963 Include calls.h.
6964 Include varasm.h.
6965 Include tree-object-size.h.
6966 * calls.c: Include stor-layout.h.
6967 Include varasm.h.
6968 Include stringpool.h.
6969 Include attribs.h.
6970 * cfgexpand.c: Include stringpool.h.
6971 Include varasm.h.
6972 Include stor-layout.h.
6973 Include stmt.h.
6974 Include print-tree.h.
6975 * cgraph.c: Include varasm.h.
6976 Include calls.h.
6977 Include print-tree.h.
6978 * cgraphclones.c: Include stringpool.h.
6979 Include function.h.
6980 Include emit-rtl.h.
6981 Move inclusion of rtl.h earlier in the file.
6982 * cgraphunit.c: Include varasm.h.
6983 Include stor-layout.h.
6984 Include stringpool.h.
6985 * cilk-common.c: Include stringpool.h.
6986 Include stor-layout.h.
6987 * combine.c: Include stor-layout.h.
6988 * config/aarch64/aarch64-builtins.c: Include stor-layout.h.
6989 Include stringpool.h.
6990 Include calls.h.
6991 * config/aarch64/aarch64.c: Include stringpool.h.
6992 Include stor-layout.h.
6993 Include calls.h.
6994 Include varasm.h.
6995 * config/alpha/alpha.c: Include stor-layout.h.
6996 Include calls.h.
6997 Include varasm.h.
6998 * config/arc/arc.c: Include varasm.h.
6999 Include stor-layout.h.
7000 Include stringpool.h.
7001 Include calls.h.
7002 * config/arm/arm.c: Include stringpool.h.
7003 Include stor-layout.h.
7004 Include calls.h.
7005 Include varasm.h.
7006 * config/avr/avr-c.c: Include stor-layout.h.
7007 * config/avr/avr-log.c: Include print-tree.h.
7008 * config/avr/avr.c: Include print-tree.h.
7009 Include calls.h.
7010 Include stor-layout.h.
7011 Include stringpool.h.
7012 * config/bfin/bfin.c: Include varasm.h.
7013 Include calls.h.
7014 * config/c6x/c6x.c: Include stor-layout.h.
7015 Include varasm.h.
7016 Include calls.h.
7017 Include stringpool.h.
7018 * config/cr16/cr16.c: Include stor-layout.h.
7019 Include calls.h.
7020 * config/cris/cris.c: Include varasm.h.
7021 Include stor-layout.h.
7022 Include calls.h.
7023 Include stmt.h.
7024 * config/darwin.c: Include stringpool.h.
7025 Include varasm.h.
7026 Include stor-layout.h.
7027 * config/epiphany/epiphany.c: Include stor-layout.h.
7028 Include varasm.h.
7029 Include calls.h.
7030 Include stringpool.h.
7031 * config/fr30/fr30.c: Include stor-layout.h.
7032 Include varasm.h.
7033 * config/frv/frv.c: Include varasm.h.
7034 Include stor-layout.h.
7035 Include stringpool.h.
7036 * config/h8300/h8300.c: Include stor-layout.h.
7037 Include varasm.h.
7038 Include calls.h.
7039 Include stringpool.h.
7040 * config/i386/i386.c: Include stringpool.h.
7041 Include attribs.h.
7042 Include calls.h.
7043 Include stor-layout.h.
7044 Include varasm.h.
7045 * config/i386/winnt-cxx.c: Include stringpool.h.
7046 Include attribs.h.
7047 * config/i386/winnt.c: Include stringpool.h.
7048 Include varasm.h.
7049 * config/ia64/ia64-c.c: Include stringpool.h.
7050 * config/ia64/ia64.c: Include stringpool.h.
7051 Include stor-layout.h.
7052 Include calls.h.
7053 Include varasm.h.
7054 * config/iq2000/iq2000.c: Include stor-layout.h.
7055 Include calls.h.
7056 Include varasm.h.
7057 * config/lm32/lm32.c: Include calls.h.
7058 * config/m32c/m32c.c: Include stor-layout.h.
7059 Include varasm.h.
7060 Include calls.h.
7061 * config/m32r/m32r.c: Include stor-layout.h.
7062 Include varasm.h.
7063 Include stringpool.h.
7064 Include calls.h.
7065 * config/m68k/m68k.c: Include calls.h.
7066 Include stor-layout.h.
7067 Include varasm.h.
7068 * config/mcore/mcore.c: Include stor-layout.h.
7069 Include varasm.h.
7070 Include stringpool.h.
7071 Include calls.h.
7072 * config/mep/mep.c: Include varasm.h.
7073 Include calls.h.
7074 Include stringpool.h.
7075 Include stor-layout.h.
7076 * config/microblaze/microblaze.c: Include varasm.h.
7077 Include stor-layout.h.
7078 Include calls.h.
7079 * config/mips/mips.c: Include varasm.h.
7080 Include stringpool.h.
7081 Include stor-layout.h.
7082 Include calls.h.
7083 * config/mmix/mmix.c: Include varasm.h.
7084 Include stor-layout.h.
7085 Include calls.h.
7086 * config/mn10300/mn10300.c: Include stor-layout.h.
7087 Include varasm.h.
7088 Include calls.h.
7089 * config/moxie/moxie.c: Include stor-layout.h.
7090 Include varasm.h.
7091 Include calls.h.
7092 * config/msp430/msp430.c: Include stor-layout.h.
7093 Include calls.h.
7094 * config/nds32/nds32.c: Include stor-layout.h.
7095 Include varasm.h.
7096 Include calls.h.
7097 * config/pa/pa.c: Include stor-layout.h.
7098 Include stringpool.h.
7099 Include varasm.h.
7100 Include calls.h.
7101 * config/pdp11/pdp11.c: Include stor-layout.h.
7102 Include varasm.h.
7103 Include calls.h.
7104 * config/picochip/picochip.c: Include calls.h.
7105 Include stor-layout.h.
7106 Include stringpool.h.
7107 Include varasm.h.
7108 * config/rl78/rl78.c: Include varasm.h.
7109 Include stor-layout.h.
7110 Include calls.h.
7111 * config/rs6000/rs6000-c.c: Include stor-layout.h.
7112 Include stringpool.h.
7113 * config/rs6000/rs6000.c: Include stringpool.h.
7114 Include stor-layout.h.
7115 Include calls.h.
7116 Include print-tree.h.
7117 Include varasm.h.
7118 * config/rx/rx.c: Include varasm.h.
7119 Include stor-layout.h.
7120 Include calls.h.
7121 * config/s390/s390.c: Include print-tree.h.
7122 Include stringpool.h.
7123 Include stor-layout.h.
7124 Include varasm.h.
7125 Include calls.h.
7126 * config/score/score.c: Include stringpool.h.
7127 Include calls.h.
7128 Include varasm.h.
7129 Include stor-layout.h.
7130 * config/sh/sh-c.c: Include stringpool.h.
7131 Include attribs.h.h.
7132 * config/sh/sh.c: Include stringpool.h.
7133 Include stor-layout.h.
7134 Include calls.h.
7135 Include varasm.h.
7136 * config/sol2-c.c: Include stringpool.h.
7137 Include attribs.h.
7138 * config/sol2-cxx.c: Include stringpool.h.
7139 * config/sol2.c: Include stringpool.h.
7140 Include varasm.h.
7141 * config/sparc/sparc.c: Include stringpool.h.
7142 Include stor-layout.h.
7143 Include calls.h.
7144 Include varasm.h.
7145 * config/spu/spu-c.c: Include stringpool.h.
7146 * config/spu/spu.c: Include stringpool.h.
7147 Include stor-layout.h.
7148 Include calls.h.
7149 Include varasm.h.
7150 * config/stormy16/stormy16.c: Include stringpool.h.
7151 Include stor-layout.h.
7152 Include varasm.h.
7153 Include calls.h.
7154 * config/tilegx/tilegx.c: Include stringpool.h.
7155 Include stor-layout.h.
7156 Include varasm.h.
7157 Include calls.h.
7158 * config/tilepro/tilepro.c: Include stringpool.h.
7159 Include stor-layout.h.
7160 Include varasm.h.
7161 Include calls.h.
7162 * config/v850/v850-c.c: Include stringpool.h.
7163 Include attribs.h.
7164 * config/v850/v850.c: Include stringpool.h.
7165 Include stor-layout.h.
7166 Include varasm.h.
7167 Include calls.h.
7168 * config/vax/vax.c: Include calls.h.
7169 Include varasm.h.
7170 * config/vms/vms.c: Include stringpool.h.
7171 * config/vxworks.c: Include stringpool.h.
7172 * config/xtensa/xtensa.c: Include stringpool.h.
7173 Include stor-layout.h.
7174 Include calls.h.
7175 Include varasm.h.
7176 * convert.c: Include stor-layout.h.
7177 * coverage.c: Include stringpool.h.
7178 Include stor-layout.h.
7179 * dbxout.c: Include varasm.h.
7180 Include stor-layout.h.
7181 * dojump.c: Include stor-layout.h.
7182 * dse.c: Include stor-layout.h.
7183 * dwarf2asm.c: Include stringpool.h.
7184 Include varasm.h.
7185 * dwarf2cfi.c: Include stor-layout.h.
7186 * dwarf2out.c: Include rtl.h.
7187 Include stringpool.h.
7188 Include stor-layout.h.
7189 Include varasm.h.
7190 Include function.h.
7191 Include emit-rtl.h.
7192 Move inclusion of rtl.h earlier in the file.
7193 * emit-rtl.c: Include varasm.h.
7194 * except.c: Include stringpool.h.
7195 Include stor-layout.h.
7196 * explow.c: Include stor-layout.h.
7197 * expmed.c: Include stor-layout.h.
7198 * expr.c: Include stringpool.h.
7199 Include stor-layout.h.
7200 Include attribs.h.
7201 Include varasm.h.
7202 * final.c: Include varasm.h.
7203 * fold-const.c: Include stor-layout.h.
7204 Include calls.h.
7205 Include tree-iterator.h.
7206 * function.c: Include stor-layout.h.
7207 Include varasm.h.
7208 Include stringpool.h.
7209 * genattrtab.c (write_header): Emit includes for varasm.h,
7210 stor-layout.h and calls.h.
7211 * genautomata.c (main): Likewise.
7212 * genemit.c: Likewise.
7213 * genopinit.c: Likewise.
7214 * genoutput.c (output_prologue): Likewise.
7215 * genpeep.c: Likewise.
7216 * genpreds.c (write_insn_preds_c): Likewise.
7217 * gengtype.c (open_base_files): Add stringpool.h.
7218 * gimple-expr.c: Include stringpool.h.
7219 Include stor-layout.h.
7220 * gimple-fold.c: Include stringpool.h.
7221 Include expr.h.
7222 Include stmt.h.
7223 Include stor-layout.h.
7224 * gimple-low.c: Include tree-nested.h.
7225 Include calls.h.
7226 * gimple-pretty-print.c: Include stringpool.h.
7227 * gimple-ssa-strength-reduction.c: Include stor-layout.h.
7228 Include expr.h.
7229 * gimple-walk.c: Include stmt.h.
7230 * gimple.c: Include calls.h.
7231 Include stmt.h.
7232 Include stor-layout.h.
7233 * gimplify.c: Include stringpool.h.
7234 Include calls.h.
7235 Include varasm.h.
7236 Include stor-layout.h.
7237 Include stmt.h.
7238 Include print-tree.h.
7239 Include expr.h.
7240 * gimplify-me.c: Include stmt.h
7241 Include stor-layout.h
7242 * internal-fn.c: Include stor-layout.h.
7243 * ipa-devirt.c: Include print-tree.h.
7244 Include calls.h.
7245 * ipa-inline-analysis.c: Include stor-layout.h.
7246 Include stringpool.h.
7247 Include print-tree.h.
7248 * ipa-inline.c: Include trans-mem.h.
7249 Include calls.h.
7250 * ipa-prop.c: Include expr.h.
7251 Include stor-layout.h.
7252 Include print-tree.h.
7253 * ipa-pure-const.c: Include print-tree.h.
7254 Include calls.h.
7255 * ipa-reference.c: Include calls.h.
7256 * ipa-split.c: Include stringpool.h.
7257 Include expr.h.
7258 Include calls.h.
7259 * ipa.c: Include calls.h.
7260 Include stringpool.h.
7261 * langhooks.c: Include stringpool.h.
7262 Include attribs.h.
7263 * lto-cgraph.c: Include stringpool.h.
7264 * lto-streamer-in.c: Include stringpool.h.
7265 * lto-streamer-out.c: Include stor-layout.h.
7266 Include stringpool.h.
7267 * omp-low.c: Include stringpool.h.
7268 Include stor-layout.h.
7269 Include expr.h.
7270 * optabs.c: Include stor-layout.h.
7271 Include stringpool.h.
7272 Include varasm.h.
7273 * passes.c: Include varasm.h.
7274 * predict.c: Include calls.h.
7275 * print-rtl.c: Include print-tree.h.
7276 * print-tree.c: Include varasm.h.
7277 Include print-rtl.h.
7278 Include stor-layout.h.
7279 * realmpfr.c: Include stor-layout.h.
7280 * reg-stack.c: Include varasm.h.
7281 * sdbout.c: Include varasm.h.
7282 Include stor-layout.h.
7283 * simplify-rtx.c: Include varasm.h.
7284 * stmt.c: Include varasm.h.
7285 Include stor-layout.h.
7286 * stor-layout.c: Include stor-layout.h.
7287 Include stringpool.h.
7288 Include varasm.h.
7289 Include print-tree.h.
7290 * symtab.c: Include rtl.h.
7291 Include print-tree.h.
7292 Include varasm.h.
7293 Include function.h.
7294 Include emit-rtl.h.
7295 * targhooks.c: Include stor-layout.h.
7296 Include varasm.h.
7297 * toplev.c: Include varasm.h.
7298 Include tree-inline.h.
7299 * trans-mem.c: Include calls.h.
7300 Include function.h.
7301 Include rtl.h.
7302 Include emit-rtl.h.
7303 * tree-affine.c: Include expr.h.
7304 * tree-browser.c: Include print-tree.h.
7305 * tree-call-cdce.c: Include stor-layout.h.
7306 * tree-cfg.c: Include trans-mem.h.
7307 Include stor-layout.h.
7308 Include print-tree.h.
7309 * tree-complex.c: Include stor-layout.h.
7310 * tree-data-ref.c: Include expr.h.
7311 * tree-dfa.c: Include stor-layout.h.
7312 * tree-eh.c: Include expr.h.
7313 Include calls.h.
7314 * tree-emutls.c: Include stor-layout.h.
7315 Include varasm.h.
7316 * tree-if-conv.c: Include stor-layout.h.
7317 * tree-inline.c: Include stor-layout.h.
7318 Include calls.h.
7319 * tree-loop-distribution.c: Include stor-layout.h.
7320 * tree-nested.c: Include stringpool.h.
7321 Include stor-layout.h.
7322 * tree-object-size.c: Include tree-object-size.h.
7323 * tree-outof-ssa.c: Include stor-layout.h.
7324 * tree-parloops.c: Include stor-layout.h.
7325 Include tree-nested.h.
7326 * tree-pretty-print.c: Include stor-layout.h.
7327 Include expr.h.
7328 * tree-profile.c: Include varasm.h.
7329 Include tree-nested.h.
7330 * tree-scalar-evolution.c: Include expr.h.
7331 * tree-sra.c: Include stor-layout.h.
7332 * tree-ssa-address.c: Include stor-layout.h.
7333 * tree-ssa-ccp.c: Include stor-layout.h.
7334 * tree-ssa-dce.c: Include calls.h.
7335 * tree-ssa-dom.c: Include stor-layout.h.
7336 * tree-ssa-forwprop.c: Include stor-layout.h.
7337 * tree-ssa-ifcombine.c: Include stor-layout.h.
7338 * tree-ssa-loop-ivopts.c: Include stor-layout.h.
7339 * tree-ssa-loop-niter.c: Include calls.h.
7340 Include expr.h.
7341 * tree-ssa-loop-prefetch.c: Include stor-layout.h.
7342 * tree-ssa-math-opts.c: Include stor-layout.h.
7343 * tree-ssa-operands.c: Include stmt.h.
7344 Include print-tree.h.
7345 * tree-ssa-phiopt.c: Include stor-layout.h.
7346 * tree-ssa-reassoc.c: Include stor-layout.h.
7347 * tree-ssa-sccvn.c: Include stor-layout.h.
7348 * tree-ssa-sink.c: Include stor-layout.h.
7349 * tree-ssa-strlen.c: Include stor-layout.h.
7350 * tree-ssa-structalias.c: Include stor-layout.h.
7351 Include stmt.h.
7352 * tree-ssa-tail-merge.c: Include stor-layout.h.
7353 Include trans-mem.h.
7354 * tree-ssa-uncprop.c: Include stor-layout.h.
7355 * tree-ssa.c: Include stor-layout.h.
7356 * tree-ssanames.c: Include stor-layout.h.
7357 * tree-streamer-in.c: Include stringpool.h.
7358 * tree-streamer-out.c: Include stor-layout.h.
7359 * tree-switch-conversion.c: Include varasm.h.
7360 Include stor-layout.h.
7361 * tree-tailcall.c: Include stor-layout.h.
7362 * tree-vect-data-refs.c: Include stor-layout.h.
7363 * tree-vect-generic.c: Include stor-layout.h.
7364 * tree-vect-loop.c: Include stor-layout.h.
7365 * tree-vect-patterns.c: Include stor-layout.h.
7366 * tree-vect-slp.c: Include stor-layout.h.
7367 * tree-vect-stmts.c: Include stor-layout.h.
7368 * tree-vectorizer.c: Include stor-layout.h.
7369 * tree-vrp.c: Include stor-layout.h.
7370 Include calls.h.
7371 * tree.c: Include stor-layout.h.
7372 Include calls.h.
7373 Include attribs.h.
7374 Include varasm.h.
7375 * tsan.c: Include expr.h.
7376 * ubsan.c: Include stor-layout.h.
7377 Include stringpool.h.
7378 * value-prof.c: Include tree-nested.h.
7379 Include calls.h.
7380 * var-tracking.c: Include varasm.h.
7381 Include stor-layout.h.
7382 * varasm.c: Include stor-layout.h.
7383 Include stringpool.h.
7384 Include gcc-symtab.h.
7385 Include varasm.h.
7386 * varpool.c: Include varasm.h.
7387 * vmsdbgout.c: Include varasm.h.
7388 * xcoffout.c: Include varasm.h.
7389
7390 2013-11-14 Joern Rennecke <joern.rennecke@embecosm.com>
7391
7392 * config/arc/arc.md (doloop_begin_i): Remove extra alignment;
7393 use (.&-4) idiom.
7394
7395 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7396
7397 * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
7398
7399 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7400 Alan Modra <amodra@gmail.com>
7401
7402 * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
7403 (RS6000_SAVE_TOC): Remove.
7404 (RS6000_TOC_SAVE_SLOT): New macro.
7405 * config/rs6000/rs6000.c (rs6000_parm_offset): New function.
7406 (rs6000_parm_start): Use it.
7407 (rs6000_function_arg_advance_1): Likewise.
7408 (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
7409 (rs6000_emit_epilogue): Likewise.
7410 (rs6000_call_aix): Likewise.
7411 (rs6000_output_function_prologue): Do not save/restore r11
7412 around calling _mcount for ABI_ELFv2.
7413
7414 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7415 Alan Modra <amodra@gmail.com>
7416
7417 * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
7418 Add prototype.
7419 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
7420 (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
7421 * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
7422 (rs6000_function_parms_need_stack): Likewise.
7423 (rs6000_reg_parm_stack_space): Likewise.
7424 (rs6000_function_arg): Do not replace BLKmode by Pmode when
7425 returning a register argument.
7426
7427 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7428 Michael Gschwind <mkg@us.ibm.com>
7429
7430 * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
7431 (ALTIVEC_ARG_MAX_RETURN): Likewise.
7432 (FUNCTION_VALUE_REGNO_P): Use them.
7433 * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
7434 (rs6000_return_in_msb): New function.
7435 (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
7436 Handle aggregates of up to 16 bytes for ELFv2.
7437 (rs6000_function_value): Handle ELFv2 homogeneous aggregates.
7438
7439 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7440 Michael Gschwind <mkg@us.ibm.com>
7441
7442 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
7443 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
7444 (rs6000_discover_homogeneous_aggregate): Likewise.
7445 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
7446 (rs6000_function_arg_advance_1): Likewise.
7447 (rs6000_function_arg): Likewise.
7448 (rs6000_arg_partial_bytes): Likewise.
7449 (rs6000_psave_function_arg): Handle BLKmode arguments.
7450
7451 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7452 Michael Gschwind <mkg@us.ibm.com>
7453
7454 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
7455 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
7456 (rs6000_discover_homogeneous_aggregate): Likewise.
7457 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
7458 (rs6000_function_arg_advance_1): Likewise.
7459 (rs6000_function_arg): Likewise.
7460 (rs6000_arg_partial_bytes): Likewise.
7461 (rs6000_psave_function_arg): Handle BLKmode arguments.
7462
7463 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7464
7465 * config/rs6000/rs6000.c (machine_function): New member
7466 r2_setup_needed.
7467 (rs6000_emit_prologue): Set r2_setup_needed if necessary.
7468 (rs6000_output_mi_thunk): Set r2_setup_needed.
7469 (rs6000_output_function_prologue): Output global entry point
7470 prologue and local entry point marker if needed for ABI_ELFv2.
7471 Output -mprofile-kernel code here.
7472 (output_function_profiler): Do not output -mprofile-kernel
7473 code here; moved to rs6000_output_function_prologue.
7474 (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.
7475
7476 (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
7477 (rs6000_output_function_entry): Likewise.
7478 (rs6000_assemble_integer): Likewise.
7479 (rs6000_elf_encode_section_info): Likewise.
7480 (rs6000_elf_declare_function_name): Do not create dot symbols
7481 or .opd section for ABI_ELFv2.
7482
7483 (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
7484 (rs6000_trampoline_init): Likewise.
7485 (rs6000_elf_file_end): Call file_end_indicate_exec_stack for ABI_ELFv2.
7486
7487 (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check
7488 for function descriptors in ABI_ELFv2.
7489
7490 * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
7491 on ABI_AIX only, not ABI_ELFv2.
7492 ("*call_value_indirect_aix<mode>"): Likewise.
7493 ("*call_indirect_elfv2<mode>"): New pattern.
7494 ("*call_value_indirect_elfv2<mode>"): Likewise.
7495
7496 * config/rs6000/predicates.md ("symbol_ref_operand"): Do not
7497 check for function descriptors in ABI_ELFv2.
7498 ("current_file_function_operand"): Likewise.
7499
7500 * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
7501 (toc): Undefine.
7502 (FUNC_NAME): Define ELFv2 variant.
7503 (JUMP_TARGET): Likewise.
7504 (FUNC_START): Likewise.
7505 (HIDDEN_FUNC): Likewise.
7506 (FUNC_END): Likeiwse.
7507
7508 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7509
7510 * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
7511 and --with-abi=elfv2.
7512 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
7513 * config/rs6000/rs6000.opt (mabi=elfv1): New option.
7514 (mabi=elfv2): Likewise.
7515 * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
7516 * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
7517 if !RS6000_BI_ARCH.
7518 (ELFv2_ABI_CHECK): New macro.
7519 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
7520 rs6000_current_abi to ABI_AIX or ABI_ELFv2.
7521 (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
7522 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
7523 _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.
7524
7525 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
7526 (debug_stack_info): Likewise.
7527 (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
7528 (rs6000_legitimize_tls_address): Likewise.
7529 (rs6000_conditional_register_usage): Likewise.
7530 (rs6000_emit_move): Likewise.
7531 (init_cumulative_args): Likewise.
7532 (rs6000_function_arg_advance_1): Likewise.
7533 (rs6000_function_arg): Likewise.
7534 (rs6000_arg_partial_bytes): Likewise.
7535 (rs6000_output_function_entry): Likewise.
7536 (rs6000_assemble_integer): Likewise.
7537 (rs6000_savres_strategy): Likewise.
7538 (rs6000_stack_info): Likewise.
7539 (rs6000_function_ok_for_sibcall): Likewise.
7540 (rs6000_emit_load_toc_table): Likewise.
7541 (rs6000_savres_routine_name): Likewise.
7542 (ptr_regno_for_savres): Likewise.
7543 (rs6000_emit_prologue): Likewise.
7544 (rs6000_emit_epilogue): Likewise.
7545 (rs6000_output_function_epilogue): Likewise.
7546 (output_profile_hook): Likewise.
7547 (output_function_profiler): Likewise.
7548 (rs6000_trampoline_size): Likewise.
7549 (rs6000_trampoline_init): Likewise.
7550 (rs6000_elf_output_toc_section_asm_op): Likewise.
7551 (rs6000_elf_encode_section_info): Likewise.
7552 (rs6000_elf_reloc_rw_mask): Likewise.
7553 (rs6000_elf_declare_function_name): Likewise.
7554 (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
7555 except that rs6000_compat_align_parm is always assumed false.
7556 (rs6000_gimplify_va_arg): Likewise.
7557 (rs6000_call_aix): Update comment.
7558 (rs6000_sibcall_aix): Likewise.
7559 * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
7560 Treat ABI_ELFv2 the same as ABI_AIX.
7561 ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
7562 ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
7563 ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
7564 ("load_toc_aix_si"): Likewise.
7565 ("load_toc_aix_di"): Likewise.
7566 ("call"): Likewise.
7567 ("call_value"): Likewise.
7568 ("*call_local_aix<mode>"): Likewise.
7569 ("*call_value_local_aix<mode>"): Likewise.
7570 ("*call_nonlocal_aix<mode>"): Likewise.
7571 ("*call_value_nonlocal_aix<mode>"): Likewise.
7572 ("*call_indirect_aix<mode>"): Likewise.
7573 ("*call_value_indirect_aix<mode>"): Likewise.
7574 ("sibcall"): Likewise.
7575 ("sibcall_value"): Likewise.
7576 ("*sibcall_aix<mode>"): Likewise.
7577 ("*sibcall_value_aix<mode>"): Likewise.
7578 * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
7579 ("current_file_function_operand"): Likewise.
7580
7581 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7582
7583 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
7584 by making use of the fact that for vector / floating point arguments
7585 passed both in VRs/FPRs and in the fixed parameter area, the partial
7586 bytes mechanism is in fact not used.
7587
7588 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7589
7590 * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
7591 (rs6000_finish_function_arg): Likewise.
7592 (rs6000_function_arg): Use rs6000_psave_function_arg and
7593 rs6000_finish_function_arg to handle both vector and floating
7594 point arguments that are also passed in GPRs / the stack.
7595
7596 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7597
7598 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
7599 (USE_ALTIVEC_FOR_ARG_P): Likewise.
7600 (rs6000_darwin64_record_arg_advance_recurse): Update uses.
7601 (rs6000_function_arg_advance_1):Likewise.
7602 (rs6000_darwin64_record_arg_recurse): Likewise.
7603 (rs6000_function_arg): Likewise.
7604 (rs6000_arg_partial_bytes): Likewise.
7605
7606 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7607
7608 * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
7609 "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
7610 (rs6000_savres_strategy): Likewise.
7611 (rs6000_return_addr): Likewise.
7612 (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
7613 testing for ABI_V4 (since ABI_DARWIN is impossible here).
7614 (rs6000_emit_prologue): Likewise.
7615 (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
7616 (rs6000_elf_declare_function_name): Remove duplicated test.
7617 * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
7618 for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
7619 ("load_toc_v4_PIC_1_normal"): Likewise.
7620 ("load_toc_v4_PIC_1_476"): Likewise.
7621 ("load_toc_v4_PIC_1b"): Likewise.
7622 ("load_toc_v4_PIC_1b_normal"): Likewise.
7623 ("load_toc_v4_PIC_1b_476"): Likewise.
7624 ("load_toc_v4_PIC_2"): Likewise.
7625 ("load_toc_v4_PIC_3b"): Likewise.
7626 ("load_toc_v4_PIC_3c"): Likewise.
7627 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
7628 (RS6000_SAVE_AREA): Likewise.
7629 (FP_ARG_MAX_REG): Likewise.
7630 (RETURN_ADDRESS_OFFSET): Likewise.
7631 * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
7632 of ABI_AIX.
7633 (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
7634 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7635
7636 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7637
7638 * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
7639 (rs6000_call_aix): ... this. Handle both direct and indirect calls.
7640 Create call insn directly instead of via various gen_... routines.
7641 Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
7642 (rs6000_sibcall_aix): New function.
7643 * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
7644 (TOC_SAVE_OFFSET_64BIT): Likewise.
7645 (AIX_FUNC_DESC_TOC_32BIT): Likewise.
7646 (AIX_FUNC_DESC_TOC_64BIT): Likewise.
7647 (AIX_FUNC_DESC_SC_32BIT): Likewise.
7648 (AIX_FUNC_DESC_SC_64BIT): Likewise.
7649 ("call" expander): Call rs6000_call_aix.
7650 ("call_value" expander): Likewise.
7651 ("call_indirect_aix<ptrsize>"): Replace this pattern ...
7652 ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
7653 ("*call_indirect_aix<mode>"): ... by this insn pattern.
7654 ("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
7655 ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
7656 ("*call_value_indirect_aix<mode>"): ... by this insn pattern.
7657 ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
7658 ("*call_nonlocal_aix<mode>"): ... this pattern.
7659 ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
7660 ("*call_value_nonlocal_aix<mode>"): ... by this pattern.
7661 ("*call_local_aix<mode>"): New insn pattern.
7662 ("*call_value_local_aix<mode>"): Likewise.
7663 ("sibcall" expander): Call rs6000_sibcall_aix.
7664 ("sibcall_value" expander): Likewise. Move earlier in file.
7665 ("*sibcall_nonlocal_aix<mode>"): Replace by ...
7666 ("*sibcall_aix<mode>"): ... this pattern.
7667 ("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
7668 ("*sibcall_value_aix<mode>"): ... this pattern.
7669 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
7670 (rs6000_call_aix): Add prototype.
7671 (rs6000_sibcall_aix): Likewise.
7672
7673 2013-11-14 Jakub Jelinek <jakub@redhat.com>
7674
7675 PR sanitizer/59122
7676 * asan.c (asan_emit_stack_protection): Ensure -fsection-anchors
7677 isn't confused by the artificial decl.
7678
7679 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7680
7681 * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
7682 RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
7683 Instead, add USEs of all modified call-saved CR fields to the
7684 insn storing the result to the stack slot, and provide an
7685 appropriate REG_FRAME_RELATED_EXPR for that insn.
7686 * config/rs6000/rs6000.md ("*crsave"): New insn pattern.
7687 * config/rs6000/predicates.md ("crsave_operation"): New predicate.
7688
7689 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7690 Alan Modra <amodra@gmail.com>
7691
7692 * function.c (assign_parms): Use all.reg_parm_stack_space instead
7693 of re-evaluating REG_PARM_STACK_SPACE target macro.
7694 (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it
7695 instead of evaluating target macro REG_PARM_STACK_SPACE every time.
7696 (assign_parm_find_entry_rtl): Update call.
7697 * calls.c (initialize_argument_information): Update call.
7698 (emit_library_call_value_1): Likewise.
7699 * expr.h (locate_and_pad_parm): Update prototype.
7700
7701 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7702
7703 * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
7704 arguments.
7705
7706 2013-11-14 DJ Delorie <dj@redhat.com>
7707
7708 * config/rx/rx.c (rx_mode_dependent_address_p): Allow offsets up
7709 to 16 bits.
7710
7711 2013-11-14 Jeff Law <law@redhat.com>
7712
7713 * tree-ssa-threadedge.c (thread_through_normal_block): Only push the
7714 EDGE_START_JUMP_THREAD marker if the jump threading path is empty.
7715
7716 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
7717
7718 * doc/invoke.texi: Update documentation for AArch64's -mcpu
7719 and -mtune options.
7720
7721 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
7722
7723 * config/aarch64/aarch64-cores.def (example-1): Remove.
7724 (example-2): Likewise.
7725 * config/aarch64/aarch64-tune.md: Regenerate.
7726 * config/aarch64/aarch64.md: Do not include "large.md" or "small.md".
7727 (generic_sched): Remove "large", "small".
7728 * config/aarch64/large.md: Delete.
7729 * config/aarch64/small.md: Delete.
7730
7731 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
7732
7733 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for cortexa15.
7734 * config/aarch64/aarch64-tune.md: Regenerate.
7735 * config/aarch64/aarch64.md: Include cortex-a15 pipeline model.
7736 (generic_sched): "no" if we are tuning for cortexa15.
7737 * config/arm/cortex-a15.md: Include cortex-a15-neon.md by
7738 relative path.
7739
7740 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
7741
7742 * config/aarch64/aarch64-arches.def (armv8-a): Tune for cortex-a53.
7743 * config/aarch64/aarch64.md: Do not include aarch64-generic.md.
7744 * config/aarch64/aarch64.c (aarch64_tune): Initialize to cortexa53.
7745 (all_cores): Use cortexa53 when tuning for "generic".
7746 (aarch64_override_options): Fix comment.
7747 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Set to cortexa53.
7748 * config/aarch64/aarch64-generic.md: Delete.
7749
7750 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
7751
7752 * config/aarch64/aarch64.c (all_architectures): Remove "generic".
7753
7754 2013-11-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7755
7756 * config/aarch64/aarch64.c: Include aarch-cost-tables.h.
7757 (generic_rtx_cost_table): Remove.
7758 (aarch64_rtx_costs): Use fields from cpu_cost_table.
7759 * config/aarch64/aarch64-protos.h (tune_params): Use cpu_cost_table for
7760 insn_extra_cost.
7761 (cpu_rtx_cost_table): Remove.
7762
7763 2013-11-14 Julian Brown <julian@codesourcery.com>
7764 Joey Ye <joey.ye@arm.com>
7765
7766 * config/arm/arm.c (arm_cortex_m_branch_cost): New.
7767 (arm_v7m_tune): New.
7768 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune, arm_9e_tune,
7769 arm_v6t2_tune, arm_cortex_tune, arm_cortex_a15_tune,
7770 arm_cortex_a5_tune, arm_v6m_tune): Add comments for Sched adj cost.
7771 * config/arm/arm-cores.def (cortex-m4, cortex-m3): Use arm_v7m_tune.
7772
7773 2013-11-14 Kirill Yukhin <kirill.yukhin@intel.com>
7774
7775 PR target/57491
7776 * config/ia64/ia64.c (ia64_split_tmode_move): Relax `dead'
7777 flag setting.
7778
7779 2013-11-14 Jakub Jelinek <jakub@redhat.com>
7780 Uros Bizjak <ubizjak@gmail.com>
7781
7782 PR target/59101
7783 * config/i386/i386.md (*anddi_2): Only allow CCZmode if
7784 operands[2] satisfies_constraint_Z that might have bit 31 set.
7785
7786 2013-11-13 Jeff Law <law@redhat.com>
7787
7788 PR tree-optimization/59102
7789 * gimple-ssa-isolate-paths.c
7790 (insert_trap_and_remove_trailing_statments): Ensure STMT is a
7791 gimple assignment before looking at gimple_assign_lhs.
7792
7793 2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
7794
7795 * ira.c: Add comment about threads at the top of file.
7796
7797 2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
7798
7799 * ira-color.c (coalesce_allocnos): Don't allocate and free
7800 sorted_copies.
7801
7802 2013-11-14 Tom de Vries <tom@codesourcery.com>
7803
7804 * tree-ssa-tail-merge.c (gimple_equal_p): Add test for structural
7805 equality for GIMPLE_ASSIGN.
7806
7807 2013-11-14 Tom de Vries <tom@codesourcery.com>
7808
7809 * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Factor new
7810 function out of ...
7811 (gimple_equal_p): ... here.
7812
7813 2013-11-14 Tom de Vries <tom@codesourcery.com>
7814
7815 * trans-mem.c (is_tm_ending): New function.
7816 * gimple.h (is_tm_ending): Declare.
7817 * tree-ssa-tail-merge.c (gimple_equal_p): Remove test on
7818 BUILT_IN_TM_COMMIT.
7819 (find_duplicate): Use is_tm_ending instead of is_tm_ending_fndecl.
7820
7821 2013-11-14 Tom de Vries <tom@codesourcery.com>
7822
7823 * tree-ssa-tail-merge.c (gimple_equal_p): Remove equal variable.
7824
7825 2013-11-13 Andrew MacLeod <amacleod@redhat.com>
7826
7827 * gimple-walk.h: New File. Relocate prototypes from gimple.h.
7828 (struct walk_stmt_info): Relocate here from gimple.h.
7829 * gimple-iterator.h: New File. Relocate prototypes from gimple.h.
7830 (struct gimple_stmt_iterator_d): Relocate here from gimple.h.
7831 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
7832 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
7833 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
7834 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
7835 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Relocate here from gimple.h.
7836 * gimple.h (struct gimple_stmt_iterator_d): Move to gimple-iterator.h.
7837 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
7838 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
7839 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
7840 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
7841 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Move to gimple-iterator.h.
7842 (struct walk_stmt_info): Move to gimple-walk.h.
7843 (gimple_seq_set_location): Move to gimple.c
7844 * gimple-walk.c: New File.
7845 (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, walk_gimple_op,
7846 walk_gimple_stmt, get_base_loadstore, walk_stmt_load_store_addr_ops,
7847 walk_stmt_load_store_ops): Relocate here from gimple.c.
7848 * gimple-iterator.c: Include gimple-iterator.h.
7849 * gimple.c (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm,
7850 walk_gimple_op, walk_gimple_stmt, get_base_loadstore,
7851 walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Move to
7852 gimple-walk.c.
7853 (gimple_seq_set_location): Relocate from gimple.h.
7854 * tree-phinodes.h (set_phi_nodes): Move to tree-phinodes.c.
7855 * tree-phinodes.c (set_phi_nodes): Relocate from tree-phinodes.h.
7856 * gengtype.c (open_base_files): Add gimple-iterator.h to include list.
7857 * Makefile.in (OBJS): Add gimple-walk.o
7858 * asan.c: Update Include list as required for gimple-iterator.h and
7859 gimple-walk.h.
7860 * cfgexpand.c: Likewise.
7861 * cfgloop.c: Likewise.
7862 * cfgloopmanip.c: Likewise.
7863 * cgraph.c: Likewise.
7864 * cgraphbuild.c: Likewise.
7865 * cgraphunit.c: Likewise.
7866 * gimple-fold.c: Likewise.
7867 * gimple-low.c: Likewise.
7868 * gimple-pretty-print.c: Likewise.
7869 * gimple-ssa-isolate-paths.c: Likewise.
7870 * gimple-ssa-strength-reduction.c: Likewise.
7871 * gimple-streamer-in.c: Likewise.
7872 * gimple-streamer-out.c: Likewise.
7873 * gimplify.c: Likewise.
7874 * graphite-blocking.c: Likewise.
7875 * graphite-clast-to-gimple.c: Likewise.
7876 * graphite-dependences.c: Likewise.
7877 * graphite-interchange.c: Likewise.
7878 * graphite-optimize-isl.c: Likewise.
7879 * graphite-poly.c: Likewise.
7880 * graphite-scop-detection.c: Likewise.
7881 * graphite-sese-to-poly.c: Likewise.
7882 * graphite.c: Likewise.
7883 * ipa-inline-analysis.c: Likewise.
7884 * ipa-profile.c: Likewise.
7885 * ipa-prop.c: Likewise.
7886 * ipa-pure-const.c: Likewise.
7887 * ipa-split.c: Likewise.
7888 * lto-streamer-in.c: Likewise.
7889 * lto-streamer-out.c: Likewise.
7890 * omp-low.c: Likewise.
7891 * predict.c: Likewise.
7892 * profile.c: Likewise.
7893 * sese.c: Likewise.
7894 * tracer.c: Likewise.
7895 * trans-mem.c: Likewise.
7896 * tree-call-cdce.c: Likewise.
7897 * tree-cfg.c: Likewise.
7898 * tree-cfgcleanup.c: Likewise.
7899 * tree-complex.c: Likewise.
7900 * tree-data-ref.c: Likewise.
7901 * tree-dfa.c: Likewise.
7902 * tree-eh.c: Likewise.
7903 * tree-emutls.c: Likewise.
7904 * tree-if-conv.c: Likewise.
7905 * tree-inline.c: Likewise.
7906 * tree-into-ssa.c: Likewise.
7907 * tree-loop-distribution.c: Likewise.
7908 * tree-nested.c: Likewise.
7909 * tree-nrv.c: Likewise.
7910 * tree-object-size.c: Likewise.
7911 * tree-outof-ssa.c: Likewise.
7912 * tree-parloops.c: Likewise.
7913 * tree-predcom.c: Likewise.
7914 * tree-profile.c: Likewise.
7915 * tree-scalar-evolution.c: Likewise.
7916 * tree-sra.c: Likewise.
7917 * tree-ssa-ccp.c: Likewise.
7918 * tree-ssa-coalesce.c: Likewise.
7919 * tree-ssa-copy.c: Likewise.
7920 * tree-ssa-copyrename.c: Likewise.
7921 * tree-ssa-dce.c: Likewise.
7922 * tree-ssa-dom.c: Likewise.
7923 * tree-ssa-dse.c: Likewise.
7924 * tree-ssa-forwprop.c: Likewise.
7925 * tree-ssa-ifcombine.c: Likewise.
7926 * tree-ssa-live.c: Likewise.
7927 * tree-ssa-loop-ch.c: Likewise.
7928 * tree-ssa-loop-im.c: Likewise.
7929 * tree-ssa-loop-ivcanon.c: Likewise.
7930 * tree-ssa-loop-ivopts.c: Likewise.
7931 * tree-ssa-loop-manip.c: Likewise.
7932 * tree-ssa-loop-niter.c: Likewise.
7933 * tree-ssa-loop-prefetch.c: Likewise.
7934 * tree-ssa-loop.c: Likewise.
7935 * tree-ssa-math-opts.c: Likewise.
7936 * tree-ssa-phiopt.c: Likewise.
7937 * tree-ssa-phiprop.c: Likewise.
7938 * tree-ssa-pre.c: Likewise.
7939 * tree-ssa-propagate.c: Likewise.
7940 * tree-ssa-reassoc.c: Likewise.
7941 * tree-ssa-sink.c: Likewise.
7942 * tree-ssa-strlen.c: Likewise.
7943 * tree-ssa-structalias.c: Likewise.
7944 * tree-ssa-tail-merge.c: Likewise.
7945 * tree-ssa-ter.c: Likewise.
7946 * tree-ssa-threadedge.c: Likewise.
7947 * tree-ssa-threadupdate.c: Likewise.
7948 * tree-ssa-uncprop.c: Likewise.
7949 * tree-ssa-uninit.c: Likewise.
7950 * tree-ssa.c: Likewise.
7951 * tree-stdarg.c: Likewise.
7952 * tree-switch-conversion.c: Likewise.
7953 * tree-tailcall.c: Likewise.
7954 * tree-vect-data-refs.c: Likewise.
7955 * tree-vect-generic.c: Likewise.
7956 * tree-vect-loop-manip.c: Likewise.
7957 * tree-vect-loop.c: Likewise.
7958 * tree-vect-patterns.c: Likewise.
7959 * tree-vect-slp.c: Likewise.
7960 * tree-vect-stmts.c: Likewise.
7961 * tree-vectorizer.c: Likewise.
7962 * tree-vrp.c: Likewise.
7963 * tree.c: Likewise.
7964 * tsan.c: Likewise.
7965 * value-prof.c: Likewise.
7966 * vtable-verify.c: Likewise.
7967
7968 2013-11-13 Steven Bosscher <steven@gcc.gnu.org>
7969
7970 * gimple-ssa-isolate-paths.c (pass_isolate_erroneous_paths): Comment
7971 fix.
7972
7973 2013-11-13 Jeff Law <law@redhat.com>
7974
7975 * PR middle-end/59119
7976 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour): New
7977 function, extracted from gimple_ssa_isolate_erroneous_paths.
7978 (find_explicit_erroneous_behaviour): Similarly.
7979 (insert_trap_and_remove_trailing_statements): Remove statements
7980 in reverse order.
7981
7982 2013-11-13 Steven Bosscher <steven@gcc.gnu.org>
7983
7984 * cfgrtl.c (can_fallthru): Reorder code to move tablejump check up.
7985 Make that check explicit. BB_HEAD cannot be NULL, remove check for it.
7986 * haifa-sched.c (ready_remove_first_dispatch): Check INSN_P before
7987 looking at INSN_CODE.
7988 * reload1.c (delete_dead_insn) Do not expect JUMP_TABLE_DATA to be an
7989 active_insn_p object, respect basic block boundaries.
7990 * reorg.c (follow_jumps): Use invariant that JUMP_TABLE_DATA always
7991 follows immediately after the jump table data label.
7992 * config/nds32/nds32.c (nds32_output_casesi_pc_relative): Likewise.
7993 * config/sh/sh.c (barrier_align): Likewise. Rearrange code such
7994 that JUMP_TABLE_DATA is not expected to be an active_insn_p object.
7995
7996 2013-11-13 Teresa Johnson <tejohnson@google.com>
7997
7998 PR ipa/58862
7999 * predict.c (drop_profile): Error is currently too strict.
8000 (handle_missing_profiles): Pass call_count to drop_profile.
8001
8002 2013-11-13 Teresa Johnson <tejohnson@google.com>
8003
8004 PR ipa/58862
8005 * ipa-inline.c (edge_badness): Fix overflow.
8006
8007 2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
8008
8009 PR rtl-optimization/59036
8010 * ira-color.c (struct allocno_color_data): Add new members
8011 first_thread_allocno, next_thread_allocno, thread_freq.
8012 (sorted_copies): New static var.
8013 (allocnos_conflict_by_live_ranges_p, copy_freq_compare_func): Move up.
8014 (allocno_thread_conflict_p, merge_threads)
8015 (form_threads_from_copies, form_threads_from_bucket)
8016 (form_threads_from_colorable_allocno, init_allocno_threads): New
8017 functions.
8018 (bucket_allocno_compare_func): Add comparison by thread frequency
8019 and threads.
8020 (add_allocno_to_ordered_bucket): Rename to
8021 add_allocno_to_ordered_colorable_bucket. Remove parameter.
8022 (push_only_colorable): Call form_threads_from_bucket.
8023 (color_pass): Call init_allocno_threads. Use
8024 consideration_allocno_bitmap instead of coloring_allocno_bitmap
8025 for nuillify allocno color data.
8026 (ira_initiate_assign, ira_finish_assign): Allocate/free sorted_copies.
8027 (coalesce_allocnos): Use static sorted copies.
8028
8029 2013-11-13 Jakub Jelinek <jakub@redhat.com>
8030
8031 * passes.c (execute_todo): Don't call do_per_function if
8032 flags are zero.
8033 (execute_one_ipa_transform_pass, execute_one_pass): Don't call
8034 execute_function_dump if dump_file is NULL.
8035
8036 2013-11-13 Martin Jambor <mjambor@suse.cz>
8037
8038 * cgraph.c (cgraph_get_create_node): Do what
8039 cgraph_get_create_real_symbol_node used to do.
8040 (cgraph_get_create_real_symbol_node): Removed. Changed all users to
8041 call cgraph_get_create_node.
8042 * cgraph.h (cgraph_get_create_real_symbol_node): Removed.
8043 * lto-streamer-in.c (input_function): Call cgraph_get_node instead of
8044 cgraph_get_create_node. Assert we get a node.
8045
8046 2013-11-13 Tejas Belagod <tejas.belagod@arm.com>
8047
8048 * config/aarch64/aarch64-simd.md (vec_extract): New.
8049
8050 2013-11-13 Tejas Belagod <tejas.belagod@arm.com>
8051
8052 * config/aarch64/aarch64-simd.md (vec_set<mode>): Add w -> w option to
8053 the constraint.
8054
8055 2013-11-13 Eric Botcazou <ebotcazou@adacore.com>
8056
8057 * cfgexpand.c (expand_used_vars): Allocate space for partitions based
8058 on PARM_DECLs or RESULT_DECLs only if they are ignored for debug info
8059 or if optimization is enabled.
8060 * tree-ssa-coalesce.c (coalesce_ssa_name): If optimization is disabled,
8061 require that all the names based on a PARM_DECL or a RESULT_DECL that
8062 isn't ignored for debug info be coalesced.
8063
8064 2013-11-13 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8065
8066 * config/c6x/c6x.c: Include "gimple-expr.h".
8067
8068 2013-11-13 Richard Biener <rguenther@suse.de>
8069
8070 * gimple-streamer-out.c (output_gimple_stmt): Also wrap
8071 decls in ADDR_EXPR operands inside a MEM_REF and optimize that.
8072 * gimple-streamer-in.c (input_gimple_stmt): Remove now dead code
8073 dealing with type mismatches inside component reference chains.
8074
8075 2013-11-13 Marc Glisse <marc.glisse@inria.fr>
8076
8077 PR tree-optimization/59077
8078 * ipa-pure-const.c (better_state): Update *state.
8079
8080 2013-11-13 Christophe Lyon <christophe.lyon@linaro.org>
8081
8082 * config/aarch64/aarch64.h (FRAME_GROWS_DOWNWARD): Define to 1.
8083 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
8084 Update offset calculations.
8085
8086 2013-11-13 Eric Botcazou <ebotcazou@adacore.com>
8087
8088 PR ada/35998
8089 * dwarf2out.c (add_byte_size_attribute): Also use int_size_in_bytes
8090 for fields. Do not add the attribute if the size is negative.
8091
8092 2013-11-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8093
8094 * config/arm/arm.c: Include aarch-cost-tables.h.
8095 (generic_extra_costs): Move from here...
8096 * config/arm/aarch-cost-tables.h: ... To here. New file.
8097
8098 2013-11-13 Alexander Ivchenko <alexander.ivchenko@intel.com>
8099 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8100 Sergey Lega <sergey.s.lega@intel.com>
8101 Anna Tikhonova <anna.tikhonova@intel.com>
8102 Ilya Tocar <ilya.tocar@intel.com>
8103 Andrey Turetskiy <andrey.turetskiy@intel.com>
8104 Ilya Verbin <ilya.verbin@intel.com>
8105 Kirill Yukhin <kirill.yukhin@intel.com>
8106 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8107
8108 * config/i386/i386.c (ix86_print_operand): Support z-masking.
8109 * config/i386/predicate.md (const_0_to_4_operand): New.
8110 (const_0_to_5_operand): Ditto.
8111 * config/i386/sse.md (UNSPEC_COMPRESS): New.
8112 (UNSPEC_COMPRESS_STORE): Ditto.
8113 (UNSPEC_EXPAND): Ditto.
8114 (UNSPEC_EMBEDDED_ROUNDING): Ditto.
8115 (define_mode_attr ssescalarsize): Ditto.
8116 (avx512f_load<mode>_mask): Ditto.
8117 (avx512f_store<mode>_mask): Ditto.
8118 (avx512f_storedqu<mode>_mask): Ditto.
8119 (avx512f_vmcmp<mode>3_mask): Ditto.
8120 (avx512f_fmadd_<mode>_mask): Ditto.
8121 (avx512f_fmadd_<mode>_mask3): Ditto.
8122 (avx512f_fmsub_<mode>_mask): Ditto.
8123 (avx512f_fmsub_<mode>_mask3): Ditto.
8124 (avx512f_fnmadd_<mode>_mask): Ditto.
8125 (avx512f_fnmadd_<mode>_mask3): Ditto.
8126 (avx512f_fnmsub_<mode>_mask): Ditto.
8127 (avx512f_fnmsub_<mode>_mask3): Ditto.
8128 (avx512f_fmaddsub_<mode>_mask): Ditto.
8129 (avx512f_fmaddsub_<mode>_mask3): Ditto.
8130 (avx512f_fmsubadd_<mode>_mask): Ditto.
8131 (avx512f_fmsubadd_<mode>_mask3): Ditto.
8132 (vec_unpacku_float_lo_v16si): Ditto.
8133 (avx512f_vextract<shuffletype>32x4_mask): Ditto.
8134 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
8135 (avx512f_vextract<shuffletype>64x4_mask): Ditto.
8136 (vec_extract_lo_<mode>_maskm): Ditto.
8137 (vec_extract_hi_<mode>_maskm): Ditto.
8138 (avx512f_vternlog<mode>_mask): Ditto.
8139 (avx512f_shufps512_mask): Ditto.
8140 (avx512f_fixupimm<mode>_mask): Ditto.
8141 (avx512f_shufpd512_mask): Ditto.
8142 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
8143 (avx512f_<code>v8div16qi2_mask/trunc): Ditto.
8144 (*avx512f_<code>v8div16qi2_store_mask): Ditto.
8145 (ashr<mode>3<mask_name>): Ditto.
8146 (avx512f_vinsert<shuffletype>32x4_mask): Ditto.
8147 (avx512f_vinsert<shuffletype>64x4_mask): Ditto.
8148 (avx512f_shuf_<shuffletype>64x2_mask): Ditto.
8149 (avx512f_shuf_<shuffletype>32x4_mask): Ditto.
8150 (avx512f_pshufdv3_mask): Ditto.
8151 (avx512f_perm<mode>_mask): Ditto.
8152 (avx512f_vpermi2var<mode>3_mask): Ditto.
8153 (avx512f_vpermt2var<mode>3_mask): Ditto.
8154 (avx512f_compress<mode>_mask): Ditto.
8155 (avx512f_compressstore<mode>_mask): Ditto.
8156 (avx512f_expand<mode>_mask): Ditto.
8157 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Extend
8158 to support masking.
8159 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
8160 (<plusminus_insn><mode>3<mask_name>): Ditto.
8161 (*<plusminus_insn><mode>3<mask_name>): Ditto.
8162 (mul<mode>3<mask_name>): Ditto.
8163 (*mul<mode>3<mask_name>): Ditto.
8164 (<sse>_div<mode>3<mask_name>): Ditto.
8165 (<mask_codefor>rcp14<mode><mask_name>): Ditto.
8166 (<sse>_sqrt<mode>2<mask_name>): Ditto.
8167 (<mask_codefor>rsqrt14<mode><mask_name>): Ditto.
8168 (<code><mode>3<mask_name>/smaxmin): Ditto.
8169 (*<code><mode>3_finite<mask_name>/smaxmin): Ditto.
8170 (*<code><mode>3<mask_name>/smaxmin): Ditto.
8171 (float<sseintvecmodelower><mode>2<mask_name>): Ditto.
8172 (ufloatv16siv16sf2<mask_name>): Ditto.
8173 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name>): Ditto.
8174 (<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name>): Ditto.
8175 (<fixsuffix>fix_truncv16sfv16si2<mask_name>): Ditto.
8176 (float<si2dfmodelower><mode>2<mask_name>): Ditto.
8177 (ufloatv8siv8df<mask_name>): Ditto.
8178 (<mask_codefor>avx512f_cvtpd2dq512<mask_name>): Ditto.
8179 (avx512f_ufix_notruncv8dfv8si<mask_name>): Ditto.
8180 (<fixsuffix>fix_truncv8dfv8si2<mask_name>): Ditto.
8181 (<mask_codefor>avx512f_cvtpd2ps512<mask_name>): Ditto.
8182 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix><mask_name>): Ditto.
8183 (<mask_codefor>avx512f_unpckhps512<mask_name>): Ditto.
8184 (<mask_codefor>avx512f_unpcklps512<mask_name>): Ditto.
8185 (<mask_codefor>avx512f_movshdup512<mask_name>): Ditto.
8186 (<mask_codefor>avx512f_movsldup512<mask_name>): Ditto.
8187 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
8188 (vec_extract_lo_<mode><mask_name>): Ditto.
8189 (vec_extract_hi_<mode><mask_name>): Ditto.
8190 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
8191 (avx512f_movddup512<mask_name>): Ditto.
8192 (avx512f_unpcklpd512<mask_name>): Ditto.
8193 (*avx512f_unpcklpd512<mask_name>): Ditto.
8194 (*avx512f_vmscalef<mode>): Ditto.
8195 (avx512f_scalef<mode><mask_name>): Ditto.
8196 (avx512f_getexp<mode><mask_name>): Ditto.
8197 (<mask_codefor>avx512f_align<mode><mask_name>): Ditto.
8198 (avx512f_rndscale<mode><mask_name>): Ditto.
8199 (avx512f_shufps512_1<mask_name>): Ditto.
8200 (avx512f_shufpd512_1<mask_name>): Ditto.
8201 (<plusminus_insn><mode>3<mask_name>): Ditto.
8202 (*<plusminus_insn><mode>3<mask_name>): Ditto.
8203 (vec_widen_umult_even_v16si<mask_name>): Ditto.
8204 (*vec_widen_umult_even_v16si<mask_name>): Ditto.
8205 (vec_widen_smult_even_v16si<mask_name>): Ditto.
8206 (*vec_widen_smult_even_v16si<mask_name>): Ditto.
8207 (mul<mode>3<mask_name>): Ditto.
8208 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto.
8209 (<shift_insn><mode>3<mask_name>): Ditto.
8210 (avx512f_<rotate>v<mode><mask_name>/rotate): Ditto.
8211 (avx512f_<rotate><mode><mask_name>): Ditto.
8212 (<code><mode>3<mask_name>/maxmin): Ditto.
8213 (*avx2_<code><mode>3<mask_name>/maxmin): Ditto.
8214 (<sse2_avx2>_andnot<mode>3<mask_name>): Ditto.
8215 (*andnot<mode>3<mask_name>): Ditto.
8216 (<mask_codefor><code><mode>3<mask_name>/any_logic): Ditto.
8217 (<mask_codefor>avx512f_interleave_highv16si<mask_name>): Ditto.
8218 (<mask_codefor>avx512f_interleave_lowv16si<mask_name>): Ditto.
8219 (<mask_codefor>avx512f_vinsert<shuffletype>32x4_1<mask_name>): Ditto.
8220 (vec_set_lo_<mode><mask_name>): Ditto.
8221 (vec_set_hi_<mode><mask_name>): Ditto.
8222 (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto.
8223 (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
8224 (avx512f_pshufd_1<mask_name>): Ditto.
8225 (<mask_codefor>abs<mode>2<mask_name>): Ditto.
8226 (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto.
8227 (avx512f_<code>v16hiv16si2<mask_name>/any_extend): Ditto.
8228 (avx512f_<code>v8qiv8di2<mask_name>/any_extend): Ditto.
8229 (avx512f_<code>v8hiv8di2<mask_name>/any_extend): Ditto.
8230 (avx512f_<code>v8siv8di2<mask_name>/any_extend): Ditto.
8231 (avx512er_exp2<mode><mask_name>): Ditto.
8232 (<mask_codefor>avx512er_rcp28<mode><mask_name>): Ditto.
8233 (<mask_codefor>avx512er_rsqrt28<mode><mask_name>): Ditto.
8234 (<avx2_avx512f>_permvar<mode><mask_name>): Ditto.
8235 (<avx2_avx512f>_perm<mode>_1<mask_name>): Ditto.
8236 (<mask_codefor>avx512f_vec_dup<mode><mask_name>): Ditto.
8237 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V16FI): Ditto.
8238 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V8FI): Ditto.
8239 (<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>): Ditto.
8240 (<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>): Ditto.
8241 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF2): Ditto.
8242 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF1): Ditto.
8243 (*<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto.
8244 (<sse2_avx_avx512f>_vpermilvar<mode>3<mask_name>): Ditto.
8245 (<avx2_avx512f>_ashrv<mode><mask_name>): Ditto.
8246 (<avx2_avx512f>_<shift_insn>v<mode><mask_name>): Ditto.
8247 (<mask_codefor>avx512f_vcvtph2ps512<mask_name>): Ditto.
8248 (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
8249 (avx512f_getmant<mode><mask_name>): Ditto.
8250 (clz<mode>2<mask_name>): Ditto.
8251 (<mask_codefor>conflict<mode><mask_name>): Ditto.
8252 (*srcp14<mode>): Remove visibility.
8253 (*rsqrt14<mode>): Ditto.
8254 (*fma_fmsub_<mode>): Ditto.
8255 (*fma_fnmadd_<mode>): Ditto.
8256 (*avx512f_rndscale<mode>): Ditto.
8257 * config/i386/subst.md: New file.
8258
8259 2013-11-13 Joseph Myers <joseph@codesourcery.com>
8260
8261 * doc/extend.texi (Statement Exprs, Typeof): Discuss __auto_type.
8262 * ginclude/stdatomic.h (kill_dependency, atomic_store_explicit)
8263 (atomic_load_explicit, atomic_exchange_explicit)
8264 (atomic_compare_exchange_strong_explicit)
8265 (atomic_compare_exchange_weak_explicit): Use __auto_type to
8266 declare variable initialized with PTR argument.
8267
8268 2013-11-12 Jeff Law <law@redhat.com>
8269
8270 * tree-ssa-threadedge.c (thread_around_empty_blocks): New argument
8271 backedge_seen_p. Set, use and pass it to children appropriately.
8272 (thread_through_normal_block): Similarly.
8273 (thread_across_edge): Similarly.
8274
8275 * gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered
8276 memory references as volatile.
8277 (insert_trap_and_remove_trailing_statements): Fix comment.
8278
8279 2013-11-12 Vladimir Makarov <vmakarov@redhat.com>
8280
8281 PR other/58712
8282 * ira-costs.c (record_operand_costs): Check operands number for
8283 the single set.
8284
8285 2013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8286
8287 PR target/59054
8288 * config/rs6000/rs6000.md (movdi_internal32): Eliminate
8289 constraints that would allow DImode into the traditional Altivec
8290 registers, but cause undesirable code generation when loading 0 as
8291 a constant.
8292 (movdi_internal64): Likewise.
8293 (cmp<mode>_fpr): Do not use %x for CR register output.
8294 (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
8295 -mallow-upper-sf debug switches are used.
8296
8297 2013-11-12 Andrew MacLeod <amacleod@redhat.com>
8298
8299 * gimple-expr.h (create_tmp_var_name, create_tmp_var_raw,
8300 create_tmp_var, create_tmp_reg, mark_addressable, is_gimple_reg_rhs):
8301 Relocate prototypes from gimple.h.
8302 * gimplify.h: New File. Relocate some prototypes from gimple.h here.
8303 (gimple_predicate, enum fallback, enum gimplify_status): Relocate
8304 from gimple.h.
8305 * gimple.h: Move some prototypes to gimplify.h.
8306 (gimple_predicate, enum fallback, enum gimplify_status): Move to
8307 gimplify.h.
8308 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location):
8309 Relocate from gimpify.c.
8310 * gimple-expr.c (remove_suffix, tmp_var_id_num, create_tmp_var_name,
8311 create_tmp_var_raw, create_tmp_var, create_tmp_reg, mark_addressable,
8312 is_gimple_reg_rhs) Relocate from gimplify.c.
8313 * gimplify.c (mark_addressable): Move to gimple-expr.c.
8314 (gimple_seq_add_stmt_without_update): Move to gimple.c.
8315 (remove_suffix, tmp_var_id_num, create_tmp_var_name,
8316 create_tmp_var_raw, create_tmp_var, create_tmp_reg,
8317 is_gimple_reg_rhs): Move to gimple-expr.c.
8318 (should_carry_location_p): Move to gimple.c.
8319 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location): Move
8320 to gimple.h.
8321 (annotate_one_with_location, annotate_all_with_location_after,
8322 annotate_all_with_location): Move to gimple.c.
8323 (compare_case_labels, sort_case_labels,
8324 preprocess_case_label_vec_for_gimple): Move to gimple.c.
8325 (rhs_predicate_for): Make static.
8326 (gimplify_assign): Relocate from gimple.c.
8327 * gimple.c (gimplify_assign): Move to gimplify.c.
8328 (gimple_seq_add_stmt_without_update, should_carry_location_p,
8329 annotate_one_with_location, annotate_all_with_location_after,
8330 annotate_all_with_location, compare_case_labels, sort_case_labels,
8331 preprocess_case_label_vec_for_gimple): Relocate from gimplify.c.
8332 * tree.h (unshare_expr, unshare_expr_without_location,
8333 mark_addressable): Move prototypes to gimplify.h.
8334 * Makefile.in (GTFILES): gimple-expr.c now has the GTY tag for
8335 tmp_var_id_num
8336 * asan.c: Include gimplify.h rather than gimple.h.
8337 * cfgloopmanip.c: Likewise.
8338 * cgraphunit.c: Likewise.
8339 * cilk-common.c: Likewise.
8340 * dwarf2out.c: Dont include gimple.h.
8341 * fold-const.c: Include gimplify.h rather than gimple.h.
8342 * function.c: Likewise.
8343 * gimple-fold.c: Likewise.
8344 * gimple-ssa-strength-reduction.c: Likewise.
8345 * graphite-clast-to-gimple.c: Likewise.
8346 * graphite-sese-to-poly.c: Likewise.
8347 * ipa-prop.c: Likewise.
8348 * ipa-split.c: Likewise.
8349 * ipa.c: Likewise.
8350 * langhooks.c: Dont include gimple.h.
8351 * loop-init.c: Include gimplify.h rather than gimple.h.
8352 * omp-low.c: Likewise.
8353 * sese.c: Likewise.
8354 * stor-layout.c: Likewise.
8355 * targhooks.c: Likewise.
8356 * trans-mem.c: Likewise.
8357 * tree-affine.c: Likewise.
8358 * tree-cfg.c: Likewise.
8359 * tree-cfgcleanup.c: Likewise.
8360 * tree-complex.c: Likewise.
8361 * tree-if-conv.c: Likewise.
8362 * tree-inline.c: Likewise.
8363 * tree-iterator.c: Likewise.
8364 * tree-loop-distribution.c: Likewise.
8365 * tree-nested.c: Likewise.
8366 * tree-parloops.c: Likewise.
8367 * tree-predcom.c: Likewise.
8368 * tree-profile.c: Likewise.
8369 * tree-scalar-evolution.c: Likewise.
8370 * tree-sra.c: Likewise.
8371 * tree-ssa-address.c: Likewise.
8372 * tree-ssa-ccp.c: Likewise.
8373 * tree-ssa-dce.c: Likewise.
8374 * tree-ssa-forwprop.c: Likewise.
8375 * tree-ssa-ifcombine.c: Likewise.
8376 * tree-ssa-loop-im.c: Likewise.
8377 * tree-ssa-loop-ivopts.c: Likewise.
8378 * tree-ssa-loop-manip.c: Likewise.
8379 * tree-ssa-loop-niter.c: Likewise.
8380 * tree-ssa-loop-prefetch.c: Likewise.
8381 * tree-ssa-loop-unswitch.c: Likewise.
8382 * tree-ssa-math-opts.c: Likewise.
8383 * tree-ssa-phiopt.c: Likewise.
8384 * tree-ssa-phiprop.c: Likewise.
8385 * tree-ssa-pre.c: Likewise.
8386 * tree-ssa-propagate.c: Likewise.
8387 * tree-ssa-reassoc.c: Likewise.
8388 * tree-ssa-sccvn.c: Likewise.
8389 * tree-ssa-strlen.c: Likewise.
8390 * tree-ssa.c: Likewise.
8391 * tree-switch-conversio: Likewise.n.c
8392 * tree-tailcall.c: Likewise.
8393 * tree-vect-data-refs.c: Likewise.
8394 * tree-vect-generic.c: Likewise.
8395 * tree-vect-loop-manip.c: Likewise.
8396 * tree-vect-loop.c: Likewise.
8397 * tree-vect-patterns.c: Likewise.
8398 * tree-vect-stmts.c: Likewise.
8399 * tsan.c: Likewise.
8400 * value-prof.c: Likewise.
8401 * config/aarch64/aarch64.c: Include gimplify.h instead of gimple.h.
8402 * config/alpha/alpha.c: Likewise.
8403 * config/darwin.c: Likewise.
8404 * config/i386/i386.c: Likewise.
8405 * config/ia64/ia64.c: Likewise.
8406 * config/mep/mep.c: Likewise.
8407 * config/mips/mips.c: Likewise.
8408 * config/rs6000/rs6000.c: Likewise.
8409 * config/s390/s390.c: Likewise.
8410 * config/sh/sh.c: Likewise.
8411 * config/sparc/sparc.c: Likewise.
8412 * config/spu/spu.c: Likewise.
8413 * config/stormy16/stormy16.c: Likewise.
8414 * config/tilegx/tilegx.c: Likewise.
8415 * config/tilepro/tilepro.c: Likewise.
8416 * config/xtensa/xtensa.c: Likewise.
8417
8418 2013-11-12 Adam Butcher <adam@jessamine.co.uk>
8419
8420 * tree.c (grow_tree_vec_stat): New function ...
8421 * tree.h (grow_tree_vec_stat) (grow_tree_vec): ... and its declaration
8422 and macro front-end.
8423
8424 2013-11-12 Marek Polacek <polacek@redhat.com>
8425
8426 * final.c (update_alignments): Initialize label to NULL_RTX.
8427
8428 2013-11-12 Jeff Law <law@redhat.com>
8429
8430 * gimple-ssa-isolate-paths.c (check_loadstore): New function.
8431 (insert_trap_and_remove_trailing_statements): New argument OP which
8432 is the NULL pointer. Emit the trap after the load/store through
8433 the NULL pointer. Simplify the RHS of a store through a NULL pointer
8434 when trivial to do so.
8435 (isolate_path): Corresponding changes.
8436 (gimple_ssa_isolate_erroneous_path): Likewise.
8437
8438 2013-11-12 Teresa Johnson <tejohnson@google.com>
8439 Jan Hubicka <jh@suse.cz>
8440
8441 * predict.c (drop_profile): New function.
8442 (handle_missing_profiles): Ditto.
8443 (counts_to_freqs): Don't overwrite estimated frequencies
8444 when function has no profile counts.
8445 * predict.h (handle_missing_profiles): Declare.
8446 * tree-inline.c (freqs_to_counts): New function.
8447 (copy_cfg_body): Invoke freqs_to_counts as needed.
8448 * tree-profile.c (tree_profiling): Invoke handle_missing_profiles.
8449
8450 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
8451
8452 PR target/59088
8453 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL):
8454 Set for m_HASWELL.
8455 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Set for m_HASWELL.
8456
8457 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
8458
8459 PR target/59084
8460 * config/i386/i386.c (ix86_option_override_internal): Check
8461 X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL and
8462 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL for
8463 MASK_AVX256_SPLIT_UNALIGNED_LOAD and
8464 MASK_AVX256_SPLIT_UNALIGNED_STORE.
8465
8466 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
8467 Clear m_COREI7_AVX and update comments.
8468 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Likewise.
8469
8470 2013-11-12 Martin Jambor <mjambor@suse.cz>
8471
8472 PR rtl-optimization/10474
8473 * ira.c (interesting_dest_for_shprep): New function.
8474 (split_live_ranges_for_shrink_wrap): Likewise.
8475 (find_moveable_pseudos): Move calculation of dominance info,
8476 df_analysios and the final anlyses to...
8477 (ira): ...here, call split_live_ranges_for_shrink_wrap.
8478
8479 2013-11-12 Bin Cheng <bin.cheng@arm.com>
8480
8481 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Refactor the code.
8482 Handle type conversion.
8483
8484 2013-11-11 Martin Liska <marxin.liska@gmail.com>
8485 Jan Hubicka <jh@suse.cz>
8486
8487 * cgraph.c (dump_cgraph_node): Profile dump added.
8488 * cgraph.h (struct cgraph_node): New time profile variable added.
8489 * cgraphclones.c (cgraph_clone_node): Time profile is cloned.
8490 * gcov-io.h (gcov_type): New profiler type introduced.
8491 * ipa-profile.c (lto_output_node): Streaming for time profile added.
8492 (input_node): Time profiler is read from LTO stream.
8493 * predict.c (maybe_hot_count_p): Hot prediction changed.
8494 * profile.c (instrument_values): New case for time profiler added.
8495 (compute_value_histograms): Read of time profile.
8496 * tree-pretty-print.c (dump_function_header): Time profiler is dumped.
8497 * tree-profile.c (init_ic_make_global_vars): Time profiler
8498 function added.
8499 (gimple_init_edge_profiler): TP function instrumentation.
8500 (gimple_gen_time_profiler): New.
8501 * value-prof.c (gimple_add_histogram_value): Support for time profiler
8502 added.
8503 (dump_histogram_value): TP type added to dumps.
8504 (visit_hist): More sensitive check that takes TP into account.
8505 (gimple_find_values_to_profile): TP instrumentation.
8506 * value-prof.h (hist_type): New histogram type added.
8507 (struct histogram_value_t): Pointer to struct function added.
8508 * libgcc/Makefile.in: New GCOV merge function for TP added.
8509 * libgcov.c: function_counter variable introduced.
8510 (_gcov_merge_time_profile): New.
8511 (_gcov_time_profiler): New.
8512
8513 2013-11-11 Marc Glisse <marc.glisse@inria.fr>
8514 Jeff Law <law@redhat.com>
8515
8516 * tree-ssa-alias.c (stmt_kills_ref_p_1): Use
8517 ao_ref_init_from_ptr_and_size for builtins.
8518
8519 2013-11-11 Uros Bizjak <ubizjak@gmail.com>
8520 H.J. Lu <hongjiu.lu@intel.com>
8521
8522 PR target/58853
8523 * config/i386/x86-tune.def
8524 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
8525 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES.
8526 * config/i386/i386.h
8527 (TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
8528 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES. Update for renamed
8529 X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES.
8530 * config/i386/i386.c (ix86_expand_set_or_movmem): Use
8531 TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES to calculate
8532 misaligned_prologue_used. Check that
8533 desired_aling <= epilogue_size_needed.
8534
8535 2013-11-11 Cong Hou <congh@google.com>
8536
8537 PR tree-optimization/59050
8538 * tree-vect-data-refs.c (comp_dr_addr_with_seg_len_pair): Bug fix.
8539
8540 2013-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
8541
8542 PR middle-end/59049
8543 * expmed.c (emit_store_flag): Fail for const-const comparison.
8544
8545 2013-11-11 Tristan Gingold <gingold@adacore.com>
8546 Eric Botcazou <ebotcazou@adacore.com>
8547
8548 * tree.h (CONSTRUCTOR_NO_CLEARING): Define.
8549 * tree-core.h (CONSTRUCTOR_NO_CLEARING): Document it.
8550 * tree.def (CONSTRUCTOR): Likewise.
8551 * doc/generic.texi (CONSTRUCTOR): Likewise. Update description.
8552 * gimplify.c (gimplify_init_constructor): Do not clear the object when
8553 the constructor is incomplete and CONSTRUCTOR_NO_CLEARING is set.
8554
8555 2013-11-11 Basile Starynkevitch <basile@starynkevitch.net>
8556
8557 * toplev.c (toplev_main): Move PLUGIN_FINISH invocation before
8558 diagnostic_finish.
8559
8560 2013-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8561
8562 * config/arm/arm.c (arm_new_rtx_costs): Return after handling
8563 comparisons.
8564
8565 2013-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
8566
8567 * config/arc/arc.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
8568
8569 2013-11-08 Jeff Law <law@redhat.com>
8570
8571 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
8572 threading paths first, then perform PHI node checks if applicable.
8573
8574 2013-11-10 Karlson2k <k2k@narod.ru>
8575 Kai Tietz <ktietz@redhat.com>
8576
8577 PR plugin/52872
8578 * configure.ac: Adding for exported symbols check
8579 and for rdynamic-check executable-extension.
8580 * configure: Regenerated.
8581
8582 2013-11-10 Uros Bizjak <ubizjak@gmail.com>
8583
8584 * mode-switching.c (optimize_mode_switching): Mark block as
8585 nontransparent, if last_mode at block exit is different from no_mode.
8586
8587 2013-11-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8588
8589 * function.c (NAME__MAIN): Move to...
8590 * cfgexpand.c (NAME__MAIN): ...here.
8591
8592 2013-11-09 Richard Sandiford <rdsandiford@googlemail.com>
8593
8594 * target.def (can_use_doloop_p): New hook.
8595 * doc/tm.texi.in (TARGET_CAN_USE_DOLOOP_P): Add.
8596 * doc/tm.texi: Regenerate.
8597 * doc/md.texi (doloop_begin, doloop_end): Update documentation.
8598 * hooks.h (hook_bool_dint_dint_uint_true): Declare.
8599 * hooks.c (hook_bool_dint_dint_uint_true): New function.
8600 * targhooks.h (can_use_doloop_if_innermost): Declare.
8601 * targhooks.c (can_use_doloop_if_innermost): New function.
8602 * target.h: Include double-int.h.
8603 * loop-doloop.c (doloop_optimize): Call targetm.can_use_doloop_p.
8604 Remove iteration count, maximum iteration count, loop depth and
8605 enter-at-top inputs from doloop_begin and doloop_end.
8606 * config/arc/arc.md (doloop_begin, doloop_end): Update for new
8607 interface.
8608 * config/arc/arc.c (arc_can_use_doloop_p): New function.
8609 (TARGET_CAN_USE_DOLOOP_P): Define.
8610 * config/arm/thumb2.md (doloop_end): Update for new interface.
8611 * config/arm/arm.c (TARGET_CAN_USE_DOLOOP_P): Define.
8612 * config/bfin/bfin.md (doloop_end): Update for new interface.
8613 * config/bfin/bfin.c (bfin_can_use_doloop_p): New function.
8614 (TARGET_CAN_USE_DOLOOP_P): Define.
8615 * config/c6x/c6x.md (doloop_end): Update for new interface.
8616 * config/ia64/ia64.md (doloop_end): Update for new interface.
8617 * config/ia64/ia64.c (TARGET_CAN_USE_DOLOOP_P): Define.
8618 * config/mep/mep.md (doloop_begin, doloop_end): Update for new
8619 interface.
8620 * config/mep/mep.c (mep_emit_doloop): Likewise.
8621 (TARGET_CAN_USE_DOLOOP_P): Define.
8622 * config/rs6000/rs6000.md (doloop_end): Update for new interface.
8623 * config/rs6000/rs6000.c (TARGET_CAN_USE_DOLOOP_P): Define.
8624 * config/s390/s390.md (doloop_end): Update for new interface.
8625 * config/sh/sh.md (doloop_end): Likewise.
8626 * config/spu/spu.md (doloop_end): Likewise.
8627 * config/spu/spu.c (TARGET_CAN_USE_DOLOOP_P): Define.
8628 * config/tilegx/tilegx.md (doloop_end): Update for new interface.
8629 * config/tilegx/tilegx.c (TARGET_CAN_USE_DOLOOP_P): Define.
8630 * config/tilepro/tilepro.md (doloop_end): Update for new interface.
8631 * config/tilepro/tilepro.c (TARGET_CAN_USE_DOLOOP_P): Define.
8632 * config/v850/v850.md (doloop_begin, doloop_end): Update for new
8633 interface.
8634 * config/v850/v850.c (TARGET_CAN_USE_DOLOOP_P): Define.
8635
8636 2013-11-08 H.J. Lu <hongjiu.lu@intel.com>
8637
8638 PR other/59055
8639 * doc/extend.texi: Move Cilk Plus Builtins node before Other
8640 Builtins node.
8641
8642 2013-11-08 Andrew MacLeod <amacleod@redhat.com>
8643 Joseph Myers <joseph@codesourcery.com>
8644
8645 * ginclude/stdatomic.h: New file.
8646 * Makefile.in (USER_H): Add stdatomic.h.
8647
8648 2013-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8649
8650 * config/arm/arm.c (arm_new_rtx_costs): Break after handling
8651 comparisons.
8652
8653 2013-11-08 Jeff Law <law@redhat.com>
8654
8655 * tree-ssa-threadupdate.h (delete_thread_path): Declare.
8656 * tree-ssa-threadupdate.c (delete_thread_path): New function.
8657 (ssa_redirect_edges, thread_block_1): Use it.
8658 (thread_through_loop_header, mark_threaded_blocks): Likewise.
8659 (thread_through_all_blocks, register_jump_thread): Likewise.
8660 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
8661
8662 2013-11-08 James Greenhalgh <james.greenhalgh@arm.com>
8663
8664 * config/arm/aarch-common.c
8665 (search_term): New typedef.
8666 (shift_rtx_costs): New array.
8667 (arm_rtx_shift_left_p): New.
8668 (arm_find_sub_rtx_with_search_term): Likewise.
8669 (arm_find_sub_rtx_with_code): Likewise.
8670 (arm_early_load_addr_dep): Add sanity checking.
8671 (arm_no_early_alu_shift_dep): Likewise.
8672 (arm_no_early_alu_shift_value_dep): Likewise.
8673 (arm_no_early_mul_dep): Likewise.
8674 (arm_no_early_store_addr_dep): Likewise.
8675
8676 2013-11-08 Richard Biener <rguenther@suse.de>
8677
8678 PR tree-optimization/59047
8679 * tree-predcom.c (ref_at_iteration): Handle bitfield accesses properly.
8680
8681 2013-11-08 Ilya Enkovich <ilya.enkovich@intel.com>
8682
8683 * common.opt (fcheck-pointer-bounds): Move to ...
8684 * c-family/c.opt: ... here.
8685 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
8686 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
8687 * langhooks.h (lang_hooks): Remove chkp_supported field.
8688 * toplev.c (process_options): Remove chkp_supported check.
8689
8690 2013-11-08 Richard Biener <rguenther@suse.de>
8691
8692 PR tree-optimization/59038
8693 PR tree-optimization/58955
8694 * tree-loop-distribution.c (pg_add_dependence_edges): Revert
8695 previous change. Handle known dependences correctly.
8696
8697 2013-11-08 Tom de Vries <tom@codesourcery.com>
8698
8699 * config/rs6000/t-xilinx: Remove duplicate contents.
8700
8701 2013-11-07 Andrew MacLeod <amacleod@redhat.com>
8702 Joseph Myers <joseph@codesourcery.com>
8703
8704 * tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
8705 (enum tree_index): Add TI_ATOMICQI_TYPE, TI_ATOMICHI_TYPE,
8706 TI_ATOMICSI_TYPE, TI_ATOMICDI_TYPE and TI_ATOMICTI_TYPE.
8707 (struct tree_base): Add atomic_flag field.
8708 * tree.h (TYPE_ATOMIC): New accessor macro.
8709 (TYPE_QUALS, TYPE_QUALS_NO_ADDR_SPACE): Add TYPE_QUAL_ATOMIC.
8710 (TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC): New macro.
8711 (atomicQI_type_node, atomicHI_type_node, atomicSI_type_node)
8712 (atomicDI_type_node, atomicTI_type_node): New macros for type nodes.
8713 * tree.c (set_type_quals): Set TYPE_ATOMIC.
8714 (find_atomic_core_type): New function.
8715 (build_qualified_type): Adjust alignment for qualified types.
8716 (build_atomic_base): New function
8717 (build_common_tree_nodes): Build atomicQI_type_node,
8718 atomicHI_type_node, atomicSI_type_node, atomicDI_type_node and
8719 atomicTI_type_node.
8720 * print-tree.c (print_node): Print atomic qualifier.
8721 * tree-pretty-print.c (dump_generic_node): Print atomic type attribute.
8722 * target.def (atomic_assign_expand_fenv): New hook.
8723 * doc/tm.texi.in (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New @hook.
8724 * doc/tm.texi: Regenerate.
8725 * targhooks.c (default_atomic_assign_expand_fenv): New function.
8726 * targhooks.h (default_atomic_assign_expand_fenv): Declare.
8727 * sync-builtins.def (__atomic_feraiseexcept): New built-in function.
8728 * config/i386/i386-builtin-types.def (VOID_FTYPE_PUSHORT): New
8729 function type.
8730 * config/i386/i386.c (enum ix86_builtins): Add
8731 IX86_BUILTIN_FNSTENV, IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW and
8732 IX86_BUILTIN_FNCLEX.
8733 (bdesc_special_args): Add __builtin_ia32_fnstenv,
8734 __builtin_ia32_fldenv, __builtin_ia32_fnstsw and __builtin_ia32_fnclex.
8735 (ix86_expand_builtin): Handle the new built-in functions.
8736 (ix86_atomic_assign_expand_fenv): New function.
8737 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New macro.
8738 * config/i386/i386.md (UNSPECV_FNSTENV, UNSPECV_FLDENV)
8739 (UNSPECV_FNSTSW, UNSPECV_FNCLEX): New unspecs.
8740 (fnstenv, fldenv, fnstsw, fnclex): New insns.
8741
8742 2013-11-07 Steve Ellcey <sellcey@mips.com>
8743
8744 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory.
8745 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add -mfp64 flag.
8746 (MULTILIB_DIRNAMES): Add fp64 directory.
8747 (MULTILIB_EXCEPTIONS): Add new exclusions.
8748
8749 2013-11-07 Aldy Hernandez <aldyh@redhat.com>
8750
8751 * gimplify.c (gimple_regimplify_operands): Do not set
8752 SSA_NAME_DEF_STMT.
8753 * graphite-sese-to-poly.c (remove_simple_copy_phi): Same.
8754 (rewrite_close_phi_out_of_ssa): Same.
8755 (rewrite_phi_out_of_ssa): Same.
8756 (rewrite_degenerate_phi): Same.
8757 (handle_scalar_deps_crossing_scop_limits): Same.
8758 * tree-if-conv.c (predicate_scalar_phi): Same.
8759 * tree-parloops.c (create_loads_for_reductions): Same.
8760 (create_final_loads_for_reduction): Same.
8761 (create_loads_and_stores_for_name): Same.
8762 (transform_to_exit_first_loop): Same.
8763 (create_parallel_loop): Same.
8764 * tree-ssa-loop-im.c
8765 (move_computations_dom_walker::before_dom_children): Same.
8766 * tree-ssa-loop-manip.c (rewrite_phi_with_iv): Same.
8767 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Same.
8768 * tree-ssa-propagate.c (substitute_and_fold): Same.
8769 * tree-vect-loop.c (vect_finalize_reduction): Same.
8770 * tree-vect-stmts.c (vectorizable_call): Same.
8771
8772 2013-11-07 Mike Stump <mikestump@comcast.net>
8773
8774 * config/pdp11/pdp11.c: Include dbxout.h.
8775 * config/picochip/picochip.c: Likewise.
8776
8777 2013-11-07 Cong Hou <congh@google.com>
8778
8779 PR tree-optimization/56764
8780 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
8781 Combine alias checks if it is possible to amortize the runtime
8782 overhead. Return the number of alias checks after merging.
8783 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8784 Use the function vect_create_cond_for_alias_checks () to check
8785 the number of alias checks.
8786
8787 2013-11-07 Jeff Law <law@redhat.com>
8788
8789 * varpool.c (ctor_for_folding): Fix typo in comment.
8790
8791 2013-11-07 Joern Rennecke <joern.rennecke@embecosm.com>
8792
8793 * config/arc/arc.c (arc_ifcvt): Use commutativity, e.g.:
8794 reg_a := reg_b + reg_a ==> reg_a := reg_a + reg_b
8795
8796 2013-11-07 Jeff Law <law@redhat.com>
8797
8798 * doc/invoke.texi (-fisolate-erroneous-paths): Document.
8799
8800 * gimple-ssa-isolate-paths.c (gate_isolate_erroneous_paths):
8801 No longer check if we have __builtin_trap, assume it's available.
8802
8803 2013-11-07 Diego Novillo <dnovillo@google.com>
8804
8805 * attribs.c (lookup_scoped_attribute_spec): Make static.
8806 (get_attribute_namespace): Likewise.
8807 * builtins.c (more_const_call_expr_args_p): Move from tree.h.
8808 (validate_arglist): Move earlier in the file. Make static.
8809 (expand_stack_restore): Move from stmt.c
8810 (expand_stack_save): Move from stmt.c
8811 (rewrite_call_expr_array): Move earlier in the file.
8812 (rewrite_call_expr_valist): Likewise.
8813 * cfgexpand.c: Include hard-reg-set.h before tree.h
8814 Include recog.h.
8815 Include output.h.
8816 (expand_asm_loc): Move from stmt.c.
8817 (n_occurrences): Move from stmt.c.
8818 (check_operand_nalternatives): Move from stmt.c.
8819 (tree_conflicts_with_clobbers_p): Move from stmt.c.
8820 (expand_asm_operands): Move from stmt.c
8821 (expand_asm_stmt): Move from stmt.c
8822 (expand_computed_goto): Move from stmt.c
8823 (expand_goto): Move from stmt.c
8824 (expand_null_return_1): Move from stmt.c
8825 (expand_null_return): Move from stmt.c
8826 (expand_value_return): Move from stmt.c
8827 (expand_return): Move from stmt.c
8828 (expand_main_function): Move from function.c
8829 (stack_protect_prologue): Move from function.c
8830 * cgraphclones.c (build_function_type_skip_args): Move from tree.c.
8831 (build_function_decl_skip_args): Move from tree.c.
8832 * explow.c (tree_expr_size): Move from tree.c.
8833 * expr.c (addr_expr_of_non_mem_decl_p): Remove.
8834 (fields_length): Move from tree.c.
8835 * fold-const.c (size_low_cst): Move from tree.c.
8836 (tree_expr_nonzero_warnv_p): Make static. Move earlier in the file.
8837 (tree_expr_nonzero_p): Make static. Move earlier in the file.
8838 (fold_build3_initializer_loc): Remove.
8839 (tree_invalid_nonnegative_warnv_p): Make static.
8840 * function.c (expand_main_function): Move to cfgexpand.c.
8841 (stack_protect_prologue): Move to cfgexpand.c.
8842 (set_insn_locations): Move earlier in the file.
8843 * gimple-fold.c: Include langhooks.h.
8844 (truth_type_for): Move from tree.c.
8845 * print-tree.c (print_vec_tree): Remove.
8846 * stmt.c (expand_computed_goto): Move to cfgexpand.c.
8847 (expand_goto): Move to cfgexpand.c.
8848 (n_occurrences): Move to cfgexpand.c.
8849 (expand_asm_loc): Move to cfgexpand.c
8850 (tree_conflicts_with_clobbers_p): Move to cfgexpand.c.
8851 (expand_asm_operands): Move to cfgexpand.c.
8852 (expand_asm_stmt): Move to cfgexpand.c.
8853 (check_operand_nalternatives): Move to cfgexpand.c
8854 (expand_null_return): Move to cfgexpand.c.
8855 (expand_value_return): Move to cfgexpand.c.
8856 (expand_null_return_1): Move to cfgexpand.c.
8857 (expand_return): Move to cfgexpand.c.
8858 (expand_stack_save): Move to builtins.c.
8859 (expand_stack_restore): Move to builtins.c
8860 * symtab.c: Include output.h.
8861 (decl_assembler_name_hash): Move from tree.c.
8862 (decl_assembler_name_equal): Move from tree.c.
8863 * trans-mem.c (is_tm_safe_or_pure): Move from tree.h.
8864 * tree-eh.c (in_array_bounds_p): Move from tree.c.
8865 (range_in_array_bounds_p): Move from tree.c.
8866 * tree-object-size.c (fini_object_sizes): Make static.
8867 * tree-ssa-dom.c (iterative_hash_exprs_commutative): Move from tree.h.
8868 * tree-vrp.c (ssa_name_nonnegative_p): Remove.
8869 * tree.c (decl_assembler_name_equal): Move to symtab.c.
8870 (tree_expr_size): Move to explow.c.
8871 (decl_assembler_name_hash): Move to symtab.c.
8872 (real_twop): Remove.
8873 (tree_expr_size): Move to explow.c.
8874 (stabilize_reference_1): Move earlier in the file. Make static.
8875 (omp_remove_redundant_declare_simd_attrs): Remove.
8876 (simple_cst_list_equal): Move earlier in the file. Make static.
8877 (size_low_cst): Move to fold-const.c.
8878 (build_type_no_quals): Remove.
8879 (build_function_type_skip_args): Move to cgraphclones.c.
8880 (build_function_decl_skip_args): Move to cgraphclones.c.
8881 (in_array_bounds_p): Move to tree-eh.c.
8882 (range_in_array_bounds_p): Move to tree-eh.c.
8883 (truth_type_for): Move to gimple-fold.c.
8884 (list_equal_p): Remove.
8885 * tree.h (decl_assembler_name_equal): Remove.
8886 (decl_assembler_name_hash): Remove.
8887 (truth_type_for): Remove.
8888 (build_type_no_quals): Remove.
8889 (build_function_decl_skip_args): Remove.
8890 (in_array_bounds_p): Remove.
8891 (range_in_array_bounds_p): Remove.
8892 (size_low_cst): Remove.
8893 (omp_remove_redundant_declare_simd_attrs): Remove.
8894 (tree_expr_size): Remove.
8895 (fields_length): Remove.
8896 (stabilize_reference_1): Remove.
8897 (expand_goto): Remove.
8898 (expand_stack_save): Remove.
8899 (expand_stack_restore): Remove.
8900 (expand_return): Remove.
8901 (fold_build3_initializer_loc): Remove.
8902 (tree_expr_nonzero_p): Remove.
8903 (tree_invalid_nonnegative_warnv_p): Remove.
8904 (tree_expr_nonzero_warnv_p): Remove.
8905 (fold_builtin_snprintf_chk): Remove.
8906 (validate_arglist): Remove.
8907 (iterative_hash_exprs_commutative): Move to tree-ssa-dom.c.
8908 (simple_cst_list_equal): Remove.
8909 (real_twop): Remove.
8910 (expand_main_function): Remove.
8911 (stack_protect_prologue): Remove.
8912 (print_vec_tree): Remove.
8913 (lookup_scoped_attribute_spec): Remove.
8914 (get_attribute_namespace): Remove.
8915 (expand_computed_goto): Remove.
8916 (expand_asm_stmt): Remove.
8917 (list_equal_p): Remove.
8918 (ssa_name_nonnegative_p): Remove.
8919 (fini_object_sizes): Remove.
8920 (addr_expr_of_non_mem_decl_p): Remove.
8921 (is_tm_safe_or_pure): Move to trans-mem.c.
8922 (more_const_call_expr_args_p): Remove.
8923 (save_vtable_map_decl): Remove.
8924
8925 2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
8926
8927 * doc/sourcebuild.texi (Top Level) <lto-plugin>: GNU ld can use
8928 linker plugins, too.
8929
8930 * config/arc/arc.h (LINK_COMMAND_SPEC): For -ftree-parallelize-loops=*,
8931 link to libgomp and its dependencies.
8932 * config/ia64/hpux.h (LIB_SPEC): Likewise.
8933 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
8934 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
8935 * gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's dependencies.
8936
8937 2013-11-07 Jakub Jelinek <jakub@redhat.com>
8938
8939 * tree-ssa-loop-niter.c: Include tree-ssanames.h.
8940 (determine_value_range): Add loop argument. Use get_range_info to
8941 improve range.
8942 (bound_difference): Adjust caller.
8943
8944 2013-11-07 Richard Biener <rguenther@suse.de>
8945 Jakub Jelinek <jakub@redhat.com>
8946
8947 * tree-vrp.c (find_assert_locations): Pre-seed live bitmaps for loop
8948 latches from header PHI arguments from the latch edge.
8949
8950 2013-11-07 Paolo Carlini <paolo.carlini@oracle.com>
8951
8952 PR c++/58176
8953 * varasm.c (output_constant): Handle NULLPTR_TYPE.
8954
8955 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
8956
8957 * config/i386/i386.c (ix86_expand_set_or_movmem): Don't set
8958 misaligned_prologue_used when it has been set.
8959
8960 2013-11-07 Yury Gribov <y.gribov@samsung.com>
8961 Jakub Jelinek <jakub@redhat.com>
8962
8963 PR sanitizer/59029
8964 * asan.c (get_mem_refs_of_builtin_call): Allow
8965 integer literals as addresses in instrumented builtins.
8966
8967 2013-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8968
8969 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
8970 Explain why plus_constant is not used.
8971
8972 2013-11-07 Richard Biener <rguenther@suse.de>
8973
8974 * tree-ssa-ccp.c (canonicalize_float_value): Rename to ...
8975 (canonicalize_value): ... this. Also handle stripping of
8976 TREE_OVERFLOW.
8977 (get_value, set_lattice_value, get_value_for_expr): Adjust.
8978 * gimple-fold.c (canonicalize_constructor_val): Strip TREE_OVERFLOW.
8979 * tree-ssa-threadedge.c (set_ssa_name_value): Likewise.
8980
8981 2013-11-07 Richard Biener <rguenther@suse.de>
8982
8983 * tree-dfa.c (get_ref_base_and_extent): Fix casting.
8984
8985 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
8986
8987 PR target/59034
8988 * config/i386/i386.md (push peepholer/splitter): Use Pmode
8989 with stack_pointer_rtx.
8990
8991 2013-11-07 Bin Cheng <bin.cheng@arm.com>
8992
8993 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Check equality
8994 using operand_equal_p.
8995
8996 2013-11-07 Bin Cheng <bin.cheng@arm.com>
8997
8998 * tree-ssa-loop-ivopts.c (alloc_iv): Lower address expressions.
8999 * tree-affine.c (get_inner_reference_aff): Return base.
9000 * tree-affine.h (get_inner_reference_aff): Change prototype.
9001
9002 2013-11-06 Tobias Burnus <burnus@net-b.de>
9003
9004 * doc/invoke.texi (Wdate-time): Fix typo.
9005
9006 2013-11-06 Oleg Endo <olegendo@gcc.gnu.org>
9007
9008 * config/sh/sh.md (addsf3, divsf3, divsf3_i, rsqrtsf2, cmpgtdf_t,
9009 cmpeqdf_t, *ieee_ccmpeqdf_t, negdf2, sqrtdf2, absdf2): Use
9010 fp_arith_reg_operand instead of arith_reg_operand.
9011
9012 2013-11-06 Oleg Endo <olegendo@gcc.gnu.org>
9013
9014 * config/sh/sh.md (adddi3): Remove empty constraints.
9015 Remove can_create_pseudo_p and arith_reg_operand check.
9016 (adddi3_compact, subdi3_compact, *negdi2): Remove constraints.
9017 Split before reload.
9018
9019 2013-11-06 Jeff Law <law@redhat.com>
9020 Tom Tromey <tromey@redhat.com>
9021
9022 * gdbinit.in: Disable strict type checking.
9023
9024 2013-11-06 Vladimir Makarov <vmakarov@redhat.com>
9025
9026 * tree-pass.h (make_pass_live_range_shrinkage): New external.
9027 * timevar.def (TV_LIVE_RANGE_SHRINKAGE): New.
9028 * sched-rgn.c (gate_handle_live_range_shrinkage): New.
9029 (rest_of_handle_live_range_shrinkage): Ditto
9030 (class pass_live_range_shrinkage): Ditto.
9031 (pass_data_live_range_shrinkage): Ditto.
9032 (make_pass_live_range_shrinkage): Ditto.
9033 * sched-int.h (initialize_live_range_shrinkage): New prototype.
9034 (finish_live_range_shrinkage): Ditto.
9035 * sched-deps.c (create_insn_reg_set): Make void return value.
9036 * passes.def: Add pass_live_range_shrinkage.
9037 * ira.c (update_equiv_regs): Don't move if flag_live_range_shrinkage.
9038 * haifa-sched.c (live_range_shrinkage_p): New.
9039 (initialize_live_range_shrinkage, finish_live_range_shrinkage):
9040 New functions.
9041 (rank_for_schedule): Add code for pressure relief through live
9042 range shrinkage.
9043 (schedule_insn): Print more debug info.
9044 (sched_init): Setup SCHED_PRESSURE_WEIGHTED for pressure relief
9045 through live range shrinkage.
9046 * doc/invoke.texi (-flive-range-shrinkage): New.
9047 * common.opt (flive-range-shrinkage): New.
9048
9049 2013-11-06 Uros Bizjak <ubizjak@gmail.com>
9050
9051 PR target/59021
9052 * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
9053 AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
9054 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
9055 RTXes that return in AVX256 register.
9056
9057 2013-11-06 Richard Biener <rguenther@suse.de>
9058
9059 PR tree-optimization/58653
9060 * tree-predcom.c (ref_at_iteration): Rewrite to generate a MEM_REF.
9061 (prepare_initializers_chain): Adjust.
9062
9063 2013-11-06 Andrew MacLeod <amacleod@redhat.com>
9064
9065 * gimple.h (block_in_transaction): Move to basic-block.h and rename.
9066 (gimple_in_transaction): Use bb_in_transaction.
9067 * basic-block.h (bb_in_transaction): Relocate here and rename.
9068 * tree-ssa-loop-im.c (execute_sm): Use bb_in_transaction.
9069
9070 2013-11-06 Richard Biener <rguenther@suse.de>
9071
9072 * tree.c (drop_tree_overflow): New function.
9073 * tree.h (drop_tree_overflow): Declare.
9074 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW.
9075 * tree-vrp.c (range_int_cst_singleton_p): Use
9076 is_overflow_infinity instead of testing TREE_OVERFLOW.
9077 (extract_range_from_assert): Likewise.
9078 (zero_nonzero_bits_from_vr): Likewise.
9079 (extract_range_basic): Likewise.
9080 (register_new_assert_for): Use drop_tree_overflow.
9081 (vrp_visit_phi_node): Likewise.
9082
9083 2013-11-06 Eric Botcazou <ebotcazou@adacore.com>
9084
9085 * config/i386/i386.c (ix86_expand_prologue): Optimize stack
9086 checking for leaf functions without dynamic stack allocation.
9087 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust.
9088 (ia64_expand_prologue): Likewise.
9089 * config/mips/mips.c (mips_expand_prologue): Likewise.
9090 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
9091 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
9092 (sparc_flat_expand_prologue): Likewise.
9093
9094 2013-11-06 James Greenhalgh <james.greenhalgh@arm.com>
9095
9096 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Better model data size.
9097 (__ST3_LANE_FUNC): Likewise.
9098 (__ST4_LANE_FUNC): Likewise.
9099
9100 2013-11-06 Nick Clifton <nickc@redhat.com>
9101
9102 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define the
9103 name returned by msp430_mcu_name.
9104 (LIB_SPEC): If a -T option has not been specified then set a
9105 default, mcu-specific, linker script.
9106 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more mcu names.
9107 * config/msp430/msp430.c (msp430x_names): Likewise.
9108 Alpha sort the names for ease of comparison.
9109 (msp430_mcu_name): New function: Returns a string suitable for
9110 use as a C preprocessor symbol based upon the name of the MCU
9111 being targeted.
9112 (msp430_option_override): Accept msp430x and msp430xv2 as generic
9113 mcu names.
9114 * config/msp430/msp430-protos.h (msp430_mcu_name): Prototype.
9115
9116 * gcc.c (do_spec_1): Do not insert a space after a %* substitution
9117 unless it is the last part of a spec substring.
9118 * doc/invoke.texi (Spec Files): Document space insertion
9119 behaviour of %*.
9120
9121 2013-11-06 Christian Bruel <christian.bruel@st.com>
9122
9123 * config/sh/sh-mem.cc (sh_expand_cmpnstr, sh_expand_cmpstr):
9124 Factorize probabilities, Use adjust_address instead of
9125 adjust_automodify_address when possible. Enable for optimize.
9126 (sh_expand_strlen): New function.
9127 * config/sh/sh-protos.h (sh_expand_strlen): Declare.
9128 * config/sh/sh.md (strlensi): New pattern.
9129 (UNSPEC_BUILTIN_STRLEN): Define.
9130
9131 2013-11-06 Jakub Jelinek <jakub@redhat.com>
9132
9133 PR middle-end/58970
9134 * expr.c (get_bit_range): Handle *offset == NULL_TREE.
9135 (expand_assignment): If *bitpos is negative, set *offset
9136 and adjust *bitpos, so that it is not negative.
9137
9138 2013-11-06 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
9139
9140 * config/i386/bdver3.md : Added two additional decoder units
9141 to support issue rate of 4 and remodeled vector unit.
9142 * config/i386/i386.c (ix86_issue_rate): Issue rate for BD
9143 architectures is set to 4.
9144 * config/i386/i386.c (ia32_multipass_dfa_lookahead): DFA
9145 lookahead is set to 4 for BD architectures.
9146
9147 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9148
9149 * config/rs6000/rs6000.c (rs6000_option_override_internal):
9150 Remove restriction against use of VSX instructions when generating
9151 code for little endian mode.
9152
9153 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9154
9155 * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
9156 for both big and little endian.
9157 (mulv8hi3): Swap input operands for merge high and merge low
9158 instructions for little endian.
9159
9160 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9161
9162 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
9163 define_insn to define_expand that uses even patterns for big
9164 endian and odd patterns for little endian.
9165 (vec_widen_smult_even_v16qi): Likewise.
9166 (vec_widen_umult_even_v8hi): Likewise.
9167 (vec_widen_smult_even_v8hi): Likewise.
9168 (vec_widen_umult_odd_v16qi): Likewise.
9169 (vec_widen_smult_odd_v16qi): Likewise.
9170 (vec_widen_umult_odd_v8hi): Likewise.
9171 (vec_widen_smult_odd_v8hi): Likewise.
9172 (altivec_vmuleub): New define_insn.
9173 (altivec_vmuloub): Likewise.
9174 (altivec_vmulesb): Likewise.
9175 (altivec_vmulosb): Likewise.
9176 (altivec_vmuleuh): Likewise.
9177 (altivec_vmulouh): Likewise.
9178 (altivec_vmulesh): Likewise.
9179 (altivec_vmulosh): Likewise.
9180
9181 2013-11-05 Mike Stump <mikestump@comcast.net>
9182
9183 * Makefile.in (mostlyclean): Remove c-family objects.
9184
9185 2013-11-05 Ian Lance Taylor <iant@google.com>
9186
9187 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
9188 If possible, add .cfi directives to record change to bx.
9189 * config/i386/i386.c (ix86_emit_cfi): New function.
9190 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
9191
9192 2013-11-05 Steven Bosscher <steven@gcc.gnu.org>
9193
9194 * rtlanal.c (tablejump_p): Expect a JUMP_TABLE_DATA to always follow
9195 immediately after a label for a tablejump pattern.
9196
9197 * config/arm/arm.c (is_jump_table): Remove.
9198 (create_fix_barrier): Use tablejump_p instead.
9199 (arm_reorg): Likewise.
9200 (thumb1_output_casesi): Expect JUMP_TABLE_DATA to always be NEXT_INSN.
9201 (thumb2_output_casesi): Likewise.
9202 * config/aarch64/aarch64.c (aarch64_output_casesi): Likewise.
9203 * config/sh/sh.md (casesi_worker_1, casesi_worker_2,
9204 casesi_shift_media, casesi_load_media): Likewise.
9205 * config/iq2000/iq2000.md: Likewise (in anonymous define_insn).
9206 * config/microblaze/microblaze.md: Likewise.
9207
9208 2013-11-05 Tobias Burnus <burnus@net-b.de>
9209
9210 * doc/invoke.texi (-Wdate-time): Document.
9211
9212 2013-11-05 Richard Sandiford <rdsandiford@googlemail.com>
9213
9214 * double-int.c (lshift_double, rshift_double): Remove
9215 SHIFT_COUNT_TRUNCATED handling.
9216
9217 2013-11-05 Jeff Law <law@redhat.com>
9218
9219 * Makefile.in (OBJS): Add gimple-ssa-isolate-paths.o
9220 * common.opt (-fisolate-erroneous-paths): Add option and documentation.
9221 * gimple-ssa-isolate-paths.c: New file.
9222 * gimple.c (check_loadstore): New function.
9223 (infer_nonnull_range): Moved into gimple.c from tree-vrp.c
9224 Verify OP is in the argument list and the argument corresponding
9225 to OP is a pointer type. Use operand_equal_p rather than
9226 pointer equality when testing if OP is on the nonnull list.
9227 Use check_loadstore rather than count_ptr_derefs. Handle
9228 GIMPLE_RETURN statements.
9229 * tree-vrp.c (infer_nonnull_range): Remove.
9230 * gimple.h (infer_nonnull_range): Declare.
9231 * opts.c (default_options_table): Add OPT_fisolate_erroneous_paths.
9232 * passes.def: Add pass_isolate_erroneous_paths.
9233 * timevar.def (TV_ISOLATE_ERRONEOUS_PATHS): New timevar.
9234 * tree-pass.h (make_pass_isolate_erroneous_paths): Declare.
9235 * tree-ssa.c (struct count_ptr_d): Remove.
9236 (count_ptr_derefs, count_uses_and_derefs): Remove.
9237 * tree-ssa.h (count_uses_and_derefs): Remove.
9238
9239 2013-11-05 Jakub Jelinek <jakub@redhat.com>
9240
9241 PR rtl-optimization/58997
9242 * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
9243 get_iv_value to be in iv->mode rather than iv->extend_mode.
9244 (iv_extend): Likewise. Otherwise, if iv->extend != extend,
9245 use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
9246 * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
9247 mode.
9248
9249 2013-11-05 Andrew MacLeod <amacleod@redhat.com>
9250
9251 * gimple.h: Move some prototypes to gimple-expr.h and add to include
9252 list.
9253 (extract_ops_from_tree, gimple_call_addr_fndecl, is_gimple_reg_type):
9254 Move to gimple-expr.h.
9255 * gimple-expr.h: New file. Relocate some prototypes from gimple.h.
9256 (types_compatible_p, is_gimple_reg_type, is_gimple_variable,
9257 is_gimple_id, virtual_operand_p, is_gimple_addressable,
9258 is_gimple_constant, extract_ops_from_tree, gimple_call_addr_fndecl):
9259 Relocate here.
9260 * gimple.c (extract_ops_from_tree_1, gimple_cond_get_ops_from_tree,
9261 gimple_set_body, gimple_body, gimple_has_body_p, is_gimple_lvalue,
9262 is_gimple_condexpr, is_gimple_addressable, is_gimple_constant,
9263 is_gimple_address, is_gimple_invariant_address,
9264 is_gimple_ip_invariant_address, is_gimple_min_invariant,
9265 is_gimple_ip_invariant, is_gimple_variable, is_gimple_id,
9266 virtual_operand_p, is_gimple_reg, is_gimple_val, is_gimple_asm_val,
9267 is_gimple_min_lval, is_gimple_call_addr, is_gimple_mem_ref_addr,
9268 gimple_decl_printable_name, useless_type_conversion_p,
9269 types_compatible_p, gimple_can_coalesce_p, copy_var_decl): Move to
9270 gimple-expr.[ch].
9271 * gimple-expr.c: New File.
9272 (useless_type_conversion_p, gimple_set_body, gimple_body,
9273 gimple_has_body_p, gimple_decl_printable_name, copy_var_decl,
9274 gimple_can_coalesce_p, extract_ops_from_tree_1,
9275 gimple_cond_get_ops_from_tree, is_gimple_lvalue, is_gimple_condexpr,
9276 is_gimple_address, is_gimple_invariant_address,
9277 is_gimple_ip_invariant_address, is_gimple_min_invariant,
9278 is_gimple_ip_invariant, is_gimple_reg, is_gimple_val,
9279 is_gimple_asm_val, is_gimple_min_lval, is_gimple_call_addr,
9280 is_gimple_mem_ref_addr): Relocate here.
9281 * Makefile.in (OBJS): Add gimple-expr.o.
9282
9283 2013-11-05 David Malcolm <dmalcolm@redhat.com>
9284
9285 * gengtype-parse.c (struct_field_seq): Support empty structs.
9286
9287 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
9288
9289 * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
9290
9291 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
9292
9293 * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT
9294 for !TARGET_80387.
9295 * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define
9296 _SOFT_FLOAT here.
9297 (LONG_DOUBLE_TYPE_SIZE): New define.
9298 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto.
9299
9300 2013-11-05 Paolo Carlini <paolo.carlini@oracle.com>
9301
9302 PR c++/58724
9303 * doc/extend.texi [visibility ("visibility_type")]: Add example
9304 about visibility attribute on namespace declaration.
9305
9306 2013-11-05 Richard Biener <rguenther@suse.de>
9307
9308 PR ipa/58492
9309 * passes.def (all_passes): Start with pass_fixup_cfg again.
9310
9311 2013-11-05 Richard Biener <rguenther@suse.de>
9312
9313 PR tree-optimization/58955
9314 * tree-loop-distribution.c (pg_add_dependence_edges): Fix
9315 edge direction.
9316
9317 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9318
9319 * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
9320 little endian.
9321 (vec_pack_ufix_trunc_v2df): Likewise.
9322
9323 2013-11-05 H.J. Lu <hongjiu.lu@intel.com>
9324
9325 PR middle-end/58981
9326 * doc/md.texi (@code{movmem@var{m}}): Specify Pmode as mode of
9327 pattern, instead of word_mode.
9328
9329 * expr.c (emit_block_move_via_movmem): Don't use mode wider than
9330 Pmode for size.
9331 (set_storage_via_setmem): Likewise.
9332
9333 2013-11-05 Andrew MacLeod <amacleod@redhat.com>
9334
9335 * tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from
9336 gimple.h and the rest of the condition in eliminate_build.
9337 (eliminate_build): Call new routine.
9338 * gimple.h (phi_ssa_name_p): Delete.
9339
9340 2013-11-05 Trevor Saunders <tsaunders@mozilla.com>
9341
9342 * vec.c (vec_prefix::calculate_allocation): Don't try to handle the
9343 case of no prefix and reserving zero slots, because when that's the
9344 case we'll never get here.
9345 * vec.h (va_heap::reserve): Don't try and handle
9346 vec_prefix::calculate_allocation returning zero because that should
9347 never happen.
9348
9349 2013-11-05 Richard Biener <rguenther@suse.de>
9350
9351 PR middle-end/58941
9352 * tree-dfa.c (get_ref_base_and_extent): Merge common code
9353 in MEM_REF and TARGET_MEM_REF handling. Make sure to
9354 process trailing array detection before diving into the
9355 view-converted object (and possibly apply some extra offset).
9356
9357 2013-11-05 Joseph Myers <joseph@codesourcery.com>
9358
9359 * config/i386/i386.c (ix86_float_exceptions_rounding_supported_p):
9360 New function.
9361 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Define.
9362
9363 2013-11-05 Marc Glisse <marc.glisse@inria.fr>
9364
9365 PR tree-optimization/58958
9366 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Use
9367 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
9368
9369 2013-11-05 Marc Glisse <marc.glisse@inria.fr>
9370
9371 * tree-ssa-alias.h (ranges_overlap_p): Handle negative offsets.
9372 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
9373
9374 2013-11-05 Jakub Jelinek <jakub@redhat.com>
9375
9376 PR tree-optimization/58984
9377 * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
9378 set *SIZE_P if non-NULL on success.
9379 (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
9380 callers.
9381 (ipcp_transform_function): Likewise. Punt if size of access
9382 is different from TYPE_SIZE on v->value's type.
9383
9384 2013-11-05 Tobias Burnus <burnus@net-b.de>
9385
9386 * doc/invoke.texi (-fopenmp-simd): Document new option.
9387 * gimplify.c (gimplify_body): Accept -fopenmp-simd.
9388 * omp-low.c (execute_expand_omp, execute_lower_omp): Ditto.
9389 * tree.c (attribute_value_equal): Ditto.
9390
9391 2013-11-04 Wei Mi <wmi@google.com>
9392
9393 * sched-rgn.c (add_branch_dependences): Keep insns in
9394 a SCHED_GROUP at the end of BB to remain their location.
9395
9396 2013-11-04 Wei Mi <wmi@google.com>
9397
9398 * config/i386/i386.c (memory_address_length): Extract a part
9399 of code to rip_relative_addr_p.
9400 (rip_relative_addr_p): New Function.
9401 (ix86_macro_fusion_p): Ditto.
9402 (ix86_macro_fusion_pair_p): Ditto.
9403 * config/i386/i386.h: Add new tune features about macro-fusion.
9404 * config/i386/x86-tune.def (DEF_TUNE): Ditto.
9405 * doc/tm.texi: Generated.
9406 * doc/tm.texi.in: Ditto.
9407 * haifa-sched.c (try_group_insn): New Function.
9408 (group_insns_for_macro_fusion): Ditto.
9409 (sched_init): Call group_insns_for_macro_fusion.
9410 * target.def: Add two hooks: macro_fusion_p and
9411 macro_fusion_pair_p.
9412
9413 2013-11-04 Kostya Serebryany <kcc@google.com>
9414
9415 Update to match the changed asan API.
9416 * asan.c (asan_function_start): New function.
9417 (asan_emit_stack_protection): Update the string stored in the
9418 stack red zone to match new API. Store the PC of the current
9419 function in the red zone.
9420 (asan_global_struct): Update the __asan_global definition to match
9421 the new API.
9422 (asan_add_global): Ditto.
9423 * asan.h (asan_function_start): New prototype.
9424 * final.c (final_start_function): Call asan_function_start.
9425 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v1
9426 to __asan_init_v3.
9427
9428 2013-11-04 Wei Mi <wmi@google.com>
9429
9430 * config/i386/i386-c.c (ix86_target_macros_internal): Separate
9431 PROCESSOR_COREI7_AVX out from PROCESSOR_COREI7.
9432 * config/i386/i386.c (ix86_option_override_internal): Ditto.
9433 (ix86_issue_rate): Ditto.
9434 (ix86_adjust_cost): Ditto.
9435 (ia32_multipass_dfa_lookahead): Ditto.
9436 (ix86_sched_init_global): Ditto.
9437 (get_builtin_code_for_version): Ditto.
9438 * config/i386/i386.h (enum target_cpu_default): Ditto.
9439 (enum processor_type): Ditto.
9440 * config/i386/x86-tune.def (DEF_TUNE): Ditto.
9441
9442 2013-11-04 Vladimir Makarov <vmakarov@redhat.com>
9443
9444 PR rtl-optimization/58967
9445 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
9446 !lra_in_progress for mode sizes bigger word.
9447
9448 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9449
9450 * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
9451 arguments to merge instruction for little endian.
9452 (vec_widen_umult_lo_v16qi): Likewise.
9453 (vec_widen_smult_hi_v16qi): Likewise.
9454 (vec_widen_smult_lo_v16qi): Likewise.
9455 (vec_widen_umult_hi_v8hi): Likewise.
9456 (vec_widen_umult_lo_v8hi): Likewise.
9457 (vec_widen_smult_hi_v8hi): Likewise.
9458 (vec_widen_smult_lo_v8hi): Likewise.
9459
9460 2013-11-04 Ian Lance Taylor <iant@google.com>
9461
9462 * builtins.def (ATTR_NOTHROWCALL_LEAF_LIST): Define.
9463 * sync-builtins.def: Use ATTR_NOTHROWCALL_LEAF_LIST for all sync
9464 builtins that take pointers.
9465 * lto-opts.c (lto_write_options): Write -fnon-call-exceptions if set.
9466 * lto-wrapper.c (merge_and_complain): Collect OPT_fnon_call_exceptions.
9467 (run_gcc): Pass -fnon-call-exceptions.
9468
9469 2013-11-04 Jakub Jelinek <jakub@redhat.com>
9470
9471 * optabs.c (expand_vec_perm): Revert one incorrect line from
9472 2013-10-31 change.
9473
9474 PR tree-optimization/58978
9475 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): Don't modify
9476 use_stmt by single_imm_use directly. Only call single_imm_use
9477 on SSA_NAMEs.
9478
9479 2013-11-04 Vladimir Makarov <vmakarov@redhat.com>
9480
9481 PR rtl-optimization/58968
9482 * lra-spills.c (return_regno_p): New function.
9483 (lra_final_code_change): Use it.
9484
9485 2013-11-04 Joseph Myers <joseph@codesourcery.com>
9486
9487 * doc/cpp.texi (__GCC_IEC_559, __GCC_IEC_559_COMPLEX): Document macros.
9488 * target.def (float_exceptions_rounding_supported_p): New hook.
9489 * targhooks.c (default_float_exceptions_rounding_supported_p): New
9490 function.
9491 * targhooks.h (default_float_exceptions_rounding_supported_p): Declare.
9492 * doc/tm.texi.in (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P):
9493 New @hook.
9494 * doc/tm.texi: Regenerate.
9495 * config.gcc (powerpc*-*-linux*): Set extra_objs.
9496 * config/rs6000/rs6000-linux.c: New file.
9497 * config/rs6000/rs6000-protos.h
9498 (rs6000_linux_float_exceptions_rounding_supported_p): Declare.
9499 * config/rs6000/linux.h
9500 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): New macro.
9501 * config/rs6000/linux64.h
9502 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Likewise.
9503 * config/rs6000/t-linux (rs6000-linux.o): New rule.
9504 * config/rs6000/t-linux64 (rs6000-linux.o): Likewise.
9505
9506 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9507
9508 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
9509 Replace the define_insn_and_split with a define_insn and two
9510 define_splits, with the split after reload re-permuting the source
9511 register to its original value.
9512 (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
9513 (*vsx_le_perm_store_v8hi): Likewise.
9514 (*vsx_le_perm_store_v16qi): Likewise.
9515
9516 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9517
9518 * config/rs6000/vector.md (vec_pack_trunc_v2df): Adjust for
9519 little endian.
9520
9521 2013-11-04 Jakub Jelinek <jakub@redhat.com>
9522
9523 PR tree-optimization/58946
9524 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Update all
9525 bbs with bbinfo[idx].op != NULL before all blocks with
9526 bbinfo[idx].op == NULL.
9527
9528 2013-11-04 Richard Sandiford <rdsandiford@googlemail.com>
9529
9530 * config/avr/avr-log.c (avr_double_int_pop_digit): Delete.
9531 (avr_dump_double_int_hex): Likewise.
9532 (avr_log_vadump): Remove %D and %X handling.
9533 * config/avr/avr.c (avr_double_int_push_digit): Delete.
9534 (avr_map_op_t): Change map from double_int to unsigned int.
9535 (avr_map_op): Update accordingly.
9536 (avr_map, avr_map_metric, avr_has_nibble_0xf, avr_map_decompose)
9537 (avr_move_bits, avr_out_insert_bits, avr_fold_builtin): Operate on
9538 unsigned ints rather than double_ints.
9539
9540 2013-11-03 Marek Polacek <polacek@redhat.com>
9541
9542 Implement -fsanitize=vla-bound.
9543 * opts.c (common_handle_option): Handle vla-bound.
9544 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE): Define.
9545 * flag-types.h (enum sanitize_code): Add SANITIZE_VLA.
9546 * asan.c (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR.
9547
9548 2013-11-02 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
9549
9550 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
9551 little endian.
9552
9553 2013-11-02 Uros Bizjak <ubizjak@gmail.com>
9554
9555 * config/i386/constraints.md (Ts, Tv): New address constrains.
9556 * config/i386/i386.md (*lea<mode>, *<mode>_<bndcheck>): Use Ts
9557 constraint for address_no_seg_operand.
9558 * config/i386/sse.md (*avx512pf_gatherpf<mode>_mask)
9559 (*avx512pf_gatherpf<mode>, *avx512pf_scatterpf<mode>_mask)
9560 (*avx512pf_scatterpf<mode>, *avx2_gathersi<mode>)
9561 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>_2)
9562 (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4)
9563 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2)
9564 (*avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2)
9565 (*avx512f_scattersi<mode> *avx512f_scatterdi<mode>): Use Tv
9566 constraint for vsib_address_operand.
9567
9568 2013-11-02 Steven Bosscher <steven@gcc.gnu.org>
9569
9570 * gcse.c (pre_delete): Remove references to regmove from comments.
9571 * recog.c: (validate_replace_rtx_1): Likewise.
9572 * config/rl78/rl78.c: Likewise.
9573 * config/v850/v850.h: Likewise, and remove unused ENABLE_REGMOVE_PASS.
9574 * common/config/m32r/m32r-common.c: Don't manipulate OPT_fregmove.
9575 * common/config/mmix/mmix-common.c: Likewise.
9576
9577 2013-11-01 Trevor Saunders <tsaunders@mozilla.com>
9578
9579 * function.c (reorder_blocks): Convert block_stack to a stack_vec.
9580 * gimplify.c (gimplify_compound_lval): Likewise.
9581 * graphite-clast-to-gimple.c (gloog): Likewise.
9582 * graphite-dependences.c (loop_is_parallel_p): Likewise.
9583 * graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
9584 (limit_scop); Likewise.
9585 (build_scops): Likewise.
9586 (dot_scop): Likewise.
9587 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
9588 (build_scop_drs): Likewise.
9589 (insert_stmts): Likewise.
9590 (insert_out_of_ssa_copy): Likewise.
9591 (remove_phi): Likewise.
9592 (rewrite_commutative_reductions_out_of_ssa_close_phi): Likewise.
9593 * hw-doloop.c (discover_loop): Likewise.
9594 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Likewise.
9595 * tree-dfa.c (dump_enumerated_decls): Likewise.
9596 * tree-if-conv.c (if_convertable_loop_p): Likewise.
9597 * tree-inline.c (tree_function_versioning): Likewise.
9598 * tree-loop-distribution.c (build_rdg): Likewise.
9599 (rdg_flag_vertex_and_dependent): Likewise.
9600 (distribute_loop): Likewise.
9601 * tree-parloops.c (loop_parallel_p): Likewise.
9602 (eliminate_local_variables): Likewise.
9603 (separate_decls_in_region): Likewise.
9604 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
9605 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
9606 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
9607 * tree-vect-loop.c (vect_analyze_scaler_cycles_1): Likewise.
9608 * tree-vect-patterns.c (vect_pattern_recog): Likewise.
9609 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
9610 (vectorizable_condition): Likewise.
9611
9612 2013-11-01 Uros Bizjak <ubizjak@gmail.com>
9613
9614 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): Always define as 0/1.
9615 * configure: Regenerate.
9616 * config/i386/i386.md (*movdi_internal): Change
9617 HAVE_AS_IX86_INTERUNIT_MOVQ to runtime check.
9618 (*movdf_internal): Ditto.
9619 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
9620 * config/i386/sse.md (vec_concatv2di): Output interunit movq
9621 for HAVE_AS_IX86_INTERUNIT_MOVQ targets.
9622
9623 2013-10-31 Robert Suchanek <Robert.Suchanek@imgtec.com>
9624
9625 * lra-spills.c (assign_spill_hard_regs): Remove statement terminator
9626 after comment.
9627
9628 2013-10-31 David Malcolm <dmalcolm@redhat.com>
9629
9630 Automated part of renaming of symtab_node_base to symtab_node.
9631
9632 Patch autogenerated by rename_symtab.py from
9633 https://github.com/davidmalcolm/gcc-refactoring-scripts
9634 revision 58bb219cc090b2f4516a9297d868c245495ee622
9635 with ChangeLog entry fixed up by hand.
9636
9637 * cgraph.c (x_cgraph_nodes_queue): Rename symtab_node_base to
9638 symtab_node.
9639 (cgraph_node_for_asm): Likewise.
9640 * cgraph.h (symtab_node_base): Likewise.
9641 (cgraph_node): Likewise.
9642 (varpool_node): Likewise.
9643 (is_a_helper <cgraph_node>::test): Likewise.
9644 (is_a_helper <varpool_node>::test): Likewise.
9645 (symtab_nodes): Likewise.
9646 (symtab_register_node): Likewise.
9647 (symtab_unregister_node): Likewise.
9648 (symtab_remove_node): Likewise.
9649 (symtab_get_node): Likewise.
9650 (symtab_node_for_asm): Likewise.
9651 (symtab_node_asm_name): Likewise.
9652 (symtab_node_name): Likewise.
9653 (symtab_insert_node_to_hashtable): Likewise.
9654 (symtab_add_to_same_comdat_group): Likewise.
9655 (symtab_dissolve_same_comdat_group_list): Likewise.
9656 (dump_symtab_node): Likewise.
9657 (debug_symtab_node): Likewise.
9658 (dump_symtab_base): Likewise.
9659 (verify_symtab_node): Likewise.
9660 (verify_symtab_base): Likewise.
9661 (symtab_used_from_object_file_p): Likewise.
9662 (symtab_alias_ultimate_target): Likewise.
9663 (symtab_resolve_alias): Likewise.
9664 (fixup_same_cpp_alias_visibility): Likewise.
9665 (symtab_for_node_and_aliases): Likewise.
9666 (symtab_nonoverwritable_alias): Likewise.
9667 (availability symtab_node_availability): Likewise.
9668 (symtab_semantically_equivalent_p): Likewise.
9669 (fixup_same_cpp_alias_visibility): Likewise.
9670 (symtab_prevail_in_asm_name_hash): Likewise.
9671 (cgraph): Likewise.
9672 (varpool): Likewise.
9673 (varpool_first_variable): Likewise.
9674 (varpool_next_variable): Likewise.
9675 (varpool_first_static_initializer): Likewise.
9676 (varpool_next_static_initializer): Likewise.
9677 (varpool_first_defined_variable): Likewise.
9678 (varpool_next_defined_variable): Likewise.
9679 (cgraph_first_defined_function): Likewise.
9680 (cgraph_next_defined_function): Likewise.
9681 (cgraph_first_function): Likewise.
9682 (cgraph_next_function): Likewise.
9683 (cgraph_first_function_with_gimple_body): Likewise.
9684 (cgraph_next_function_with_gimple_body): Likewise.
9685 (symtab_alias_target): Likewise.
9686 (symtab_real_symbol_p): Likewise.
9687 (symtab_can_be_discarded): Likewise.
9688 * cgraphbuild.c (mark_address): Likewise.
9689 (mark_load): Likewise.
9690 (mark_store): Likewise.
9691 * cgraphunit.c (decide_is_symbol_needed): Likewise.
9692 (first): Likewise.
9693 (enqueue_node): Likewise.
9694 (referred_to_p): Likewise.
9695 (cgraph_process_same_body_aliases): Likewise.
9696 (analyze_functions): Likewise.
9697 (handle_alias_pairs): Likewise.
9698 (output_weakrefs): Likewise.
9699 (compile): Likewise.
9700 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
9701 * ipa-inline-analysis.c (inline_write_summary): Likewise.
9702 * ipa-prop.c (remove_described_reference): Likewise.
9703 (try_decrement_rdesc_refcount): Likewise.
9704 (ipa_edge_duplication_hook): Likewise.
9705 * ipa-ref.c (ipa_record_reference): Likewise.
9706 (ipa_maybe_record_reference): Likewise.
9707 (ipa_clone_ref): Likewise.
9708 (ipa_clone_references): Likewise.
9709 (ipa_clone_referring): Likewise.
9710 (ipa_find_reference): Likewise.
9711 (ipa_remove_stmt_references): Likewise.
9712 (ipa_clear_stmts_in_references): Likewise.
9713 * ipa-ref.h (symtab_node_base): Likewise.
9714 (ipa_ref): Likewise.
9715 (ipa_record_reference): Likewise.
9716 (ipa_maybe_record_reference): Likewise.
9717 (ipa_clone_references): Likewise.
9718 (ipa_clone_referring): Likewise.
9719 (ipa_clone_ref): Likewise.
9720 (ipa_find_reference): Likewise.
9721 (ipa_remove_stmt_references): Likewise.
9722 (ipa_clear_stmts_in_references): Likewise.
9723 * ipa-reference.c (ipa_reference_write_optimization_summary):
9724 Likewise.
9725 * ipa.c (enqueue_node): Likewise.
9726 (process_references): Likewise.
9727 (walk_polymorphic_call_targets): Likewise.
9728 (symtab_remove_unreachable_nodes): Likewise.
9729 (address_taken_from_non_vtable_p): Likewise.
9730 (comdat_can_be_unshared_p_1): Likewise.
9731 (comdat_can_be_unshared_p): Likewise.
9732 (can_replace_by_local_alias): Likewise.
9733 (function_and_variable_visibility): Likewise.
9734 * is-a.h: Likewise (within example in comment).
9735 * lto-cgraph.c (input_cgraph_opt_summary): Likewise.
9736 (lto_symtab_encoder_encode): Likewise.
9737 (lto_symtab_encoder_delete_node): Likewise.
9738 (lto_symtab_encoder_in_partition_p): Likewise.
9739 (lto_set_symtab_encoder_in_partition): Likewise.
9740 (output_refs): Likewise.
9741 (compute_ltrans_boundary): Likewise.
9742 (output_symtab): Likewise.
9743 (input_node): Likewise.
9744 (input_ref): Likewise.
9745 (input_edge): Likewise.
9746 (input_cgraph_1): Likewise.
9747 (input_refs): Likewise.
9748 (output_cgraph_opt_summary): Likewise.
9749 (input_node_opt_summary): Likewise.
9750 (input_cgraph_opt_section): Likewise.
9751 * lto-section-in.c (lto_free_function_in_decl_state_for_node):
9752 Likewise.
9753 * lto-streamer-out.c (lto_output): Likewise.
9754 (output_symbol_p): Likewise.
9755 (produce_symtab): Likewise.
9756 * lto-streamer.h (lto_encoder_entry): Likewise.
9757 (lto_free_function_in_decl_state_for_node): Likewise.
9758 (lto_symtab_encoder_encode): Likewise.
9759 (lto_symtab_encoder_delete_node): Likewise.
9760 (lto_symtab_encoder_in_partition_p): Likewise.
9761 (lto_set_symtab_encoder_in_partition): Likewise.
9762 (lto_symtab_encoder_lookup): Likewise.
9763 (lsei_node): Likewise.
9764 (lto_symtab_encoder_deref): Likewise.
9765 * symtab.c (symtab_hash): Likewise.
9766 (assembler_name_hash): Likewise.
9767 (symtab_nodes): Likewise.
9768 (hash_node): Likewise.
9769 (eq_node): Likewise.
9770 (hash_node_by_assembler_name): Likewise.
9771 (eq_assembler_name): Likewise.
9772 (insert_to_assembler_name_hash): Likewise.
9773 (unlink_from_assembler_name_hash): Likewise.
9774 (symtab_prevail_in_asm_name_hash): Likewise.
9775 (symtab_register_node): Likewise.
9776 (symtab_insert_node_to_hashtable): Likewise.
9777 (symtab_unregister_node): Likewise.
9778 (symtab_get_node): Likewise.
9779 (symtab_remove_node): Likewise.
9780 (symtab_initialize_asm_name_hash): Likewise.
9781 (symtab_node_for_asm): Likewise.
9782 (symtab_add_to_same_comdat_group): Likewise.
9783 (symtab_dissolve_same_comdat_group_list): Likewise.
9784 (symtab_node_asm_name): Likewise.
9785 (symtab_node_name): Likewise.
9786 (dump_symtab_base): Likewise.
9787 (dump_symtab_node): Likewise.
9788 (dump_symtab): Likewise.
9789 (debug_symtab_node): Likewise.
9790 (verify_symtab_base): Likewise.
9791 (verify_symtab_node): Likewise.
9792 (verify_symtab): Likewise.
9793 (symtab_used_from_object_file_p): Likewise.
9794 (symtab_node_availability): Likewise.
9795 (symtab_alias_ultimate_target): Likewise.
9796 (fixup_same_cpp_alias_visibility): Likewise.
9797 (symtab_resolve_alias): Likewise.
9798 (symtab_for_node_and_aliases): Likewise.
9799 (symtab_for_node_and_aliases): Likewise.
9800 (symtab_nonoverwritable_alias_1): Likewise.
9801 (symtab_nonoverwritable_alias): Likewise.
9802 (symtab_semantically_equivalent_p): Likewise.
9803 * value-prof.c (init_node_map): Likewise.
9804 * varasm.c (find_decl): Likewise.
9805 * varpool.c (varpool_node_for_asm): Likewise.
9806 (varpool_remove_unreferenced_decls): Likewise.
9807
9808 2013-10-31 David Malcolm <dmalcolm@redhat.com>
9809
9810 Manual part of renaming of symtab_node_base to symtab_node.
9811
9812 * ipa-ref.h (symtab_node): Remove typedef to pointer type, as it
9813 clashes with the preferred name for the base class.
9814 (const_symtab_node): Remove redundant typedef.
9815
9816 2013-10-31 Jakub Jelinek <jakub@redhat.com>
9817
9818 * optabs.c (expand_vec_perm): Avoid vector mode punning
9819 SUBREGs in SET_DEST.
9820 * expmed.c (store_bit_field_1): Likewise.
9821 * config/i386/sse.md (movdi_to_sse, vec_pack_sfix_trunc_v2df,
9822 vec_pack_sfix_v2df, vec_shl_<mode>, vec_shr_<mode>,
9823 vec_interleave_high<mode>, vec_interleave_low<mode>): Likewise.
9824 * config/i386/i386.c (ix86_expand_vector_move_misalign,
9825 ix86_expand_sse_movcc, ix86_expand_int_vcond, ix86_expand_vec_perm,
9826 ix86_expand_sse_unpack, ix86_expand_args_builtin,
9827 ix86_expand_vector_init_duplicate, ix86_expand_vector_set,
9828 emit_reduc_half, expand_vec_perm_blend, expand_vec_perm_pshufb,
9829 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
9830 expand_vec_perm_vpshufb2_vpermq,
9831 expand_vec_perm_vpshufb2_vpermq_even_odd, expand_vec_perm_even_odd_1,
9832 expand_vec_perm_broadcast_1, expand_vec_perm_vpshufb4_vpermq2,
9833 ix86_expand_sse2_mulv4si3, ix86_expand_pinsr): Likewise.
9834 (expand_vec_perm_palignr): Likewise. Modify a copy of *d rather
9835 than *d itself.
9836
9837 2013-10-31 Uros Bizjak <ubizjak@gmail.com>
9838
9839 * config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments.
9840 Use gcc_unreachable for unhandled modes. Do not check results of
9841 expand_simple_binop. If not expanded to target, move the result.
9842
9843 2013-10-31 Chung-Ju Wu <jasonwucj@gmail.com>
9844 Shiva Chen <shiva0217@gmail.com>
9845
9846 * config.gcc (nds32*-*-*): Add nds32 target.
9847 * config/nds32/nds32.c: New file.
9848 * config/nds32/nds32.h: New file.
9849 * config/nds32/nds32.md: New file.
9850 * config/nds32/constants.md: New file.
9851 * config/nds32/constraints.md: New file.
9852 * config/nds32/iterators.md: New file.
9853 * config/nds32/nds32-doubleword.md: New file.
9854 * config/nds32/nds32-intrinsic.md: New file.
9855 * config/nds32/nds32_intrinsic.h: New file.
9856 * config/nds32/nds32-modes.def: New file.
9857 * config/nds32/nds32-multiple.md: New file.
9858 * config/nds32/nds32.opt: New file.
9859 * config/nds32/nds32-opts.h: New file.
9860 * config/nds32/nds32-protos.h: New file.
9861 * config/nds32/nds32-peephole2.md: New file.
9862 * config/nds32/pipelines.md: New file.
9863 * config/nds32/predicates.md: New file.
9864 * config/nds32/t-mlibs: New file.
9865 * common/config/nds32: New directory and files.
9866
9867 * doc/invoke.texi (NDS32 options): Document nds32 specific options.
9868 * doc/md.texi (NDS32 family): Document nds32 specific constraints.
9869 * doc/install.texi (Cross-Compiler-Specific Options): Document
9870 --with-nds32-lib for nds32 target.
9871 * doc/extend.texi (Function Attributes, Target Builtins): Document
9872 nds32 specific attributes.
9873
9874 2013-10-31 Vladimir Makarov <vmakarov@redhat.com>
9875
9876 * lra-constraints (process_alt_operands): Use the result
9877 elimination register for operand when matching constraints.
9878
9879 2013-10-31 Jakub Jelinek <jakub@redhat.com>
9880
9881 * tree-vrp.c (maybe_set_nonzero_bits): New function.
9882 (remove_range_assertions): Call it.
9883
9884 * tree.c (tree_ctz): New function.
9885 * tree.h (tree_ctz): New prototype.
9886 * tree-ssanames.h (get_range_info, get_nonzero_bits): Change
9887 first argument from tree to const_tree.
9888 * tree-ssanames.c (get_range_info, get_nonzero_bits): Likewise.
9889 * tree-vectorizer.h (vect_generate_tmps_on_preheader): New prototype.
9890 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): No longer
9891 static.
9892 * expr.c (highest_pow2_factor): Reimplemented using tree_ctz.
9893 * tree-vect-loop.c (vect_analyze_loop_operations,
9894 vect_transform_loop): Don't force scalar loop for bound just because
9895 number of iterations is unknown, only do it if it is not known to be
9896 a multiple of vectorization_factor.
9897 * builtins.c (get_object_alignment_2): Use tree_ctz on offset.
9898
9899 * gimple-pretty-print.c (dump_ssaname_info): Print newline also
9900 in case of VR_VARYING. Print get_nonzero_bits if not all ones.
9901 * tree-ssanames.h (struct range_info_def): Add nonzero_bits field.
9902 (set_nonzero_bits, get_nonzero_bits): New prototypes.
9903 * tree-ssa-ccp.c (get_default_value): Use get_range_info to see if
9904 a default def isn't partially constant.
9905 (ccp_finalize): If after IPA, set_range_info if integral SSA_NAME
9906 is known to be partially zero.
9907 (evaluate_stmt): If we'd return otherwise VARYING, use get_range_info
9908 to see if a default def isn't partially constant.
9909 * tree-ssanames.c (set_range_info): Initialize nonzero_bits upon
9910 creation of a range, if VR_RANGE, try to improve nonzero_bits from
9911 the range.
9912 (set_nonzero_bits, get_nonzero_bits): New functions.
9913
9914 * tree-cfg.c (assert_unreachable_fallthru_edge_p): New function.
9915 * tree-cfg.h (assert_unreachable_fallthru_edge_p): New prototype.
9916 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): New function.
9917 (remove_range_assertions): If ASSERT_EXPR_VAR has no other immediate
9918 uses but in the condition and ASSERT_EXPR and the other successor of
9919 the predecessor bb is __builtin_unreachable (), set_range_info of the
9920 ASSERT_EXPR_VAR to the range info of the ASSERT_EXPR's lhs.
9921
9922 2013-10-31 Martin Jambor <mjambor@suse.cz>
9923
9924 PR rtl-optimization/58934
9925 Revert:
9926 2013-10-30 Martin Jambor <mjambor@suse.cz>
9927 PR rtl-optimization/10474
9928 * ira.c (find_moveable_pseudos): Do not calculate dominance info
9929 nor df analysis.
9930 (interesting_dest_for_shprep): New function.
9931 (split_live_ranges_for_shrink_wrap): Likewise.
9932 (ira): Calculate dominance info and df analysis. Call
9933 split_live_ranges_for_shrink_wrap.
9934
9935 2013-10-31 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
9936 Yury Gribov <y.gribov@samsung.com>
9937
9938 PR sanitizer/58543
9939 * asan.c (asan_clear_shadow): Allocate a new vreg for temporary
9940 shadow pointer to avoid clobbering the main one.
9941
9942 2013-10-31 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9943
9944 * lower-subreg.c (resolve_simple_move): Copy REG_INC note.
9945
9946 2013-10-30 Vladimir Makarov <vmakarov@redhat.com>
9947
9948 PR bootstrap/58933
9949 * ira-color.c (update_costs_from_copies): Add new parameter. Use
9950 it for calling update_costs_from_allocno.
9951 (assign_hard_reg): Call restore_costs_from_copies only for
9952 !retry_p. Pass new argument to update_costs_from_copies.
9953 (color_pass): Pass new argument to update_costs_from_copies.
9954 (ira_mark_allocation_change): Ditto.
9955
9956 2013-10-30 Sharad Singhai <singhai@google.com>
9957
9958 PR middle-end/58134
9959 * opts.c (common_handle_option): Remove deprecated option
9960 -ftree-vectorizer-verbose.
9961 * doc/invoke.texi (Debugging Options): Ditto.
9962 * opts-global.c (handle_common_deferred_options): Ditto.
9963 (dump_remap_tree_vectorizer_verbose): Delete.
9964 * common.opt: Set -ftree-vectorizer-verbose as an ignored option.
9965
9966 2013-10-30 DJ Delorie <dj@redhat.com>
9967
9968 * config/rx/rx.c (ADD_RX_BUILTIN0): New macro, used for builtins
9969 that take no arguments.
9970
9971 2013-10-30 Joern Rennecke <joern.rennecke@embecosm.com>
9972
9973 PR other/58545
9974 * reload1.c (update_eliminables_and_spill): New function, broken
9975 out of reload.
9976 (reload): Use it. Check for frame size change after frame size
9977 alignment, and call update_eliminables_and_spill first if continue-ing.
9978
9979 2013-10-30 Cong Hou <congh@google.com>
9980
9981 PR target/58762
9982 * config/i386/i386-protos.h (ix86_expand_sse2_abs): New function.
9983 * config/i386/i386.c (ix86_expand_sse2_abs): New function.
9984 * config/i386/sse.md: Add SSE2 support to abs (8/16/32-bit-int).
9985
9986 2013-10-18 Mikael Pettersson <mikpelinux@gmail.com>
9987
9988 PR rtl-optimization/58369
9989 * reload1.c (compute_reload_subreg_offset): New function.
9990 (choose_reload_regs): Use it to pass endian-correct
9991 offset to subreg_regno_offset.
9992
9993 2013-10-30 Tobias Burnus <burnus@net-b.de>
9994
9995 PR other/33426
9996 * tree-cfg.c (replace_loop_annotate): Replace warning by
9997 warning_at.
9998
9999 2013-10-30 Jason Merrill <jason@redhat.com>
10000
10001 * configure.ac (loose_warn): Add -Wno-format if
10002 --disable-build-format-warnings.
10003
10004 2013-10-30 David Malcolm <dmalcolm@redhat.com>
10005
10006 * cgraphunit.c (analyze_functions): Split symtab_node declarations
10007 onto multiple lines to make things easier for rename_symtab.py.
10008
10009 * symtab.c (symtab_dissolve_same_comdat_group_list): Likewise.
10010 (symtab_semantically_equivalent_p): Likewise.
10011
10012 2013-10-30 Vladimir Makarov <vmakarov@redhat.com>
10013
10014 PR target/58784
10015 * lra.c (check_rtl): Remove address check before LRA work.
10016
10017 2013-10-30 Marc Glisse <marc.glisse@inria.fr>
10018
10019 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for a
10020 POINTER_PLUS_EXPR in the defining statement.
10021
10022 2013-10-30 Vladimir Makarov <vmakarov@redhat.com>
10023
10024 * regmove.c: Remove.
10025 * tree-pass.h (make_pass_regmove): Remove.
10026 * timevar.def (TV_REGMOVE): Remove.
10027 * passes.def (pass_regmove): Remove.
10028 * opts.c (default_options_table): Remove entry for regmove.
10029 * doc/passes.texi: Remove regmove pass description.
10030 * doc/invoke.texi (-foptimize-register-move, -fregmove): Remove
10031 options.
10032 (-fdump-rtl-regmove): Ditto.
10033 * common.opt (foptimize-register-move, fregmove): Ignore.
10034 * Makefile.in (OBJS): Remove regmove.o.
10035 * regmove.c: Remove.
10036 * ira-int.h (struct ira_allocno_pref, ira_pref_t): New structure
10037 and type.
10038 (struct ira_allocno) New member allocno_prefs.
10039 (ALLOCNO_PREFS): New macro.
10040 (ira_prefs, ira_prefs_num): New external vars.
10041 (ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New prototypes.
10042 (ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref): Ditto.
10043 (ira_add_allocno_pref, ira_remove_pref, ira_remove_allocno_prefs):
10044 Ditto.
10045 (ira_add_allocno_copy_to_list): Remove prototype.
10046 (ira_swap_allocno_copy_ends_if_necessary): Ditto.
10047 (ira_pref_iterator): New type.
10048 (ira_pref_iter_init, ira_pref_iter_cond): New functions.
10049 (FOR_EACH_PREF): New macro.
10050 * ira.c (commutative_constraint_p): Move from ira-conflicts.c.
10051 (ira_get_dup_out_num): Ditto. Rename from get_dup_num. Modify the
10052 code.
10053 (ira_setup_alts): New function.
10054 (decrease_live_ranges_number): New function.
10055 (ira): Call the above function.
10056 * ira-build.c (ira_prefs, ira_prefs_num): New global vars.
10057 (ira_create_allocno): Initialize allocno prefs.
10058 (pref_pool, pref_vec): New static vars.
10059 (initiate_prefs, find_allocno_pref, ira_create_pref): New
10060 functions.
10061 (add_allocno_pref_to_list, ira_add_allocno_pref, print_pref): Ditto.
10062 (ira_debug_pref, print_prefs, ira_debug_prefs): Ditto.
10063 (print_allocno_prefs, ira_debug_allocno_prefs, finish_pref): Ditto.
10064 (ira_remove_pref, ira_remove_allocno_prefs, finish_prefs): Ditto.
10065 (ira_add_allocno_copy_to_list): Make static. Rename to
10066 add_allocno_copy_to_list.
10067 (ira_swap_allocno_copy_ends_if_necessary): Make static. Rename to
10068 swap_allocno_copy_ends_if_necessary.
10069 (remove_unnecessary_allocnos, remove_low_level_allocnos): Call
10070 ira_remove_allocno_prefs.
10071 (ira_flattening): Ditto.
10072 (ira_build): Call initiate_prefs, print_prefs.
10073 (ira_destroy): Call finish_prefs.
10074 * ira-color.c (struct update_cost_record): New.
10075 (struct allocno_color_data): Add new member update_cost_records.
10076 (update_cost_record_pool): New static var.
10077 (init_update_cost_records, get_update_cost_record): New functions.
10078 (free_update_cost_record_list, finish_update_cost_records): Ditto.
10079 (struct update_cost_queue_elem): Add member from.
10080 (initiate_cost_update): Call init_update_cost_records.
10081 (finish_cost_update): Call finish_update_cost_records.
10082 (queue_update_cost, get_next_update_cost): Add new param from.
10083 (Update_allocno_cost, update_costs_from_allocno): New functions.
10084 (update_costs_from_prefs): Ditto.
10085 (update_copy_costs): Rename to update_costs_from_copies.
10086 (restore_costs_from_copies): New function.
10087 (update_conflict_hard_regno_costs): Don't go back.
10088 (assign_hard_reg): Call restore_costs_from_copies. Add printing
10089 more debug info.
10090 (pop_allocnos): Add priniting more debug info.
10091 (color_allocnos): Remove prefs for conflicting hard regs.
10092 Call update_costs_from_prefs.
10093 * ira-conflicts.c (commutative_constraint_p): Move to ira.c
10094 (get_dup_num): Rename, modify, and move to ira.c
10095 (process_regs_for_copy): Add prefs.
10096 (add_insn_allocno_copies): Put src as first arg of
10097 process_regs_for_copy. Remove dead code. Call ira_setup_alts.
10098 * ira-costs.c (record_reg_classes): Modify and move code into
10099 record_operands_costs.
10100 (find_costs_and_classes): Create prefs for the hard reg of small
10101 reg class.
10102 (process_bb_node_for_hard_reg_moves): Add prefs.
10103
10104 2013-10-30 Richard Biener <rguenther@suse.de>
10105
10106 PR middle-end/57100
10107 * basic-block.h (pre_and_rev_post_order_compute_fn): New function.
10108 * cfganal.c (pre_and_rev_post_order_compute_fn): New function
10109 as worker for ...
10110 (pre_and_rev_post_order_compute): ... which now wraps it.
10111 * graph.c (draw_cfg_nodes_no_loops): Use
10112 pre_and_rev_post_order_compute_fn to avoid ICEing and dependence
10113 on cfun.
10114
10115 2013-10-30 Christian Bruel <christian.bruel@st.com>
10116
10117 * config/sh/sh-mem.cc (sh_expand_cmpnstr): New function.
10118 (sh_expand_cmpstr): Handle known align and schedule improvements.
10119 * config/sh/sh-protos.h (sh_expand_cmpstrn): Declare.
10120 * config/sh/sh.md (cmpstrnsi): New pattern.
10121
10122 2013-10-30 Martin Jambor <mjambor@suse.cz>
10123
10124 PR rtl-optimization/10474
10125 * ira.c (find_moveable_pseudos): Do not calculate dominance info
10126 nor df analysis.
10127 (interesting_dest_for_shprep): New function.
10128 (split_live_ranges_for_shrink_wrap): Likewise.
10129 (ira): Calculate dominance info and df analysis. Call
10130 split_live_ranges_for_shrink_wrap.
10131
10132 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10133
10134 PR target/58854
10135 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage.
10136
10137 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
10138
10139 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
10140 * tree.h (POINTER_BOUNDS_P): New.
10141 (BOUNDED_TYPE_P): New.
10142 (BOUNDED_P): New.
10143 (pointer_bounds_type_node): New.
10144 * tree.c (build_common_tree_nodes): Initialize
10145 pointer_bounds_type_node.
10146 * gimple.h (gimple_call_get_nobnd_arg_index): New.
10147 (gimple_call_num_nobnd_args): New.
10148 (gimple_call_nobnd_arg): New.
10149 (gimple_return_retbnd): New.
10150 (gimple_return_set_retbnd): New
10151 * gimple.c (gimple_build_return): Increase number of ops
10152 for return statement.
10153 (gimple_call_get_nobnd_arg_index): New.
10154 * gimple-pretty-print.c (dump_gimple_return): Print second op.
10155
10156 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
10157
10158 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
10159 with "chkp ctor" and "bnd_legacy" attributes.
10160 * gimplify.c (gimplify_init_constructor): Avoid infinite
10161 loop during gimplification of bounds initializer.
10162
10163 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
10164
10165 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
10166 (handle_bnd_legacy): New.
10167 (c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
10168 * doc/extend.texi: Document bnd_variable_size and bnd_legacy
10169 attributes.
10170
10171 2013-10-29 Ilya Enkovich <ilya.enkovich@intel.com>
10172
10173 * builtin-types.def (BT_FN_VOID_CONST_PTR): New.
10174 (BT_FN_PTR_CONST_PTR): New.
10175 (BT_FN_CONST_PTR_CONST_PTR): New.
10176 (BT_FN_PTR_CONST_PTR_SIZE): New.
10177 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
10178 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
10179 (BT_FN_VOID_CONST_PTR_SIZE): New.
10180 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
10181 * chkp-builtins.def: New.
10182 * builtins.def: include chkp-builtins.def.
10183 (DEF_CHKP_BUILTIN): New.
10184 * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
10185 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
10186 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
10187 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
10188 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
10189 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
10190 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
10191 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
10192 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
10193 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
10194 * common.opt (fcheck-pointer-bounds): New.
10195 * toplev.c (process_options): Check Pointer Bounds Checker is
10196 supported.
10197 * doc/extend.texi: Document Pointer Bounds Checker built-in functions.
10198
10199 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
10200
10201 * target.def (builtin_chkp_function): New.
10202 (chkp_bound_type): New.
10203 (chkp_bound_mode): New.
10204 (fn_abi_va_list_bounds_size): New.
10205 (load_bounds_for_arg): New.
10206 (store_bounds_for_arg): New.
10207 * targhooks.h (default_load_bounds_for_arg): New.
10208 (default_store_bounds_for_arg): New.
10209 (default_fn_abi_va_list_bounds_size): New.
10210 (default_chkp_bound_type): New.
10211 (default_chkp_bound_mode): New.
10212 (default_builtin_chkp_function): New.
10213 * targhooks.c (default_load_bounds_for_arg): New.
10214 (default_store_bounds_for_arg): New.
10215 (default_fn_abi_va_list_bounds_size): New.
10216 (default_chkp_bound_type): New.
10217 (default_chkp_bound_mode); New.
10218 (default_builtin_chkp_function): New.
10219 * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
10220 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
10221 (TARGET_STORE_BOUNDS_FOR_ARG): New.
10222 (TARGET_BUILTIN_CHKP_FUNCTION): New.
10223 (TARGET_CHKP_BOUND_TYPE): New.
10224 (TARGET_CHKP_BOUND_MODE): New.
10225 * doc/tm.texi: Regenerated.
10226 * langhooks.h (lang_hooks): Add chkp_supported field.
10227 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
10228 (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.
10229
10230 2013-10-29 Andrew Pinski <apinski@cavium.com>
10231
10232 * tree-ssa-ifcombine.c: Include rtl.h and tm_p.h.
10233 (ifcombine_ifandif): Handle cases where maybe_fold_and_comparisons
10234 fails, combining the branches anyways.
10235 (tree_ssa_ifcombine): Inverse the order of the basic block walk,
10236 increases the number of combinings.
10237 * gimple.h (gsi_start_nondebug_after_labels_bb): New function.
10238
10239 2013-10-29 Mike Stump <mikestump@comcast.net>
10240
10241 * machmode.def (PARTIAL_INT_MODE): Add precision and name.
10242 * genmodes.c (PARTIAL_INT_MODE): Add precision and name.
10243 (make_vector_mode): Increase namebuf to 16.
10244 (emit_insn_modes_h): When processing BImode, don't
10245 also match partial int modes.
10246 (emit_class_narrowest_mode): Likewise.
10247
10248 * config/bfin/bfin-modes.def: Add precision to PDI.
10249 * config/m32c/m32c-modes.def: Add precision to PSI.
10250 * config/msp430/msp430-modes.def: Add precision to PSI.
10251 * config/rs6000/rs6000-modes.def: Add precision to PTI.
10252 * config/sh/sh-modes.def: Add precision to PSI and PDI.
10253
10254 2013-10-29 Oleg Endo <olegendo@gcc.gnu.org>
10255
10256 PR target/54236
10257 * config/sh/sh.md (*addc): Rename existing variations to ...
10258 (*addc_r_r_1, *addc_2r_1, *addc_r_1): ... these.
10259 (*addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_2r_lsb, *addc_r_msb,
10260 *addc_r_r_msb, *addc_2r_msb): New insn_and_split patterns.
10261 * config/sh/sh.c (addsubcosts): Handle some addc special cases.
10262
10263 2013-10-29 Teresa Johnson <tejohnson@google.com>
10264
10265 PR ipa/58862
10266 * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile
10267 insanities when updating probabilities.
10268
10269 2013-10-29 David Malcolm <dmalcolm@redhat.com>
10270
10271 * gdbhooks.py (CGraphNodePrinter.to_string): Update gdb
10272 prettyprinter for cgraph_node to reflect the conversion of the
10273 symtable types to a C++ class hierarchy: it now *is* a
10274 symtab_node_base, rather than having one (named "symbol").
10275
10276 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
10277
10278 * builtins.c (is_builtin_name): Added a check for __cilkrts_detach and
10279 __cilkrts_pop_frame. If matched, then return true for built-in
10280 function name.
10281 (expand_builtin): Added BUILT_IN_CILK_DETACH and
10282 BUILT_IN_CILK_POP_FRAME case.
10283 * langhooks-def.h (lhd_install_body_with_frame_cleanup): New prototype.
10284 (lhs_cilk_detect_spawn): Likewise.
10285 (LANG_HOOKS_DECLS): Added LANG_HOOKS_CILKPLUS.
10286 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): New #define.
10287 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
10288 (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
10289 (LANG_HOOKS_CILKPLUS): Likewise.
10290 * tree.h (CILK_SPAWN_FN): Likewise.
10291 * builtin.def (DEF_CILK_BUILTIN_STUB): Likewise.
10292 * Makefile.in (C_COMMON_OBJS): Added c-family/cilk.o.
10293 (OBJS): Added cilk-common.o.
10294 (BUILTINS_DEF): Added cilk-builtins.def.
10295 * langhooks.c (lhd_install_body_with_frame_cleanup): New function.
10296 (lhd_cilk_detect_spawn): Likewise.
10297 * langhooks.h (lang_hooks_for_cilkplus): New struct.
10298 (struct lang_hooks): Added new field called "cilkplus."
10299 * cilk-common.c: New file.
10300 * cilk.h: Likewise.
10301 * cilk-builtins.def: Likewise.
10302 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Added
10303 "__cilk" macro and set it to 200.
10304 * function.h (struct function::cilk_frame_decl): New field.
10305 (struct function::is_cilk_function): Likewise.
10306 (struct function::calls_cilk_spawn): Likewise.
10307 * gimplify.c (gimplify_call_expr): Added a check if the function call
10308 being gimplified is a spawn detach point. If so, then add pop_frame
10309 and detach function calls.
10310 (gimplify_expr): Added a CILK_SPAWN_STMT and CILK_SYNC_STMT case
10311 for gimplifying _Cilk_spawn and _Cilk_sync statements.
10312 (gimplify_return_expr): Added a check for _Cilk_spawn usage in
10313 function. If so, added a _Cilk_sync and gimplified it.
10314 (gimplify_modify_expr): Added a check for _Cilk_spawn in MODIFY and
10315 INIT_EXPRs. If so, then call gimplify_cilk_spawn.
10316 * ipa-inline-analysis (initialize_inline_failed): Prevent inlining of
10317 spawner function.
10318 (can_inline_edge_p): Prevent inling of spawnee function.
10319 * ira.c (ira_setup_eliminable_regset): Force usage of frame pointer
10320 for functions that use Cilk keywords.
10321 * tree-inline.h (struct copy_body_data::remap_var_for_cilk): New field.
10322 * tree-pretty-print.c (dump_generic_node): Added CILK_SPAWN_STMT and
10323 CILK_SYNC_STMT cases.
10324 * tree.def (DEFTREECODE): Added CILK_SPAWN_STMT and CILK_SYNC_STMT
10325 trees.
10326 * generic.texi (CILK_SPAWN_STMT): Added documentation for _Cilk_spawn.
10327 (CILK_SYNC_STMT): Added documentation for _Cilk_sync.
10328 * passes.texi (Cilk Keywords): New section that describes the compiler
10329 code changes for handling Cilk Keywords.
10330
10331 2013-10-29 David Malcolm <dmalcolm@redhat.com>
10332
10333 Patch autogenerated by refactor_symtab.py from
10334 https://github.com/davidmalcolm/gcc-refactoring-scripts
10335 revision 58bb219cc090b2f4516a9297d868c245495ee622
10336
10337 * asan.c (asan_finish_file): Update for conversion of symtab types to
10338 a true class hierarchy.
10339 * cfgexpand.c (estimated_stack_frame_size): Likewise.
10340 * cgraph.c (cgraph_get_body): Likewise.
10341 (cgraph_get_create_real_symbol_node): Likewise.
10342 (verify_cgraph_node): Likewise.
10343 (verify_edge_corresponds_to_fndecl): Likewise.
10344 (verify_edge_count_and_frequency): Likewise.
10345 (cgraph_will_be_removed_from_program_if_no_direct_calls): Likewise.
10346 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
10347 (cgraph_can_remove_if_no_direct_calls_and_refs_p): Likewise.
10348 (cgraph_node_cannot_return): Likewise.
10349 (cgraph_set_pure_flag_1): Likewise.
10350 (cgraph_set_const_flag_1): Likewise.
10351 (cgraph_set_nothrow_flag_1): Likewise.
10352 (cgraph_make_node_local_1): Likewise.
10353 (cgraph_for_node_and_aliases): Likewise.
10354 (cgraph_for_node_thunks_and_aliases): Likewise.
10355 (cgraph_node_can_be_local_p): Likewise.
10356 (cgraph_node_cannot_be_local_p_1): Likewise.
10357 (cgraph_function_body_availability): Likewise.
10358 (dump_cgraph_node): Likewise.
10359 (cgraph_rtl_info): Likewise.
10360 (cgraph_mark_address_taken_node): Likewise.
10361 (cgraph_remove_node): Likewise.
10362 (cgraph_release_function_body): Likewise.
10363 (cgraph_update_edges_for_call_stmt_node): Likewise.
10364 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
10365 (cgraph_make_edge_direct): Likewise.
10366 (cgraph_resolve_speculation): Likewise.
10367 (cgraph_speculative_call_info): Likewise.
10368 (cgraph_turn_edge_to_speculative): Likewise.
10369 (cgraph_create_edge_1): Likewise.
10370 (cgraph_set_call_stmt): Likewise.
10371 (cgraph_node_for_asm): Likewise.
10372 (cgraph_add_thunk): Likewise.
10373 (cgraph_same_body_alias): Likewise.
10374 (cgraph_create_function_alias): Likewise.
10375 (cgraph_create_node): Likewise.
10376 (cgraph_create_empty_node): Likewise.
10377 (record_function_versions): Likewise.
10378 (used_from_object_file_p): Likewise.
10379 * cgraph.h (symtab_can_be_discarded): Likewise.
10380 (symtab_real_symbol_p): Likewise.
10381 (cgraph_mark_force_output_node): Likewise.
10382 (cgraph_edge_recursive_p): Likewise.
10383 (symtab_alias_target): Likewise.
10384 (varpool_all_refs_explicit_p): Likewise.
10385 (varpool_can_remove_if_no_refs): Likewise.
10386 (cgraph_only_called_directly_or_aliased_p): Likewise.
10387 (cgraph_next_function_with_gimple_body): Likewise.
10388 (cgraph_first_function_with_gimple_body): Likewise.
10389 (cgraph_function_with_gimple_body_p): Likewise.
10390 (cgraph_next_function): Likewise.
10391 (cgraph_first_function): Likewise.
10392 (cgraph_next_defined_function): Likewise.
10393 (cgraph_first_defined_function): Likewise.
10394 (varpool_next_defined_variable): Likewise.
10395 (varpool_first_defined_variable): Likewise.
10396 (varpool_next_static_initializer): Likewise.
10397 (varpool_first_static_initializer): Likewise.
10398 (varpool_next_variable): Likewise.
10399 (varpool_first_variable): Likewise.
10400 (varpool_node_name): Likewise.
10401 (varpool): Likewise.
10402 (cgraph): Likewise.
10403 (is_a_helper <varpool_node>::test): Likewise.
10404 (is_a_helper <cgraph_node>::test): Likewise.
10405 (varpool_variable_node): Likewise.
10406 (cgraph_function_or_thunk_node): Likewise.
10407 (varpool_alias_target): Likewise.
10408 (cgraph_alias_target): Likewise.
10409 (cgraph_node_name): Likewise.
10410 (varpool_node_asm_name): Likewise.
10411 (cgraph_node_asm_name): Likewise.
10412 * cgraphbuild.c (remove_cgraph_callee_edges): Likewise.
10413 (cgraph_rebuild_references): Likewise.
10414 (rebuild_cgraph_edges): Likewise.
10415 (record_eh_tables): Likewise.
10416 (build_cgraph_edges): Likewise.
10417 (mark_store): Likewise.
10418 (mark_load): Likewise.
10419 (mark_address): Likewise.
10420 (record_type_list): Likewise.
10421 (record_reference): Likewise.
10422 * cgraphclones.c (cgraph_materialize_all_clones): Likewise.
10423 (cgraph_materialize_clone): Likewise.
10424 (cgraph_function_versioning): Likewise.
10425 (cgraph_copy_node_for_versioning): Likewise.
10426 (update_call_expr): Likewise.
10427 (cgraph_find_replacement_node): Likewise.
10428 (cgraph_create_virtual_clone): Likewise.
10429 (cgraph_clone_node): Likewise.
10430 * cgraphunit.c (compile): Likewise.
10431 (output_weakrefs): Likewise.
10432 (output_in_order): Likewise.
10433 (expand_function): Likewise.
10434 (assemble_thunks_and_aliases): Likewise.
10435 (expand_thunk): Likewise.
10436 (mark_functions_to_output): Likewise.
10437 (handle_alias_pairs): Likewise.
10438 (analyze_functions): Likewise.
10439 (walk_polymorphic_call_targets): Likewise.
10440 (varpool_finalize_decl): Likewise.
10441 (process_function_and_variable_attributes): Likewise.
10442 (cgraph_process_same_body_aliases): Likewise.
10443 (analyze_function): Likewise.
10444 (cgraph_add_new_function): Likewise.
10445 (cgraph_finalize_function): Likewise.
10446 (referred_to_p): Likewise.
10447 (cgraph_reset_node): Likewise.
10448 (cgraph_process_new_functions): Likewise.
10449 (enqueue_node): Likewise.
10450 (decide_is_symbol_needed): Likewise.
10451 * coverage.c (coverage_compute_profile_id): Likewise.
10452 * dbxout.c (dbxout_expand_expr): Likewise.
10453 * dwarf2out.c (premark_types_used_by_global_vars_helper): Likewise.
10454 (reference_to_unused): Likewise.
10455 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
10456 * gimplify.c (unvisit_body): Likewise.
10457 (unshare_body): Likewise.
10458 * ipa-cp.c (ipcp_generate_summary): Likewise.
10459 (ipcp_decision_stage): Likewise.
10460 (identify_dead_nodes): Likewise.
10461 (decide_whether_version_node): Likewise.
10462 (decide_about_value): Likewise.
10463 (perhaps_add_new_callers): Likewise.
10464 (create_specialized_node): Likewise.
10465 (update_profiling_info): Likewise.
10466 (ipcp_propagate_stage): Likewise.
10467 (estimate_local_effects): Likewise.
10468 (good_cloning_opportunity_p): Likewise.
10469 (devirtualization_time_bonus): Likewise.
10470 (propagate_constants_accross_call): Likewise.
10471 (initialize_node_lattices): Likewise.
10472 (ipcp_cloning_candidate_p): Likewise.
10473 (determine_versionability): Likewise.
10474 (print_all_lattices): Likewise.
10475 (print_lattice): Likewise.
10476 (ipcp_discover_new_direct_edges): Likewise.
10477 * ipa-devirt.c (ipa_devirt): Likewise.
10478 (likely_target_p): Likewise.
10479 (update_type_inheritance_graph): Likewise.
10480 (possible_polymorphic_call_target_p): Likewise.
10481 (dump_possible_polymorphic_call_targets): Likewise.
10482 (devirt_variable_node_removal_hook): Likewise.
10483 (record_binfo): Likewise.
10484 (maybe_record_node): Likewise.
10485 (build_type_inheritance_graph): Likewise.
10486 * ipa-inline-analysis.c (inline_write_summary): Likewise.
10487 (inline_generate_summary): Likewise.
10488 (inline_analyze_function): Likewise.
10489 (do_estimate_growth): Likewise.
10490 (simple_edge_hints): Likewise.
10491 (estimate_node_size_and_time): Likewise.
10492 (estimate_edge_devirt_benefit): Likewise.
10493 (compute_inline_parameters): Likewise.
10494 (estimate_function_body_sizes): Likewise.
10495 (compute_bb_predicates): Likewise.
10496 (initialize_inline_failed): Likewise.
10497 (dump_inline_summary): Likewise.
10498 (dump_inline_edge_summary): Likewise.
10499 * ipa-inline-transform.c (inline_transform): Likewise.
10500 (preserve_function_body_p): Likewise.
10501 (save_inline_function_body): Likewise.
10502 (inline_call): Likewise.
10503 (clone_inlined_nodes): Likewise.
10504 (can_remove_node_now_p): Likewise.
10505 (can_remove_node_now_p_1): Likewise.
10506 * ipa-inline.c (early_inliner): Likewise.
10507 (early_inline_small_functions): Likewise.
10508 (inline_always_inline_functions): Likewise.
10509 (ipa_inline): Likewise.
10510 (flatten_function): Likewise.
10511 (inline_small_functions): Likewise.
10512 (speculation_useful_p): Likewise.
10513 (recursive_inlining): Likewise.
10514 (update_caller_keys): Likewise.
10515 (reset_edge_caches): Likewise.
10516 (update_edge_key): Likewise.
10517 (edge_badness): Likewise.
10518 (relative_time_benefit): Likewise.
10519 (want_inline_self_recursive_call_p): Likewise.
10520 (want_inline_small_function_p): Likewise.
10521 (want_early_inline_function_p): Likewise.
10522 (num_calls): Likewise.
10523 (can_early_inline_edge_p): Likewise.
10524 (can_inline_edge_p): Likewise.
10525 (report_inline_failed_reason): Likewise.
10526 * ipa-profile.c (ipa_profile): Likewise.
10527 (ipa_propagate_frequency): Likewise.
10528 (ipa_propagate_frequency_1): Likewise.
10529 (ipa_profile_generate_summary): Likewise.
10530 * ipa-prop.c (ipcp_transform_function): Likewise.
10531 (read_replacements_section): Likewise.
10532 (ipa_prop_read_section): Likewise.
10533 (ipa_modify_call_arguments): Likewise.
10534 (ipa_print_node_params): Likewise.
10535 (propagate_controlled_uses): Likewise.
10536 (update_indirect_edges_after_inlining): Likewise.
10537 (remove_described_reference): Likewise.
10538 (ipa_make_edge_direct_to_target): Likewise.
10539 (ipa_analyze_node): Likewise.
10540 (ipa_analyze_params_uses): Likewise.
10541 (ipa_compute_jump_functions): Likewise.
10542 (ipa_get_callee_param_type): Likewise.
10543 (ipa_print_node_jump_functions): Likewise.
10544 (ipa_initialize_node_params): Likewise.
10545 (ipa_populate_param_decls): Likewise.
10546 (ipa_func_spec_opts_forbid_analysis_p): Likewise.
10547 (write_agg_replacement_chain): Likewise.
10548 (ipa_write_node_info): Likewise.
10549 (ipa_edge_duplication_hook): Likewise.
10550 (try_decrement_rdesc_refcount): Likewise.
10551 * ipa-pure-const.c (propagate_nothrow): Likewise.
10552 (propagate_pure_const): Likewise.
10553 (pure_const_read_summary): Likewise.
10554 (pure_const_write_summary): Likewise.
10555 (analyze_function): Likewise.
10556 * ipa-ref-inline.h (ipa_ref_referred_ref_list): Likewise.
10557 (ipa_ref_referring_ref_list): Likewise.
10558 * ipa-ref.c (ipa_clear_stmts_in_references): Likewise.
10559 (ipa_remove_stmt_references): Likewise.
10560 (ipa_find_reference): Likewise.
10561 (ipa_dump_referring): Likewise.
10562 (ipa_dump_references): Likewise.
10563 (ipa_record_reference): Likewise.
10564 * ipa-reference.c (ipa_reference_read_optimization_summary): Likewise.
10565 (ipa_reference_write_optimization_summary): Likewise.
10566 (write_node_summary_p): Likewise.
10567 (propagate): Likewise.
10568 (read_write_all_from_decl): Likewise.
10569 (generate_summary): Likewise.
10570 (analyze_function): Likewise.
10571 (propagate_bits): Likewise.
10572 (ipa_reference_get_not_written_global): Likewise.
10573 (ipa_reference_get_not_read_global): Likewise.
10574 * ipa-split.c (execute_split_functions): Likewise.
10575 (split_function): Likewise.
10576 * ipa-utils.c (ipa_merge_profiles): Likewise.
10577 (dump_cgraph_node_set): Likewise.
10578 (ipa_reverse_postorder): Likewise.
10579 (ipa_edge_within_scc): Likewise.
10580 (ipa_get_nodes_in_cycle): Likewise.
10581 (ipa_free_postorder_info): Likewise.
10582 (ipa_reduced_postorder): Likewise.
10583 (searchc): Likewise.
10584 (recursive_call_p): Likewise.
10585 * ipa.c (ipa_cdtor_merge): Likewise.
10586 (record_cdtor_fn): Likewise.
10587 (function_and_variable_visibility): Likewise.
10588 (varpool_externally_visible_p): Likewise.
10589 (cgraph_externally_visible_p): Likewise.
10590 (comdat_can_be_unshared_p): Likewise.
10591 (comdat_can_be_unshared_p_1): Likewise.
10592 (address_taken_from_non_vtable_p): Likewise.
10593 (ipa_discover_readonly_nonaddressable_vars): Likewise.
10594 (symtab_remove_unreachable_nodes): Likewise.
10595 (walk_polymorphic_call_targets): Likewise.
10596 (process_references): Likewise.
10597 (enqueue_node): Likewise.
10598 (has_addr_references_p): Likewise.
10599 (cgraph_non_local_node_p_1): Likewise.
10600 * is-a.h (varpool_analyze_node): Likewise.
10601 * lto-cgraph.c (input_symtab): Likewise.
10602 (merge_profile_summaries): Likewise.
10603 (input_cgraph_1): Likewise.
10604 (input_edge): Likewise.
10605 (input_varpool_node): Likewise.
10606 (input_node): Likewise.
10607 (input_overwrite_node): Likewise.
10608 (compute_ltrans_boundary): Likewise.
10609 (output_refs): Likewise.
10610 (lto_output_varpool_node): Likewise.
10611 (lto_output_node): Likewise.
10612 (reachable_from_other_partition_p): Likewise.
10613 (referenced_from_other_partition_p): Likewise.
10614 (lto_output_edge): Likewise.
10615 (output_node_opt_summary): Likewise.
10616 (add_node_to): Likewise.
10617 (reachable_from_this_partition_p): Likewise.
10618 (lto_set_symtab_encoder_in_partition): Likewise.
10619 (lto_symtab_encoder_in_partition_p): Likewise.
10620 (lto_set_symtab_encoder_encode_initializer): Likewise.
10621 (lto_symtab_encoder_encode_initializer_p): Likewise.
10622 (lto_set_symtab_encoder_encode_body): Likewise.
10623 (lto_symtab_encoder_encode_body_p): Likewise.
10624 * lto-section-in.c (lto_free_function_in_decl_state_for_node):
10625 Likewise.
10626 * lto-streamer-in.c (lto_read_body): Likewise.
10627 (fixup_call_stmt_edges): Likewise.
10628 (fixup_call_stmt_edges_1): Likewise.
10629 * lto-streamer-out.c (produce_symtab): Likewise.
10630 (output_symbol_p): Likewise.
10631 (write_symbol): Likewise.
10632 (lto_output): Likewise.
10633 (copy_function): Likewise.
10634 (output_function): Likewise.
10635 * passes.c (function_called_by_processed_nodes_p): Likewise.
10636 (ipa_write_optimization_summaries): Likewise.
10637 (ipa_write_summaries): Likewise.
10638 (do_per_function_toporder): Likewise.
10639 (do_per_function): Likewise.
10640 (dump_passes): Likewise.
10641 * symtab.c (symtab_semantically_equivalent_p): Likewise.
10642 (symtab_nonoverwritable_alias): Likewise.
10643 (symtab_nonoverwritable_alias_1): Likewise.
10644 (symtab_for_node_and_aliases): Likewise.
10645 (symtab_resolve_alias): Likewise.
10646 (fixup_same_cpp_alias_visibility): Likewise.
10647 (symtab_alias_ultimate_target): Likewise.
10648 (symtab_used_from_object_file_p): Likewise.
10649 (verify_symtab_base): Likewise.
10650 (dump_symtab_base): Likewise.
10651 (symtab_node_name): Likewise.
10652 (symtab_node_asm_name): Likewise.
10653 (symtab_dissolve_same_comdat_group_list): Likewise.
10654 (symtab_add_to_same_comdat_group): Likewise.
10655 (symtab_unregister_node): Likewise.
10656 (symtab_insert_node_to_hashtable): Likewise.
10657 (symtab_register_node): Likewise.
10658 (unlink_from_assembler_name_hash): Likewise.
10659 (insert_to_assembler_name_hash): Likewise.
10660 (eq_assembler_name): Likewise.
10661 (hash_node_by_assembler_name): Likewise.
10662 (eq_node): Likewise.
10663 (hash_node): Likewise.
10664 * toplev.c (wrapup_global_declaration_2): Likewise.
10665 * trans-mem.c (ipa_tm_execute): Likewise.
10666 (ipa_tm_transform_clone): Likewise.
10667 (ipa_tm_transform_transaction): Likewise.
10668 (ipa_tm_transform_calls_redirect): Likewise.
10669 (ipa_tm_insert_gettmclone_call): Likewise.
10670 (ipa_tm_insert_irr_call): Likewise.
10671 (ipa_tm_create_version): Likewise.
10672 (ipa_tm_create_version_alias): Likewise.
10673 (ipa_tm_mark_forced_by_abi_node): Likewise.
10674 (ipa_tm_mark_force_output_node): Likewise.
10675 (ipa_tm_diagnose_tm_safe): Likewise.
10676 (ipa_tm_mayenterirr_function): Likewise.
10677 (ipa_tm_scan_irr_function): Likewise.
10678 (ipa_tm_note_irrevocable): Likewise.
10679 (ipa_tm_scan_calls_clone): Likewise.
10680 (get_cg_data): Likewise.
10681 * tree-eh.c (tree_could_trap_p): Likewise.
10682 * tree-emutls.c (ipa_lower_emutls): Likewise.
10683 (create_emultls_var): Likewise.
10684 (lower_emutls_function_body): Likewise.
10685 (gen_emutls_addr): Likewise.
10686 (emutls_decl): Likewise.
10687 (new_emutls_decl): Likewise.
10688 * tree-inline.c (tree_function_versioning): Likewise.
10689 (optimize_inline_calls): Likewise.
10690 (expand_call_inline): Likewise.
10691 (estimate_num_insns): Likewise.
10692 (copy_bb): Likewise.
10693 (delete_unreachable_blocks_update_callgraph): Likewise.
10694 * tree-nested.c (gimplify_all_functions): Likewise.
10695 (create_nesting_tree): Likewise.
10696 (check_for_nested_with_variably_modified): Likewise.
10697 * tree-pretty-print.c (dump_function_header): Likewise.
10698 * tree-profile.c (tree_profiling): Likewise.
10699 * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
10700 (modify_function): Likewise.
10701 (convert_callers): Likewise.
10702 (convert_callers_for_node): Likewise.
10703 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10704 (associate_varinfo_to_alias): Likewise.
10705 (create_variable_info_for): Likewise.
10706 (get_constraint_for_ssa_var): Likewise.
10707 * tree-vectorizer.c (increase_alignment): Likewise.
10708 * tree.c (find_decls_types_in_var): Likewise.
10709 (find_decls_types_in_node): Likewise.
10710 (free_lang_data_in_decl): Likewise.
10711 * value-prof.c (gimple_ic_transform): Likewise.
10712 (gimple_ic): Likewise.
10713 (check_ic_target): Likewise.
10714 (init_node_map): Likewise.
10715 * varasm.c (decl_binds_to_current_def_p): Likewise.
10716 (default_binds_local_p_1): Likewise.
10717 (dump_tm_clone_pairs): Likewise.
10718 (assemble_alias): Likewise.
10719 (find_decl): Likewise.
10720 (mark_decl_referenced): Likewise.
10721 * varpool.c (varpool_for_node_and_aliases): Likewise.
10722 (varpool_extra_name_alias): Likewise.
10723 (varpool_create_variable_alias): Likewise.
10724 (add_new_static_var): Likewise.
10725 (varpool_finalize_named_section_flags): Likewise.
10726 (varpool_remove_unreferenced_decls): Likewise.
10727 (enqueue_node): Likewise.
10728 (varpool_assemble_decl): Likewise.
10729 (assemble_aliases): Likewise.
10730 (varpool_analyze_node): Likewise.
10731 (cgraph_variable_initializer_availability): Likewise.
10732 (varpool_add_new_variable): Likewise.
10733 (ctor_for_folding): Likewise.
10734 (dump_varpool_node): Likewise.
10735 (varpool_remove_initializer): Likewise.
10736 (varpool_remove_node): Likewise.
10737 (varpool_node_for_decl): Likewise.
10738 (varpool_create_empty_node): Likewise.
10739 * config/i386/i386.c (ix86_generate_version_dispatcher_body): Likewise.
10740 (ix86_get_function_versions_dispatcher): Likewise.
10741
10742 2013-10-29 David Malcolm <dmalcolm@redhat.com>
10743
10744 * cgraph.h (symtab_node_base): Convert to a class;
10745 add GTY((desc ("%h.type"), tag ("SYMTAB_SYMBOL"))), and take
10746 chain_next/prev from symtab_node_def.
10747 (cgraph_node): Inherit from symtab_node; add GTY option
10748 tag ("SYMTAB_FUNCTION").
10749 (varpool_node): Inherit from symtab_node; add GTY option
10750 tag ("SYMTAB_VARIABLE").
10751 (symtab_node_def): Remove.
10752 (is_a_helper <cgraph_node>::test (symtab_node_def *)): Convert to...
10753 (is_a_helper <cgraph_node>::test (symtab_node_base *)): ...this.
10754 (is_a_helper <varpool_node>::test (symtab_node_def *)): Convert to...
10755 (is_a_helper <varpool_node>::test (symtab_node_base *)): ...this.
10756
10757 * ipa-ref.h (symtab_node_def): Drop.
10758 (symtab_node): Change underlying type from symtab_node_def to
10759 symtab_node_base.
10760 (const_symtab_node): Likwise.
10761
10762 * is-a.h: Update examples in comment.
10763
10764 * symtab.c (symtab_hash): Change symtab_node_def to symtab_node_base.
10765 (assembler_name_hash): Likewise.
10766
10767 2013-10-29 Martin Liska <marxin.liska@gmail.com>
10768
10769 * doc/tree-ssa.texi (gimple_phi_result): Document.
10770 (gimple_phi_num_args, gimple_phi_arg): Likewise.
10771 (gimple_phi_arg_edge, gimple_phi_arg_def): Likewise.
10772 (PHI_RESULT, PHI_NUM_ARGS): Remove.
10773 (PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise.
10774
10775 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
10776
10777 * expr.h: Revert change and include tree-core.h.
10778 * rtl.h: Revert change and don't include tree-core.h.
10779
10780 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
10781
10782 * config/darwin.c: Include gimple.h.
10783 * config/i386/winnt.c: Likewise.
10784
10785 2013-10-29 Marc Glisse <marc.glisse@inria.fr>
10786
10787 PR tree-optimization/19831
10788 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle BUILT_IN_FREE.
10789
10790 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
10791
10792 * tree-outof-ssa.h: Remove include files.
10793 * tree-outof-ssa.c: Add required include files from tree-outof-ssa.h.
10794 * expr.c: Likewise.
10795 * tree-ssa-coalesce.c: Likewise.
10796 * cfgexpand.c: Likewise.
10797 * tree-ssa-ter.c: Likewise.
10798 * ipa-prop.h: Remove gimple.h and tree-core.h from include list.
10799 * lto-streamer.h: Likewise.
10800 * cgraphbuild.c: Add gimple.h to include list.
10801 * data-streamer-in.c: Likewise.
10802 * ipa-cp.c: Likewise.
10803 * tree-streamer.c: Likewise.
10804 * lto-compress.c: Likewise.
10805 * ipa-reference.c: Likewise.
10806 * data-streamer-out.c: Likewise.
10807 * lto-cgraph.c: Likewise.
10808 * cgraphclones.c: Likewise.
10809 * ipa-utils.c: Likewise.
10810 * data-streamer.c: Likewise.
10811 * ipa-split.c: Likewise.
10812 * lto-section-in.c: Likewise.
10813 * tree-streamer-out.c: Likewise.
10814 * ipa-prop.c: Likewise.
10815 * tree-streamer-in.c: Likewise.
10816 * symtab.c: Likewise.
10817 * opts-global.c: Likewise.
10818 * lto-opts.c: Likewise.
10819 * lto-section-out.c: Likewise.
10820 * lto-streamer.c: Likewise.
10821 * rtl.h: Add tree-core.h to include list.
10822 * expr.h: Remove tree-core.h from include list.
10823 * gimple.h: Likewise.
10824 * ipa-utils.h: Likewise.
10825 * streamer-hooks.h: Likewise.
10826 * streamer-hooks.c: Include input.h.
10827
10828 2013-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10829
10830 * config/arm/arm.c (cortexa7_extra_costs): New table.
10831 (arm_cortex_a7_tune): New.
10832 * config/arm/arm-cores.def: Use cortex_a7 tuning for cortex-a7.
10833
10834 2013-10-29 Eric Botcazou <ebotcazou@adacore.com>
10835
10836 * expr.c (expand_expr_real_1) <MEM_EXPR>: Eliminate small redundancy.
10837
10838 2013-10-29 David Malcolm <dmalcolm@redhat.com>
10839
10840 * doc/gty.texi ("Inheritance and GTY"): Make it clear that
10841 to use autogenerated markers for a class-hierarchy, every class
10842 must have a GTY marker.
10843 * gengtype.h (struct type): Add linked list of subclasses to
10844 the "s" member of the union.
10845 (add_subclass): New decl.
10846 * gengtype-state.c (read_state_struct_type): Set up subclass
10847 linked list.
10848 * gengtype.c (get_ultimate_base_class): New.
10849 (add_subclass): New.
10850 (new_structure): Set up subclass linked list.
10851 (set_gc_used_type): Propagate usage information to subclasses.
10852 (output_mangled_typename): Use get_ultimate_base_class.
10853 (walk_subclasses): Use the subclass linked list, avoiding an
10854 O(N^2) when writing out all types.
10855 (walk_type): Issue an error if the base class is missing a tag,
10856 rather than generating bogus C code. Add a gcc_unreachable
10857 default case, in case people omit tags from concrete subclasses,
10858 or get the values wrong.
10859 (write_func_for_structure): Issue an error for subclasses for
10860 which the base doesn't have a "desc", since otherwise the
10861 autogenerated routines for the base would silently fail to visit
10862 any subclass fields.
10863 (write_root): Use get_ultimate_base_class, tweaking constness of
10864 tp to match that function's signature.
10865
10866 2013-10-29 David Malcolm <dmalcolm@redhat.com>
10867
10868 * doc/gty.texi (GTY Options): Add note about inheritance to
10869 description of desc and tag.
10870 (Inheritance and GTY): New.
10871
10872 2013-10-29 David Malcolm <dmalcolm@redhat.com>
10873
10874 * gengtype-parse.c (opts_have): Drop "static" so that
10875 we can use this from gengtype.c.
10876 * gengtype.c (set_gc_used_type): Mark any base class as used;
10877 update field traversal to visit inherited fields.
10878 (output_mangled_typename): Convert references to classes within
10879 an inheritance hierarchy to reference the ultimate base class,
10880 since only it will have gt_ functions.
10881 (get_string_option): New.
10882 (walk_subclasses): New.
10883 (walk_type): Treat GTY structs that have a "desc" as being the
10884 root of an inheritance hierarchy. Generate a switch on it
10885 within the marking function which walks all subclasses, adding
10886 cases for them via walk_subclasses. For subclasses, visit all
10887 fields of the type (including inherited ones).
10888 (write_func_for_structure): Don't write fns for subclasses, only
10889 for the ultimate base class within an inheritance hierarchy.
10890 Subclasses-marking will be handled by the base class marking functions.
10891 (write_types): Likewise.
10892 (write_local_func_for_structure): Likewise.
10893 (USED_BY_TYPED_GC_P): Emit allocators for subclasses that have
10894 a "tag" option (and are thus concrete subclasses).
10895 (write_root): Use the marker function for the ultimate base class.
10896 * gengtype.h (FOR_ALL_INHERITED_FIELDS): New.
10897 (opts_have): Add declaration.
10898
10899 2013-10-28 Vladimir Makarov <vmakarov@redhat.com>
10900
10901 * lra-spills.c (lra_final_code_change): Remove useless move insns
10902 originated from moves of pseudos.
10903
10904 2013-10-28 Jeff Law <law@redhat.com>
10905
10906 * lower-subreg.c (resolve_simple_move): Fix comment typo.
10907
10908 2013-10-28 Trevor Saunders <tsaunders@mozilla.com>
10909
10910 * df-scan.c (df_collection_rec): Adjust.
10911 (copy_defs): New constant.
10912 (copy_uses): Likewise.
10913 (copy_eq_uses): Likewise.
10914 (copy_mw): Likewise.
10915 (copy_all): Likewise.
10916 (df_insn_rescan): Adjust.
10917 (df_notes_rescan): Likewise.
10918 (df_swap_refs): Likewise.
10919 (df_sort_and_compress_refs): Likewise.
10920 (df_sort_and_compress_mws): Likewise.
10921 (df_install_refs): Likewise.
10922 (df_install_mws): Likewise.
10923 (df_refs_add_to_chains): Add flags parameter controlling which vectors
10924 are coppied.
10925 (df_bb_refs_record): Adjust.
10926 (df_record_entry_block_defs): Likewise.
10927 (df_record_exit_block_defs): Likewise.
10928 (df_refs_verify): Likewise.
10929 (df_mws_verify): Likewise.
10930 (df_insn_refs_verify): Likewise.
10931 (df_bb_verify): Likewise.
10932 * ipa-pure-const.c (finish_state): Remove.
10933 (propagate): Adjust.
10934 * tree-data-ref.c tree-ssa-alias.c tree-ssa-loop-ivcanon.c
10935 tree-ssa-threadedge.c tree-vect-loop-manip.c tree-vect-slp.c
10936 var-tracking.c: Adjust.
10937 * vec.c (stack_vecs): Remove.
10938 (register_stack_vec): Likewise.
10939 (stack_vec_register_index): Likewise.
10940 (unregister_stack_vec): Likewise.
10941 * vec.h (struct va_stack): Remove.
10942 (struct vec<T, A, vl_ptr>): Specialize as
10943 struct vec<T, va_heap, vl_ptr> instead since va_heap is the only
10944 allocation strategy compatable with the vl_ptr layout.
10945 (struct vec<T, va_gc, vl_ptr>): Remove because it now gets an empty
10946 specialization anyway.
10947 (class stack_vec): New class.
10948 (vec_stack_alloc): Remove.
10949 (vec<T, va_heap, vl_ptr>::using_auto_storage): New method.
10950
10951 2013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10952 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10953 Sergey Lega <sergey.s.lega@intel.com>
10954 Anna Tikhonova <anna.tikhonova@intel.com>
10955 Ilya Tocar <ilya.tocar@intel.com>
10956 Andrey Turetskiy <andrey.turetskiy@intel.com>
10957 Ilya Verbin <ilya.verbin@intel.com>
10958 Kirill Yukhin <kirill.yukhin@intel.com>
10959 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10960
10961 * config/i386/i386.md (prefetch): Allow TARGET_AVX512PF.
10962 (*prefetch_avx512pf_<mode>): New.
10963 * config/i386/sse.md (avx512f_vmcmp<mode>3): Ditto.
10964 (avx512f_maskcmp<mode>3): Ditto.
10965 (vashrv16si3): Ditto.
10966
10967 2013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10968 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10969 Sergey Lega <sergey.s.lega@intel.com>
10970 Anna Tikhonova <anna.tikhonova@intel.com>
10971 Ilya Tocar <ilya.tocar@intel.com>
10972 Andrey Turetskiy <andrey.turetskiy@intel.com>
10973 Ilya Verbin <ilya.verbin@intel.com>
10974 Kirill Yukhin <kirill.yukhin@intel.com>
10975 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10976
10977 * config/i386/i386.md (any_truncate): New.
10978 (trunsuffix): Ditto.
10979 * config/i386/predicates.md (const_8_to_9_operand): New.
10980 (const_10_to_11_operand): Ditto.
10981 (const_12_to_13_operand): Ditto.
10982 (const_14_to_15_operand): Ditto.
10983 (const_16_to_19_operand): Ditto.
10984 (const_20_to_23_operand): Ditto.
10985 (const_24_to_27_operand): Ditto.
10986 (const_28_to_31_operand): Ditto.
10987 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_FIX_NOTRUNC.
10988 (cvtusi2<ssescalarmodesuffix>32): New.
10989 (cvtusi2<ssescalarmodesuffix>64): Ditto.
10990 (ufloatv16siv16sf2): Ditto.
10991 (avx512f_fix_notruncv16sfv16si): Ditto.
10992 (avx512f_ufix_notruncv16sfv16si): Ditto.
10993 (avx512f_vcvtss2usi): Ditto.
10994 (avx512f_vcvtss2usiq): Ditto.
10995 (avx512f_vcvttss2usi): Ditto.
10996 (avx512f_vcvttss2usiq): Ditto.
10997 (avx512f_vcvtsd2usi): Ditto.
10998 (avx512f_vcvtsd2usiq): Ditto.
10999 (avx512f_vcvttsd2usi): Ditto.
11000 (avx512f_vcvttsd2usiq): Ditto.
11001 (ufloatv8siv8df): Ditto.
11002 (avx512f_cvtdq2pd512_2): Ditto.
11003 (avx512f_cvtpd2dq512): Ditto.
11004 (avx512f_ufix_notruncv8dfv8si): Ditto.
11005 (avx512f_cvtpd2ps512): Ditto.
11006 (vec_unpacks_lo_v16sf): Ditto.
11007 (vec_unpacks_hi_v16sf): Ditto.
11008 (vec_unpacks_float_hi_v16si): Ditto.
11009 (vec_unpacks_float_lo_v16si): Ditto.
11010 (avx512f_unpckhps512): Ditto.
11011 (avx512f_unpcklps512): Ditto.
11012 (avx512f_movshdup512): Ditto.
11013 (avx512f_movsldup512): Ditto.
11014 (vec_extract_lo_v32hi): Ditto.
11015 (vec_extract_hi_v32hi): Ditto.
11016 (vec_extract_lo_v64qi): Ditto.
11017 (vec_extract_hi_v64qi): Ditto.
11018 (avx512f_unpckhpd512): Ditto.
11019 (avx512f_movddup512): Ditto.
11020 (avx512f_unpcklpd512): Ditto.
11021 (*avx512f_unpcklpd512): Ditto.
11022 (avx512f_shufps512_1): Ditto.
11023 (avx512f_shufpd512_1): Ditto.
11024 (avx512f_interleave_highv8di): Ditto.
11025 (avx512f_interleave_lowv8di): Ditto.
11026 (PMOV_DST_MODE): Ditto.
11027 (pmov_src_mode): Ditto.
11028 (pmov_src_lower): Ditto.
11029 (pmov_suff): Ditto.
11030 (*avx512f_<code><pmov_src_lower><mode>2): Ditto.
11031 (*avx512f_<code>v8div16qi2): Ditto.
11032 (*avx512f_<code>v8div16qi2_store): Ditto.
11033 (vec_widen_umult_even_v16si): Ditto.
11034 (*vec_widen_umult_even_v16si): Ditto.
11035 (vec_widen_smult_even_v16si): Ditto.
11036 (*vec_widen_smult_even_v16si): Ditto.
11037 (avx512f_interleave_highv16si): Ditto.
11038 (avx512f_interleave_lowv16si): Ditto.
11039 (avx512f_<code>v16qiv16si2): Ditto.
11040 (avx512f_<code>v16hiv16si2): Ditto.
11041 (avx512f_<code>v8qiv8di2): Ditto.
11042 (avx512f_<code>v8hiv8di2): Ditto.
11043 (avx512f_<code>v8siv8di2): Ditto.
11044 (avx512cd_maskb_vec_dupv8di): Ditto.
11045 (avx512cd_maskw_vec_dupv16si): Ditto.
11046 (avx512f_vcvtph2ps512): Ditto.
11047 (avx512f_vcvtps2ph512): Ditto.
11048 (VEC_EXTRACT_MODE): Extened with wider modes.
11049 (VEC_PERM_AVX2): Ditto.
11050 (VEC_PERM_CONST): Ditto.
11051
11052 2013-10-28 Joern Rennecke <joern.rennecke@embecosm.com>
11053
11054 * config/arc/arc.c (arc_ccfsm_post_advance):
11055 Add comment about TYPE_RETURN.
11056
11057 2013-10-28 Bin Cheng <bin.cheng@arm.com>
11058
11059 * tree-ssa-loop-ivopts.c (strip_offset_1): Change parameter type.
11060 Count DECL_FIELD_BIT_OFFSET for COMPONENT_REF.
11061 (strip_offset): Convert offset to unsigned number.
11062
11063 2013-10-27 Tom de Vries <tom@codesourcery.com>
11064
11065 * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
11066 Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
11067
11068 2013-10-27 Oleg Endo <olegendo@gcc.gnu.org>
11069
11070 * config/sh/sh.c (MSW, LSW): Move and rename macros to...
11071 * config/sh/sh.h (SH_REG_MSW_OFFSET, SH_REG_LSW_OFFSET): ... here.
11072 (TARGET_BIG_ENDIAN): New macro.
11073 * config/sh/sh.md: Use it instead of !TARGET_LITTLE_ENDIAN.
11074 Use SH_REG_MSW_OFFSET and SH_REG_LSW_OFFSET.
11075 * config/sh/sh.c: Likewise.
11076 * config/sh/sh.h: Likewise.
11077
11078 2013-10-27 Hans-Peter Nilsson <hp@axis.com>
11079
11080 * config/cris/cris.c (cris_emit_trap_for_misalignment): Replace the
11081 removed PRED_MUDFLAP with PRED_NORETURN. Correct file-path in comment.
11082
11083 2013-10-26 Oleg Endo <olegendo@gcc.gnu.org>
11084
11085 * config/sh/sh.md (movmemsi): Remove empty constraints and predicates.
11086 Fix formatting.
11087 (cmpstr_t, cmpstrsi): Fix formatting.
11088
11089 2013-10-26 Oleg Endo <olegendo@gcc.gnu.org>
11090
11091 PR target/52483
11092 * config/sh/predicates.md (general_movdst_operand): Allow reg+reg
11093 addressing, do not use general_operand for memory operands.
11094
11095 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
11096
11097 Revert:
11098 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
11099 * lra-spills.c (lra_final_code_change): Remove useless move insns.
11100
11101 2013-10-26 Jeff Law <law@redhat.com>
11102
11103 * predict.c (PRED_MUDFLAP): Remove.
11104 * targhooks.c (build_va_arg_indirect_ref): Remove mudflap support.
11105
11106 * Makefile.in (C_COMMON_OBJS): Remove tree-mudflap.
11107 (OBJS): Remove tree-nomudflap.o
11108 (GTFILES): Remove tree-mudflap.c
11109 * builtins.c (expand_builtin_alloc): Remove mudflap support.
11110 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
11111 (mfwrap_spec, mflib_spec): Likewise.
11112 (cpp_unique_options, cc1_options, static_specs): Likewise.
11113 * gimplify (gimplify_vla_decl, build_va_arg_indirect_ref): Likewise.
11114 * passes.def: Likewise.
11115 * toplev.c (compile_file, process_options): Likewise.
11116 * tree-inline.c (copy_tree_r): Likewise.
11117 * tree-pass.,h (make_pass_mudflap_1, make_pass_mudflap_2): Likewise.
11118 * varasm.c (make_decl_rtl, make_decl_rtl_for_debug): Likewise.
11119 (build_constant_desc, output_constant_def_contents): Likewise.
11120 (categorize_decl_for_section): Likewise.
11121 * tree-mudflap.c: Removed.
11122 * tree-mudflap.h: Removed.
11123 * tree-nomudflap.c: Removed.
11124 * bfin/uclinux.h (MFWRAP_SPEC): Remove.
11125 * moxie/uclinux.h (MFWRAP_SPEC): Likewise.
11126 * rs6000/aix.h (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
11127 * config/sol2.h (MFLIB_SPEC): Likewise.
11128 * doc/install.texi: Remove mudflap references.
11129 * doc/passes.texi: Similarly.
11130 * doc/sourcebuild.texi: Similarly.
11131 * doc/invoke.texi: Remove mudlfap related options.
11132
11133 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
11134
11135 PR rtl-optimization/58759
11136 * lra-constraints.c (lra_constraints): Remove wrong condition to
11137 remove insn setting up an equivalent pseudo.
11138
11139 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
11140
11141 * config/rs6000/rs6000-protos.h
11142 (rs6000_secondary_memory_needed_mode): New prototype.
11143 * config/rs6000/rs6000.c: Include ira.h.
11144 (TARGET_LRA_P): Redefine.
11145 (rs6000_legitimate_offset_address_p): Call
11146 legitimate_constant_pool_address_p in strict mode for LRA.
11147 (rs6000_legitimate_address_p): Ditto.
11148 (legitimate_lo_sum_address_p): Add code for LRA. Use lra_in_progress.
11149 (rs6000_emit_move): Add LRA version of code to generate load/store
11150 of SDmode values.
11151 (rs6000_secondary_memory_needed_mode): New.
11152 (rs6000_alloc_sdmode_stack_slot): Do nothing for LRA.
11153 (rs6000_secondary_reload_class): Return NO_REGS for LRA for
11154 constants, memory, and FP registers.
11155 (rs6000_lra_p): New.
11156 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New macro.
11157 * config/rs6000/rs6000.opt (mlra): New option.
11158 * lra-spills.c (lra_final_code_change): Remove useless move insns.
11159
11160 2013-10-25 Yufeng Zhang <yufeng.zhang@arm.com>
11161
11162 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Call
11163 has_single_use () and not do the conversion if has_single_use ()
11164 returns false for the multiplication result.
11165
11166 2013-10-25 David Malcolm <dmalcolm@redhat.com>
11167
11168 * tree.h (EXCEPTIONAL_CLASS_P): Rename parameter from "CODE"
11169 to "NODE", since this works on a "tree", not an
11170 "enum tree_code".
11171 (CONSTANT_CLASS_P): Likewise.
11172 (TYPE_P): Likewise.
11173 (DECL_P): Likewise.
11174 (INDIRECT_REF_P): Likewise.
11175 (REFERENCE_CLASS_P): Likewise.
11176 (COMPARISON_CLASS_P): Likewise.
11177 (UNARY_CLASS_P): Likewise.
11178 (BINARY_CLASS_P): Likewise.
11179 (STATEMENT_CLASS_P): Likewise.
11180 (VL_EXP_CLASS_P): Likewise.
11181 (EXPRESSION_CLASS_P): Likewise.
11182 (IS_TYPE_OR_DECL_P): Likewise.
11183
11184 2013-10-25 Marc Glisse <marc.glisse@inria.fr>
11185
11186 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an
11187 ADDR_EXPR in the defining statement.
11188
11189 2013-10-25 Richard Biener <rguenther@suse.de>
11190
11191 PR tree-optimization/58626
11192 * tree-loop-distribution.c (enum rdg_dep_type): Remove
11193 anti_dd, output_dd and input_dd.
11194 (struct rdg_edge): Remove level and relation members.
11195 (RDGE_LEVEL, RDGE_RELATION): Remove.
11196 (dot_rdg_1): Adjust.
11197 (create_rdg_edge_for_ddr): Remove.
11198 (create_rdg_edges_for_scalar): Adjust.
11199 (create_edge_for_control_dependence): Likewise.
11200 (create_rdg_edges): Split into ...
11201 (create_rdg_flow_edges): ... this
11202 (create_rdg_cd_edges): ... and this.
11203 (free_rdg): Adjust.
11204 (build_rdg): Likewise, do not compute data dependences or
11205 add edges for them.
11206 (pg_add_dependence_edges): New function.
11207 (pgcmp): Likewise.
11208 (distribute_loop): First apply all non-dependence based
11209 partition mergings. Then compute dependences between partitions
11210 and merge and order partitions according to them.
11211
11212 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
11213
11214 PR rtl-optimization/58831
11215 * alias.c (init_alias_analysis): At the beginning of each iteration,
11216 set the reg_seen[N] bit if static_reg_base_value[N] is non-null.
11217
11218 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
11219
11220 * recog.c (search_ofs): New static variable moved from...
11221 (peep2_find_free_register): ...here.
11222 (peephole2_optimize): Initialize it.
11223
11224 2013-10-25 Tobias Burnus <burnus@net-b.de>
11225
11226 * doc/invoke.texi (fopenmp): Change supported OpenMP version to 4.0.
11227
11228 2013-10-25 Uros Bizjak <ubizjak@gmail.com>
11229
11230 * config/i386/i386.h (TARGET_MPX): New define.
11231 (TARGET_MPX_P): Ditto.
11232
11233 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
11234
11235 * config/i386/constraints.md (B): New.
11236 (Ti): New.
11237 (Tb): New.
11238 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
11239 * config/i386/i386-modes.def (BND32): New.
11240 (BND64): New.
11241 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
11242 * config/i386/i386.c (isa_opts): Add mmpx.
11243 (regclass_map): Add bound registers.
11244 (dbx_register_map): Likewise.
11245 (dbx64_register_map): Likewise.
11246 (svr4_dbx_register_map): Likewise.
11247 (PTA_MPX): New.
11248 (ix86_option_override_internal): Support MPX ISA.
11249 (ix86_conditional_register_usage): Support bound registers.
11250 (print_reg): Likewise.
11251 (ix86_code_end): Add MPX bnd prefix.
11252 (output_set_got): Likewise.
11253 (ix86_output_call_insn): Likewise.
11254 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
11255 (ix86_print_operand_punct_valid_p): Likewise.
11256 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
11257 UNSPEC_BNDMK_ADDR.
11258 (ix86_class_likely_spilled_p): Add bound regs support.
11259 (ix86_hard_regno_mode_ok): Likewise.
11260 (x86_order_regs_for_local_alloc): Likewise.
11261 (ix86_bnd_prefixed_insn_p): New.
11262 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
11263 (FIXED_REGISTERS): Add bound registers.
11264 (CALL_USED_REGISTERS): Likewise.
11265 (REG_ALLOC_ORDER): Likewise.
11266 (HARD_REGNO_NREGS): Likewise.
11267 (TARGET_MPX): New.
11268 (VALID_BND_REG_MODE): New.
11269 (FIRST_BND_REG): New.
11270 (LAST_BND_REG): New.
11271 (reg_class): Add BND_REGS.
11272 (REG_CLASS_NAMES): Likewise.
11273 (REG_CLASS_CONTENTS): Likewise.
11274 (BND_REGNO_P): New.
11275 (ANY_BND_REG_P): New.
11276 (BNDmode): New.
11277 (HI_REGISTER_NAMES): Add bound registers.
11278 * config/i386/i386.md (UNSPEC_BNDMK): New.
11279 (UNSPEC_BNDMK_ADDR): New.
11280 (UNSPEC_BNDSTX): New.
11281 (UNSPEC_BNDLDX): New.
11282 (UNSPEC_BNDLDX_ADDR): New.
11283 (UNSPEC_BNDCL): New.
11284 (UNSPEC_BNDCU): New.
11285 (UNSPEC_BNDCN): New.
11286 (UNSPEC_MPX_FENCE): New.
11287 (BND0_REG): New.
11288 (BND1_REG): New.
11289 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
11290 (length_immediate): Likewise.
11291 (prefix_0f): Likewise.
11292 (memory): Likewise.
11293 (prefix_rep): Check for bnd prefix.
11294 (length_nobnd): New.
11295 (length): Use length_nobnd if specified.
11296 (BND): New.
11297 (bnd_ptr): New.
11298 (BNDCHECK): New.
11299 (bndcheck): New.
11300 (*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
11301 (*jcc_2): Likewise.
11302 (jump): Likewise.
11303 (simple_return_internal): Likewise.
11304 (simple_return_pop_internal): Likewise.
11305 (*indirect_jump): Add MPX bnd prefix.
11306 (*tablejump_1): Likewise.
11307 (simple_return_internal_long): Likewise.
11308 (simple_return_indirect_internal): Likewise.
11309 (<mode>_mk): New.
11310 (*<mode>_mk): New.
11311 (mov<mode>): New.
11312 (*mov<mode>_internal_mpx): New.
11313 (<mode>_<bndcheck>): New.
11314 (*<mode>_<bndcheck>): New.
11315 (<mode>_ldx): New.
11316 (*<mode>_ldx): New.
11317 (<mode>_stx): New.
11318 (*<mode>_stx): New.
11319 * config/i386/predicates.md (lea_address_operand): Rename to...
11320 (address_no_seg_operand): ... this.
11321 (address_mpx_no_base_operand): New.
11322 (address_mpx_no_index_operand): New.
11323 (bnd_mem_operator): New.
11324 * config/i386/i386.opt (mmpx): New.
11325 * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
11326 * doc/rtl.texi Add documentation for BND32mode and BND64mode.
11327
11328 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
11329
11330 * mode-classes.def (MODE_POINTER_BOUNDS): New.
11331 * tree.def (POINTER_BOUNDS_TYPE): New.
11332 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
11333 (POINTER_BOUNDS_MODE): New.
11334 (make_pointer_bounds_mode): New.
11335 * machmode.h (POINTER_BOUNDS_MODE_P): New.
11336 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
11337 (layout_type): Support POINTER_BOUNDS_TYPE.
11338 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
11339 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
11340 (type_contains_placeholder_1): Likewise.
11341 * tree.h (POINTER_BOUNDS_TYPE_P): New.
11342 * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
11343 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
11344
11345 2013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com>
11346
11347 * expr.c (expand_expr_real_1): Use mode of memory reference rather than
11348 mode of address computation when calling memory_address_addr_space.
11349
11350 2013-08-24 Richard Henderson <rth@twiddle.net>
11351
11352 PR rtl/58542
11353 * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
11354 instead of create_convert_operand_to.
11355 (maybe_emit_sync_lock_test_and_set): Likewise.
11356 (expand_atomic_compare_and_swap): Likewise.
11357 (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
11358
11359 2013-08-24 Sriraman Tallam <tmsriram@google.com>
11360
11361 * cgraph.c (cgraph_fnver_htab): Move GTY((...)) to be before htab_t.
11362 Change param_is to use the struct and not the pointer to the struct.
11363
11364 2013-10-24 Andrew MacLeod <amacleod@redhat.com>
11365
11366 * builtins.c (dummy_object, gimplify_va_arg_expr): Move to gimplify.c.
11367 * gimplify.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
11368 Move to targhooks.c.
11369 (dummy_object, gimplify_va_arg_expr): Relocate from builtins.c.
11370 * targhooks.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
11371 Relocate from gimplify.c.
11372 * targhooks.h: Add 2 prototypes.
11373 * tree.h: Delete 2 prototypes.
11374
11375 2013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com>
11376
11377 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p ): Check both
11378 [reg+mult*reg] and [mult*reg] to determine if multiplier is allowed.
11379
11380 2013-10-24 Cong Hou <congh@google.com>
11381
11382 * convert.c (convert_to_real): Guard those unsafe math function
11383 convertions with flag_unsafe_math_optimizations. Handle sqrt()
11384 specially.
11385
11386 2013-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
11387
11388 PR ipa/58712
11389 * cgraph.c (cgraph_create_edge_1): Add indirect_unknown_callee
11390 as argument.
11391 (cgraph_create_edge): Use the new argument.
11392 (cgraph_create_indirect_edge): Likewise.
11393
11394 2013-10-24 Joern Rennecke <joern.rennecke@embecosm.com>
11395
11396 * config/arc/arc.c (arc_ccfsm_post_advance): Also handle
11397 TYPE_UNCOND_BRANCH.
11398 (arc_ifcvt) <case 1 and 2>: Check that arc_ccfsm_post_advance
11399 changes statep->state.
11400
11401 2013-10-24 Tobias Burnus <burnus@net-b.de>
11402
11403 PR other/33426
11404 * tree-cfg.c (replace_loop_annotate): New function.
11405 (execute_build_cfg): Call it.
11406 * gimplify.c (gimple_boolify, gimplify_expr): Handle ANNOTATE_EXPR.
11407 * internal-fn.c (expand_ANNOTATE): New function.
11408 * internal-fn.def (ANNOTATE): Define as new internal function.
11409 * tree-core.h (tree_node_kind): Add annot_expr_ivdep_kind.
11410 * tree-pretty-print.c (dump_generic_node): Handle ANNOTATE_EXPR.
11411 * tree.def (ANNOTATE_EXPR): New DEFTREECODE.
11412 * doc/extend.texi (Pragmas): Document #pragma ivdep.
11413 * doc/generic.texi (Expressions): Document ANNOTATE_EXPR.
11414
11415 2013-10-17 Ian Bolton <ian.bolton@arm.com>
11416 Marcus Shawcroft <marcus.shawcroft@arm.com>
11417
11418 * config/aarch64/aarch64.c (aarch64_preferred_reload_class):
11419 Special case reload SP+C into none GENERAL_REGS.
11420
11421 2013-10-24 Michael Matz <matz@suse.de>
11422
11423 * gengtype.c (is_file_equal): Check that files will be same length.
11424
11425 2013-10-25 Christian Bruel <christian.bruel@st.com>
11426
11427 * config.gcc (sh-*): Add sh-mem.o to extra_obj.
11428 * config/sh/t-sh (sh-mem.o): New rule.
11429 * config/sh/sh-mem.cc (expand_block_move): Moved here.
11430 (sh_expand_cmpstr): New function.
11431 * config/sh/sh.c (force_into, expand_block_move): Move to sh-mem.c.
11432 * config/sh/sh-protos.h (sh_expand_cmpstr): Declare.
11433 * config/sh/sh.md (cmpstrsi, cmpstr_t): New patterns.
11434 (rotlhi3_8): Rename.
11435
11436 2013-10-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11437
11438 * configure.ac (ZW_PROG_COMPILER_DEPENDENCIES): Use CXX instead of CC.
11439 * Makefile.in (CXXDEPMODE): Assign and change users.
11440 (CCDEPMODE): Delete.
11441 * configure: Regenerate.
11442
11443 2013-10-23 David Malcolm <dmalcolm@redhat.com>
11444
11445 * gengtype-parse.c (require_without_advance): New.
11446 (type): For GTY-marked types that are not GTY((user)), parse any
11447 base classes, requiring them to be single-inheritance, and not
11448 be templates. For non-GTY-marked types and GTY((user)),
11449 continue to skip over any C++ inheritance specification.
11450 * gengtype-state.c (state_writer::write_state_struct_type):
11451 Write base class of type (if any).
11452 (read_state_struct_type): Read base class of type (if any).
11453 * gengtype.c (new_structure): Add a "base_class" parameter.
11454 (create_optional_field_): Update for new parameter to new_structure.
11455 (adjust_field_rtx_def): Likewise.
11456 (adjust_field_tree_exp): Likewise.
11457 * gengtype.h (struct type): Add "base_class" field to the s
11458 union field.
11459 (new_structure): Add "base" parameter.
11460
11461 2013-10-23 Sriraman Tallam <tmsriram@google.com>
11462
11463 PR target/57756
11464 * config/i386/i386.c (ix86_option_override_internal):
11465 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
11466 (ix86_valid_target_attribute_tree):
11467 Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
11468 Change TARGET_SSE to TARGET_SSE_P (opts->...)
11469
11470 2013-10-23 Andrew MacLeod <amacleod@redhat.com>
11471
11472 * tree-ssa-loop.h: Remove include files.
11473 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
11474 * cfgloopmanip.c: Move required includes from tree-ssa-loop.h.
11475 * graphite-clast-to-gimple.c: Likewise.
11476 * graphite-scop-detection.c: Likewise.
11477 * graphite-sese-to-poly.c: Likewise.
11478 * ipa-inline-analysis.c: Likewise.
11479 * ipa-pure-const.c: Likewise.
11480 * loop-init.c: Likewise.
11481 * passes.c: Likewise.
11482 * predict.c: Likewise.
11483 * tree-cfg.c: Likewise.
11484 * tree-cfgcleanup.c: Likewise.
11485 * tree-chrec.c: Likewise.
11486 * tree-data-ref.c: Likewise.
11487 * tree-loop-distribution.c: Likewise.
11488 * tree-parloops.c: Likewise.
11489 * tree-predcom.c: Likewise.
11490 * tree-scalar-evolution.c: Likewise.
11491 * tree-ssa-address.c: Likewise.
11492 * tree-ssa.c: Likewise.
11493 * tree-ssa-dce.c: Likewise.
11494 * tree-ssa-loop.c: Likewise.
11495 * tree-ssa-loop-im.c: Likewise.
11496 * tree-ssa-loop-ivcanon.c: Likewise.
11497 * tree-ssa-loop-ivopts.c: Likewise.
11498 * tree-ssa-loop-manip.c: Likewise.
11499 * tree-ssa-loop-niter.c: Likewise.
11500 * tree-ssa-loop-prefetch.c: Likewise.
11501 * tree-ssa-loop-unswitch.c: Likewise.
11502 * tree-ssa-reassoc.c: Likewise.
11503 * tree-vect-data-refs.c: Likewise.
11504 * tree-vect-loop.c: Likewise.
11505 * tree-vect-loop-manip.c: Likewise.
11506 * tree-vectorizer.c: Likewise.
11507 * tree-vect-stmts.c: Likewise.
11508 * tree-vrp.c: Likewise.
11509
11510 2013-10-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11511
11512 * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.
11513
11514 2013-10-23 Jakub Jelinek <jakub@redhat.com>
11515
11516 PR tree-optimization/58775
11517 PR tree-optimization/58791
11518 * tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function.
11519 (insert_stmt_after): Rewritten, don't move the stmt, but really
11520 insert it.
11521 (get_stmt_uid_with_default): Remove.
11522 (build_and_add_sum): Use insert_stmt_after and
11523 reassoc_stmt_dominates_stmt_p. Fix up uid if bb contains only labels.
11524 (update_range_test): Set uid on stmts added by
11525 force_gimple_operand_gsi. Don't immediately modify statements
11526 in inter-bb optimization, just update oe->op values.
11527 (optimize_range_tests): Return bool whether any changed have been made.
11528 (update_ops): New function.
11529 (struct inter_bb_range_test_entry): New type.
11530 (maybe_optimize_range_tests): Perform statement changes here.
11531 (not_dominated_by, appears_later_in_bb, get_def_stmt,
11532 ensure_ops_are_available): Remove.
11533 (find_insert_point): Rewritten.
11534 (rewrite_expr_tree): Remove MOVED argument, add CHANGED argument,
11535 return LHS of the (new resp. old) stmt. Don't call
11536 ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first
11537 instead of last, move new stmt at the right place.
11538 (linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs.
11539 (negate_value): Likewise. Set uids.
11540 (break_up_subtract_bb): Initialize uids.
11541 (reassociate_bb): Adjust rewrite_expr_tree caller.
11542 (do_reassoc): Don't call renumber_gimple_stmt_uids.
11543
11544 2013-10-23 David Edelsohn <dje.gcc@gmail.com>
11545
11546 PR target/58838
11547 * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
11548 TARGET_32BIT final condition.
11549 (mulsi3_internal2 and splitter): Same.
11550
11551 2013-10-23 Jeff Law <law@redhat.com>
11552
11553 * tree-ssa-threadedge.c (thread_across_edge): Do not allow threading
11554 through joiner blocks with abnormal outgoing edges.
11555
11556 * tree-ssa-threadupdate.c (thread_block_1): Renamed from thread_block.
11557 Add parameter JOINERS, to allow/disallow threading through joiner
11558 blocks.
11559 (thread_block): New. Call thread_block_1.
11560 (mark_threaded_blocks): Remove code to filter out certain cases
11561 of threading through joiner blocks.
11562 (thread_through_all_blocks): Document how we can have a dangling
11563 edge AUX field and clear it.
11564
11565 2013-10-23 Ian Lance Taylor <iant@google.com>
11566
11567 * doc/invoke.texi (Option Summary): Remove -fno-default-inline.
11568 (C++ Dialect Options): Likewise.
11569 (Optimize Options): Likewise.
11570
11571 2013-10-23 Tom de Vries <tom@codesourcery.com>
11572
11573 PR tree-optimization/58805
11574 * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
11575
11576 2013-10-23 Jakub Jelinek <jakub@redhat.com>
11577
11578 * tree-vect-patterns.c (vect_recog_divmod_pattern): Optimize
11579 sequence based on get_range_info returned range.
11580
11581 2013-10-23 Andrew MacLeod <amacleod@redhat.com>
11582
11583 * tree-ssa.h: Remove all #include's
11584 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
11585 * alias.c: Move required includes from tree-ssa.h.
11586 * asan.c: Likewise.
11587 * builtins.c: Likewise.
11588 * calls.c: Likewise.
11589 * cfgexpand.c: Likewise.
11590 * cfghooks.c: Likewise.
11591 * cfgloop.c: Likewise.
11592 * cfgloopmanip.c: Likewise.
11593 * cgraph.c: Likewise.
11594 * cgraphbuild.c: Likewise.
11595 * cgraphclones.c: Likewise.
11596 * cgraphunit.c: Likewise.
11597 * dse.c: Likewise.
11598 * except.c: Likewise.
11599 * expr.c: Likewise.
11600 * final.c: Likewise.
11601 * fold-const.c: Likewise.
11602 * ggc-page.c: Likewise.
11603 * gimple-builder.c: Likewise.
11604 * gimple-fold.c: Likewise.
11605 * gimple-iterator.c: Likewise.
11606 * gimple-low.c: Likewise.
11607 * gimple-pretty-print.c: Likewise.
11608 * gimple-ssa-strength-reduction.c: Likewise.
11609 * gimple-streamer-in.c: Likewise.
11610 * gimple-streamer-out.c: Likewise.
11611 * gimplify.c: Likewise.
11612 * graphite-blocking.c: Likewise.
11613 * graphite-clast-to-gimple.c: Likewise.
11614 * graphite-dependences.c: Likewise.
11615 * graphite-interchange.c: Likewise.
11616 * graphite-optimize-isl.c: Likewise.
11617 * graphite-poly.c: Likewise.
11618 * graphite-scop-detection.c: Likewise.
11619 * graphite-sese-to-poly.c: Likewise.
11620 * graphite.c: Likewise.
11621 * ipa-cp.c: Likewise.
11622 * ipa-inline-analysis.c: Likewise.
11623 * ipa-inline-transform.c: Likewise.
11624 * ipa-inline.c: Likewise.
11625 * ipa-prop.c: Likewise.
11626 * ipa-pure-const.c: Likewise.
11627 * ipa-reference.c: Likewise.
11628 * ipa-split.c: Likewise.
11629 * ipa-utils.c: Likewise.
11630 * loop-init.c: Likewise.
11631 * lto-cgraph.c: Likewise.
11632 * lto-section-in.c: Likewise.
11633 * lto-section-out.c: Likewise.
11634 * lto-streamer-in.c: Likewise.
11635 * lto-streamer-out.c: Likewise.
11636 * lto-streamer.c: Likewise.
11637 * omp-low.c: Likewise.
11638 * passes.c: Likewise.
11639 * predict.c: Likewise.
11640 * print-tree.c: Likewise.
11641 * profile.c: Likewise.
11642 * sese.c: Likewise.
11643 * targhooks.c: Likewise.
11644 * tracer.c: Likewise.
11645 * trans-mem.c: Likewise.
11646 * tree-call-cdce.c: Likewise.
11647 * tree-cfg.c: Likewise.
11648 * tree-cfgcleanup.c: Likewise.
11649 * tree-chrec.c: Likewise.
11650 * tree-complex.c: Likewise.
11651 * tree-data-ref.c: Likewise.
11652 * tree-dfa.c: Likewise.
11653 * tree-eh.c: Likewise.
11654 * tree-emutls.c: Likewise.
11655 * tree-if-conv.c: Likewise.
11656 * tree-inline.c: Likewise.
11657 * tree-into-ssa.c: Likewise.
11658 * tree-loop-distribution.c: Likewise.
11659 * tree-mudflap.c: Likewise.
11660 * tree-nested.c: Likewise.
11661 * tree-nrv.c: Likewise.
11662 * tree-object-size.c: Likewise.
11663 * tree-outof-ssa.c: Likewise.
11664 * tree-parloops.c: Likewise.
11665 * tree-phinodes.c: Likewise.
11666 * tree-predcom.c: Likewise.
11667 * tree-pretty-print.c: Likewise.
11668 * tree-profile.c: Likewise.
11669 * tree-scalar-evolution.c: Likewise.
11670 * tree-sra.c: Likewise.
11671 * tree-ssa-address.c: Likewise.
11672 * tree-ssa-alias.c: Likewise.
11673 * tree-ssa-ccp.c: Likewise.
11674 * tree-ssa-coalesce.c: Likewise.
11675 * tree-ssa-copy.c: Likewise.
11676 * tree-ssa-copyrename.c: Likewise.
11677 * tree-ssa-dce.c: Likewise.
11678 * tree-ssa-dom.c: Likewise.
11679 * tree-ssa-dse.c: Likewise.
11680 * tree-ssa-forwprop.c: Likewise.
11681 * tree-ssa-ifcombine.c: Likewise.
11682 * tree-ssa-live.c: Likewise.
11683 * tree-ssa-loop-ch.c: Likewise.
11684 * tree-ssa-loop-im.c: Likewise.
11685 * tree-ssa-loop-ivcanon.c: Likewise.
11686 * tree-ssa-loop-ivopts.c: Likewise.
11687 * tree-ssa-loop-manip.c: Likewise.
11688 * tree-ssa-loop-niter.c: Likewise.
11689 * tree-ssa-loop-prefetch.c: Likewise.
11690 * tree-ssa-loop-unswitch.c: Likewise.
11691 * tree-ssa-loop.c: Likewise.
11692 * tree-ssa-math-opts.c: Likewise.
11693 * tree-ssa-operands.c: Likewise.
11694 * tree-ssa-phiopt.c: Likewise.
11695 * tree-ssa-phiprop.c: Likewise.
11696 * tree-ssa-pre.c: Likewise.
11697 * tree-ssa-propagate.c: Likewise.
11698 * tree-ssa-reassoc.c: Likewise.
11699 * tree-ssa-sccvn.c: Likewise.
11700 * tree-ssa-sink.c: Likewise.
11701 * tree-ssa-strlen.c: Likewise.
11702 * tree-ssa-structalias.c: Likewise.
11703 * tree-ssa-tail-merge.c: Likewise.
11704 * tree-ssa-ter.c: Likewise.
11705 * tree-ssa-threadedge.c: Likewise.
11706 * tree-ssa-threadupdate.c: Likewise.
11707 * tree-ssa-uncprop.c: Likewise.
11708 * tree-ssa-uninit.c: Likewise.
11709 * tree-ssa.c: Likewise.
11710 * tree-ssanames.c: Likewise.
11711 * tree-stdarg.c: Likewise.
11712 * tree-streamer-in.c: Likewise.
11713 * tree-switch-conversion.c: Likewise.
11714 * tree-tailcall.c: Likewise.
11715 * tree-vect-data-refs.c: Likewise.
11716 * tree-vect-generic.c: Likewise.
11717 * tree-vect-loop-manip.c: Likewise.
11718 * tree-vect-loop.c: Likewise.
11719 * tree-vect-patterns.c: Likewise.
11720 * tree-vect-slp.c: Likewise.
11721 * tree-vect-stmts.c: Likewise.
11722 * tree-vectorizer.c: Likewise.
11723 * tree-vrp.c: Likewise.
11724 * tree.c: Likewise.
11725 * tsan.c: Likewise.
11726 * value-prof.c: Likewise.
11727 * var-tracking.c: Likewise.
11728 * varpool.c: Likewise.
11729 * vtable-verify.c: Likewise.
11730
11731 2013-10-23 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11732
11733 * config/tilegx/tilegx.c: Include "tree.h".
11734
11735 2013-10-23 Jakub Jelinek <jakub@redhat.com>
11736
11737 * gimple-pretty-print.c (dump_ssaname_info): Always print "# " before
11738 the info, not after it.
11739 (gump_gimple_phi): Add COMMENT argument, if true, print "# " after
11740 dump_ssaname_info call.
11741 (pp_gimple_stmt_1): Adjust caller.
11742 (dump_phi_nodes): Likewise. Don't print "# " here.
11743
11744 2013-10-22 Jan Hubicka <jh@suse.cz>
11745
11746 * i386.h (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES): New
11747 tuning flag.
11748 * x86-tune.def (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES): Define it.
11749 * i386.c (expand_small_movmem_or_setmem): New function.
11750 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): New
11751 function.
11752 (alg_usable_p): Add support for value ranges; cleanup.
11753 (ix86_expand_set_or_movmem): Add support for misaligned moves.
11754
11755 2013-10-22 Sterling Augustine <saugustine@google.com>
11756
11757 * doc/invoke.texi: Document -ggnu-pubnames.
11758 * common.opt: Add new option -ggnu-pubnames and modify -gpubnames
11759 logic.
11760 * dwarf2out.c: Include gdb/gdb-index.h.
11761 (DEBUG_PUBNAMES_SECTION, DEBUG_PUBTYPES_SECTION): Handle
11762 debug_generate_pub_sections.
11763 (is_java, output_pubtables, output_pubname): New functions.
11764 (include_pubname_in_output): Handle debug_generate_pub_sections at
11765 level 2.
11766 (size_of_pubnames): Use new local space_for_flags based on
11767 debug_generate_pub_sections.
11768 (output_pubnames): Unify pubnames and pubtypes output logic.
11769 Genericize comments. Call output_pubname.
11770 (dwarf2out_finish): Move logic to output_pubnames and call it.
11771
11772 2013-10-22 Uros Bizjak <ubizjak@gmail.com>
11773
11774 PR target/58779
11775 * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
11776 Remove CCCmode handling.
11777 <case LTU>: Return 'c' suffix for CCCmode.
11778 <case GEU>: Return 'nc' suffix for CCCmode.
11779 (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
11780 * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
11781 (*sub<mode>3_cc_overflow): Ditto.
11782 (*subsi3_zext_cc_overflow): Ditto.
11783
11784 2013-10-22 Steve Ellcey <sellcey@mips.com>
11785
11786 * config/mips/mips.c (mips_rtx_costs): Fix cost estimate for nor
11787 (AND (NOT OP1) (NOT OP2)).
11788
11789 2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
11790
11791 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
11792 meaning of merge-high and merge-low masks for little endian; avoid
11793 use of vector-pack masks for little endian for mismatched modes.
11794
11795 2013-10-22 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11796
11797 * config/tilepro/tilepro.c: Include "tree.h".
11798
11799 2013-10-22 Andreas Schwab <schwab@suse.de>
11800
11801 * config/m68k/m68k.c (notice_update_cc): Handle register conflict
11802 with PRE_DEC.
11803
11804 2013-10-22 Paolo Carlini <paolo.carlini@oracle.com>
11805
11806 * doc/contrib.texi ([Fran@,{c}ois Dumont], [Tim Shen],
11807 [Ed Smith-Rowland]): New entries.
11808 ([Stephen M. Webb]): Update.
11809
11810 2013-10-22 Andrew MacLeod <amacleod@redhat.com>
11811
11812 * tree-ssa-ter.h: Remove duplicate copy of file contents.
11813
11814 2013-10-21 Marek Polacek <polacek@redhat.com>
11815
11816 PR middle-end/58809
11817 * fold-const.c (fold_range_test): Return 0 if the type is not
11818 an integral type.
11819
11820 2013-10-21 Richard Sandiford <rdsandiford@googlemail.com>
11821
11822 * system.h: Move hwint.h include further down.
11823 * hwint.h (sext_hwi, zext_hwi): Define unconditionally. Add
11824 gcc_checking_asserts.
11825 * hwint.c (sext_hwi, zext_hwi): Delete ENABLE_CHECKING versions.
11826
11827 2013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11828
11829 Fix volatile issues in optimize_bit_field_compare.
11830 * fold-const.c (optimize_bit_field_compare): Bail out if
11831 lvolatilep or rvolatilep.
11832
11833 2013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11834
11835 Fix DECL_BIT_FIELD depencency on flag_strict_volatile_bitfields
11836 and get_inner_reference returning different pmode for non-volatile
11837 bit-field members dependent on flag_strict_volatile_bitfields.
11838 * stor-layout.c (layout_decl): Remove special handling of
11839 flag_strict_volatile_bitfields.
11840 * expr.c (get_inner_reference): Don't use DECL_BIT_FIELD
11841 if flag_strict_volatile_bitfields > 0 and TREE_THIS_VOLATILE.
11842
11843 2013-10-21 Paulo Matos <pmatos@broadcom.com>
11844
11845 * ipa-inline.c (edge_badness): Cap edge->count at max_count for badness
11846 calculations.
11847
11848 2013-10-21 Jeff Law <law@redhat.com>
11849
11850 * tree-ssa-threadedge.c (thread_through_normal_block): New
11851 argument VISITED. Remove VISISTED as a local variable. When we
11852 have a threadable jump, verify the destination of the jump has not
11853 been visised.
11854 (thread_across_edge): Allocate VISITED bitmap once at function
11855 scope and use it throughout. Make sure to set appropriate bits in
11856 VISITED for E (start of jump thread path).
11857 * tree-ssa-threadupdate.c (mark_threaded_blocks): Reject threading
11858 through a joiner if any edge on the path has a recorded jump thread.
11859
11860 2013-10-21 Ian Lance Taylor <iant@google.com>
11861
11862 * doc/invoke.texi (Optimize Options): For -fno-toplevel-reorder,
11863 don't imply that attributes can solve all problems.
11864 (Directory Options): Fix typo.
11865
11866 2013-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11867
11868 * config/arm/arm.c (cortexa9_extra_costs): Update mult costs for
11869 extend and extend_add.
11870
11871 2013-10-21 Richard Biener <rguenther@suse.de>
11872
11873 PR tree-optimization/58794
11874 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
11875 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
11876
11877 2013-10-21 Richard Biener <rguenther@suse.de>
11878
11879 PR middle-end/58742
11880 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
11881 to (T) X for sign-changing conversions (or no conversion).
11882
11883 2013-10-20 Uros Bizjak <ubizjak@gmail.com>
11884
11885 * config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber.
11886
11887 2013-10-20 Jan Hubicka <jh@suse.cz>
11888
11889 * config/i386/i386-tune.def: Add comment; organize into categories
11890
11891 2013-10-21 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
11892
11893 * config/i386/i386.c (expand_set_or_movmem_via_loop): Add issetmem
11894 argument. Update function comment.
11895 (expand_set_or_movmem_via_rep): New function combining
11896 expand_movmem_via_rep_mov and expand_setmem_via_rep_stos.
11897 (expand_movmem_via_rep_mov): Remove.
11898 expand_setmem_via_rep_stos): Remove.
11899 (expand_movmem_epilogue): Update calls correspondingly.
11900 (expand_setmem_epilogue_via_loop): Likewise.
11901 (emit_memset): New.
11902 (expand_setmem_epilogue): Add VEC_VALUE argument, refactor.
11903 (expand_set_or_movmem_prologue): New function combining
11904 expand_movmem_prologue and expand_setmem_prologue.
11905 (expand_movmem_prologue): Remove.
11906 (expand_setmem_prologue): Remove.
11907 (expand_set_or_movmem_constant_prologue): New function combining
11908 expand_constant_movmem_prologue and expand_constant_setmem_prologue.
11909 (expand_constant_movmem_prologue): Remove.
11910 (expand_constant_setmem_prologue): Remove.
11911 (promote_duplicated_reg): Allow vector-const0 value.
11912 (ix86_expand_set_or_movmem): New function combining ix86_expand_movmem
11913 and ix86_expand_setmem.
11914 (ix86_expand_movmem): Call ix86_expand_set_or_movmem.
11915 (ix86_expand_setmem): Call ix86_expand_set_or_movmem.
11916
11917 2013-10-21 Diego Novillo <dnovillo@google.com>
11918
11919 * asan.c: Include tree.h
11920 * bb-reorder.c: Likewise.
11921 * cfgcleanup.c: Likewise.
11922 * cfgloopmanip.c: Likewise.
11923 * data-streamer-in.c: Likewise.
11924 * data-streamer-out.c: Likewise.
11925 * data-streamer.c: Likewise.
11926 * dwarf2cfi.c: Likewise.
11927 * graphite-blocking.c: Likewise.
11928 * graphite-clast-to-gimple.c: Likewise.
11929 * graphite-dependences.c: Likewise.
11930 * graphite-interchange.c: Likewise.
11931 * graphite-optimize-isl.c: Likewise.
11932 * graphite-poly.c: Likewise.
11933 * graphite-scop-detection.c: Likewise.
11934 * graphite-sese-to-poly.c: Likewise.
11935 * graphite.c: Likewise.
11936 * ipa-devirt.c: Likewise.
11937 * ipa-profile.c: Likewise.
11938 * ipa.c: Likewise.
11939 * ira.c: Likewise.
11940 * loop-init.c: Likewise.
11941 * loop-unroll.c: Likewise.
11942 * lower-subreg.c: Likewise.
11943 * lto/lto-object.c: Likewise.
11944 * recog.c: Likewise.
11945 * reginfo.c: Likewise.
11946 * tree-loop-distribution.c: Likewise.
11947 * tree-parloops.c: Likewise.
11948 * tree-ssa-strlen.c: Likewise.
11949 * tree-streamer.c: Likewise.
11950 * value-prof.c: Likewise.
11951 * target-globals.c: Likewise.
11952 * expr.h: Include tree-core.h instead of tree.h.
11953 * gimple.h: Likewise.
11954 * ipa-prop.h: Likewise.
11955 * ipa-utils.h: Likewise.
11956 * lto-streamer.h: Likewise.
11957 * streamer-hooks.h: Likewise.
11958 * ipa-reference.h: Include cgraph.h instead of tree.h.
11959 * cgraph.h: Include basic-block.h instead of tree.h.
11960 * tree-streamer.h: Do not include tree.h.
11961 * genattrtab.c (write_header): Generate inclusion of tree.h.
11962 * genautomata.c (main): Likewise.
11963 * genemit.c: Likewise.
11964 * genopinit.c: Likewise.
11965 * genoutput.c (output_prologue): Likewise.
11966 * genpeep.c: Likewise.
11967
11968 2013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11969
11970 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
11971 little endian.
11972 (vec_unpacku_hi_v8hi): Likewise.
11973 (vec_unpacku_lo_v16qi): Likewise.
11974 (vec_unpacku_lo_v8hi): Likewise.
11975
11976 2013-10-20 Jan Hubicka <jh@suse.cz>
11977
11978 * config/i386/x86-tune.def (X86_TUNE_SLOW_IMUL_IMM32_MEM,
11979 X86_TUNE_SLOW_IMUL_IMM8): Keep enabled only for K8 and AMDFAM10.
11980 (X86_TUNE_USE_VECTOR_FP_CONVERTS): Disable for generic.
11981
11982 2013-10-20 Richard Sandiford <rdsandiford@googlemail.com>
11983
11984 * config/mips/mips.h (ISA_HAS_WSBH): Define.
11985 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
11986 constants.
11987 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
11988
11989 2013-10-19 John David Anglin <danglin@gcc.gnu.org>
11990
11991 PR target/58603
11992 * system.h: Undef m_slot.
11993
11994 2013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11995
11996 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
11997 all elements for both endian flavors.
11998
11999 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
12000
12001 PR target/58792
12002 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
12003 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
12004 and SI_REG for 64bit SYSV ABI targets.
12005
12006 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
12007
12008 * mode-switching.c (create_pre_exit): Rename maybe_builtin_apply
12009 to multi_reg_return. Clarify that we are skipping USEs of multiple
12010 return registers. Use bool type where appropriate.
12011
12012 2013-10-18 Jan Hubicka <jh@suse.cz>
12013
12014 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Disable accumulation
12015 for cold functions.
12016 * x86-tune.def (X86_TUNE_USE_LEAVE): Update comment.
12017 (X86_TUNE_PUSH_MEMORY): Likewise.
12018 (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL,
12019 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): New.
12020 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, X86_TUNE_ALWAYS_FANCY_MATH_387):
12021 New.
12022 * i386.c (x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
12023 x86_avx256_split_unaligned_load, x86_avx256_split_unaligned_store):
12024 Remove.
12025 (ix86_option_override_internal): Update to use tune features instead
12026 of variables.
12027
12028 2013-10-18 Cong Hou <congh@google.com>
12029
12030 PR tree-optimization/58508
12031 * tree-vect-loop-manip.c (vect_loop_versioning): Hoist loop invariant
12032 statement that contains data refs with zero-step.
12033
12034 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
12035
12036 * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h,
12037 sbitmap.h, tree-ssa-threadedge.h, tree-ssa-dom.h and tree-cfgcleanup.h.
12038 * gimple-low.c (gimple_check_call_arg,
12039 gimple_check_call_matching_types): Move to cgraph.c.
12040 * gimple-low.h: Remove prototype.
12041 * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types):
12042 Relocate from gimple-low.c.
12043 * cgraph.h: Add prototype. Don't include basic-block.h.
12044 * gimplify.c: Add gimple-low to include list.
12045 * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list.
12046 * tree-eh.c: Add gimple-low to include list.
12047 * tree-nested.c: Likewise.
12048 * cfgexpand.c: Add tree-ssa-address.h to include list.
12049 * expr.c: Likewise.
12050 * gimple-fold.c: Likewise.
12051 * gimple-ssa-strength-reduction.c: Likewise.
12052 * trans-mem.c: Likewise.
12053 * tree-mudflap.c: Likewise.
12054 * tree-ssa-loop-ivopts.c: Likewise.
12055 * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h.
12056 (degenerate_phi_result): Move to tree-phinodes.c.
12057 * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h.
12058 * tree-ssa-threadedge.c: Likewise.
12059 * tree-vrp.c: Likewise.
12060 * tree-phinodes.c (degenerate_phi_result): Relocate here.
12061 * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype.
12062 * tree-phinodes.h (degenerate_phi_result): Add prototype.
12063 * tree-ssa-copy.c: Include tree-ssa-dom.h.
12064 * tree-ssa-forwprop.c: Likewise.
12065 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing,
12066 pass_data_cleanup_cfg_post_optimizing,
12067 make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
12068 * tree-optimize.c: Delete File.
12069 * graphite.c: Include tree-cfgcleanup.h.
12070 * passes.c: Likewise.
12071 * tree-cfg.c: Likewise.
12072 * tree-profile.c: Likewise.
12073 * tree-ssa-dse.c: Likewise.
12074 * tree-ssa-loop-ivcanon.c: Likewise.
12075 * tree-switch-conversion.c: Don't include tree-ssa-operands.h.
12076 * tree-outof-ssa.c: Include sbitmap.h.
12077 * tree-ssa-live.c: Likewise.
12078 * tree-ssa-propagate.c: Likewise.
12079 * tree-ssa-structalias.c: Likewise.
12080 * tree-stdarg.c: Likewise.
12081 * Makefile.in (OBJS): Delete tree-optimize.o.
12082 * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h.
12083 * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here.
12084 * varasm.c: Include basic-block.h.
12085 * cfgloop.h: Include function.h instead of basic-block.h
12086 (bb_loop_depth): Move to cfgloop.c.
12087 * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h.
12088
12089 2013-10-18 Teresa Johnson <tejohnson@google.com>
12090
12091 * predict.c (probably_never_executed): Compare frequency-based
12092 count to number of training runs.
12093 * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter.
12094
12095 2013-10-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12096
12097 * config/arm/arm.c (cortexa9_extra_costs): New table.
12098 (arm_cortex_a9_tune): Use cortexa9_extra_costs.
12099
12100 2013-10-18 Jeff Law <law@redhat.com>
12101
12102 * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h".
12103
12104 * tree-ssa-threadupdate.c: Include "dbgcnt.h".
12105 (register_jump_thread): Add "registered_jump_thread" debug
12106 counter support.
12107 * dbgcnt.def (registered_jump_thread): New debug counter.
12108
12109 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
12110
12111 * config/rs6000/rs6000.c: Include cgraph.h.
12112
12113 2013-10-18 Teresa Johnson <tejohnson@google.com>
12114
12115 * tree-ssa-tail-merge.c (replace_block_by): Update edge
12116 weights during merging.
12117
12118 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
12119
12120 * tree-cfg.h: Rename from tree-flow.h. Remove #includes.
12121 * tree-ssa.h: Relocate required #includes from tree-cfg.h.
12122 * tree-ssa-operands.h: Remove prototype.
12123 * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
12124 * gimple.c (virtual_operand_p): Relocate from gimple.c.
12125 * gimple.h: Add prototype.
12126 * gimple-ssa.h: Include tree-ssa-operands.h.
12127 * tree-dump.c: Add tree-cfg.h to include list.
12128 * tree-ssa-alias.c: Add ipa-reference.h to include list.
12129 * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
12130 * config/i386/i386.c: Don't include tree-flow.h.
12131 * config/rs6000/rs6000.c: Likewise.
12132
12133 2013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12134
12135 * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
12136
12137 2013-10-18 Richard Biener <rguenther@suse.de>
12138
12139 * stor-layout.c (layout_type): Do not change TYPE_PRECISION
12140 or TYPE_UNSIGNED of integral types.
12141 (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE
12142 NULL_TREE for zero-precision integral types.
12143
12144 2013-10-18 James Greenhalgh <james.greenhalgh@arm.com>
12145
12146 * config/aarch64/arm_neon.h
12147 (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types.
12148
12149 2013-10-17 Sriraman Tallam <tmsriram@google.com>
12150
12151 PR target/57756
12152 * opth-gen.awk: Define target_flags_explicit.
12153
12154 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
12155
12156 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
12157 fields to the reg_addr array that describes the valid addressing
12158 mode for any register, general purpose registers, floating point
12159 registers, and Altivec registers.
12160 (FIRST_RELOAD_REG_CLASS): Likewise.
12161 (LAST_RELOAD_REG_CLASS): Likewise.
12162 (struct reload_reg_map_type): Likewise.
12163 (reload_reg_map_type): Likewise.
12164 (RELOAD_REG_VALID): Likewise.
12165 (RELOAD_REG_MULTIPLE): Likewise.
12166 (RELOAD_REG_INDEXED): Likewise.
12167 (RELOAD_REG_OFFSET): Likewise.
12168 (RELOAD_REG_PRE_INCDEC): Likewise.
12169 (RELOAD_REG_PRE_MODIFY): Likewise.
12170 (reg_addr): Likewise.
12171 (mode_supports_pre_incdec_p): New helper functions to say whether
12172 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
12173 (mode_supports_pre_modify_p): Likewise.
12174 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
12175 print the valid address mode bits for each mode.
12176 (rs6000_debug_print_mode): Likewise.
12177 (rs6000_debug_reg_global): Likewise.
12178 (rs6000_setup_reg_addr_masks): New function to set up the address
12179 mask bits for each type.
12180 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
12181 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
12182 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
12183 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
12184 PRE_MODIFY are supported.
12185 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
12186 registers, instead of {src,dest}_av_p.
12187 (rs6000_print_options_internal): Tweak the debug output slightly.
12188
12189 2013-10-17 Uros Bizjak <ubizjak@gmail.com>
12190
12191 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
12192 isa attribute.
12193
12194 2013-10-17 Andrew MacLeod <amacleod@redhat.com>
12195
12196 * tree-flow.h (struct omp_region): Move to omp-low.c.
12197 Remove omp_ prototypes and variables.
12198 * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
12199 (copy_var_decl): Relocate prototype from tree-flow.h.
12200 * gimple.c (copy_var_decl): Relocate from omp-low.c.
12201 * tree.h: Move prototype to omp-low.h.
12202 * omp-low.h: New File. Relocate prototypes here.
12203 * omp-low.c (struct omp_region): Make local here.
12204 (root_omp_region): Make static.
12205 (copy_var_decl) Move to gimple.c.
12206 (new_omp_region): Make static.
12207 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges.
12208 * tree-cfg.c: Include omp-low.h.
12209 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
12210 * gimplify.c: Include omp-low.h.
12211 * tree-parloops.c: Likewise.
12212
12213 2013-10-17 Uros Bizjak <ubizjak@gmail.com>
12214
12215 * config/i386/i386.c (ix86_fixup_binary_operands): When both source
12216 operands are in memory, prefer to force non-matched operand 1 to
12217 the register.
12218
12219 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
12220
12221 PR target/58673
12222 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
12223 restrict TImode addresses to single indirect registers if both
12224 -mquad-memory and -mvsx-timode are used.
12225 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
12226 we should emit load/store quad. Remove using %y for quad memory
12227 addresses.
12228
12229 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
12230 constraints to allow load/store quad on machines where TImode is
12231 not allowed in VSX registers. Use 'n' instead of 'F' constraint
12232 for TImode to load integer constants.
12233
12234 2013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12235
12236 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
12237
12238 2013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
12239
12240 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
12241 handling of STACK_REG.
12242
12243 2013-10-17 Richard Biener <rguenther@suse.de>
12244
12245 PR tree-optimization/58143
12246 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
12247 New function.
12248 (rewrite_to_defined_overflow): Likewise.
12249 (move_computations_dom_walker::before_dom): Rewrite stmts
12250 with undefined signed overflow that are not always executed
12251 into unsigned arithmetic.
12252
12253 2013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
12254
12255 PR target/57756
12256 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
12257 explicit isa flag to be an options variable, instead of using
12258 global_options_set. Remove define from rs6000.h.
12259 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
12260
12261 * config/rs6000/rs6000.c (rs6000_option_override_internal):
12262 Initialize rs6000_isa_flags_explicit.
12263 (rs6000_function_specific_save): Add gcc_options* parameter, so
12264 that the powerpc builds after the 2013-10-15 changes.
12265 (rs6000_function_specific_restore): Likewise.
12266
12267 2013-10-16 DJ Delorie <dj@redhat.com>
12268
12269 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
12270 op is a REG before checking REGNO.
12271 (rl78_alloc_physical_registers): Verify pattern is a SET before
12272 checking SET_SRC.
12273
12274 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12275
12276 * config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
12277 endianness.
12278 (vec_unpacks_lo_v4sf): Likewise.
12279 (vec_unpacks_float_hi_v4si): Likewise.
12280 (vec_unpacks_float_lo_v4si): Likewise.
12281 (vec_unpacku_float_hi_v4si): Likewise.
12282 (vec_unpacku_float_lo_v4si): Likewise.
12283
12284 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12285
12286 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
12287 (vsx_concat_v2sf): Likewise.
12288
12289 2013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
12290
12291 * config/aarch64/aarch64.md
12292 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
12293
12294 2013-10-16 Andrew MacLeod <amacleod@redhat.com>
12295
12296 PR tree-optimization/58697
12297 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
12298 estimated_loop_iterations_int.
12299 (max_stmt_executions_int): Call get_max_loop_iterations_int.
12300 (get_max_loop_iterations_int): New. HWINT version of
12301 get_max_loop_iterations.
12302 * cfgloop.h: Add prototypes.
12303 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
12304 * loop-unroll.c (decide_peel_once_rolling): Call
12305 get_estimated_loop_iterations_int.
12306 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
12307 * tree-ssa-loop-niter.h: Tweak prototypes.
12308
12309 2013-10-16 David Malcolm <dmalcolm@redhat.com>
12310
12311 * gengtype-parse.c (struct_field_seq): Ignore access-control
12312 keywords ("public:" etc).
12313
12314 2013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
12315
12316 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
12317 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
12318
12319 2013-10-16 Yvan Roux <yvan.roux@linaro.org>
12320
12321 * config/arm/arm.opt (mlra): New option.
12322 * config/arm/arm.c (arm_lra_p): New function.
12323 (TARGET_LRA_P): Define.
12324
12325 2013-10-16 Paulo Matos <pmatos@broadcom.com>
12326
12327 * tree-core.h (tree_code_name): Remove.
12328 * tree.h (get_tree_code_name): New prototype.
12329 * tree.c (tree_code_name): Make static.
12330 (get_tree_code_name): New function.
12331 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
12332 tree_class_check_failed, tree_range_check_failed,
12333 tree_not_class_check_failed, omp_clause_check_failed,
12334 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
12335 wrapper get_tree_code_name instead of calling tree_code_name directly.
12336 * tree-vrp.c (dump_asserts_for): Likewise.
12337 * tree-dump.c (dequeue_and_dump): Likewise.
12338 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
12339 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
12340 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
12341 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
12342 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
12343 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
12344 dump_gimple_omp_for): Likewise.
12345 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
12346 * tree-ssa-pre.c (print_pre_expr): Likewise.
12347 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
12348 * print-tree.c (print_node_brief, print_node): Likewise.
12349 * gimple.c (gimple_check_failed): Likewise.
12350 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
12351 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
12352 * config/mep/mep.c (mep_validate_vliw): Likewise.
12353 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
12354 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
12355
12356 2013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12357
12358 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
12359 for AMD bdver3.
12360
12361 2013-10-16 Hans-Peter Nilsson <hp@axis.com>
12362
12363 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
12364 (MULTILIB_MATCHES): Add multilib for -march=v8.
12365
12366 2013-10-15 Sriraman Tallam <tmsriram@google.com>
12367
12368 PR target/57756
12369 * optc-save-gen.awk: Add extra parameter to the save and restore
12370 target calls.
12371 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
12372 * tree.c (build_optimization_node): New parameter. Add extra parameter
12373 to call to cl_optimization_save.
12374 (build_target_option_node): New parameter. Add extra parameter
12375 to call to cl_target_option_save.
12376 * tree.h (build_optimization_node): New parameter.
12377 (build_target_option_node): New parameter.
12378 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
12379 build_optimization_node and build_target_option_node.
12380 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
12381 (handle_pragma_push_options): Ditto.
12382 * toplev.c (process_options): Ditto.
12383 * opts.c (init_options_struct): Check for opts_set non-null.
12384 * target.def (target_option.save): New parameter.
12385 (target_option.restore): New parameter.
12386 * tm.texi: Generate.
12387 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
12388 (ix86_pragma_target_parse): Ditto.
12389 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
12390 parameters.
12391 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
12392 to build_optimization_node and build_target_option_node.
12393 (rs6000_valid_attribute_p): Ditto.
12394 (rs6000_pragma_target_parse): Ditto.
12395 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
12396 data.
12397 * config/i386/i386.h:
12398 TARGET_64BIT_P: New Macro
12399 TARGET_MMX_P: New Macro.
12400 TARGET_3DNOW_P: New Macro.
12401 TARGET_3DNOW_A_P: New Macro.
12402 TARGET_SSE_P: New Macro.
12403 TARGET_SSE2_P: New Macro.
12404 TARGET_SSE3_P: New Macro.
12405 TARGET_SSSE3_P: New Macro.
12406 TARGET_SSE4_1_P: New Macro.
12407 TARGET_SSE4_2_P: New Macro.
12408 TARGET_AVX_P: New Macro.
12409 TARGET_AVX2_P: New Macro.
12410 TARGET_AVX512F_P: New Macro.
12411 TARGET_AVX512PF_P: New Macro.
12412 TARGET_AVX512ER_P: New Macro.
12413 TARGET_AVX512CD_P: New Macro.
12414 TARGET_FMA_P: New Macro.
12415 TARGET_SSE4A_P: New Macro.
12416 TARGET_FMA4_P: New Macro.
12417 TARGET_XOP_P: New Macro.
12418 TARGET_LWP_P: New Macro.
12419 TARGET_ABM_P: New Macro.
12420 TARGET_BMI_P: New Macro.
12421 TARGET_BMI2_P: New Macro.
12422 TARGET_LZCNT_P: New Macro.
12423 TARGET_TBM_P: New Macro.
12424 TARGET_POPCNT_P: New Macro.
12425 TARGET_SAHF_P: New Macro.
12426 TARGET_MOVBE_P: New Macro.
12427 TARGET_CRC32_P: New Macro.
12428 TARGET_AES_P: New Macro.
12429 TARGET_PCLMUL_P: New Macro.
12430 TARGET_CMPXCHG16B_P: New Macro.
12431 TARGET_FSGSBASE_P: New Macro.
12432 TARGET_RDRND_P: New Macro.
12433 TARGET_F16C_P: New Macro.
12434 TARGET_RTM_P: New Macro.
12435 TARGET_HLE_P: New Macro.
12436 TARGET_RDSEED_P: New Macro.
12437 TARGET_PRFCHW_P: New Macro.
12438 TARGET_ADX_P: New Macro.
12439 TARGET_FXSR_P: New Macro.
12440 TARGET_XSAVE_P: New Macro.
12441 TARGET_XSAVEOPT_P: New Macro.
12442 TARGET_LP64_P: New Macro.
12443 TARGET_X32_P: New Macro.
12444 TARGET_FPMATH_DEFAULT_P: New Macro.
12445 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
12446 * config/i386/i386.c (ix86_option_override_internal): New parameters.
12447 opts and opts_set.
12448 Change ix86_tune_string to access opts->x_ix86_tune_string.
12449 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
12450 Change ix86_arch_string to access opts->x_ix86_arch_string.
12451 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
12452 Change ix86_pmode to access opts->x_ix86_pmode.
12453 Change ix86_abi to access opts->x_ix86_abi.
12454 Change ix86_cmodel to access opts->x_ix86_cmodel.
12455 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
12456 Change ix86_isa_flags_explicit to access
12457 opts->x_ix86_isa_flags_explicit.
12458 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
12459 Change ix86_regparm to access opts->x_ix86_regparm.
12460 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
12461 Change ix86_preferred_stack_boundary_arg to access
12462 opts->x_ix86_preferred_stack_boundary_arg.
12463 Change ix86_force_align_arg_pointer to access
12464 opts->x_ix86_force_align_arg_pointer.
12465 Change ix86_incoming_stack_boundar_arg to access
12466 opts->x_ix86_incoming_stack_boundar_arg.
12467 Change ix86_fpmath to access opts->x_ix86_fpmath.
12468 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
12469 Change ix86_recip_name to access opts->x_ix86_recip_name.
12470 Change ix86_stack_protector_guard to access
12471 opts->x_ix86_stack_protector_guard.
12472 Change ix86_tune_memcpy_strategy to access
12473 opts->x_ix86_tune_memcpy_strategy.
12474 Change ix86_tune_memset_strategy to access
12475 opts->x_ix86_tune_memset_strategy.
12476 Change global_options to access opts.
12477 Change global_options_set to access opts_set.
12478 Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
12479 Change TARGET_MMX to TARGET_MMX_P (opts->...).
12480 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
12481 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
12482 Change TARGET_SSE to TARGET_SSE_P (opts->...).
12483 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
12484 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
12485 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
12486 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
12487 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
12488 Change TARGET_AVX to TARGET_AVX_P (opts->...).
12489 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
12490 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
12491 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
12492 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
12493 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
12494 Change TARGET_FMA to TARGET_FMA_P (opts->...).
12495 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
12496 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
12497 Change TARGET_XOP to TARGET_XOP_P (opts->...).
12498 Change TARGET_LWP to TARGET_LWP_P (opts->...).
12499 Change TARGET_ABM to TARGET_ABM_P (opts->...).
12500 Change TARGET_BMI to TARGET_BMI_P (opts->...).
12501 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
12502 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
12503 Change TARGET_TBM to TARGET_TBM_P (opts->...).
12504 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
12505 Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
12506 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
12507 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
12508 Change TARGET_AES to TARGET_AES_P (opts->...).
12509 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
12510 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
12511 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
12512 Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
12513 Change TARGET_F16C to TARGET_F16C_P (opts->...).
12514 Change TARGET_RTM to TARGET_RTM_P (opts->...).
12515 Change TARGET_HLE to TARGET_HLE_P (opts->...).
12516 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
12517 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
12518 Change TARGET_ADX to TARGET_ADX_P (opts->...).
12519 Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
12520 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
12521 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
12522 Change TARGET_LP64 to TARGET_LP64_P (opts->...).
12523 Change TARGET_X32 to TARGET_X32_P (opts->...).
12524 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
12525 Change TARGET_FLOAT_RETURNS_IN_80387 to
12526 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
12527 (ix86_function_specific_save): New parameter. Use opts-> fields
12528 to replace global fields.
12529 (ix86_function_specific_restore): Ditto.
12530 (ix86_valid_target_attribute_inner_p): New parameters.
12531 Fix recursive call.
12532 Fix call to ix86_handle_option and set_option.
12533 (ix86_valid_target_attribute_tree): New parameters.
12534 Change global_options to access opts.
12535 Change global_options_set to access opts_set.
12536 Fix call to ix86_valid_target_attribute_inner_p.
12537 Change ix86_tune_string to access opts->x_ix86_tune_string.
12538 Change ix86_arch_string to access opts->x_ix86_arch_string.
12539 Change ix86_fpmath to access opts->x_ix86_fpmath
12540 Fix call to ix86_option_override_internal.
12541 Fix call to ix86_add_new_builtins.
12542 Fix calls to build_optimization_node and build_target_option_node.
12543 (ix86_valid_target_attribute_p): Remove access to global_options.
12544 Use new gcc_options structure func_options.
12545 Fix call to ix86_valid_target_attribute_tree.
12546 Fix call to build_optimization_node.
12547 (get_builtin_code_for_version): Fix call to
12548 ix86_valid_target_attribute_tree.
12549
12550 2013-10-15 David Malcolm <dmalcolm@redhat.com>
12551
12552 * Makefile.in (PICFLAG): New.
12553 (enable_host_shared): New.
12554 (INTERNAL_CFLAGS): Use PICFLAG.
12555 (LIBIBERTY): Use pic build of libiberty.a if configured with
12556 --enable-host-shared.
12557 * configure.ac: Add --enable-host-shared, setting up new
12558 PICFLAG variable.
12559 * configure: Regenerate.
12560 * doc/install.texi (--enable-shared): Add note contrasting it with ...
12561 (--enable-host-shared): New option.
12562
12563 2013-10-15 Richard Biener <rguenther@suse.de>
12564
12565 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
12566 for built-in functions.
12567
12568 2013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
12569
12570 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
12571 (optimize_range_tests_1): New function,
12572 extracted from optimize_range_tests.
12573 (optimize_range_tests_xor): Similarly.
12574 (optimize_range_tests_diff): New function.
12575 (optimize_range_tests): Use optimize_range_tests_1.
12576
12577 2013-10-15 Cong Hou <congh@google.com>
12578
12579 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
12580 requirement of the reduction pattern so that one operand of the
12581 reduction operation can come from outside of the loop.
12582
12583 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
12584
12585 * config/arm/neon-schedgen.ml: Remove.
12586 * config/arm/cortex-a9-neon.md: Remove comment regarding
12587 neon-schedgen.ml.
12588
12589 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
12590
12591 * config/arm/types: Remove old neon types.
12592
12593 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
12594
12595 * config/arm/cortex-a7.md
12596 (cortex_a7_neon_type): New.
12597 (cortex_a7_neon_mul): Update for new types.
12598 (cortex_a7_neon_mla): Likewise.
12599 (cortex_a7_neon): Likewise.
12600
12601 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
12602
12603 * config/arm/cortex-a15-neon.md
12604 (cortex_a15_neon_type): New,
12605
12606 (cortex_a15_neon_int_1): Remove.
12607 (cortex_a15_neon_int_2): Likewise.
12608 (cortex_a15_neon_int_3): Likewise.
12609 (cortex_a15_neon_int_4): Likewise.
12610 (cortex_a15_neon_int_5): Likewise.
12611 (cortex_a15_neon_vqneg_vqabs): Likewise.
12612 (cortex_a15_neon_vmov): Likewise.
12613 (cortex_a15_neon_vaba): Likewise.
12614 (cortex_a15_neon_vaba_qqq): Likewise.
12615 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
12616 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
12617 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
12618 Likewise.
12619 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
12620 (cortex_a15_neon_mla_qqq_8_16): Likewise.
12621 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
12622 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
12623 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
12624 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
12625 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
12626 (cortex_a15_neon_shift_1): Likewise.
12627 (cortex_a15_neon_shift_2): Likewise.
12628 (cortex_a15_neon_shift_3): Likewise.
12629 (cortex_a15_neon_vshl_ddd): Likewise.
12630 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
12631 (cortex_a15_neon_vsra_vrsra): Likewise.
12632 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
12633 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
12634 (cortex_a15_neon_bp_3cycle): Likewise.
12635 (cortex_a15_neon_ldm_2): Likewise.
12636 (cortex_a15_neon_stm_2): Likewise.
12637 (cortex_a15_neon_mcr): Likewise.
12638 (cortex_a15_neon_mrc): Likewise.
12639 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
12640 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
12641 (cortex_a15_neon_fp_vmul_ddd): Likewise.
12642 (cortex_a15_neon_fp_vmul_qqd): Likewise.
12643 (cortex_a15_neon_fp_vmla_ddd): Likewise.
12644 (cortex_a15_neon_fp_vmla_qqq): Likewise.
12645 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
12646 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
12647 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
12648 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
12649 (cortex_a15_neon_bp_simple): Likewise.
12650 (cortex_a15_neon_bp_2cycle): Likewise.
12651 (cortex_a15_neon_bp_3cycle): Likewise.
12652 (cortex_a15_neon_vld1_1_2_regs): Likewise.
12653 (cortex_a15_neon_vld1_3_4_regs): Likewise.
12654 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
12655 (cortex_a15_neon_vld2_4_regs): Likewise.
12656 (cortex_a15_neon_vld3_vld4): Likewise.
12657 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
12658 (cortex_a15_neon_vst1_3_4_regs): Likewise.
12659 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
12660 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
12661 (cortex_a15_neon_vst3_vst4): Rename to...
12662 (cortex_a15_neon_vst4): This, update for new attributes.
12663 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
12664 (cortex_a15_neon_vld3_vld4_lane): Likewise.
12665 (cortex_a15_neon_vst1_vst2_lane): Likewise.
12666 (cortex_a15_neon_vst3_vst4_lane): Likewise.
12667 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
12668 (cortex_a15_neon_ldm_2): Likewise.
12669 (cortex_a15_neon_stm_2): Likewise.
12670 (cortex_a15_neon_mcr): Likewise.
12671 (cortex_a15_neon_mcr_2_mcrr): Likewise.
12672 (cortex_a15_neon_mrc): Likewise.
12673 (cortex_a15_neon_mrrc): Likewise.
12674
12675 (cortex_a15_neon_abd): New.
12676 (cortex_a15_neon_abd_q): Likewise.
12677 (cortex_a15_neon_aba): Likewise.
12678 (cortex_a15_neon_aba_q): Likewise.
12679 (cortex_a15_neon_acc): Likewise.
12680 (cortex_a15_neon_acc_q): Likewise.
12681 (cortex_a15_neon_arith_basic): Likewise.
12682 (cortex_a15_neon_arith_complex): Likewise.
12683 (cortex_a15_neon_multiply): Likewise.
12684 (cortex_a15_neon_multiply_q): Likewise.
12685 (cortex_a15_neon_mla): Likewise.
12686 (cortex_a15_neon_mla_q): Likewise.
12687 (cortex_a15_neon_sat_mla_long): Likewise.
12688 (cortex_a15_neon_shift_acc): Likewise.
12689 (cortex_a15_neon_shift_imm_basic): Likewise.
12690 (cortex_a15_neon_shift_imm_complex): Likewise.
12691 (cortex_a15_neon_shift_reg_basic): Likewise.
12692 (cortex_a15_neon_shift_reg_basic_q): Likewise.
12693 (cortex_a15_neon_shift_reg_complex): Likewise.
12694 (cortex_a15_neon_shift_reg_complex_q): Likewise.
12695 (cortex_a15_neon_fp_negabs): Likewise
12696 (cortex_a15_neon_fp_arith): Likewise
12697 (cortex_a15_neon_fp_arith_q): Likewise
12698 (cortex_a15_neon_fp_cvt_int): Likewise
12699 (cortex_a15_neon_fp_cvt_int_q): Likewise
12700 (cortex_a15_neon_fp_cvt_16): Likewise
12701 (cortex_a15_neon_fp_mul): Likewise
12702 (cortex_a15_neon_fp_mul_q): Likewise
12703 (cortex_a15_neon_fp_mla): Likewise
12704 (cortex_a15_neon_fp_mla_q): Likewise
12705 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
12706 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
12707 (cortex_a15_neon_bitops): Likewise.
12708 (cortex_a15_neon_bitops_q): Likewise.
12709 (cortex_a15_neon_from_gp): Likewise.
12710 (cortex_a15_neon_from_gp_q): Likewise.
12711 (cortex_a15_neon_tbl3_tbl4): Likewise.
12712 (cortex_a15_neon_zip_q): Likewise.
12713 (cortex_a15_neon_to_gp): Likewise.
12714 (cortex_a15_neon_load_a): Likewise.
12715 (cortex_a15_neon_load_b): Likewise.
12716 (cortex_a15_neon_load_c): Likewise.
12717 (cortex_a15_neon_load_d): Likewise.
12718 (cortex_a15_neon_load_e): Likewise.
12719 (cortex_a15_neon_load_f): Likewise.
12720 (cortex_a15_neon_store_a): Likewise.
12721 (cortex_a15_neon_store_b): Likewise.
12722 (cortex_a15_neon_store_c): Likewise.
12723 (cortex_a15_neon_store_d): Likewise.
12724 (cortex_a15_neon_store_e): Likewise.
12725 (cortex_a15_neon_store_f): Likewise.
12726 (cortex_a15_neon_store_g): Likewise.
12727 (cortex_a15_neon_store_h): Likewise.
12728 (cortex_a15_vfp_to_from_gp): Likewise.
12729
12730 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
12731
12732 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
12733
12734 (cortex_a9_neon_vshl_ddd): Remove.
12735 (cortex_a9_neon_vst3_vst4): Likewise.
12736 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
12737
12738 (cortex_a9_neon_bit_ops_q): New.
12739
12740 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
12741 (cortex_a9_neon_int_2): Likewise.
12742 (cortex_a9_neon_int_3): Likewise.
12743 (cortex_a9_neon_int_4): Likewise.
12744 (cortex_a9_neon_int_5): Likewise.
12745 (cortex_a9_neon_vqneg_vqabs): Likewise.
12746 (cortex_a9_neon_vmov): Likewise.
12747 (cortex_a9_neon_vaba): Likewise.
12748 (cortex_a9_neon_vaba_qqq): Likewise.
12749 (cortex_a9_neon_shift_1): Likewise.
12750 (cortex_a9_neon_shift_2): Likewise.
12751 (cortex_a9_neon_shift_3): Likewise.
12752 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
12753 (cortex_a9_neon_vsra_vrsra): Likewise.
12754 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
12755 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
12756 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
12757 Likewise.
12758 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
12759 (cortex_a9_neon_mla_qqq_8_16): Likewise.
12760 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
12761 Likewise.
12762 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
12763 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
12764 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
12765 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
12766 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
12767 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
12768 (cortex_a9_neon_fp_vsum): Likewise.
12769 (cortex_a9_neon_fp_vmul_ddd): Likewise.
12770 (cortex_a9_neon_fp_vmul_qqd): Likewise.
12771 (cortex_a9_neon_fp_vmla_ddd): Likewise.
12772 (cortex_a9_neon_fp_vmla_qqq): Likewise.
12773 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
12774 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
12775 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
12776 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
12777 (cortex_a9_neon_bp_simple): Likewise.
12778 (cortex_a9_neon_bp_2cycle): Likewise.
12779 (cortex_a9_neon_bp_3cycle): Likewise.
12780 (cortex_a9_neon_ldr): Likewise.
12781 (cortex_a9_neon_str): Likewise.
12782 (cortex_a9_neon_vld1_1_2_regs): Likewise.
12783 (cortex_a9_neon_vld1_3_4_regs): Likewise.
12784 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
12785 (cortex_a9_neon_vld2_4_regs): Likewise.
12786 (cortex_a9_neon_vld3_vld4): Likewise.
12787 (cortex_a9_neon_vld1_vld2_lane): Likewise.
12788 (cortex_a9_neon_vld3_vld4_lane): Likewise.
12789 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
12790 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
12791 (cortex_a9_neon_vst1_3_4_regs): Likewise.
12792 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
12793 (cortex_a9_neon_vst1_vst2_lane): Likewise.
12794 (cortex_a9_neon_vst3_vst4_lane): Likewise.
12795 (cortex_a9_neon_mcr): Likewise.
12796 (cortex_a9_neon_mcr_2_mcrr): Likewise.
12797 (cortex_a9_neon_mrc): Likewise.
12798 (cortex_a9_neon_mrrc): Likewise.
12799
12800 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
12801
12802 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
12803
12804 (cortex_a8_neon_vshl_ddd): Remove.
12805 (cortex_a8_neon_vst3_vst4): Likewise.
12806 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
12807
12808 (cortex_a8_neon_bit_ops_q): New.
12809
12810 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
12811 (cortex_a8_neon_int_2): Likewise..
12812 (cortex_a8_neon_int_3): Likewise.
12813 (cortex_a8_neon_int_5): Likewise.
12814 (cortex_a8_neon_vqneg_vqabs): Likewise.
12815 (cortex_a8_neon_int_4): Likewise.
12816 (cortex_a8_neon_vaba): Likewise.
12817 (cortex_a8_neon_vaba_qqq): Likewise.
12818 (cortex_a8_neon_shift_1): Likewise.
12819 (cortex_a8_neon_shift_2): Likewise.
12820 (cortex_a8_neon_shift_3): Likewise.
12821 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
12822 (cortex_a8_neon_vsra_vrsra): Likewise.
12823 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
12824 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
12825 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
12826 Likewise.
12827 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
12828 (cortex_a8_neon_mla_qqq_8_16): Likewise.
12829 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
12830 Likewise.
12831 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
12832 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
12833 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
12834 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
12835 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
12836 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
12837 (cortex_a8_neon_fp_vsum): Likewise.
12838 (cortex_a8_neon_fp_vmul_ddd): Likewise.
12839 (cortex_a8_neon_fp_vmul_qqd): Likewise.
12840 (cortex_a8_neon_fp_vmla_ddd): Likewise.
12841 (cortex_a8_neon_fp_vmla_qqq): Likewise.
12842 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
12843 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
12844 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
12845 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
12846 (cortex_a8_neon_bp_simple): Likewise.
12847 (cortex_a8_neon_bp_2cycle): Likewise.
12848 (cortex_a8_neon_bp_3cycle): Likewise.
12849 (cortex_a8_neon_ldr): Likewise.
12850 (cortex_a8_neon_str): Likewise.
12851 (cortex_a8_neon_vld1_1_2_regs): Likewise.
12852 (cortex_a8_neon_vld1_3_4_regs): Likewise.
12853 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
12854 (cortex_a8_neon_vld2_4_regs): Likewise.
12855 (cortex_a8_neon_vld3_vld4): Likewise.
12856 (cortex_a8_neon_vld1_vld2_lane): Likewise.
12857 (cortex_a8_neon_vld3_vld4_lane): Likewise.
12858 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
12859 (cortex_a8_neon_vst1_3_4_regs): Likewise.
12860 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
12861 (cortex_a8_neon_vst1_vst2_lane): Likewise.
12862 (cortex_a8_neon_vst3_vst4_lane): Likewise.
12863 (cortex_a8_neon_mcr): Likewise.
12864 (cortex_a8_neon_mcr_2_mcrr): Likewise.
12865 (cortex_a8_neon_mrc): Likewise.
12866 (cortex_a8_neon_mrrc): Likewise.
12867
12868 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
12869
12870 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
12871 (fp): New.
12872 * config/aarch64/aarch64-simd.md (neon_type): Remove.
12873 (aarch64_simd_dup<mode>): Add "type" attribute.
12874 (aarch64_dup_lane<mode>): Likewise.
12875 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
12876 (*aarch64_simd_mov<mode>): Likewise.
12877 (aarch64_simd_mov_from_<mode>low): Likewise.
12878 (aarch64_simd_mov_from_<mode>high): Likewise.
12879 (orn<mode>3): Likewise.
12880 (bic<mode>3): Likewise.
12881 (add<mode>3): Likewise.
12882 (sub<mode>3): Likewise.
12883 (mul<mode>3): Likewise.
12884 (*aarch64_mul3_elt<mode>): Likewise.
12885 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
12886 (*aarch64_mul3_elt_to_128df): Likewise.
12887 (*aarch64_mul3_elt_to_64v2df): Likewise.
12888 (neg<mode>2): Likewise.
12889 (abs<mode>2): Likewise.
12890 (abd<mode>_3): Likewise.
12891 (aba<mode>_3): Likewise.
12892 (fabd<mode>_3): Likewise.
12893 (*fabd_scalar<mode>3): Likewise.
12894 (and<mode>3): Likewise.
12895 (ior<mode>3): Likewise.
12896 (xor<mode>3): Likewise.
12897 (one_cmpl<mode>2): Likewise.
12898 (aarch64_simd_vec_set<mode>): Likewise.
12899 (aarch64_simd_lshr<mode>): Likewise.
12900 (aarch64_simd_ashr<mode>): Likewise.
12901 (aarch64_simd_imm_shl<mode>): Likewise.
12902 (aarch64_simd_reg_sshl<mode): Likewise.
12903 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
12904 (aarch64_simd_reg_shl<mode>_signed): Likewise.
12905 (aarch64_simd_vec_setv2di): Likewise.
12906 (aarch64_simd_vec_set<mode>): Likewise.
12907 (aarch64_mla<mode>): Likewise.
12908 (*aarch64_mla_elt<mode>): Likewise.
12909 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
12910 (aarch64_mls<mode>): Likewise.
12911 (*aarch64_mls_elt<mode>): Likewise.
12912 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
12913 (<su><maxmin><mode>3): Likewise.
12914 (move_lo_quad_<mode>): Likewise.
12915 (aarch64_simd_move_hi_quad_<mode>): Likewise.
12916 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
12917 (vec_pack_trunc_<mode>): Likewise.
12918 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
12919 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
12920 (*aarch64_<su>mlal_lo<mode>): Likewise.
12921 (*aarch64_<su>mlal_hi<mode>): Likewise.
12922 (*aarch64_<su>mlsl_lo<mode>): Likewise.
12923 (*aarch64_<su>mlsl_hi<mode>): Likewise.
12924 (*aarch64_<su>mlal<mode>): Likewise.
12925 (*aarch64_<su>mlsl<mode>): Likewise.
12926 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
12927 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
12928 (add<mode>3): Likewise.
12929 (sub<mode>3): Likewise.
12930 (mul<mode>3): Likewise.
12931 (div<mode>3): Likewise.
12932 (neg<mode>2): Likewise.
12933 (abs<mode>2): Likewise.
12934 (fma<mode>4): Likewise.
12935 (*aarch64_fma4_elt<mode>): Likewise.
12936 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
12937 (*aarch64_fma4_elt_to_128df): Likewise.
12938 (*aarch64_fma4_elt_to_64v2df): Likewise.
12939 (fnma<mode>4): Likewise.
12940 (*aarch64_fnma4_elt<mode>): Likewise.
12941 (*aarch64_fnma4_elt_<vswap_width_name><mode>
12942 (*aarch64_fnma4_elt_to_128df): Likewise.
12943 (*aarch64_fnma4_elt_to_64v2df): Likewise.
12944 (<frint_pattern><mode>2): Likewise.
12945 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
12946 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
12947 (vec_unpacks_lo_v4sf): Likewise.
12948 (aarch64_float_extend_lo_v2df): Likewise.
12949 (vec_unpacks_hi_v4sf): Likewise.
12950 (aarch64_float_truncate_lo_v2sf): Likewise.
12951 (aarch64_float_truncate_hi_v4sf): Likewise.
12952 (aarch64_vmls<mode>): Likewise.
12953 (<su><maxmin><mode>3): Likewise.
12954 (<maxmin_uns><mode>3): Likewise.
12955 (reduc_<sur>plus_<mode>): Likewise.
12956 (reduc_<sur>plus_v2di): Likewise.
12957 (reduc_<sur>plus_v2si): Likewise.
12958 (reduc_<sur>plus_<mode>): Likewise.
12959 (aarch64_addpv4sf): Likewise.
12960 (clz<mode>2): Likewise.
12961 (reduc_<maxmin_uns>_<mode>): Likewise.
12962 (reduc_<maxmin_uns>_v2di): Likewise.
12963 (reduc_<maxmin_uns>_v2si): Likewise.
12964 (reduc_<maxmin_uns>_<mode>): Likewise.
12965 (reduc_<maxmin_uns>_v4sf): Likewise.
12966 (aarch64_simd_bsl<mode>_internal): Likewise.
12967 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
12968 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
12969 (aarch64_get_lane<mode>): Likewise.
12970 (*aarch64_combinez<mode>): Likewise.
12971 (aarch64_combine<mode>): Likewise.
12972 (aarch64_simd_combine<mode>): Likewise.
12973 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
12974 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
12975 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
12976 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
12977 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
12978 (aarch64_<sur>h<addsub><mode>): Likewise.
12979 (aarch64_<sur><addsub>hn<mode>): Likewise.
12980 (aarch64_<sur><addsub>hn2<mode>): Likewise.
12981 (aarch64_pmul<mode>): Likewise.
12982 (aarch64_<su_optab><optab><mode>): Likewise.
12983 (aarch64_<sur>qadd<mode>): Likewise.
12984 (aarch64_sqmovun<mode>): Likewise.
12985 (aarch64_<sur>qmovn<mode>): Likewise.
12986 (aarch64_s<optab><mode>): Likewise.
12987 (aarch64_sq<r>dmulh<mode>): Likewise.
12988 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
12989 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
12990 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
12991 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
12992 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
12993 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
12994 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
12995 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
12996 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
12997 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
12998 (aarch64_sqdmull<mode>): Likewise.
12999 (aarch64_sqdmull_lane<mode>_internal): Likewise.
13000 (aarch64_sqdmull_n<mode>): Likewise.
13001 (aarch64_sqdmull2<mode>_internal): Likewise.
13002 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
13003 (aarch64_sqdmull2_n<mode>_internal): Likewise.
13004 (aarch64_<sur>shl<mode>): Likewise.
13005 (aarch64_<sur>q<r>shl<mode>
13006 (aarch64_<sur>shll_n<mode>): Likewise.
13007 (aarch64_<sur>shll2_n<mode>): Likewise.
13008 (aarch64_<sur>shr_n<mode>): Likewise.
13009 (aarch64_<sur>sra_n<mode>): Likewise.
13010 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
13011 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
13012 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
13013 (aarch64_cm<optab><mode>): Likewise.
13014 (aarch64_cm<optab>di): Likewise.
13015 (aarch64_cm<optab><mode>): Likewise.
13016 (aarch64_cm<optab>di): Likewise.
13017 (aarch64_cmtst<mode>): Likewise.
13018 (aarch64_cmtstdi): Likewise.
13019 (aarch64_cm<optab><mode>): Likewise.
13020 (*aarch64_fac<optab><mode>): Likewise.
13021 (aarch64_addp<mode>): Likewise.
13022 (aarch64_addpdi): Likewise.
13023 (sqrt<mode>2): Likewise.
13024 (vec_load_lanesoi<mode>): Likewise.
13025 (vec_store_lanesoi<mode>): Likewise.
13026 (vec_load_lanesci<mode>): Likewise.
13027 (vec_store_lanesci<mode>): Likewise.
13028 (vec_load_lanesxi<mode>): Likewise.
13029 (vec_store_lanesxi<mode>): Likewise.
13030 (*aarch64_mov<mode>): Likewise.
13031 (aarch64_ld2<mode>_dreg): Likewise.
13032 (aarch64_ld2<mode>_dreg): Likewise.
13033 (aarch64_ld3<mode>_dreg): Likewise.
13034 (aarch64_ld3<mode>_dreg): Likewise.
13035 (aarch64_ld4<mode>_dreg): Likewise.
13036 (aarch64_ld4<mode>_dreg): Likewise.
13037 (aarch64_tbl1<mode>): Likewise.
13038 (aarch64_tbl2v16qi): Likewise.
13039 (aarch64_combinev16qi): Likewise.
13040 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
13041 (aarch64_st2<mode>_dreg): Likewise.
13042 (aarch64_st2<mode>_dreg): Likewise.
13043 (aarch64_st3<mode>_dreg): Likewise.
13044 (aarch64_st3<mode>_dreg): Likewise.
13045 (aarch64_st4<mode>_dreg): Likewise.
13046 (aarch64_st4<mode>_dreg): Likewise.
13047 (*aarch64_simd_ld1r<mode>): Likewise.
13048 (aarch64_frecpe<mode>): Likewise.
13049 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
13050 (aarch64_frecps<mode>): Likewise.
13051
13052 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13053
13054 * config/arm/iterators.md (V_elem_ch): New.
13055 (q): Likewise.
13056 (VQH_type): Likewise.
13057 * config/arm/arm.md (is_neon_type): New.
13058 (conds): Use is_neon_type.
13059 (anddi3_insn): Update type attribute.
13060 (xordi3_insn): Likewise.
13061 (one_cmpldi2): Likewise.
13062 * config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
13063 * config/arm/neon.md (neon_mov): Update type attribute.
13064 (*movmisalign<mode>_neon_store): Likewise.
13065 (*movmisalign<mode>_neon_load): Likewise.
13066 (vec_set<mode>_internal): Likewise.
13067 (vec_set<mode>_internal): Likewise.
13068 (vec_setv2di_internal): Likewise.
13069 (vec_extract<mode>): Likewise.
13070 (vec_extract<mode>): Likewise.
13071 (vec_extractv2di): Likewise.
13072 (*add<mode>3_neon): Likewise.
13073 (adddi3_neon): Likewise.
13074 (*sub<mode>3_neon): Likewise.
13075 (subdi3_neon): Likewise.
13076 (fma<VCVTF:mode>4): Likewise.
13077 (fma<VCVTF:mode>4_intrinsic): Likewise.
13078 (*fmsub<VCVTF:mode>4): Likewise.
13079 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
13080 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
13081 (ior<mode>3): Likewise.
13082 (and<mode>3): Likewise.
13083 (orn<mode>3_neon): Likewise.
13084 (orndi3_neon): Likewise.
13085 (bic<mode>3_neon): Likewise.
13086 (bicdi3_neon): Likewise.
13087 (xor<mode>3): Likewise.
13088 (one_cmpl<mode>2): Likewise.
13089 (abs<mode>2): Likewise.
13090 (neg<mode>2): Likewise.
13091 (negdi2_neon): Likewise.
13092 (*umin<mode>3_neon): Likewise.
13093 (*umax<mode>3_neon): Likewise.
13094 (*smin<mode>3_neon): Likewise.
13095 (*smax<mode>3_neon): Likewise.
13096 (vashl<mode>3): Likewise.
13097 (vashr<mode>3_imm): Likewise.
13098 (vlshr<mode>3_imm): Likewise.
13099 (ashl<mode>3_signed): Likewise.
13100 (ashl<mode>3_unsigned): Likewise.
13101 (neon_load_count): Likewise.
13102 (ashldi3_neon_noclobber): Likewise.
13103 (ashldi3_neon): Likewise.
13104 (signed_shift_di3_neon): Likewise.
13105 (unsigned_shift_di3_neon): Likewise.
13106 (ashrdi3_neon_imm_noclobber): Likewise.
13107 (lshrdi3_neon_imm_noclobber): Likewise.
13108 (<shift>di3_neon): Likewise.
13109 (widen_ssum<mode>3): Likewise.
13110 (widen_usum<mode>3): Likewise.
13111 (quad_halves_<code>v4si): Likewise.
13112 (quad_halves_<code>v4sf): Likewise.
13113 (quad_halves_<code>v8hi): Likewise.
13114 (quad_halves_<code>v16qi): Likewise.
13115 (reduc_splus_v2di): Likewise.
13116 (neon_vpadd_internal<mode>): Likewise.
13117 (neon_vpsmin<mode>): Likewise.
13118 (neon_vpsmax<mode>): Likewise.
13119 (neon_vpumin<mode>): Likewise.
13120 (neon_vpumax<mode>): Likewise.
13121 (*ss_add<mode>_neon): Likewise.
13122 (*us_add<mode>_neon): Likewise.
13123 (*ss_sub<mode>_neon): Likewise.
13124 (*us_sub<mode>_neon): Likewise.
13125 (neon_vadd<mode>_unspec): Likewise.
13126 (neon_vaddl<mode>): Likewise.
13127 (neon_vaddw<mode>): Likewise.
13128 (neon_vhadd<mode>): Likewise.
13129 (neon_vqadd<mode>): Likewise.
13130 (neon_vaddhn<mode>): Likewise.
13131 (neon_vmul<mode>): Likewise.
13132 (neon_vfms<VCVTF:mode>): Likewise.
13133 (neon_vmlal<mode>): Likewise.
13134 (neon_vmls<mode>): Likewise.
13135 (neon_vmlsl<mode>): Likewise.
13136 (neon_vqdmulh<mode>): Likewise.
13137 (neon_vqdmlal<mode>): Likewise.
13138 (neon_vqdmlsl<mode>): Likewise.
13139 (neon_vmull<mode>): Likewise.
13140 (neon_vqdmull<mode>): Likewise.
13141 (neon_vsub<mode>_unspec): Likewise.
13142 (neon_vsubl<mode>): Likewise.
13143 (neon_vsubw<mode>): Likewise.
13144 (neon_vqsub<mode>): Likewise.
13145 (neon_vhsub<mode>): Likewise.
13146 (neon_vsubhn<mode>): Likewise.
13147 (neon_vceq<mode>): Likewise.
13148 (neon_vcge<mode>): Likewise.
13149 (neon_vcgeu<mode>): Likewise.
13150 (neon_vcgt<mode>): Likewise.
13151 (neon_vcgtu<mode>): Likewise.
13152 (neon_vcle<mode>): Likewise.
13153 (neon_vclt<mode>): Likewise.
13154 (neon_vcage<mode>): Likewise.
13155 (neon_vcagt<mode>): Likewise.
13156 (neon_vtst<mode>): Likewise.
13157 (neon_vabd<mode>): Likewise.
13158 (neon_vabdl<mode>): Likewise.
13159 (neon_vaba<mode>): Likewise.
13160 (neon_vabal<mode>): Likewise.
13161 (neon_vmax<mode>): Likewise.
13162 (neon_vmin<mode>): Likewise.
13163 (neon_vpaddl<mode>): Likewise.
13164 (neon_vpadal<mode>): Likewise.
13165 (neon_vpmax<mode>): Likewise.
13166 (neon_vpmin<mode>): Likewise.
13167 (neon_vrecps<mode>): Likewise.
13168 (neon_vrsqrts<mode>): Likewise.
13169 (neon_vqabs<mode>): Likewise.
13170 (neon_vqneg<mode>): Likewise.
13171 (neon_vcls<mode>): Likewise.
13172 (clz<mode>2): Likewise.
13173 (popcount<mode>2): Likewise.
13174 (neon_vrecpe<mode>): Likewise.
13175 (neon_vrsqrte<mode>): Likewise.
13176 (neon_vget_lane<mode>_sext_internal): Likewise.
13177 (neon_vget_lane<mode>_zext_internal): Likewise.
13178 (neon_vdup_n<mode>): Likewise.
13179 (neon_vdup_n<mode>): Likewise.
13180 (neon_vdup_nv2di): Likewise.
13181 (neon_vdup_lane<mode>_interal): Likewise.
13182 (*neon_vswp<mode>): Likewise.
13183 (neon_vcombine<mode>): Likewise.
13184 (float<mode><V_cvtto>2): Likewise.
13185 (floatuns<mode><V_cvtto>2): Likewise.
13186 (fix_trunc<mode><V_cvtto>2): Likewise.
13187 (fixuns_trunc<mode><V_cvtto>2
13188 (neon_vcvt<mode>): Likewise.
13189 (neon_vcvt<mode>): Likewise.
13190 (neon_vcvtv4sfv4hf): Likewise.
13191 (neon_vcvtv4hfv4sf): Likewise.
13192 (neon_vcvt_n<mode>): Likewise.
13193 (neon_vcvt_n<mode>): Likewise.
13194 (neon_vmovn<mode>): Likewise.
13195 (neon_vqmovn<mode>): Likewise.
13196 (neon_vqmovun<mode>): Likewise.
13197 (neon_vmovl<mode>): Likewise.
13198 (neon_vmul_lane<mode>): Likewise.
13199 (neon_vmul_lane<mode>): Likewise.
13200 (neon_vmull_lane<mode>): Likewise.
13201 (neon_vqdmull_lane<mode>): Likewise.
13202 (neon_vqdmulh_lane<mode>): Likewise.
13203 (neon_vqdmulh_lane<mode>): Likewise.
13204 (neon_vmla_lane<mode>): Likewise.
13205 (neon_vmla_lane<mode>): Likewise.
13206 (neon_vmlal_lane<mode>): Likewise.
13207 (neon_vqdmlal_lane<mode>): Likewise.
13208 (neon_vmls_lane<mode>): Likewise.
13209 (neon_vmls_lane<mode>): Likewise.
13210 (neon_vmlsl_lane<mode>): Likewise.
13211 (neon_vqdmlsl_lane<mode>): Likewise.
13212 (neon_vext<mode>): Likewise.
13213 (neon_vrev64<mode>): Likewise.
13214 (neon_vrev32<mode>): Likewise.
13215 (neon_vrev16<mode>): Likewise.
13216 (neon_vbsl<mode>_internal): Likewise.
13217 (neon_vshl<mode>): Likewise.
13218 (neon_vqshl<mode>): Likewise.
13219 (neon_vshr_n<mode>): Likewise.
13220 (neon_vshrn_n<mode>): Likewise.
13221 (neon_vqshrn_n<mode>): Likewise.
13222 (neon_vqshrun_n<mode>): Likewise.
13223 (neon_vshl_n<mode>): Likewise.
13224 (neon_vqshl_n<mode>): Likewise.
13225 (neon_vqshlu_n<mode>): Likewise.
13226 (neon_vshll_n<mode>): Likewise.
13227 (neon_vsra_n<mode>): Likewise.
13228 (neon_vsri_n<mode>): Likewise.
13229 (neon_vsli_n<mode>): Likewise.
13230 (neon_vtbl1v8qi): Likewise.
13231 (neon_vtbl2v8qi): Likewise.
13232 (neon_vtbl3v8qi): Likewise.
13233 (neon_vtbl4v8qi): Likewise.
13234 (neon_vtbl1v16qi): Likewise.
13235 (neon_vtbl2v16qi): Likewise.
13236 (neon_vcombinev16qi): Likewise.
13237 (neon_vtbx1v8qi): Likewise.
13238 (neon_vtbx2v8qi): Likewise.
13239 (neon_vtbx3v8qi): Likewise.
13240 (neon_vtbx4v8qi): Likewise.
13241 (*neon_vtrn<mode>_insn): Likewise.
13242 (*neon_vzip<mode>_insn): Likewise.
13243 (*neon_vuzp<mode>_insn): Likewise.
13244 (neon_vld1<mode>): Likewise.
13245 (neon_vld1_lane<mode>): Likewise.
13246 (neon_vld1_lane<mode>): Likewise.
13247 (neon_vld1_dup<mode>): Likewise.
13248 (neon_vld1_dup<mode>): Likewise.
13249 (neon_vld1_dupv2di): Likewise.
13250 (neon_vst1<mode>): Likewise.
13251 (neon_vst1_lane<mode>): Likewise.
13252 (neon_vst1_lane<mode>): Likewise.
13253 (neon_vld2<mode>): Likewise.
13254 (neon_vld2<mode>): Likewise.
13255 (neon_vld2_lane<mode>): Likewise.
13256 (neon_vld2_lane<mode>): Likewise.
13257 (neon_vld2_dup<mode>): Likewise.
13258 (neon_vst2<mode>): Likewise.
13259 (neon_vst2<mode>): Likewise.
13260 (neon_vst2_lane<mode>): Likewise.
13261 (neon_vst2_lane<mode>): Likewise.
13262 (neon_vld3<mode>): Likewise.
13263 (neon_vld3qa<mode>): Likewise.
13264 (neon_vld3qb<mode>): Likewise.
13265 (neon_vld3_lane<mode>): Likewise.
13266 (neon_vld3_lane<mode>): Likewise.
13267 (neon_vld3_dup<mode>): Likewise.
13268 (neon_vst3<mode>): Likewise.
13269 (neon_vst3qa<mode>): Likewise.
13270 (neon_vst3qb<mode>): Likewise.
13271 (neon_vst3_lane<mode>): Likewise.
13272 (neon_vst3_lane<mode>): Likewise.
13273 (neon_vld4<mode>): Likewise.
13274 (neon_vld4qa<mode>): Likewise.
13275 (neon_vld4qb<mode>): Likewise.
13276 (neon_vld4_lane<mode>): Likewise.
13277 (neon_vld4_lane<mode>): Likewise.
13278 (neon_vld4_dup<mode>): Likewise.
13279 (neon_vst4<mode>): Likewise.
13280 (neon_vst4qa<mode>): Likewise.
13281 (neon_vst4qb<mode>): Likewise.
13282 (neon_vst4_lane<mode>): Likewise.
13283 (neon_vst4_lane<mode>): Likewise.
13284 (neon_vec_unpack<US>_lo_<mode>): Likewise.
13285 (neon_vec_unpack<US>_hi_<mode>): Likewise.
13286 (neon_vec_<US>mult_lo_<mode>): Likewise.
13287 (neon_vec_<US>mult_hi_<mode>): Likewise.
13288 (neon_vec_<US>shiftl_<mode>): Likewise.
13289 (neon_unpack<US>_<mode>): Likewise.
13290 (neon_vec_<US>mult_<mode>): Likewise.
13291 (vec_pack_trunc_<mode>): Likewise.
13292 (neon_vec_pack_trunc_<mode>): Likewise.
13293 (neon_vabd<mode>_2): Likewise.
13294 (neon_vabd<mode>_3): Likewise.
13295
13296 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13297
13298 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
13299 (load_pair): Update type attribute.
13300 (store_pair): Update type attribute.
13301 * config/aarch64/iterators.md (q): New.
13302
13303 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13304
13305 * config/arm/types.md: Add new types for Neon insns.
13306
13307 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
13308 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13309 Sergey Lega <sergey.s.lega@intel.com>
13310 Anna Tikhonova <anna.tikhonova@intel.com>
13311 Ilya Tocar <ilya.tocar@intel.com>
13312 Andrey Turetskiy <andrey.turetskiy@intel.com>
13313 Ilya Verbin <ilya.verbin@intel.com>
13314 Kirill Yukhin <kirill.yukhin@intel.com>
13315 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13316
13317 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
13318 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
13319 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
13320 (rcp14<mode>): New.
13321 (srcp14<mode>): Ditto.
13322 (rsqrt14<mode>): Ditto.
13323 (rsqrt14<mode>): Ditto.
13324 (avx512f_vmscalef<mode>): Ditto.
13325 (avx512f_scalef<mode>): Ditto.
13326 (avx512f_getexp<mode>): Ditto.
13327 (avx512f_sgetexp<mode>): Ditto.
13328 (avx512f_fixupimm<mode>): Ditto.
13329 (avx512f_sfixupimm<mode>): Ditto.
13330 (avx512f_rndscale<mode>): Ditto.
13331 (*avx512er_exp2<mode>): Ditto.
13332 (*avx512er_rcp28<mode>): Ditto.
13333 (avx512er_rsqrt28<mode>): Ditto.
13334 (avx512f_getmant<mode>): Ditto.
13335 (avx512f_getmant<mode>): Ditto.
13336 (avx512f_rndscale<mode>): Fix formatting.
13337
13338 2013-10-15 Martin Jambor <mjambor@suse.cz>
13339
13340 * ipa-utils.h (ipa_edge_within_scc): Declare.
13341 * ipa-cp.c (edge_within_scc): Moved...
13342 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
13343
13344 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
13345 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13346 Sergey Lega <sergey.s.lega@intel.com>
13347 Anna Tikhonova <anna.tikhonova@intel.com>
13348 Ilya Tocar <ilya.tocar@intel.com>
13349 Andrey Turetskiy <andrey.turetskiy@intel.com>
13350 Ilya Verbin <ilya.verbin@intel.com>
13351 Kirill Yukhin <kirill.yukhin@intel.com>
13352 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13353
13354 * config/i386/predicates.md (const_8_to_15_operand): New.
13355 (const_16_to_31_operand): Ditto.
13356 * config/i386/sse.md (V8FI): New.
13357 (V16FI): Ditto.
13358 (reduc_splus_v8df): Ditto.
13359 (reduc_splus_v16sf): Ditto.
13360 (avx512f_vextract<shuffletype>32x4_1): Ditto.
13361 (vec_extract_hi_<mode>): Ditto.
13362 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
13363 (vec_set_lo_<mode>): Ditto.
13364 (vec_set_hi_<mode>): Ditto.
13365 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
13366 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
13367 (avx512f_pshufd_1): Ditto.
13368 (avx512f_broadcast<mode>): Ditto.
13369 (avx512f_broadcast<mode>): Ditto.
13370 (define_split): Split vec_extract_lo into move.
13371 (ssequartermode): Ditto.
13372 (ssedoublemode): Extened with wider modes.
13373 (vec_extract_lo_<mode>): Ditto.
13374
13375 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
13376 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13377 Sergey Lega <sergey.s.lega@intel.com>
13378 Anna Tikhonova <anna.tikhonova@intel.com>
13379 Ilya Tocar <ilya.tocar@intel.com>
13380 Andrey Turetskiy <andrey.turetskiy@intel.com>
13381 Ilya Verbin <ilya.verbin@intel.com>
13382 Kirill Yukhin <kirill.yukhin@intel.com>
13383 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13384
13385 * config/i386/predicates.md (register_or_constm1_operand): New.
13386 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
13387 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
13388 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
13389 UNSPEC_SCATTER_PREFETCH
13390 (VI48_512): New.
13391 (avx512f_ucmp<mode>3): Ditto.
13392 (avx512f_vternlog<mode>): Ditto.
13393 (avx512f_align<mode>): Ditto.
13394 (<shift_insn><mode>3): Ditto.
13395 (avx512f_<rotate>v<mode>): Ditto.
13396 (avx512f_<rotate><mode>): Ditto.
13397 (avx512f_eq<mode>3): Ditto.
13398 (avx512f_eq<mode>3_1): Ditto.
13399 (avx512f_gt<mode>3): Ditto.
13400 (avx512f_testm<mode>3): Ditto.
13401 (avx512f_testnm<mode>3): Ditto.
13402 (avx512pf_gatherpf<mode>): Ditto.
13403 (*avx512pf_gatherpf<mode>_mask): Ditto.
13404 (*avx512pf_gatherpf<mode>): Ditto.
13405 (avx512pf_scatterpf<mode>): Ditto.
13406 (*avx512pf_scatterpf<mode>_mask): Ditto.
13407 (*avx512pf_scatterpf<mode>): Ditto.
13408 (avx512f_vec_dup_gpr<mode>): Ditto.
13409 (clz<mode>2): Ditto.
13410 (conflict<mode>): Ditto.
13411 (REDUC_SMINMAX_MODE): Extened with wider modes.
13412 (reduc_<code>_<mode>): Ditto.
13413 (vlshr<mode>3): Ditto.
13414 (vashl<mode>3): Ditto.
13415
13416 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
13417 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13418 Sergey Lega <sergey.s.lega@intel.com>
13419 Anna Tikhonova <anna.tikhonova@intel.com>
13420 Ilya Tocar <ilya.tocar@intel.com>
13421 Andrey Turetskiy <andrey.turetskiy@intel.com>
13422 Ilya Verbin <ilya.verbin@intel.com>
13423 Kirill Yukhin <kirill.yukhin@intel.com>
13424 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13425
13426 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
13427 UNSPEC_SCATTER.
13428 (VI48F_512): New.
13429 (avx512fmaskmode): Ditto.
13430 (bcstscalarsuff): Ditto.
13431 (avx512f_blendm<mode>): Ditto.
13432 (cmp_imm_predicate): Ditto.
13433 (avx512f_cmp<mode>3): Ditto.
13434 (avx512f_vec_dup<mode>): Ditto.
13435 (avx512f_vec_dup_mem<mode>): Ditto.
13436 (avx512f_vpermi2var<mode>3): Ditto.
13437 (avx512f_vpermt2var<mode>3): Ditto.
13438 (vec_init<mode>): Ditto.
13439 (avx512f_gathersi<mode>): Ditto.
13440 (*avx512f_gathersi<mode>): Ditto.
13441 (*avx512f_gathersi<mode>_2): Ditto.
13442 (avx512f_gatherdi<mode>): Ditto.
13443 (*avx512f_gatherdi<mode>): Ditto.
13444 (*avx512f_gatherdi<mode>_2): Ditto.
13445 (avx512f_scattersi<mode>): Ditto.
13446 (*avx512f_scattersi<mode>): Ditto.
13447 (avx512f_scatterdi<mode>): Ditto.
13448 (*avx512f_scatterdi<mode>): Ditto.
13449 (sseintprefix): Extened with wider modes.
13450 (VEC_GATHER_IDXSI): Ditto.
13451 (VEC_GATHER_IDXDI): Ditto.
13452 (VEC_GATHER_SRCDI): Ditto.
13453
13454 2013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
13455 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13456
13457 * config/arm/t-aprofile: New file.
13458 * config.gcc: Handle --with-multilib-list option.
13459
13460 2013-10-15 Bernd Schmidt <bernds@codesourcery.com>
13461
13462 * reload1.c (reloads_unique_chain_p): Ensure that r1 is
13463 the input for r2.
13464
13465 2013-10-15 Richard Biener <rguenther@suse.de>
13466
13467 * tree-loop-distribution.c (build_empty_rdg): Inline into
13468 single user.
13469 (rdg_flag_vertex): Inline into single user.
13470 (rdg_flag_vertex_and_dependent): Likewise.
13471 (build_rdg_partition_for_vertex): Remove processed bitmap.
13472 (rdg_build_partitions): Simplify.
13473
13474 2013-10-15 Richard Biener <rguenther@suse.de>
13475
13476 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
13477 Restructure forwarding through conversions and copies to
13478 avoid performing copy-propagation the wrong way. Adjust
13479 recursion invocations.
13480 (forward_propagate_addr_expr): Add argument stating if we
13481 are recursing from a single-use.
13482 (ssa_forward_propagate_and_combine): Adjust.
13483
13484 2013-10-14 David Malcolm <dmalcolm@redhat.com>
13485
13486 * dumpfile.h (gcc::dump_manager): New class, to hold state
13487 relating to dumpfile management.
13488 (get_dump_file_name): Remove in favor of method of dump_manager.
13489 (dump_initialized_p): Likewise.
13490 (dump_start): Likewise.
13491 (dump_finish): Likewise.
13492 (dump_switch_p): Likewise.
13493 (dump_register): Likewise.
13494 (get_dump_file_info): Likewise.
13495 * context.c (gcc::context::context): Construct the dump_manager
13496 instance.
13497 * context.h (gcc::context::get_dumps): New.
13498 (gcc::context::m_dumps): New.
13499 * coverage.c (coverage_init): Port to dump_manager API.
13500 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
13501 (extra_dump_files_in_use): Likewise.
13502 (extra_dump_files_alloced): Likewise.
13503 (gcc::dump_manager::dump_manager): New.
13504 (dump_register): Convert to...
13505 (gcc::dump_manager::dump_register): ...method, replacing
13506 function-static next_dump with m_next_dump field.
13507 (get_dump_file_info): Convert to...
13508 (gcc::dump_manager::get_dump_file_info): ...method.
13509 (get_dump_file_name): Convert to...
13510 (gcc::dump_manager::get_dump_file_name): ...method.
13511 (dump_start): Convert to...
13512 (gcc::dump_manager::dump_start): ...method.
13513 (dump_finish): Convert to...
13514 (gcc::dump_manager::dump_finish): ...method.
13515 (dump_begin): Replace body with...
13516 (gcc::dump_manager::dump_begin): ...new method.
13517 (dump_phase_enabled_p): Convert to...
13518 (gcc::dump_manager::dump_phase_enabled_p): ...method.
13519 (dump_phase_enabled_p): Convert to...
13520 (gcc::dump_manager::dump_phase_enabled_p): ...method.
13521 (dump_initialized_p): Convert to...
13522 (gcc::dump_manager::dump_initialized_p): ...method.
13523 (dump_flag_name): Replace body with...
13524 (gcc::dump_manager::dump_flag_name): ...new method.
13525 (dump_enable_all): Convert to...
13526 (gcc::dump_manager::dump_enable_all): ...new method.
13527 (opt_info_enable_passes): Convert to...
13528 (gcc::dump_manager::opt_info_enable_passes): ...new method.
13529 (dump_switch_p_1): Convert to...
13530 (gcc::dump_manager::dump_switch_p_1): ...new method.
13531 (dump_switch_p): Convert to...
13532 (gcc::dump_manager::dump_switch_p): ...new method.
13533 (opt_info_switch_p): Port to dump_manager API.
13534 (enable_rtl_dump_file): Likewise.
13535 * opts-global.c (handle_common_deferred_options): Port to new
13536 dump_manager API.
13537 * passes.c (pass_manager::finish_optimization_passes): Likewise.
13538 (pass_manager::register_one_dump_file): Likewise.
13539 (pass_manager::register_pass): Likewise.
13540 (pass_init_dump_file): Likewise.
13541 (pass_fini_dump_file): Likewise.
13542 * statistics.c (statistics_early_init): Likewise.
13543
13544 2013-10-14 Richard Biener <rguenther@suse.de>
13545
13546 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
13547 iterative_hash_canonical_type, gimple_canonical_type_hash,
13548 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
13549 gimple_register_canonical_type, print_gimple_types_stats,
13550 free_gimple_type_tables): Move to lto/lto.c
13551 (gt-gimple.h): Do not include.
13552 * gimple.h (gimple_register_canonical_type,
13553 print_gimple_types_stats, free_gimple_type_tables): Remove.
13554 * Makefile.in (GTFILES): Remove gimple.c.
13555
13556 2013-10-14 Travis Snoozy <quandary@remstate.com>
13557
13558 PR target/58716
13559 * config/msp430/msp430.c (msp430_option_override): Correct thinko
13560 scanning for msp430x targets.
13561
13562 2013-10-14 Eric Botcazou <ebotcazou@adacore.com>
13563
13564 PR bootstrap/58509
13565 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
13566 (registers_ok_for_ldd_peep): Move around.
13567 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
13568 * config/sparc/sparc.md (widening peepholes): Use it.
13569
13570 2013-10-14 Richard Biener <rguenther@suse.de>
13571
13572 PR middle-end/58712
13573 PR middle-end/55358
13574 * gimple.c (iterative_hash_canonical_type): Make sure to
13575 record the hash into the correct hashtable slot.
13576
13577 2013-10-13 Eric Botcazou <ebotcazou@adacore.com>
13578
13579 PR rtl-optimization/58662
13580 * combine.c (try_combine): Take into account death nodes on I2 when
13581 splitting a PARALLEL of two independent SETs. Fix dump message.
13582
13583 2013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
13584
13585 PR target/51244
13586 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
13587 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add sh_treg_combine.o to
13588 extra_objs.
13589 * config/sh/t-sh (sh_treg_combine.o): New entry.
13590 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
13591 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
13592 (register_sh_passes): New function. Register sh_treg_combine pass.
13593 (sh_option_override): Invoke it.
13594 (sh_canonicalize_comparison): Handle op0_preserve_value.
13595 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
13596 opportunities. Canonicalize branch condition.
13597 (nott): Allow only if pseudos can be created for non-SH2A.
13598
13599 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
13600
13601 PR target/58690
13602 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
13603 (ix86_expand_movmem): Replace copy_addr_to_reg with
13604 ix86_copy_addr_to_reg.
13605 (ix86_expand_setmem): Likewise.
13606
13607 2013-10-12 Alexander Monakov <amonakov@ispras.ru>
13608
13609 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
13610 provided by ix86_fp_compare_mode instead of CCFPUmode.
13611
13612 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
13613
13614 * config/aarch64/arm_neon.h
13615 (vtbx<1,3>_<psu>8): Fix register constriants.
13616
13617 2013-10-11 Jeff Law <law@redhat.com>
13618
13619 PR tree-optimization/58640
13620 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
13621 threading paths that cross over two loop entry points.
13622
13623 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13624
13625 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
13626 handle vector float as well.
13627 (*vsx_le_perm_load_v4si): Likewise.
13628 (*vsx_le_perm_store_v2di): Likewise.
13629 (*vsx_le_perm_store_v4si): Likewise.
13630
13631 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13632
13633 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
13634 directly to circumvent subtract from splat{31} workaround.
13635 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
13636 prototype.
13637 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
13638 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
13639 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
13640 (altivec_vperm_<mode>): Convert to define_insn_and_split to
13641 separate big and little endian logic.
13642 (*altivec_vperm_<mode>_internal): New define_insn.
13643 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
13644 separate big and little endian logic.
13645 (*altivec_vperm_<mode>_uns_internal): New define_insn.
13646 (vec_permv16qi): Add little endian logic.
13647
13648 2013-10-11 Marc Glisse <marc.glisse@inria.fr>
13649
13650 * doc/extend.texi (returns_nonnull): Remove arguments.
13651
13652 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13653 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13654 Sergey Lega <sergey.s.lega@intel.com>
13655 Anna Tikhonova <anna.tikhonova@intel.com>
13656 Ilya Tocar <ilya.tocar@intel.com>
13657 Andrey Turetskiy <andrey.turetskiy@intel.com>
13658 Ilya Verbin <ilya.verbin@intel.com>
13659 Kirill Yukhin <kirill.yukhin@intel.com>
13660 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13661
13662 * config/i386/sse.md (VI48F_256_512): New.
13663 (avx2_permvar<mode>): Change to ...
13664 (<avx2_avx512f>_permvar<mode>): This.
13665
13666 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13667 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13668 Sergey Lega <sergey.s.lega@intel.com>
13669 Anna Tikhonova <anna.tikhonova@intel.com>
13670 Ilya Tocar <ilya.tocar@intel.com>
13671 Andrey Turetskiy <andrey.turetskiy@intel.com>
13672 Ilya Verbin <ilya.verbin@intel.com>
13673 Kirill Yukhin <kirill.yukhin@intel.com>
13674 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13675
13676 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
13677 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
13678 * config/i386/sse.md (VI4_AVX): New.
13679 (sf2simodelower): Ditto.
13680 (sse2_cvtps2dq): Change to ...
13681 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
13682
13683 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13684 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13685 Sergey Lega <sergey.s.lega@intel.com>
13686 Anna Tikhonova <anna.tikhonova@intel.com>
13687 Ilya Tocar <ilya.tocar@intel.com>
13688 Andrey Turetskiy <andrey.turetskiy@intel.com>
13689 Ilya Verbin <ilya.verbin@intel.com>
13690 Kirill Yukhin <kirill.yukhin@intel.com>
13691 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13692
13693 * config/i386/sse.md (V_512): New.
13694 (VI_512): Ditto.
13695 (vcond<V_512:mode><VF_512:mode>): Ditto.
13696 (vcond<V_512:mode><VI_512:mode>): Ditto.
13697 (vcondu<V_512:mode><VI_512:mode>): Ditto.
13698
13699 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13700 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13701 Sergey Lega <sergey.s.lega@intel.com>
13702 Anna Tikhonova <anna.tikhonova@intel.com>
13703 Ilya Tocar <ilya.tocar@intel.com>
13704 Andrey Turetskiy <andrey.turetskiy@intel.com>
13705 Ilya Verbin <ilya.verbin@intel.com>
13706 Kirill Yukhin <kirill.yukhin@intel.com>
13707 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13708
13709 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
13710 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
13711 (FMAMODE): Ditto.
13712 (fma<mode>4): Removed condition.
13713 (fms<mode>4): Ditto.
13714 (fnma<mode>4): Ditto.
13715 (fnms<mode>4): Ditto.
13716 (fma4i_fmadd_<mode>): Ditto.
13717 (*fma_fmadd_<mode>): Ditto.
13718 (*fma_fmsub_<mode>): Ditto.
13719 (*fma_fnmadd_<mode>): Ditto.
13720 (*fma_fnmsub_<mode>): Ditto.
13721 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
13722 (*fma_fmaddsub_<mode>): Ditto.
13723 (*fma_fmsubadd_<mode>): Ditto.
13724 (*fmai_fmadd_<mode>): Ditto.
13725 (*fmai_fmsub_<mode>): Ditto.
13726 (*fmai_fnmadd_<mode>): Ditto.
13727 (*fmai_fnmsub_<mode>): Ditto.
13728
13729 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13730 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13731 Sergey Lega <sergey.s.lega@intel.com>
13732 Anna Tikhonova <anna.tikhonova@intel.com>
13733 Ilya Tocar <ilya.tocar@intel.com>
13734 Andrey Turetskiy <andrey.turetskiy@intel.com>
13735 Ilya Verbin <ilya.verbin@intel.com>
13736 Kirill Yukhin <kirill.yukhin@intel.com>
13737 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13738
13739 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
13740 (VI124_256): Changed to ...
13741 (VI124_256_48_512): This.
13742 (ssepackmode): Extended with wider modes.
13743 (<code><mode>3): Changed iterator.
13744 (*avx2_<code><mode>3): Ditto.
13745 (vec_pack_trunc_<mode>): Ditto.
13746
13747 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13748 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13749 Sergey Lega <sergey.s.lega@intel.com>
13750 Anna Tikhonova <anna.tikhonova@intel.com>
13751 Ilya Tocar <ilya.tocar@intel.com>
13752 Andrey Turetskiy <andrey.turetskiy@intel.com>
13753 Ilya Verbin <ilya.verbin@intel.com>
13754 Kirill Yukhin <kirill.yukhin@intel.com>
13755 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13756
13757 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
13758 (VI8F_256_512): Ditto.
13759 (abs<mode>2): Changed iterator.
13760 (avx2_perm<mode>): Changed to ...
13761 (<avx2_avx512f>_perm<mode>): This.
13762 (avx2_perm<mode>_1): Changed to ...
13763 (<avx2_avx512f>_perm<mode>_1): This.
13764
13765 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13766 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13767 Sergey Lega <sergey.s.lega@intel.com>
13768 Anna Tikhonova <anna.tikhonova@intel.com>
13769 Ilya Tocar <ilya.tocar@intel.com>
13770 Andrey Turetskiy <andrey.turetskiy@intel.com>
13771 Ilya Verbin <ilya.verbin@intel.com>
13772 Kirill Yukhin <kirill.yukhin@intel.com>
13773 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13774
13775 * config/i386/sse.md (VI48_AVX512F): New.
13776 (VI48_AVX2): Changed to ...
13777 (VI48_AVX2_48_AVX512F): This.
13778 (avx2_ashrv<mode>): Changed to ...
13779 (<avx2_avx512f>_ashrv<mode>): This.
13780 (avx2_<shift_insn>v<mode>): Changed to ...
13781 (<avx2_avx512f>_<shift_insn>v<mode>): This.
13782
13783 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13784 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13785 Sergey Lega <sergey.s.lega@intel.com>
13786 Anna Tikhonova <anna.tikhonova@intel.com>
13787 Ilya Tocar <ilya.tocar@intel.com>
13788 Andrey Turetskiy <andrey.turetskiy@intel.com>
13789 Ilya Verbin <ilya.verbin@intel.com>
13790 Kirill Yukhin <kirill.yukhin@intel.com>
13791 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13792
13793 * config/i386/sse.md (VI4_AVX512F): New.
13794 (VI8_AVX2_AVX512F): Ditto.
13795 (mul<mode>3): Extended with wider modes.
13796 (*<sse4_1_avx2>_mul<mode>3): Ditto.
13797 (mul<mode>3): Ditto.
13798 (vec_widen_<s>mult_odd_<mode>): Ditto.
13799
13800 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13801 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13802 Sergey Lega <sergey.s.lega@intel.com>
13803 Anna Tikhonova <anna.tikhonova@intel.com>
13804 Ilya Tocar <ilya.tocar@intel.com>
13805 Andrey Turetskiy <andrey.turetskiy@intel.com>
13806 Ilya Verbin <ilya.verbin@intel.com>
13807 Kirill Yukhin <kirill.yukhin@intel.com>
13808 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13809
13810 * config/i386/sse.md (VI2_AVX512F): New.
13811 (VI124_AVX512F): Ditto.
13812 (sseunpackmode): Extended with wider modes.
13813 (sseunpackfltmode): Ditto.
13814 (vec_unpacks_float_hi_<mode>): Ditto.
13815 (vec_unpacks_float_lo_<mode>): Ditto.
13816 (vec_unpacku_float_hi_<mode>): Ditto.
13817 (vec_unpacku_float_lo_<mode>): Ditto.
13818 (vec_unpacks_lo_<mode>): Ditto.
13819 (vec_unpacks_hi_<mode>): Ditto.
13820 (vec_unpacku_lo_<mode>): Ditto.
13821 (vec_unpacku_hi_<mode>): Ditto.
13822
13823 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13824 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13825 Sergey Lega <sergey.s.lega@intel.com>
13826 Anna Tikhonova <anna.tikhonova@intel.com>
13827 Ilya Tocar <ilya.tocar@intel.com>
13828 Andrey Turetskiy <andrey.turetskiy@intel.com>
13829 Ilya Verbin <ilya.verbin@intel.com>
13830 Kirill Yukhin <kirill.yukhin@intel.com>
13831 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13832
13833 * config/i386/i386.md (multdiv): New.
13834 (multdiv_mnemonic): Ditto.
13835 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
13836 (<sse>_vm<multdiv_mnemonic><mode>3): This.
13837 (<sse>_vmdiv<mode>3): Removed.
13838
13839 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13840 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13841 Sergey Lega <sergey.s.lega@intel.com>
13842 Anna Tikhonova <anna.tikhonova@intel.com>
13843 Ilya Tocar <ilya.tocar@intel.com>
13844 Andrey Turetskiy <andrey.turetskiy@intel.com>
13845 Ilya Verbin <ilya.verbin@intel.com>
13846 Kirill Yukhin <kirill.yukhin@intel.com>
13847 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13848
13849 * config/i386/sse.md (V): Extended with wider modes.
13850 (VF2): Ditto.
13851 (ssehalfvecmode): Ditto.
13852 (i128): Ditto.
13853 (ssepackfltmode): Ditto.
13854 (avx_vec_concat<mode>): Ditto.
13855 (V_256_512): New iterator.
13856 (VF2_512_256): Ditto.
13857 (si2dfmode): New attribute.
13858 (si2dfmodelower): Ditto.
13859 (sf2dfmode): Ditto.
13860 (concat_tg_mode): Ditto.
13861 (floatv4siv4df2): Changed to ...
13862 (float<si2dfmodelower><mode>2): This.
13863 (avx_cvtps2pd256): Changed to ...
13864 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
13865 (vec_pack_trunc_v4df): Changed to ...
13866 (vec_pack_trunc_<mode>): This.
13867 (avx_vpermil<mode>): Changed to ...
13868 (<sse2_avx_avx512f>_vpermil<mode>): This.
13869 (<fixsuffix>fix_truncv8dfv8si2): New.
13870 (vec_pack_sfix_trunc_v8df): Ditto.
13871 (avx512f_rndscale<mode>): Ditto.
13872 (avx512f_roundpd512): Ditto.
13873 (vec_pack_ufix_trunc_<mode>): Updated iterator.
13874
13875 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13876 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13877 Sergey Lega <sergey.s.lega@intel.com>
13878 Anna Tikhonova <anna.tikhonova@intel.com>
13879 Ilya Tocar <ilya.tocar@intel.com>
13880 Andrey Turetskiy <andrey.turetskiy@intel.com>
13881 Ilya Verbin <ilya.verbin@intel.com>
13882 Kirill Yukhin <kirill.yukhin@intel.com>
13883 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13884
13885 * config/i386/i386.md (any_fix): New iterator.
13886 (fixsuffix): New attribute.
13887 * config/i386/sse.md (VF1): Extened with wider modes.
13888 (VI): Ditto.
13889 (VI_AVX2): Ditto.
13890 (VI8): Ditto.
13891 (sseintvecmodelower): Ditto.
13892 (ssescalarmode): Ditto.
13893 (ssescalarnum): Ditto.
13894 (VF1_128_256): New.
13895 (ssexmmmode): Ditto.
13896 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
13897 (<sse>_rcp<mode>2): Change iterator.
13898 (rsqrt<mode>2): Ditto.
13899 (<sse>_rsqrt<mode>2): Ditto.
13900 (avx2_vec_dup<mode>): Ditto.
13901 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
13902 (round<mode>2_sfix): Ditto.
13903 (avx2_pbroadcast<mode>): Ditto.
13904 (*andnot<mode>3): Handle XI mode.
13905 (*<code><mode>3): Ditto.
13906 (AVXTOSSEMODE): Removed.
13907 (avx_vpermil<mode>): Changed to ...
13908 (<sse2_avx_avx512f>_vpermil<mode>): This.
13909
13910 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13911 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13912 Sergey Lega <sergey.s.lega@intel.com>
13913 Anna Tikhonova <anna.tikhonova@intel.com>
13914 Ilya Tocar <ilya.tocar@intel.com>
13915 Andrey Turetskiy <andrey.turetskiy@intel.com>
13916 Ilya Verbin <ilya.verbin@intel.com>
13917 Kirill Yukhin <kirill.yukhin@intel.com>
13918 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13919
13920 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
13921 (<sse>_comi): Ditto.
13922 (<sse>_ucomi): Ditto.
13923 (sse_cvtss2siq_2): Ditto.
13924 (sse2_cvtsd2si): Ditto.
13925 (sse2_cvtsd2siq): Ditto.
13926 (sse2_cvttsd2si): Ditto.
13927 (sse2_cvttsd2siq): Ditto.
13928 (<shift_insn><mode>3): Ditto.
13929 (sse2_cvtsi2sdq): Update constraint and prefix.
13930 (sse_cvtsi2ss): Update prefix.
13931 (sse_cvtsi2ssq): Ditto.
13932
13933 2013-10-11 Jakub Jelinek <jakub@redhat.com>
13934
13935 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
13936 ignore internal calls.
13937
13938 2013-10-11 Richard Biener <rguenther@suse.de>
13939
13940 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
13941 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if
13942 TREE_OVERFLOW is set.
13943
13944 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
13945
13946 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
13947
13948 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
13949 * gimple.h: Likewise.
13950
13951 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
13952
13953 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
13954 macros.
13955
13956 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
13957
13958 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
13959 * configure: Regenerate.
13960
13961 2013-10-11 Jakub Jelinek <jakub@redhat.com>
13962
13963 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
13964 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
13965 formatting fixes, use pp_colon instead of pp_character (..., ':'),
13966 similarly pp_right_paren.
13967 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
13968 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
13969 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
13970 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
13971 clauses.
13972 (omp_declare_simd_clauses_equal,
13973 omp_remove_redundant_declare_simd_attrs): New functions.
13974 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
13975 (walk_tree_1): Handle new OpenMP 4.0 clauses.
13976 * tree.h (OMP_LOOP_CHECK): Define.
13977 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
13978 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
13979 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
13980 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
13981 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
13982 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
13983 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
13984 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
13985 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
13986 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
13987 OMP_CLAUSE_SIMDLEN_EXPR): Define.
13988 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
13989 (omp_remove_redundant_declare_simd_attrs): New prototype.
13990 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
13991 GIMPLE_OMP_TEAMS): New codes.
13992 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
13993 * omp-low.c (struct omp_context): Add cancel_label and cancellable
13994 fields.
13995 (target_nesting_level): New variable.
13996 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
13997 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
13998 for collapse > 1 static schedule unless ordered.
13999 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
14000 (determine_parallel_type): Adjust get_ws_args_for caller.
14001 (install_var_field): Handle mask & 4 for double indirection.
14002 (scan_sharing_clauses): Ignore shared clause on teams construct.
14003 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
14004 (create_omp_child_function): If inside target or declare target
14005 constructs, set "omp declare target" attribute on the child function.
14006 (find_combined_for): New function.
14007 (scan_omp_parallel): Handle combined loops.
14008 (scan_omp_target, scan_omp_teams): New functions.
14009 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
14010 restrictions and set ctx->cancellable for cancellable constructs.
14011 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
14012 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
14013 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
14014 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
14015 (omp_clause_aligned_alignment): New function.
14016 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
14017 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
14018 on teams constructs. Handle user defined reductions and new
14019 OpenMP 4.0 clauses.
14020 (lower_reduction_clauses): Don't set placeholder to address of ref
14021 if it has already the right type.
14022 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
14023 (expand_parallel_call): Use the new non-_start suffixed builtins,
14024 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
14025 and GOMP_parallel_end after the call.
14026 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
14027 (expand_omp_for_init_counts): Handle combined loops.
14028 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
14029 loops.
14030 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
14031 end of cancellable loops.
14032 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
14033 Likewise. Handle collapse > 1 loops.
14034 (expand_omp_simd): Handle combined loops.
14035 (expand_omp_for): Add inner_stmt argument, adjust callers of
14036 expand_omp_for* functions, use expand_omp_for_static*chunk even
14037 for collapse > 1 unless ordered.
14038 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
14039 of cancellable sections.
14040 (expand_omp_single): Remove need_barrier variable, just rely on
14041 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
14042 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
14043 (expand_omp_atomic_load, expand_omp_atomic_store,
14044 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
14045 (expand_omp_target): New function.
14046 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
14047 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
14048 (build_omp_regions_1): Immediately close region for
14049 GF_OMP_TARGET_KIND_UPDATE.
14050 (maybe_add_implicit_barrier_cancel): New function.
14051 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
14052 cancellation.
14053 (lower_omp_single): Likewise. Add clobber after the barrier.
14054 (lower_omp_taskgroup): New function.
14055 (lower_omp_for): Handle combined loops. Adjust
14056 lower_rec_input_clauses caller. Handle cancellation.
14057 (lower_depend_clauses): New function.
14058 (lower_omp_taskreg): Lower depend clauses. Adjust
14059 lower_rec_input_clauses caller. Add clobber after the call. Handle
14060 cancellation.
14061 (lower_omp_target, lower_omp_teams): New functions.
14062 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
14063 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
14064 and GOMP_cancellation_point calls.
14065 (lower_omp): Fold stmts inside of target region.
14066 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
14067 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
14068 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
14069 (BT_FN_VOID_OMPFN_PTR_UINT,
14070 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
14071 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
14072 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
14073 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
14074 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
14075 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
14076 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
14077 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
14078 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
14079 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
14080 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
14081 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
14082 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
14083 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
14084 BUILT_IN_GOMP_PARALLEL_END.
14085 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
14086 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
14087 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
14088 GF_OMP_FOR_KIND_DISTRIBUTE.
14089 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
14090 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
14091 (dump_gimple_omp_return): Print lhs if it has any.
14092 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
14093 gimple_omp_atomic_seq_cst_p.
14094 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
14095 and GIMPLE_OMP_TEAMS.
14096 * langhooks.c (lhd_omp_mappable_type): New function.
14097 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
14098 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
14099 hook.
14100 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
14101 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
14102 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
14103 (struct gimplify_omp_ctx): Add combined_loop field.
14104 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
14105 on stmts inside of target region.
14106 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
14107 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
14108 ORT_TARGET and ORT_TARGET_DATA.
14109 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
14110 Handle GOVD_MAP.
14111 (omp_notice_threadprivate_variable): Complain about threadprivate
14112 variables in target region.
14113 (omp_notice_variable): Complain about vars with non-mappable type
14114 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
14115 (omp_check_private): Ignore ORT_TARGET* regions.
14116 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
14117 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
14118 (find_combined_omp_for): New function.
14119 (gimplify_omp_for): Handle gimplification of combined loops.
14120 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
14121 OMP_TEAMS.
14122 (gimplify_omp_target_update): New function.
14123 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
14124 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
14125 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
14126 (gimplify_body): If fndecl has "omp declare target" attribute, add
14127 implicit ORT_TARGET context around it.
14128 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
14129 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
14130 * tree-nested.c (convert_nonlocal_reference_stmt,
14131 convert_local_reference_stmt, convert_gimple_call): Handle
14132 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14133 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
14134 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
14135 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
14136 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
14137 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
14138 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
14139 BUILT_IN_GOMP_LOOP_END_CANCEL,
14140 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
14141 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
14142 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
14143 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
14144 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
14145 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
14146 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
14147 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
14148 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
14149 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
14150 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
14151 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
14152 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
14153 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
14154 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
14155 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14156 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
14157 gimple_build_omp_teams): New functions.
14158 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
14159 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
14160 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
14161 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14162 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
14163 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
14164 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
14165 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
14166 GF_OMP_ATOMIC_SEQ_CST): New.
14167 (gimple_build_omp_taskgroup, gimple_build_omp_target,
14168 gimple_build_omp_teams): New prototypes.
14169 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
14170 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14171 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
14172 GIMPLE_OMP_SINGLE as end of range.
14173 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
14174 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
14175 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
14176 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
14177 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
14178 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
14179 gimple_omp_target_kind, gimple_omp_target_set_kind,
14180 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
14181 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
14182 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
14183 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
14184 gimple_omp_teams_set_clauses): New inlines.
14185 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
14186 and GIMPLE_OMP_TASKGROUP.
14187 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
14188 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
14189 enum omp_clause_proc_bind_kind): New.
14190 (union omp_clause_subcode): Add depend_kind, map_kind and
14191 proc_bind_kind fields.
14192 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
14193 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14194 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
14195 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
14196 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
14197
14198 2013-10-10 Teresa Johnson <tejohnson@google.com>
14199
14200 * predict.c (tree_estimate_probability): Add new parameter
14201 for estimate_bb_frequencies.
14202 (estimate_bb_frequencies): Add new parameter to force estimation.
14203 (rebuild_frequencies): When max frequency in function is small,
14204 recompute counts from frequencies.
14205 * predict.h (estimate_bb_frequencies): New parameter.
14206
14207 2013-10-10 David Malcolm <dmalcolm@redhat.com>
14208
14209 * ipa-inline.c (ipa_inline): Fix leak of "order" when
14210 optimizations are disabled.
14211
14212 2013-10-10 David Malcolm <dmalcolm@redhat.com>
14213
14214 * coverage.c (coverage_finish): Fix leak of da_file_name.
14215
14216 2013-10-10 Jan Hubicka <jh@suse.cz>
14217
14218 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
14219 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
14220 Bobcat and generic.
14221
14222 2013-10-10 Jakub Jelinek <jakub@redhat.com>
14223
14224 PR middle-end/58670
14225 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
14226 if any labels are in FALLTHRU_BB, use a special label emitted
14227 immediately after the asm goto insn rather than label_rtx
14228 of the LABEL_DECL.
14229 (expand_asm_stmt): Adjust caller.
14230 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
14231 edge if the last insn in predecessor is a jump with single successor,
14232 but it isn't simplejump_p.
14233
14234 2013-10-10 Richard Biener <rguenther@suse.de>
14235
14236 PR tree-optimization/58656
14237 * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
14238
14239 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
14240
14241 * gimplify.c: Include expr.h and tm_p.h for targets with special
14242 va-arg padding requirements.
14243
14244 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
14245
14246 * tree-flow.h: Move some prototypes to gimple.h.
14247 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
14248 * gimple.h: Relocate some prototypes from tree-flow.h
14249 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
14250 Move to gimplify.c.
14251 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
14252 (build_va_arg_indirect_ref): Relocate and make static.
14253 (std_gimplify_va_arg_expr): Relocate here.
14254 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
14255 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
14256
14257 2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14258
14259 * doc/md.texi: Document the mnemonic attribute.
14260
14261 2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14262
14263 PR target/57377
14264 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
14265 (set_attr_alternative x ...) when searching for user defined
14266 mnemonic attribute.
14267
14268 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
14269
14270 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
14271
14272 2013-10-09 Easwaran Raman <eraman@google.com>
14273
14274 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
14275 * cfgexpand.c (defer_stack_allocation): ...use here
14276 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
14277
14278 2013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
14279
14280 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
14281 (operand_equal_for_value_replacement): New function, extracted from
14282 value_replacement and enhanced to catch more cases.
14283 (value_replacement): Use operand_equal_for_value_replacement.
14284
14285 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
14286
14287 * loop-doloop.c (doloop_modify, doloop_optimize): Use
14288 get_max_loop_iterations.
14289
14290 2013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14291
14292 * config/arm/aarch-common.c (arm_early_load_addr_dep):
14293 Place comment above function.
14294
14295 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
14296
14297 * tree-flow.h: Remove all remaining prototypes, enums and structs that
14298 are not related to tree-cfg.c.
14299 * tree-ssa-address.h: New file. Relocate prototypes.
14300 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
14301 (addr_for_mem_ref): New. Combine call to get_address_description and
14302 return addr_for_mem_ref.
14303 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
14304 * tree-ssa-live.h: Adjust prototypes.
14305 * passes.c: Include tree-ssa-live.h.
14306 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
14307 * graphite.c (graphite_transform_loops): Make static.
14308 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
14309 make_pass_graphite, pass_data_graphite_transforms,
14310 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
14311 * ipa-pure-const.c (warn_function_noreturn): Make static.
14312 (execute_warn_function_noreturn, gate_warn_function_noreturn,
14313 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
14314 Relocate from tree-cfg.c
14315 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
14316 static.
14317 (execute_warn_function_noreturn, gate_warn_function_noreturn,
14318 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
14319 Move to ipa-pure-const.c.
14320 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
14321 Relocate from tree-optimize.c.
14322 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
14323 make_pass_fixup_cfg): Move to tree-cfg.c.
14324 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
14325 Relocate some prototypes.
14326 * tree-data-ref.h (tree_check_data_deps) Add prototype.
14327 * tree-dump.c (dump_function_to_file): Remove prototype.
14328 Add tree-flow.h to the include file.
14329 * tree-dump.h: Remove prototype.
14330 * tree-parloops.h: New File. Add prototypes.
14331 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
14332 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
14333 from tree-ssa-loop.c.
14334 * tree-predcom.c (run_tree_predictive_commoning,
14335 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
14336 Relocate here from tree-ssa-loop.c.
14337 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
14338 ssa_name_values.release ().
14339 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
14340 (ssa_name_values): Relocate from tree-flow.h.
14341 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
14342 * tree-ssa-loop.c (run_tree_predictive_commoning,
14343 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
14344 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
14345 make_pass_graphite, pass_data_graphite_transforms,
14346 make_pass_graphite_transforms, gate_tree_parallelize_loops,
14347 tree_parallelize_loops, pass_data_parallelize_loops,
14348 make_pass_parallelize_loops): Move to other files.
14349 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
14350 moved here.
14351 * tree.h: Remove prototypes from tree-address.c.
14352
14353 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
14354
14355 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
14356 (struct int_tree_map): Move to tree-hasher.h
14357 (SCALE, LABEL, PERCENT): Move to gimple.h
14358 * tree-flow-inline.h: Delete. Move functions to other files.
14359 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
14360 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
14361 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
14362 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
14363 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
14364 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
14365 * tree-hasher.h: Don't include tree-flow.h.
14366 (struct int_tree_map): Relocate from tree-flow.h.
14367 * tree-sra.c (contains_view_convert_expr_p): Relocate from
14368 tree-flow-inline.h and make static.
14369 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
14370 tree-flow-inline.h.
14371 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
14372 tree-flow-inline.h and make static.
14373 * tree.h (is_global_var, may_be_aliased): Relocate from
14374 tree-flow-inline.h.
14375 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
14376 * value-prof.c: No longer include tree-flow-inline.h.
14377 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
14378
14379 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
14380
14381 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
14382 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
14383 (enum move_pos): Move to tree-ssa-loop-im.h
14384 * cfgloop.h: Move some prototypes.
14385 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
14386 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
14387 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
14388 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
14389 (loop_containing_stmt): Relocate from tree-flow-inline.h.
14390 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
14391 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
14392 (enum move_pos): Relocate here.
14393 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
14394 tree-ssa-loop.c.
14395 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
14396 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
14397 make_pass_lim): Relocate here from tree-ssa-loop.c.
14398 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
14399 tree-ssa-loop.c.
14400 (loop_edge_to_cancel, unloop_loops): Make static.
14401 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
14402 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
14403 (tree_complete_unroll, gate_tree_complete_unroll,
14404 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
14405 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
14406 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
14407 * tree-ssa-loop-ivopts.c: Remove local prototypes.
14408 (stmt_invariant_in_loop_p): Remove unused function.
14409 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
14410 * tree-ssa-loop-manip.h: New file. Add prototypes.
14411 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
14412 (gcov_type_to_double_int): Move to cfgloop.h.
14413 (double_int_cmp, bound_index,
14414 estimate_numbers_of_iterations_loop): Make static.
14415 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
14416 (max_loop_iterations): Factor out get_max_loop_iterations.
14417 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
14418 cfgloop.c.
14419 * tree-ssa-loop-niter.h: New file. Add prototypes.
14420 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
14421 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
14422 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
14423 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
14424 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
14425 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
14426 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
14427 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
14428 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
14429 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
14430 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
14431 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
14432 pass_data_complete_unroll, make_pass_complete_unroll,
14433 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
14434 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
14435 tree-ssa-loop-ivcanon.c.
14436 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
14437 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
14438 tree-ssa-loop-prefetch.c.
14439 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
14440 tree-ssa-loop-im.c.
14441 (get_lsm_tmp_name): Relocate and add suffix parameter.
14442 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
14443 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
14444 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
14445 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
14446 (get_estimated_loop_iterations): Factor out accessor from
14447 estimated_loop_iterations in tree-ssa-loop-niter.c.
14448 (get_max_loop_iterations): Factor out accessor from
14449 _max_loop_iterations in tree-ssa-niter.c.
14450 * loop-unroll.c (decide_unroll_constant_iterations,
14451 decide_unroll_runtime_iterations, decide_peel_simple,
14452 decide_unroll_stupid): Use new get_* accessors.
14453
14454 2013-10-09 Marc Glisse <marc.glisse@inria.fr>
14455
14456 PR tree-optimization/20318
14457 * doc/extend.texi (returns_nonnull): New function attribute.
14458 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
14459 attribute.
14460 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
14461 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
14462
14463 2013-10-09 Eric Botcazou <ebotcazou@adacore.com>
14464
14465 PR middle-end/58570
14466 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
14467 false if both components are bitfields.
14468
14469 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
14470
14471 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
14472 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
14473 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
14474 * config/aarch64/aarch64.h
14475 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
14476 * config/aarch64/aarch64-simd-builtins.def
14477 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
14478
14479 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
14480
14481 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
14482
14483 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
14484
14485 * config/aarch64/arm_neon.h (vdiv_f64): Added.
14486
14487 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
14488
14489 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
14490 (vneg_f64): New intrinsic.
14491 (vneg_s8): Asm replaced with C.
14492 (vneg_s16): Likewise.
14493 (vneg_s32): Likewise.
14494 (vneg_s64): New intrinsic.
14495 (vnegq_f32): Asm replaced with C.
14496 (vnegq_f64): Likewise.
14497 (vnegq_s8): Likewise.
14498 (vnegq_s16): Likewise.
14499 (vnegq_s32): Likewise.
14500 (vnegq_s64): Likewise.
14501
14502 2013-10-09 Renlin Li <Renlin.Li@arm.com>
14503
14504 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
14505
14506 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14507
14508 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
14509 packed stack special handling.
14510 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
14511 back to fixed stack slots for FPRs saved due to stdarg.
14512
14513 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14514
14515 * config/s390/s390.c (s390_frame_info): Restructure function.
14516
14517 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14518
14519 * config/s390/s390.c (struct s390_frame_layout): New field
14520 gpr_save_slots.
14521 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
14522 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
14523 regs_ever_clobbered to char*.
14524 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
14525 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
14526 (s390_register_info): Enable FPR save slots. Move/Copy some
14527 functionality into ...
14528 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
14529 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
14530 function.
14531 (s390_frame_info): Do gpr slot allocation here now. stdarg does
14532 not imply a stack frame.
14533 (s390_init_frame_layout): Remove variable clobbered_regs.
14534 (s390_update_register_info): Remove function.
14535 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
14536 cannot be used for register renaming.
14537 (s390_hard_regno_scratch_ok): New function.
14538 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
14539 (s390_initial_elimination_offset): Change offset calculation of
14540 the return address pointer.
14541 (save_gprs): Deal with only r6 being saved from the call-saved regs.
14542 (restore_gprs): Set frame related flag.
14543 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
14544 (s390_emit_prologue): Call s390_register_info instead of
14545 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
14546 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
14547 (s390_optimize_prologue): Call s390_optimize_register_info.
14548 Try to remove also FPR slot save/restore INSNs. Remove frame
14549 related flags from restore INSNs.
14550
14551 2013-10-08 DJ Delorie <dj@redhat.com>
14552
14553 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
14554 (movhi): Likewise.
14555
14556 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
14557 avoid conflict with the MI use of %c.
14558 * config/rl78/rl78-real.md: change %c to %C throughout.
14559 * config/rl78/rl78-virt.md: Likewise.
14560
14561 2013-10-08 Jan Hubicka <jh@suse.cz>
14562
14563 * config/i386/i386.c (ix86_option_override_internal): Switch
14564 to SSE math for -ffast-math when target ISA supports SSE2.
14565
14566 2013-10-08 Andrew MacLeod <amacleod@redhat.com>
14567
14568 * tree-flow.h: Remove some prototypes.
14569 * tree.h: Remove some protypes, add a couple.
14570 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
14571 using_eh_for_cleanups_p): Add interface routines for front ends.
14572 * tree-eh.h: New file. Add protoptyes.
14573 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
14574 (add_stmt_to_eh_lp_fn): Make static.
14575 (lower_try_finally): Use new using_eh_for_cleanups_p.
14576 * emit-rtl.c: Include tree-eh.h.
14577 * gimple.h: Include tree-eh.h.
14578
14579 2013-10-08 Marc Glisse <marc.glisse@inria.fr>
14580
14581 PR tree-optimization/58480
14582 * tree-vrp.c (infer_nonnull_range): New function.
14583 (infer_value_range): Call infer_nonnull_range.
14584
14585 2013-10-08 Dehao Chen <dehao@google.com>
14586
14587 PR tree-optimization/58619
14588 * tree-inline.c (copy_phis_for_bb): Combine location data
14589 only if non-null.
14590
14591 2013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
14592
14593 PR target/58423
14594 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
14595 RTX_FRAME_RELATED_P on INSN.
14596
14597 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14598
14599 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
14600 (altivec_expand_vec_perm_const): Call it.
14601
14602 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14603
14604 * config/rs6000/vector.md (mov<mode>): Emit permuted move
14605 sequences for LE VSX loads and stores at expand time.
14606 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
14607 prototype.
14608 * config/rs6000/rs6000.c (rs6000_const_vec): New.
14609 (rs6000_gen_le_vsx_permute): New.
14610 (rs6000_gen_le_vsx_load): New.
14611 (rs6000_gen_le_vsx_store): New.
14612 (rs6000_gen_le_vsx_move): New.
14613 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
14614 (*vsx_le_perm_load_v4si): New.
14615 (*vsx_le_perm_load_v8hi): New.
14616 (*vsx_le_perm_load_v16qi): New.
14617 (*vsx_le_perm_store_v2di): New.
14618 (*vsx_le_perm_store_v4si): New.
14619 (*vsx_le_perm_store_v8hi): New.
14620 (*vsx_le_perm_store_v16qi): New.
14621 (*vsx_xxpermdi2_le_<mode>): New.
14622 (*vsx_xxpermdi4_le_<mode>): New.
14623 (*vsx_xxpermdi8_le_V8HI): New.
14624 (*vsx_xxpermdi16_le_V16QI): New.
14625 (*vsx_lxvd2x2_le_<mode>): New.
14626 (*vsx_lxvd2x4_le_<mode>): New.
14627 (*vsx_lxvd2x8_le_V8HI): New.
14628 (*vsx_lxvd2x16_le_V16QI): New.
14629 (*vsx_stxvd2x2_le_<mode>): New.
14630 (*vsx_stxvd2x4_le_<mode>): New.
14631 (*vsx_stxvd2x8_le_V8HI): New.
14632 (*vsx_stxvd2x16_le_V16QI): New.
14633
14634 2013-10-07 Renlin Li <Renlin.Li@arm.com>
14635
14636 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
14637
14638 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14639
14640 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
14641 loop to work also for 31bit ABI.
14642 Save the stack pointer for frame_size > 0.
14643
14644 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14645
14646 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
14647 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
14648 constraint letters from expanders.
14649 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
14650 retry count to general_operand.
14651 ("tabort"): Give operand 0 a mode.
14652 ("tabort_1"): Add mode and constraint letter for operand 0.
14653 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
14654
14655 2013-10-04 Jeff Law <law@redhat.com>
14656
14657 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
14658
14659 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
14660 out of ...
14661 (thread_across_edge): Here. Call it.
14662
14663 2013-10-04 Cary Coutant <ccoutant@google.com>
14664
14665 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
14666 discarding a location list expression (or a piece of one).
14667
14668 2013-10-03 Jan Hubicka <jh@suse.cz>
14669
14670 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
14671 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
14672 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
14673
14674 2013-10-03 Jan Hubicka <jh@suse.cz>
14675
14676 * config/i386/i386.c (ix86_option_override_internal): Do not enable
14677 accumulate-outgoing-args when producing unwind info.
14678
14679 2013-10-03 Wei Mi <wmi@google.com>
14680
14681 * lra-constraints.c (insert_move_for_subreg): New function
14682 extracted from simplify_operand_subreg.
14683 (simplify_operand_subreg): Add reload for paradoxical subreg.
14684
14685 2013-10-03 Rong Xu <xur@google.com>
14686
14687 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
14688 the candidate of builtin_expect such that we should fix the
14689 size/time estimation.
14690 (estimate_function_body_sizes): Do the acutally size/time fix-up
14691 for builtin_expect.
14692
14693 2013-10-03 Rong Xu <xur@google.com>
14694
14695 * predict.c (tree_predict_by_opcode): Get the probability
14696 for builtin_expect from param builtin_expect_probability.
14697 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
14698 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
14699 * doc/invoke.texi: Add documentation for builtin-expect-probability.
14700
14701 2013-10-03 Marc Glisse <marc.glisse@inria.fr>
14702
14703 PR c++/19476
14704 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
14705 * calls.c (alloca_call_p): Use get_callee_fndecl.
14706 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
14707 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
14708 Likewise.
14709 (vrp_visit_stmt): Remove duplicated code.
14710
14711 2013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
14712
14713 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
14714 ceildf2, btruncdf2, instead of vsx_* name.
14715
14716 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
14717 iterators to only do V2DF and V4SF here. Move the DF code to
14718 rs6000.md where it is combined with SF mode. Replace <VSv> with
14719 just 'v' since only vector operations are handled with these insns
14720 after moving the DF support to rs6000.md.
14721 (vsx_sub<mode>3): Likewise.
14722 (vsx_mul<mode>3): Likewise.
14723 (vsx_div<mode>3): Likewise.
14724 (vsx_fre<mode>2): Likewise.
14725 (vsx_neg<mode>2): Likewise.
14726 (vsx_abs<mode>2): Likewise.
14727 (vsx_nabs<mode>2): Likewise.
14728 (vsx_smax<mode>3): Likewise.
14729 (vsx_smin<mode>3): Likewise.
14730 (vsx_sqrt<mode>2): Likewise.
14731 (vsx_rsqrte<mode>2): Likewise.
14732 (vsx_fms<mode>4): Likewise.
14733 (vsx_nfma<mode>4): Likewise.
14734 (vsx_copysign<mode>3): Likewise.
14735 (vsx_btrunc<mode>2): Likewise.
14736 (vsx_floor<mode>2): Likewise.
14737 (vsx_ceil<mode>2): Likewise.
14738 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
14739 (vsx_sminsf3): Likewise.
14740 (vsx_fmadf4): Likewise.
14741 (vsx_fmsdf4): Likewise.
14742 (vsx_nfmadf4): Likewise.
14743 (vsx_nfmsdf4): Likewise.
14744 (vsx_cmpdf_internal1): Likewise.
14745
14746 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
14747 simpler to select whether a target has SPE or traditional floating
14748 point support in iterators.
14749 (TARGET_DF_SPE): Likewise.
14750 (TARGET_SF_FPR): Likewise.
14751 (TARGET_DF_FPR): Likewise.
14752 (TARGET_SF_INSN): Macros to say whether floating point support
14753 exists for a given operation for expanders.
14754 (TARGET_DF_INSN): Likewise.
14755
14756 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
14757 combining of SF/DF mode operations, using both traditional and VSX
14758 registers.
14759 (Fvsx): Likewise.
14760 (Ff): Likewise.
14761 (Fv): Likewise.
14762 (Fs): Likewise.
14763 (Ffre): Likewise.
14764 (FFRE): Likewise.
14765 (abs<mode>2): Combine SF/DF modes using traditional floating point
14766 instructions. Add support for using the upper DF registers with
14767 VSX support, and SF registers with power8-vector support. Update
14768 expanders for operations supported by both the SPE and traditional
14769 floating point units.
14770 (abs<mode>2_fpr): Likewise.
14771 (nabs<mode>2): Likewise.
14772 (nabs<mode>2_fpr): Likewise.
14773 (neg<mode>2): Likewise.
14774 (neg<mode>2_fpr): Likewise.
14775 (add<mode>3): Likewise.
14776 (add<mode>3_fpr): Likewise.
14777 (sub<mode>3): Likewise.
14778 (sub<mode>3_fpr): Likewise.
14779 (mul<mode>3): Likewise.
14780 (mul<mode>3_fpr): Likewise.
14781 (div<mode>3): Likewise.
14782 (div<mode>3_fpr): Likewise.
14783 (sqrt<mode>3): Likewise.
14784 (sqrt<mode>3_fpr): Likewise.
14785 (fre<Fs>): Likewise.
14786 (rsqrt<mode>2): Likewise.
14787 (cmp<mode>_fpr): Likewise.
14788 (smax<mode>3): Likewise.
14789 (smin<mode>3): Likewise.
14790 (smax<mode>3_vsx): Likewise.
14791 (smin<mode>3_vsx): Likewise.
14792 (negsf2): Delete SF operations that are merged with DF.
14793 (abssf2): Likewise.
14794 (addsf3): Likewise.
14795 (subsf3): Likewise.
14796 (mulsf3): Likewise.
14797 (divsf3): Likewise.
14798 (fres): Likewise.
14799 (fmasf4_fpr): Likewise.
14800 (fmssf4_fpr): Likewise.
14801 (nfmasf4_fpr): Likewise.
14802 (nfmssf4_fpr): Likewise.
14803 (sqrtsf2): Likewise.
14804 (rsqrtsf_internal1): Likewise.
14805 (smaxsf3): Likewise.
14806 (sminsf3): Likewise.
14807 (cmpsf_internal1): Likewise.
14808 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
14809 (negdf2): Delete DF operations that are merged with SF.
14810 (absdf2): Likewise.
14811 (nabsdf2): Likewise.
14812 (adddf3): Likewise.
14813 (subdf3): Likewise.
14814 (muldf3): Likewise.
14815 (divdf3): Likewise.
14816 (fred): Likewise.
14817 (rsqrtdf_internal1): Likewise.
14818 (fmadf4_fpr): Likewise.
14819 (fmsdf4_fpr): Likewise.
14820 (nfmadf4_fpr): Likewise.
14821 (nfmsdf4_fpr): Likewise.
14822 (sqrtdf2): Likewise.
14823 (smaxdf3): Likewise.
14824 (smindf3): Likewise.
14825 (cmpdf_internal1): Likewise.
14826 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
14827 (btrunc<mode>2): Delete separate expander, and combine with the
14828 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
14829 (btrunc<mode>2_fpr): Likewise.
14830 (ceil<mode>2): Likewise.
14831 (ceil<mode>2_fpr): Likewise.
14832 (floor<mode>2): Likewise.
14833 (floor<mode>2_fpr): Likewise.
14834 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
14835 Add support for using the upper registers with VSX and
14836 power8-vector. Move insns to be closer to the define_expands. On
14837 VSX systems, prefer the traditional form of FMA over the VSX
14838 version, since the traditional form allows the target not to
14839 overlap with the inputs.
14840 (fms<mode>4_fpr): Likewise.
14841 (nfma<mode>4_fpr): Likewise.
14842 (nfms<mode>4_fpr): Likewise.
14843
14844 2013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14845 Richard Earnshaw <richard.earnshaw@arm.com>
14846
14847 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
14848 (struct mult_cost_table): Likewise.
14849 (struct mem_cost_table): Likewise.
14850 (struct fp_cost_table): Likewise.
14851 (struct vector_cost_table): Likewise.
14852 (cpu_cost_table): Likewise.
14853 * config/arm/arm.opt (mold-rts-costs): New option.
14854 (mnew-generic-costs): Likewise.
14855 * config/arm/arm.c (generic_extra_costs): New table.
14856 (cortexa15_extra_costs): Likewise.
14857 (arm_slowmul_tune): Use NULL as new costs.
14858 (arm_fastmul_tune): Likewise.
14859 (arm_strongarm_tune): Likewise.
14860 (arm_xscale_tune): Likewise.
14861 (arm_9e_tune): Likewise.
14862 (arm_v6t2_tune): Likewise.
14863 (arm_cortex_a5_tune): Likewise.
14864 (arm_cortex_a9_tune): Likewise.
14865 (arm_v6m_tune): Likewise.
14866 (arm_fa726te_tune): Likewise.
14867 (arm_cortex_a15_tune): Use cortex15_extra_costs.
14868 (arm_cortex_tune): Use generict_extra_costs.
14869 (shifter_op_p): New function.
14870 (arm_unspec_cost): Likewise.
14871 (LIBCALL_COST): Define.
14872 (arm_new_rtx_costs): New function.
14873 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
14874 table is available. Use old costs otherwise unless mnew-generic-costs
14875 is specified.
14876 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
14877 (cpu_cost_table): Declare.
14878
14879 2013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
14880
14881 PR target/58460
14882 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
14883 (*subs_mul_imm_<mode>)
14884 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
14885 (*sub_<shift>_<mode>)
14886 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
14887 Remove k constraint.
14888
14889 2013-10-03 Ian Bolton <ian.bolton@arm.com>
14890
14891 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
14892 code.
14893 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
14894
14895 2013-10-02 Teresa Johnson <tejohnson@google.com>
14896
14897 * predict.c (probably_never_executed): New function.
14898 (probably_never_executed_bb_p): Invoke probably_never_executed.
14899 (probably_never_executed_edge_p): Ditto.
14900 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
14901 Treat profile insanities conservatively.
14902
14903 2013-10-02 John David Anglin <danglin@gcc.gnu.org>
14904
14905 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
14906
14907 2013-10-02 Vladimir Makarov <vmakarov@redhat.com>
14908
14909 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
14910 use it. Use smaller increase for scratch. Don't increase reject
14911 for early clobber scratch.
14912 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
14913 setting eliminated regs except setting fp from hfp.
14914 (lra_eliminate): Check lra_insn_recog_data on NULL.
14915
14916 2013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
14917
14918 PR target/58587
14919 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
14920 setting -mvsx-timode by default until the underlying problem is fixed.
14921 (RS6000_CPU, power7 defaults): Likewise.
14922
14923 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
14924
14925 * config/x-linux (host-linux.o): Remove header dependencies.
14926 Use $(COMPILE) and $(POSTCOMPILE).
14927 * config/t-linux-android (linux-android.o): Ditto.
14928
14929 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
14930
14931 * Makefile.in (expmed.o-warn): Remove.
14932
14933 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
14934
14935 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
14936 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
14937
14938 2013-10-02 Teresa Johnson <tejohnson@google.com>
14939
14940 * dojump.c (do_jump_1): Divide probability between
14941 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
14942
14943 2013-10-02 Tom Tromey <tromey@redhat.com>
14944
14945 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
14946
14947 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
14948
14949 * tree-flow.h: Remove some prototypes.
14950 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
14951 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
14952 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
14953 mark_virtual_phi_result_for_renaming): Relocate here.
14954 * tree-into-ssa.h: Add prototypes.
14955 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
14956 single_pred_before_succ_order.
14957 (blocks_in_phiopt_order): Rename and move to cfganal.c.
14958 (nonfreeing_call_p) Move to gimple.c.
14959 * cfganal.c (single_pred_before_succ_order): Move and renamed from
14960 tree-ssa-phiopt.c.
14961 * basic-block.h (single_pred_before_succ_order): Add prototype.
14962 * gimple.c (nonfreeing_call_p): Relocate here.
14963 * gimple.h: Add prototype.
14964 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
14965 * tree-ssa-dom.h: New file. Relocate prototypes here.
14966 * tree-ssa.h: Include tree-ssa-dom.h.
14967
14968 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
14969
14970 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
14971 Use $(COMPILE) and $(POSTCOMPILE).
14972
14973 * config/alpha/x-alpha (driver-alpha.o): Ditto.
14974
14975 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
14976
14977 * tree-flow.h: Remove some prototypes.
14978 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
14979 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
14980 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
14981 propagate_tree_value*): Move from here to...
14982 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
14983 propagate_tree_value*): Relocate here.
14984 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
14985 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
14986 * gimple-fold.c: Remove gimple-fold.h from include list.
14987 * tree-vrp.c: Remove gimple-fold.h from include list.
14988 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
14989 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
14990 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
14991 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
14992 * sese.c: Add tree-ssa-propagate.h to include list.
14993
14994 2013-10-02 Richard Biener <rguenther@suse.de>
14995
14996 * tree-loop-distribution.c: Include tree-vectorizer.h for
14997 find_loop_location.
14998 (enum partition_kind): Remove PKIND_REDUCTION.
14999 (struct partition_s): Remove has_writes member, add reduction_p member.
15000 (partition_alloc): Adjust.
15001 (partition_builtin_p): Likewise.
15002 (partition_has_writes): Remove.
15003 (partition_reduction_p): New function.
15004 (partition_merge_into): Likewise.
15005 (generate_code_for_partition): Commonize builtin partition
15006 handling tail.
15007 (rdg_cannot_recompute_vertex_p): Remove.
15008 (already_processed_vertex_p): Likewise.
15009 (rdg_flag_vertex): Do not set has_writes.
15010 (classify_partition): Adjust.
15011 (rdg_build_partitions): Do not set has_writes, treat all
15012 partitions as useful.
15013 (distribute_loop): Record number of library calls generated. Adjust.
15014 (tree_loop_distribution): Report number of loops and library
15015 calls generated as opt-info.
15016
15017 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
15018
15019 * tree-flow.h: Include new .h files. Move prototypes.
15020 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
15021 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
15022 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
15023 * tree-pretty-print.h: Add prototypes from tree-flow.h.
15024 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
15025 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
15026 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
15027 * tree.h (get_ref_base_and_extent): Move prototype out.
15028 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
15029 tree-dfa.h.
15030 * gimple-low.h: New File. Add prototypes from tree-flow.h.
15031 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
15032 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
15033 * tree-scalar-evolution.c: Include tree.h.
15034 * sese.c: Include tree.h.
15035 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
15036 * dwarf2out.c: Include tree-dfa.h.
15037 * tree-chrec.c: Include tree.h.
15038 * tree-data-ref.c: Include tree.h.
15039
15040 2013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
15041
15042 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
15043 Fix whitespace.
15044
15045 2013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15046
15047 * config/t-sol2 (sol2-c.o): Remove header dependencies.
15048 Use $(COMPILE) and $(POSTCOMPILE).
15049 (sol2-cxx.o): Likewise.
15050 (sol2-stubs.o): Likewise.
15051 (sol2.o): Likewise.
15052 * config/x-solaris (host-solaris.o): Likewise.
15053
15054 * config/sparc/t-sparc (sparc.o): Remove.
15055 (sparc-c.o): Remove header dependencies.
15056 Use $(COMPILE) and $(POSTCOMPILE).
15057 * config/sparc/x-sparc: Likewise.
15058
15059 2013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
15060
15061 * config/arc/arc-opts.h: Add 2013 to Copyright years.
15062 * config/arc/arc700.md: Likewise.
15063 * config/arc/arc-modes.def: Likewise.
15064 * config/arc/arc-simd.h: Likewise.
15065 * config/arc/t-arc-uClibc: Likewise.
15066 * config/arc/t-arc-newlib: Likewise.
15067
15068 2013-10-02 Renlin Li <renlin.li@arm.com>
15069
15070 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
15071 plus_constant.
15072 (aarch64_expand_epilogue): Likewise.
15073
15074 2013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15075 Yufeng Zhang <yufeng.zhang@arm.com>
15076
15077 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
15078 declaration.
15079 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
15080 'base_in' represent a conversion and legal_cast_p_1 holds; set
15081 'base_in' with the returned value from get_unwidened.
15082
15083 2013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15084
15085 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
15086 plus_constant is not used.
15087
15088 2013-10-01 Wei Mi <wmi@google.com>
15089
15090 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
15091 * config/i386/i386.md: Add define_peephole2 to
15092 break partial reg stall for cvtss2sd/cvtsd2ss.
15093
15094 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15095
15096 * config/arc/arc.c (pass_arc_ifcvt::clone):
15097 Update for ctxt_ -> m_ctxt change.
15098
15099 2013-10-01 Jeff Law <law@redhat.com>
15100
15101 * tree-ssa-threadupdate.c (struct redirection_data): Delete
15102 outgoing_edge and intermediate_edge fields. Instead store the path.
15103 (redirection_data::hash): Hash on the last edge's destination index.
15104 (redirection_data::equal): Check the entire thread path.
15105 (lookup_redirectio_data): Corresponding changes.
15106 (create_edge_and_update_destination_phis): Likewise.
15107 (thread_single_edge): Likewise.
15108
15109 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15110 Diego Novillo <dnovillo@google.com>
15111
15112 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
15113 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
15114 (vld32wh_insn, vld32wl_insn): Delete commented-out old
15115 versions of these patterns.
15116
15117 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
15118 (__builtin_arc_aligned): Likewise.
15119
15120 * config/arc/arc.md: Expand adc_0 comment stating the intended
15121 purpose and why it isn't ready.
15122 Replace commented out call_value_via_label_mixed with a
15123 plain comment about bl_s.
15124
15125 * config/arc/arc.c (stdio.h): Don't include directly.
15126 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
15127 Remove if (1) condition.
15128 (arc_encode_section_info): Fix comment.
15129
15130 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15131
15132 * config/arc/arc.c (arc_conditional_register_usage):
15133 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
15134 Also set reg_alloc_order for DMA config regs.
15135
15136 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15137 Jeremy Bennett <jeremy.bennett@embecosm.com>
15138
15139 * doc/install.texi (--with-cpu): Mention ARC.
15140 (arc-*-elf32): New paragraph.
15141 (arc-linux-uclibc): Likewise.
15142 * doc/md.texi (Machine Constraints): Add ARC part.
15143 * doc/invoke.texi: (menu): Add ARC Options.
15144 (Machine Dependent Options) <ARC Options>: Add synopsis.
15145 (node ARC Options): Add.
15146 * doc/extend.texi (long_call / short_call attribute): Add ARC.
15147 (ARC Built-in Functions): New section defining
15148 generic ARC built-in functions.
15149 (ARC SIMD Built-in Functions): New section defining SIMD specific
15150 built-in functions.
15151 (Declaring Attributes of Functions): Extended
15152 description of short_call and long_call attributes for ARC and
15153 added index entries.
15154
15155 2013-10-01 Saurabh Verma <saurabh.verma@codito.com>
15156 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
15157 Joern Rennecke <joern.rennecke@embecosm.com>
15158 Muhammad Khurram Riaz <khurram.riaz@arc.com>
15159 Brendan Kehoe <brendan@zen.org>
15160 Michael Eager <eager@eagercon.com>
15161 Simon Cook <simon.cook@embecosm.com>
15162 Jeremy Bennett <jeremy.bennett@embecosm.com>
15163
15164 * config/arc, common/config/arc: New directories.
15165
15166 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15167 Brendan Kehoe <brendan@zen.org>
15168 Simon Cook <simon.cook@embecosm.com>
15169
15170 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
15171
15172 2013-10-01 Andrew MacLeod <amacleod@redhat.com>
15173
15174 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
15175 * tree-ssa-coalesce.h: New. Move prototype to here.
15176 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
15177 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
15178 (gimple_can_coalesce_p): Move to...
15179 * gimple.c (gimple_can_coalesce_p): Here.
15180
15181 2013-10-01 Andrew MacLeod <amacleod@redhat.com>
15182
15183 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
15184 (dump_decl_set): Move to gimple.c.
15185 * gimple.h: Don't include tree-ssa-operands.h.
15186 (dump_decl_set): Add prototype.
15187 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
15188 Move to gimple-ssa.h.
15189 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
15190 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
15191 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
15192 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
15193 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
15194 than PHI_ARG_DEF.
15195 (dump_decl_set): Relocate here.
15196 * gimple-ssa.h: New file.
15197 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
15198 Relocate from gimple.h.
15199 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
15200 * tree-ssa-operands.c (swap_ssa_operands): Rename from
15201 swap_tree_operands and remove non-ssa path.
15202 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
15203 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
15204 swap_ssa_operands.
15205 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
15206 vect_is_simple_reduction_1): Use swap_ssa_operands.
15207 * tree-flow.h: Move various prototypes to tree-phinodes.h.
15208 (enum need_phi_state): Move to tree-into-ssa.c.
15209 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
15210 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
15211 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
15212 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
15213 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
15214 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
15215 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
15216 num_imm_uses): Move to ssa-iterators.h.
15217 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
15218 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
15219 tree-phinodes.h.
15220 (op_iter_done, op_iter_next_def, op_iter_next_tree,
15221 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
15222 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
15223 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
15224 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
15225 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
15226 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
15227 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
15228 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
15229 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
15230 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
15231 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
15232 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
15233 (set_phi_nodes): Move to tree-phinodes.h.
15234 * tree-ssa-operands.h (enum ssa_op_iter_type,
15235 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
15236 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
15237 (dump_decl_set): Remove prototype.
15238 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
15239 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
15240 (set_phi_nodes): Relocate from tree-flow-inline.h.
15241 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
15242 tree-flow-inline.h
15243 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
15244 include list. Temporarily add gimple.h to include list.
15245 * ssa-iterators.h: New file.
15246 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
15247 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
15248 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
15249 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
15250 Relocate from tree-ssa-operands.h.
15251 (delink_imm_use, link_imm_use_to_list, link_imm_use,
15252 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
15253 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
15254 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
15255 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
15256 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
15257 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
15258 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
15259 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
15260 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
15261 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
15262 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
15263 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
15264 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
15265 Relocate from tree-flow-inline.h.
15266 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
15267
15268 2013-10-01 Vidya Praveen <vidyapraveen@arm.com>
15269
15270 * aarch64-simd.md
15271 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
15272 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
15273 Insert '\t' to output template.
15274 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
15275 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
15276 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
15277 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
15278
15279 2013-10-01 Uros Bizjak <ubizjak@gmail.com>
15280
15281 * doc/install.texi (Host/target specific installation notes for GCC):
15282 Put @anchor before @heading.
15283 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
15284 Use @email for email addresses.
15285
15286 2013-10-01 Jeff Law <law@redhat.com>
15287
15288 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
15289 a vec. Only delete the path if we create one without successfully
15290 registering a jump thread.
15291 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
15292 as a pointer.
15293 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
15294 (paths): New vector of jump threading paths.
15295 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
15296 (THREAD_PATH): New accessor macro for the entire thread path.
15297 (lookup_redirection_data): Get intermediate and final outgoing edge
15298 from the thread path.
15299 (create_edge_and_update_destination_phis): Copy the threading path.
15300 (ssa_fix_duplicate_block_edges): Get edges and block types from the
15301 jump threading path.
15302 (ssa_redirect_edges): Get edges and block types from the jump threading
15303 path. Free the path vector.
15304 (thread_block): Get edges from the jump threading path. Look at the
15305 entire path to see if we thread to a loop exit. If we cancel a jump
15306 thread request, then free the path vector.
15307 (thread_single_edge): Get edges and block types from the jump threading
15308 path. Free the path vector.
15309 (thread_through_loop_header): Get edges and block types from the jump
15310 threading path. Free the path vector.
15311 (mark_threaded_blocks): Iterate over the vector of paths and store
15312 the path on the appropriate edge. Get edges and block types from the
15313 jump threading path.
15314 (mark_threaded_blocks): Get edges and block types from the jump
15315 threading path. Free the path vector.
15316 (thread_through_all_blocks): Use the vector of paths rather than
15317 a vector of 3-edge sets.
15318 (register_jump_thread): Accept pointer to a path vector rather
15319 than the path vector itself. Store the path vector for later use.
15320 Simplify.
15321
15322 2013-10-01 Jakub Jelinek <jakub@redhat.com>
15323 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15324
15325 PR target/58574
15326 * config/s390/s390.c (s390_split_branches): Modify check for table
15327 jump insns.
15328 (s390_chunkify_start): Rearrange table jump insn check in order to
15329 deal with compare and branch insns correctly.
15330
15331 2013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
15332
15333 PR target/58578
15334 Revert
15335 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15336 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
15337 define_insn_and_split.
15338 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
15339 (shiftsi3_compare): New pattern.
15340 (rrx): New pattern.
15341 * config/arm/unspecs.md (UNSPEC_RRX): New.
15342
15343 2013-10-01 Alan Modra <amodra@gmail.com>
15344
15345 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
15346 casing inout operands.
15347
15348 2013-10-01 Richard Biener <rguenther@suse.de>
15349
15350 PR tree-optimization/58553
15351 * tree-loop-distribution.c (struct partition_s): Add niter member.
15352 (classify_partition): Populate niter member for the partition
15353 and properly identify whether the relevant store happens before
15354 or after the loop exit.
15355 (generate_memset_builtin): Use niter member from the partition.
15356 (generate_memcpy_builtin): Likewise.
15357
15358 2013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
15359
15360 * vec.h (vec_prefix, vec): Prefix member names with "m_".
15361 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
15362
15363 2013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
15364
15365 * basic-block.h (edge_list): Prefix member names with "m_".
15366 * context.h (context): Likewise.
15367 * domwalk.h (dom_walker): Likewise.
15368 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
15369 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
15370 * hash-table.h (hash_table): Likewise.
15371 * machmode.h (bit_field_mode_iterator): Likewise.
15372 * pass_manager.h (pass_list): Likewise.
15373 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
15374 * tree-pass.h (pass_data): Likewise.
15375 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
15376 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
15377 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
15378 * asan.c (pass_data_asan): Update accordingly.
15379 * cfganal.c (control_dependences::find_control_dependence): Likewise.
15380 (control_dependences::control_dependences): Likewise.
15381 (control_dependences::~control_dependences): Likewise.
15382 (control_dependences::~control_dependences): Likewise.
15383 (control_dependences::get_edges_dependent_on): Likewise.
15384 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
15385 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
15386 * context.c (gcc::context::context): Likewise.
15387 * cprop.c (pass_rtl_cprop::clone): Likewise.
15388 * domwalk.c (dom_walker::walk): Likewise.
15389 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
15390 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
15391 * mode-switching.c (pass_mode_switching::clone): Likewise.
15392 * passes.c (opt_pass::opt_pass): Likewise.
15393 (pass_manager::pass_manager): Likewise.
15394 * predict.c (pass_strip_predict_hints::clone): Likewise.
15395 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
15396 (pass_split_all_insns::clone): Likewise.
15397 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
15398 Likewise.
15399 (bit_field_mode_iterator::next_mode): Likewise.
15400 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
15401 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
15402 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
15403 * tree-complex.c (pass_lower_complex::clone): Likewise.
15404 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
15405 * tree-object-size.c (pass_object_sizes::clone): Likewise.
15406 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
15407 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
15408 (pass_fold_builtins::clone): Likewise.
15409 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
15410 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
15411 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
15412 (pass_cd_dce::clone): Likewise.
15413 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
15414 (pass_phi_only_cprop::clone): Likewise.
15415 * tree-ssa-dse.c (pass_dse::clone): Likewise.
15416 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
15417 * tree-ssa-loop.c (pass_lim::clone): Likewise.
15418 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
15419 * tree-ssa-pre.c (pass_fre::clone): Likewise.
15420 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
15421 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
15422 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
15423 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
15424 * tree-vrp.c (pass_vrp::clone): Likewise.
15425 * tsan.c (pass_tsan::clone): Likewise.
15426
15427 2013-09-30 Jakub Jelinek <jakub@redhat.com>
15428
15429 PR middle-end/58564
15430 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
15431 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
15432
15433 PR middle-end/58564
15434 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
15435 optimization, punt if sign_bit_p looked through any zero extension.
15436
15437 2013-09-30 Teresa Johnson <tejohnson@google.com>
15438
15439 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
15440 Update redirected out edge count in joiner case.
15441 (ssa_redirect_edges): Common the joiner and non-joiner cases
15442 so that joiner case gets profile updates.
15443
15444 2013-09-30 Richard Biener <rguenther@suse.de>
15445
15446 PR tree-optimization/58554
15447 * tree-loop-distribution.c (classify_partition): Require
15448 unconditionally executed stores for memcpy and memset recognition.
15449 (tree_loop_distribution): Calculate dominance info.
15450
15451 2013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
15452
15453 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
15454 (NO_PROFILE_COUNTERS): Likewise.
15455 (PROFILE_HOOK): Likewise.
15456 (FUNCTION_PROFILER): Likewise.
15457 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
15458
15459 2013-09-30 Iain Sandoe <iain@codesourcery.com>
15460
15461 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
15462 calls and defines in TARGET_MACHO conditional.
15463 (load_macho_picbase_di): Likewise.
15464 (reload_macho_picbase): Likewise.
15465 (reload_macho_picbase_si): Likewise.
15466 (reload_macho_picbase_di): Likewise.
15467 (nonlocal_goto_receiver): Likewise.
15468
15469 2013-09-30 Nick Clifton <nickc@redhat.com>
15470
15471 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
15472 that use the MSP430X ISA.
15473 (msp430_option_override): Scan -mmcu command line option for any
15474 MCU name that supports the MSP430X ISA.
15475 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
15476 -mmcu options which enable the MSP430X ISA.
15477
15478 2013-09-30 Richard Biener <rguenther@suse.de>
15479
15480 PR middle-end/58532
15481 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
15482 before looking for setjmp-like calls.
15483
15484 2013-09-29 Iain Sandoe <iain@codesourcery.com>
15485
15486 PR target/10901
15487 * config/darwin-protos.h (machopic_get_function_picbase): New.
15488 * config/darwin.c (machopic_get_function_picbase): New.
15489 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
15490 label for a new func. (load_macho_picbase_di): Likewise.
15491 (reload_macho_picbase): New expand.
15492 (reload_macho_picbase_si): New insn.
15493 (reload_macho_picbase_di): New insn.
15494 (nonlocal_goto_receiver): New define and split.
15495 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
15496 (unspecv enum): Add UNSPECV_NLGR.
15497
15498 2013-09-29 Iain Sandoe <iain@codesourcery.com>
15499
15500 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
15501 that altivec registers are correctly sized on Darwin.
15502
15503 2013-09-29 Iain Sandoe <iain@codesourcery.com>
15504
15505 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
15506 darwin-driver.o): Use COMPILE and POSTCOMPILE.
15507 * config/x-darwin (host-darwin.o): Likewise.
15508 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
15509 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
15510 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
15511
15512 2013-09-29 Uros Bizjak <ubizjak@gmail.com>
15513
15514 * doc/invoke.texi: Fix usage of @tie{} command.
15515
15516 2013-09-29 Eric Botcazou <ebotcazou@adacore.com>
15517
15518 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
15519
15520 2013-09-28 Jan Hubicka <jh@suse.cz>
15521
15522 * config/i386/x86-tune.def: Add documentation for each of the options;
15523 add whitespace.
15524
15525 2013-09-28 Jan Hubicka <jh@suse.cz>
15526
15527 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
15528 generic.
15529 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
15530 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
15531 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
15532 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
15533 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
15534
15535 2013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
15536
15537 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
15538 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
15539 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
15540 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
15541 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
15542 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
15543 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
15544 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
15545 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
15546 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
15547 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
15548 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
15549 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
15550 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
15551 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
15552 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
15553 gimple.h, godump.c, graphite-clast-to-gimple.c,
15554 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
15555 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
15556 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
15557 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
15558 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
15559 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
15560 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
15561 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
15562 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
15563 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
15564 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
15565 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
15566 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
15567 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
15568 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
15569 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
15570 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
15571 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
15572 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
15573 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
15574 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
15575 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
15576 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
15577 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
15578 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
15579 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
15580 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
15581 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
15582 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
15583 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
15584 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
15585 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
15586 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
15587 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
15588 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
15589 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
15590 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
15591 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
15592 whitespace before "(".
15593
15594 2013-09-28 Sandra Loosemore <sandra@codesourcery.com>
15595
15596 * expr.h (extract_bit_field): Remove packedp parameter.
15597 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
15598 from forward declaration.
15599 (store_split_bit_field): Remove packedp arg from calls to
15600 extract_fixed_bit_field.
15601 (extract_bit_field_1): Remove packedp parameter and packedp
15602 argument from recursive calls and calls to extract_fixed_bit_field.
15603 (extract_bit_field): Remove packedp parameter and corresponding
15604 arg to extract_bit_field_1.
15605 (extract_fixed_bit_field): Remove packedp parameter. Remove code
15606 to issue warnings.
15607 (extract_split_bit_field): Remove packedp arg from call to
15608 extract_fixed_bit_field.
15609 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
15610 (copy_blkmode_from_reg): Likewise.
15611 (copy_blkmode_to_reg): Likewise.
15612 (read_complex_part): Likewise.
15613 (store_field): Likewise.
15614 (expand_expr_real_1): Likewise.
15615 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
15616 to extract_bit_field.
15617 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
15618 call to extract_bit_field.
15619 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
15620 call to extract_bit_field.
15621 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
15622 and special packedp behavior from -fstrict-volatile-bitfields
15623 documentation.
15624
15625 2013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15626
15627 * lra-eliminations.c (init_elim_table): Guard value_p.
15628
15629 2013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
15630
15631 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
15632 DFmode, DImode, and SFmode in the upper VSX registers based on the
15633 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
15634 if -mpower8-vector. Combine -mvsx-timode handling with the rest
15635 of the VSX register handling.
15636
15637 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
15638 (f32_sv): Likewise.
15639 (zero_extendsidi2_lfiwzx): Add support for loading into the
15640 Altivec registers with -mpower8-vector. Use wu/wv constraints to
15641 only do VSX memory options on Altivec registers.
15642 (extendsidi2_lfiwax): Likewise.
15643 (extendsfdf2_fpr): Likewise.
15644 (mov<mode>_hardfloat, SF/SD modes): Likewise.
15645 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
15646 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
15647 (movdi_internal64): Likewise.
15648
15649 2013-09-27 Xinliang David Li <davidxl@google.com>
15650
15651 * opts.c (finish_options): Adjust parameters
15652 according to vect cost model.
15653 (common_handle_option): Set dynamic vect cost
15654 model for FDO.
15655 targhooks.c (default_add_stmt_cost): Compute stmt cost
15656 unconditionally.
15657 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
15658 Use helper function.
15659 * tree-vectorizer.h (unlimited_cost_model): New function.
15660 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
15661 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
15662 function.
15663 (vect_enhance_data_refs_alignment): Ditto.
15664 * flag-types.h: New enum.
15665 * common/config/i386/i386-common.c (ix86_option_init_struct):
15666 No need to initialize vect_cost_model flag.
15667 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
15668 unconditionally.
15669
15670 2013-09-27 Diego Novillo <dnovillo@google.com>
15671
15672 * gimple.h (enum ssa_mode): Remove.
15673
15674 2013-09-27 Paulo Matos <pmatos@broadcom.com>
15675
15676 * cfgloop.h (number_of_loops): Fix typo in check for null.
15677
15678 2013-09-27 Jakub Jelinek <jakub@redhat.com>
15679
15680 PR middle-end/58551
15681 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
15682 are children of outermost saved_cfun's loop, and set it up to
15683 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
15684 if loop != loop0 and SESE region contains bbs that belong to loop0.
15685
15686 2013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
15687
15688 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
15689 (binary_scale_code_p, get_base_term, get_index_term): New functions.
15690 (set_address_segment, set_address_base, set_address_index)
15691 (set_address_disp): Accept the argument unconditionally.
15692 (baseness): Remove must_be_base_p and must_be_index_p checks.
15693 (decompose_normal_address): Classify as much as possible in the
15694 main loop.
15695
15696 2013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
15697
15698 * cse.c (count_reg_usage): Handle INT_LIST.
15699 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
15700 * reginfo.c (reg_scan_mark_refs): Likewise.
15701 * reload1.c (eliminate_regs_1): Likewise.
15702
15703 2013-09-27 Iain Sandoe <iain@codesourcery.com>
15704
15705 PR middle-end/58547
15706 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
15707 signed.
15708
15709 2013-09-27 Richard Biener <rguenther@suse.de>
15710
15711 PR tree-optimization/58459
15712 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
15713 restriction not propagating into loops.
15714
15715 2013-09-26 Florian Weimer <fw@deneb.enyo.de>
15716
15717 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
15718 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
15719 * doc/tree-ssa.texi (Walking use-def chains): Delete.
15720
15721 2013-09-26 Richard Biener <rguenther@suse.de>
15722
15723 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
15724
15725 2013-09-26 Richard Biener <rguenther@suse.de>
15726
15727 * alias.h (component_uses_parent_alias_set): Rename to ...
15728 (component_uses_parent_alias_set_from): ... this.
15729 * alias.c (component_uses_parent_alias_set): Rename to ...
15730 (component_uses_parent_alias_set_from): ... this and return
15731 the desired parent.
15732 (reference_alias_ptr_type_1): Use the result from
15733 component_uses_parent_alias_set_from instead of stripping
15734 components one at a time.
15735 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
15736
15737 2013-09-26 Andrew MacLeod <amacleod@redhat.com>
15738
15739 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
15740 Move prototypes to...
15741 * tree-ssa-ter.h: New File. Move prototypes here.
15742 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
15743 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
15744 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
15745 from is_replaceable_p.
15746 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
15747 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
15748 (process_replaceable): Use ter_is_replaceable_p.
15749 (find_replaceable_in_bb): Use ter_is_replaceable_p.
15750 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
15751 newly refactored ssa_is_replaceable_p.
15752 * cfgexpand.c: Include tree-outof-ssa.h.
15753 * ssaexpand.h: Delete.
15754
15755 2013-09-26 Andrew MacLeod <amacleod@redhat.com>
15756
15757 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
15758 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
15759 tree-ssa.c
15760 (create_gimple_tmp): Delete.
15761 (get_expr_type, build_assign, build_type_cast): Move to...
15762 * gimple-builder.c: New File.
15763 (get_expr_type): Relocate from gimple.c.
15764 (build_assign, build_type_cast): Change to only create ssanames.
15765 * gimple.h: Move prototypes to...
15766 * gimple-builder.h: New File. Here.
15767 * tree-ssa.h: And here.
15768 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
15769 count_uses_and_derefs): Relocate from gimple.c.
15770 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
15771 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
15772 * tree-ssa-math-opts (execute_cse_reciprocals): Use
15773 gimple_replace_ssa_lhs.
15774 * asan.c: Include gimple-builder.h.
15775 * Makefile.in: Add gimple-builder.o.
15776
15777 2013-09-26 Richard Biener <rguenther@suse.de>
15778
15779 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
15780 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
15781 (loe_visit_block): Use gcc_checking_assert.
15782 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
15783 gimple_assign_ssa_name_copy_p.
15784 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
15785 change.
15786
15787 2013-09-26 David Edelsohn <dje.gcc@gmail.com>
15788
15789 * config/rs6000/t-rs6000 (rs6000.o): Remove.
15790 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
15791
15792 2013-09-26 Richard Biener <rguenther@suse.de>
15793
15794 PR tree-optimization/58539
15795 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
15796 the fact that debug statements are not taking part in loop-closed
15797 SSA construction.
15798
15799 2013-09-26 Nick Clifton <nickc@redhat.com>
15800
15801 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
15802 time warning message.
15803 (msp430_print_operand_raw): Delete unused letter parameter.
15804 (TARGET_PRINT_OPERAND_ADDRESS): Define.
15805 (msp430_print_operand_address): New function.
15806 (msp430_print_operand): Move address printing code from here to
15807 new function.
15808 * config/msp430/msp430.md (movsipsi2): Add comment in generated
15809 assembler.
15810 (zero_extendpsisi2): Likewise.
15811 (extendpsisi2): New pattern.
15812 (andneghi3): New pattern.
15813
15814 2013-09-26 Yvan Roux <yvan.roux@linaro.org>
15815
15816 * config/aarch64/aarch64.opt (mlra): New option.
15817 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
15818 (TARGET_LRA_P): Define.
15819
15820 2013-09-26 Eric Botcazou <ebotcazou@adacore.com>
15821
15822 * expr.c (expand_assignment): Remove obsolete comment.
15823
15824 2013-09-25 Jeff Law <law@redhat.com>
15825
15826 * tree-flow.h (thread_through_all_blocks): Prototype moved into
15827 tree-ssa-threadupdate.h.
15828 (register_jump_thread): Similarly.
15829 * tree-ssa-threadupdate.h: New header file.
15830 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
15831 * tree-vrp.c: Likewise.
15832 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
15833 (thread_around_empty_blocks): Change type of path vector argument to
15834 an edge,type pair from just an edge. Initialize both elements when
15835 appending to a jump threading path. Tweak references to elements
15836 appropriately.
15837 (thread_across_edge): Similarly. Release memory for the elements
15838 as needed.
15839 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
15840 (dump_jump_thread_path): New function broken out from
15841 register_jump_thread.
15842 (register_jump_thread): Use dump_jump_thread_path. Change type of
15843 path vector entries. Search the path for NULL edges and dump
15844 the path if one is found. Tweak the conversion of path to 3-edge
15845 form to use the block copy type information embedded in the path.
15846
15847 2013-09-25 Yvan Roux <yvan.roux@linaro.org>
15848
15849 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
15850
15851 2013-09-25 Yvan Roux <yvan.roux@linaro.org>
15852 Vladimir Makarov <vmakarov@redhat.com>
15853
15854 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
15855 from the least significant bit.
15856 (strip_address_mutations): Add bitfield operations handling.
15857 (must_be_index_p): Add shifting and rotate operations handling.
15858 (set_address_base): Use must_be_base_p predicate.
15859 (set_address_index): Use must_be_index_p predicate.
15860
15861 2013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15862 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15863 Sergey Lega <sergey.s.lega@intel.com>
15864 Anna Tikhonova <anna.tikhonova@intel.com>
15865 Ilya Tocar <ilya.tocar@intel.com>
15866 Andrey Turetskiy <andrey.turetskiy@intel.com>
15867 Ilya Verbin <ilya.verbin@intel.com>
15868 Kirill Yukhin <kirill.yukhin@intel.com>
15869 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15870
15871 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
15872 Use new names.
15873 (ix86_expand_vector_move_misalign): Support new unaligned load and
15874 stores and use new names.
15875 (CODE_FOR_sse2_storedqu): Rename to ...
15876 (CODE_FOR_sse2_storedquv16qi): ... this.
15877 (CODE_FOR_sse2_loaddqu): Rename to ...
15878 (CODE_FOR_sse2_loaddquv16qi): ... this.
15879 (CODE_FOR_avx_loaddqu256): Rename to ...
15880 (CODE_FOR_avx_loaddquv32qi): ... this.
15881 (CODE_FOR_avx_storedqu256): Rename to ...
15882 (CODE_FOR_avx_storedquv32qi): ... this.
15883 * config/i386/i386.md (fpint_logic): New.
15884 * config/i386/sse.md (VMOVE): Extend for AVX512.
15885 (VF): Ditto.
15886 (VF_128_256): New.
15887 (VF_512): Ditto.
15888 (VI_UNALIGNED_LOADSTORE): Ditto.
15889 (sse2_avx_avx512f): Ditto.
15890 (sse2_avx2): Extend for AVX512.
15891 (sse4_1_avx2): Ditto.
15892 (avx2_avx512f): New.
15893 (sse): Extend for AVX512.
15894 (sse2): Ditto.
15895 (sse4_1): Ditto.
15896 (avxsizesuffix): Ditto.
15897 (sseintvecmode): Ditto.
15898 (ssePSmode): Ditto.
15899 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
15900 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
15901 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
15902 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
15903 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
15904 (<sse2_avx_avx512f>_storedqu<mode): ... this.
15905 (<sse>_movnt<mode>): Replace constraint "x" with "v".
15906 (STORENT_MODE): Extend for AVX512.
15907 (*absneg<mode>2): Replace constraint "x" with "v".
15908 (*mul<mode>3): Ditto.
15909 (*ieee_smin<mode>3): Ditto.
15910 (*ieee_smax<mode>3): Ditto.
15911 (avx_cmp<mode>3): Replace VF with VF_128_256.
15912 (*<sse>_maskcmp<mode>3_comm): Ditto.
15913 (<sse>_maskcmp<mode>3): Ditto.
15914 (<sse>_andnot<mode>3): Extend for AVX512.
15915 (<code><mode>3, anylogic): Replace VF with VF_128_256.
15916 (<code><mode>3, fpint_logic): New.
15917 (*<code><mode>3): Extend for AVX512.
15918 (avx512flogicsuff): New.
15919 (avx512f_<logic><mode>): Ditto.
15920 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
15921 VF_128_256.
15922 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
15923 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
15924 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
15925 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
15926 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
15927 (xop_vpermil2<mode>3): Ditto.
15928 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
15929 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
15930 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
15931 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
15932
15933 2013-09-25 Tom Tromey <tromey@redhat.com>
15934
15935 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
15936 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
15937 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
15938 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
15939 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
15940 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
15941 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
15942 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
15943 (GRAPHITE_HTAB_H): Remove.
15944
15945 2013-09-25 Tom Tromey <tromey@redhat.com>
15946
15947 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
15948
15949 2013-09-25 Tom Tromey <tromey@redhat.com>
15950
15951 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
15952
15953 2013-09-25 Tom Tromey <tromey@redhat.com>
15954
15955 * config/i386/t-i386 (i386.o): Remove.
15956 (i386-c.o): Use COMPILE and POSTCOMPILE.
15957
15958 2013-09-25 Tom Tromey <tromey@redhat.com>
15959
15960 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
15961
15962 2013-09-25 Tom Tromey <tromey@redhat.com>
15963
15964 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
15965 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
15966 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
15967 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
15968 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
15969 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
15970 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
15971 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
15972 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
15973 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
15974 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
15975 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
15976 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
15977 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
15978 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
15979 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
15980 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
15981 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
15982 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
15983 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
15984 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
15985 (tree-ssa-pre.o, tree-ssa-sccvn.o)
15986 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
15987 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
15988 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
15989 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
15990 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
15991 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
15992 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
15993 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
15994 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
15995 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
15996 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
15997 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
15998 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
15999 (graphite-clast-to-gimple.o, graphite-dependences.o)
16000 (graphite-interchange.o, graphite-poly.o)
16001 (graphite-scop-detection.o, graphite-sese-to-poly.o)
16002 (graphite-optimize-isl.o, tree-vect-loop.o)
16003 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
16004 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
16005 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
16006 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
16007 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
16008 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
16009 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
16010 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
16011 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
16012 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
16013 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
16014 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
16015 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
16016 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
16017 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
16018 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
16019 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
16020 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
16021 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
16022 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
16023 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
16024 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
16025 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
16026 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
16027 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
16028 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
16029 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
16030 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
16031 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
16032 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
16033 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
16034 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
16035 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
16036 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
16037 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
16038 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
16039 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
16040 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
16041 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
16042 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
16043 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
16044 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
16045 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
16046 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
16047 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
16048 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
16049 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
16050 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
16051 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
16052 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
16053 (gcov-dump.o): Remove.
16054 (default-c.o): Use COMPILE and POSTCOMPILE.
16055 (CFLAGS-gcc.o): New variable.
16056 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
16057
16058 2013-09-25 Tom Tromey <tromey@redhat.com>
16059
16060 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
16061 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
16062 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
16063 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
16064 (c-family/c-pragma.o, c-family/c-pretty-print.o)
16065 (c-family/c-semantics.o, c-family/c-ada-spec.o)
16066 (c-family/array-notation-common.o, c-family/stub-objc.o)
16067 (c-family/c-ubsan.o): Remove.
16068
16069 2013-09-25 Tom Tromey <tromey@redhat.com>
16070
16071 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
16072
16073 2013-09-25 Tom Tromey <tromey@redhat.com>
16074
16075 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
16076 to add -DENABLE_SHARED_LIBGCC.
16077 (gcc.o): Don't use subshell.
16078
16079 2013-09-25 Tom Tromey <tromey@redhat.com>
16080
16081 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
16082 * configure.ac: Don't invoke AM_PROG_CC_C_O.
16083 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
16084 * configure, config.in: Rebuild.
16085
16086 2013-09-25 Tom Tromey <tromey@redhat.com>
16087
16088 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
16089 (COMPILE, POSTCOMPILE): New variables.
16090 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
16091 (DEPFILES): New variable.
16092 Include ".Po" files.
16093 * configure.ac: Add checks for dependency checking.
16094 * configure, aclocal.m4: Regenerate.
16095
16096 2013-09-25 Tom Tromey <tromey@redhat.com>
16097
16098 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
16099 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
16100
16101 2013-09-25 Tom Tromey <tromey@redhat.com>
16102
16103 * Makefile.in (generated_files): Add options.h,
16104 target-hooks-def.h, insn-opinit.h,
16105 common/common-target-hooks-def.h, pass-instances.def,
16106 c-family/c-target-hooks-def.h.
16107
16108 2013-09-25 Jeff Law <law@redhat.com>
16109
16110 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
16111 than foo[foo.length () - 1] to access last member in a vec.
16112 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
16113
16114 2013-09-25 Richard Biener <rguenther@suse.de>
16115
16116 PR middle-end/58521
16117 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
16118
16119 2013-09-25 Jan Hubicka <jh@suse.cz>
16120
16121 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
16122 test.
16123
16124 2013-09-25 Marek Polacek <polacek@redhat.com>
16125
16126 PR sanitizer/58420
16127 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
16128 when determining the type name.
16129
16130 2013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
16131
16132 * config/sh/sh.md: Fix formatting.
16133
16134 2013-09-24 Xinliang David Li <davidxl@google.com>
16135
16136 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
16137 max peel iterations parameter.
16138 * param.def: New parameter.
16139 * doc/invoke.texi: Document New parameter.
16140
16141 2013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
16142
16143 * gimple-pretty-print.c: Various whitespace tweaks.
16144 * tree-core.h: Likewise.
16145 * tree-pretty-print.c: Likewise.
16146 * tree-ssa-alias.c: Likewise.
16147 * tree-ssa-copy.c: Likewise.
16148 * tree-ssanames.c: Likewise.
16149 * tree-ssanames.h: Likewise.
16150 * tree-vrp.c: Likewise.
16151
16152 2013-09-24 Alan Modra <amodra@gmail.com>
16153
16154 PR middle-end/57134
16155 PR middle-end/57586
16156 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
16157 for output operands that disallow regs. Don't use EXPAND_WRITE on
16158 inout operands.
16159
16160 2013-09-24 Richard Biener <rguenther@suse.de>
16161
16162 PR middle-end/58513
16163 * tree.c (reference_alias_ptr_type): Move ...
16164 * alias.c (reference_alias_ptr_type): ... here and implement
16165 in terms of the new reference_alias_ptr_type_1.
16166 (ref_all_alias_ptr_type_p): New helper.
16167 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
16168 use ref_all_alias_ptr_type_p.
16169 (get_deref_alias_set): Add flag_strict_aliasing check here.
16170 (reference_alias_ptr_type_1): New function, split out from ...
16171 (get_alias_set): ... here.
16172 (alias_ptr_types_compatible_p): New function.
16173 * alias.h (reference_alias_ptr_type): Declare.
16174 (alias_ptr_types_compatible_p): Likewise.
16175 * tree.h (reference_alias_ptr_type): Remove.
16176 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
16177 to compare MEM_REF alias types.
16178
16179 2013-09-24 Richard Biener <rguenther@suse.de>
16180
16181 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
16182
16183 2013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16184
16185 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
16186 reload helper function arrays into a single array reg_addr.
16187 (reload_fpr_gpr): Likewise.
16188 (reload_gpr_vsx): Likewise.
16189 (reload_vsx_gpr): Likewise.
16190 (struct rs6000_reg_addr): Likewise.
16191 (reg_addr): Likewise.
16192 (rs6000_debug_reg_global): Change rs6000_vector_reload,
16193 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
16194 (rs6000_init_hard_regno_mode_ok): Likewise.
16195 (rs6000_secondary_reload_direct_move): Likewise.
16196 (rs6000_secondary_reload): Likewise.
16197
16198 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
16199 constraints: wu, ww, and wy. Repurpose wv constraint added during
16200 power8 changes. Put wg constraint in alphabetical order.
16201
16202 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
16203 for future work to add ISA 2.07 VSX single precision support.
16204 (-mvsx-scalar-double): Change default from -1 to 1, update
16205 documentation comment.
16206 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
16207 (-mupper-regs-df): New debug switch to control whether DF values
16208 can go in the traditional Altivec registers.
16209 (-mupper-regs-sf): New debug switch to control whether SF values
16210 can go in the traditional Altivec registers.
16211
16212 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
16213 and wy constraints.
16214 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
16215 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
16216 Add new constraints, wu/ww/wy. Repurpose wv constraint.
16217 (rs6000_debug_legitimate_address_p): Print if we are running
16218 before, during, or after reload.
16219 (rs6000_secondary_reload): Add a comment.
16220 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
16221
16222 * config/rs6000/constraints.md (wa constraint): Sort w<x>
16223 constraints. Update documentation string.
16224 (wd constraint): Likewise.
16225 (wf constraint): Likewise.
16226 (wg constraint): Likewise.
16227 (wn constraint): Likewise.
16228 (ws constraint): Likewise.
16229 (wt constraint): Likewise.
16230 (wx constraint): Likewise.
16231 (wz constraint): Likewise.
16232 (wu constraint): New constraint for ISA 2.07 SFmode scalar
16233 instructions.
16234 (ww constraint): Likewise.
16235 (wy constraint): Likewise.
16236 (wv constraint): Repurpose ISA 2.07 constraint that we did not use
16237 in the previous submissions.
16238 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
16239
16240 2013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
16241
16242 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
16243 (REG_BR_PROB): Say that the probability is stored in an int_list.
16244 * reg-notes.def: Update commentary to mention INT_LIST.
16245 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
16246 (INT_LIST): New rtx.
16247 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
16248 * rtlanal.c (int_reg_note_p): New function.
16249 (alloc_reg_note): Assert that the note does not have an int argument.
16250 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
16251 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
16252 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
16253 rather than an INSN_LIST. Handle INT_LIST.
16254 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
16255 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
16256 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
16257 Manipulate them as ints rather than rtxes.
16258 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
16259 * regmove.c (copy_src_to_dest): Likewise.
16260 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
16261
16262 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
16263 into the cases that need it.
16264 * config/arm/arm.c (arm_unwind_emit): Likewise.
16265
16266 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
16267 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
16268 * loop-doloop.c (add_test, doloop_modify): Likewise.
16269 * loop-unswitch.c (compare_and_jump_seq): Likewise.
16270 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
16271 * predict.c (combine_predictions_for_insn): Likewise.
16272 * print-rtl.c (print_rtx): Handle INT_LIST.
16273 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
16274 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
16275 * config/arm/arm.c (emit_unlikely_jump): Likewise.
16276 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
16277 (ix86_split_fp_branch, predict_jump): Likewise.
16278 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
16279 * config/sh/sh.c (expand_cbranchsi4): Likewise.
16280 * config/spu/spu.c (ea_load_store_inline): Likewise.
16281
16282 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
16283 value of a REG_BR_PROB note.
16284 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
16285 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
16286 * emit-rtl.c (try_split): Likewise.
16287 * predict.c (br_prob_note_reliable_p): Likewise.
16288 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
16289 * reorg.c (mostly_true_jump): Likewise.
16290 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
16291 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
16292 * config/i386/i386.c (ix86_print_operand): Likewise.
16293 * config/ia64/ia64.c (ia64_print_operand): Likewise.
16294 * config/mmix/mmix.c (mmix_print_operand): Likewise.
16295 * config/rs6000/rs6000.c (output_cbranch): Likewise.
16296 * config/s390/s390.c (s390_expand_tbegin): Likewise.
16297 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
16298 * config/sparc/sparc.c (output_cbranch): Likewise.
16299 * config/spu/spu.c (get_branch_target): Likewise.
16300 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
16301 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
16302
16303 2013-09-23 Jan Hubicka <jh@suse.cz>
16304
16305 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
16306 for ipa-devirt.
16307 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
16308 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
16309 of external calls
16310 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
16311 (gimple_fold_call): Dump inconsistent devirtualizations; add
16312 sanity check for type based devirtualizations.
16313 * ipa-prop.c: Include ipa-utils.h
16314 (ipa_intraprocedural_devirtualization): Add sanity check.
16315 (try_make_edge_direct_virtual_call): Likewise.
16316
16317 2013-09-23 Eric Botcazou <ebotcazou@adacore.com>
16318
16319 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
16320 assignment statements.
16321
16322 2013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
16323
16324 * gimple-pretty-print.c (dump_ssaname_info): New function.
16325 (dump_gimple_phi): Call it.
16326 (pp_gimple_stmt_1): Likewise.
16327 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
16328 (range_info_def): Declare.
16329 * tree-pretty-print.c (pp_double_int): New function.
16330 (dump_generic_node): Call it.
16331 * tree-pretty-print.h (pp_double_int): Declare.
16332 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
16333 * tree-ssanames.h (range_info_def): New structure.
16334 (value_range_type): Move definition here.
16335 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
16336 Declare.
16337 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
16338 initialization.
16339 (set_range_info): New function.
16340 (get_range_info): Likewise.
16341 (duplicate_ssa_name_range_info): Likewise.
16342 (duplicate_ssa_name_fn): Check pointer type and call
16343 duplicate_ssa_name_range_info.
16344 * tree-ssa-copy.c (fini_copy_prop): Likewise.
16345 * tree-vrp.c (value_range_type): Remove definition, now in
16346 tree-ssanames.h.
16347 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
16348 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
16349 (SSA_NAME_RANGE_INFO): New macro.
16350
16351 2013-09-23 Richard Biener <rguenther@suse.de>
16352
16353 PR tree-optimization/58464
16354 * tree-ssa-pre.c (phi_trans_lookup): Remove.
16355 (phi_trans_add): Change to add conditionally on being not present.
16356 (phi_translate_1): Remove recursion detection here.
16357 (phi_translate): Pre-seed the cache with NULL to catch
16358 recursion here in a more generic way.
16359 (bitmap_find_leader): Adjust comment.
16360 (get_representative_for): Dump value-numbers.
16361 (create_expression_by_pieces): Likewise.
16362 (insert_into_preds_of_block): Likewise.
16363
16364 2013-09-23 Christian Bruel <christian.bruel@st.com>
16365
16366 PR target/58475
16367 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
16368 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
16369
16370 2013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
16371
16372 Revert r202780:
16373 2013-09-20 Renlin Li <renlin.li@arm.com>
16374
16375 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
16376 plus_constant.
16377 (aarch64_expand_epilogue): Likewise.
16378 (aarch64_legitimize_reload_address): Likewise.
16379
16380 2013-09-22 Eric Botcazou <ebotcazou@adacore.com>
16381
16382 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
16383 NULL_TREE before pushing them onto the vector. Likewise for labels.
16384
16385 2013-09-21 Eric Botcazou <ebotcazou@adacore.com>
16386
16387 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
16388 comparison operators when -fno-trapping-math is in effect.
16389 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
16390 comparison operators in TFmode and assert that unsupported operators
16391 cannot reach here.
16392 (ia64_print_operand): Likewise.
16393
16394 2013-09-21 Jan Hubicka <jh@suse.cz>
16395
16396 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
16397 (sse_typeless_stores): Enable for core
16398 (sse_load0_by_pxor): Likewise.
16399 (four_jump_limit): Disable for core.
16400 (pad_returns): Likewise.
16401 (avoid_vector_decode): Likewise.
16402 (fuse_cmp_and_branch): Enable for cores.
16403 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
16404
16405 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
16406
16407 PR middle-end/56791
16408 * config/pa/pa.c (pa_option_override): Disable auto increment and
16409 decrement instructions until reload is completed.
16410
16411 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
16412 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
16413 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
16414
16415 2013-09-20 DJ Delorie <dj@redhat.com>
16416 Nick Clifton <nickc@redhat.com>
16417
16418 * config/rl78/rl78.c: Various whitespace and comment tweaks.
16419 (need_to_save): Save bank 0 on interrupts.
16420 (characterize_address): Strip far address wrappers.
16421 (rl78_as_legitimate_address): Likewise.
16422 (transcode_memory_rtx): Likewise.
16423 (rl78_peep_movhi_p): Disable this peephole after devirt.
16424 (rl78_propogate_register_origins): Forget all origins when a
16425 CLOBBER is seen.
16426 * config/rl78/rl78-virt.md: Various whitespace tweaks.
16427 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
16428 peephole2's.
16429 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
16430 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
16431 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
16432 relocating.
16433 * config/rl78/constraints.md: Various whitespace and paren tweaks.
16434
16435 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
16436
16437 * config/pa/pa.md: In "scc" insn patterns, change output template to
16438 handle const0_rtx in reg_or_0_operand operands.
16439
16440 2013-09-20 Martin Husemann <martin@NetBSD.org>
16441
16442 PR target/56875
16443 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
16444 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
16445
16446 2013-09-20 Richard Biener <rguenther@suse.de>
16447
16448 PR middle-end/58484
16449 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
16450 remembering SSA name version and block index.
16451 (new_scev_info_str): Adjust.
16452 (hash_scev_info): Likewise. Also hash the block index.
16453 (eq_scev_info): Adjust.
16454 (find_var_scev_info): Likewise.
16455 (struct instantiate_cache_entry): Remove.
16456 (struct instantiate_cache_type): Use a htab to map name, block
16457 to chrec.
16458 (instantiate_cache_type::~instantiate_cache_type): Adjust.
16459 (get_instantiated_value_entry): Likewise.
16460 (hash_idx_scev_info, eq_idx_scev_info): New functions.
16461 (instantiate_scev_name): Adjust.
16462
16463 2013-09-20 Jeff Law <law@redhat.com>
16464
16465 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
16466
16467 2013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
16468
16469 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
16470 Call aarch64_simd_expand_args to update op[argc].
16471
16472 2013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
16473
16474 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
16475 plugin argument.
16476
16477 2013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
16478
16479 * gengtype.c (file_rules): Added rule for *.cc files.
16480 (get_output_file_with_visibility): Give fatal message when no
16481 rules found.
16482
16483 2013-09-20 Renlin Li <renlin.li@arm.com>
16484
16485 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
16486 (aarch64_expand_epilogue): Likewise.
16487 (aarch64_legitimize_reload_address): Likewise.
16488
16489 2013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
16490
16491 PR middle-end/57748
16492 * expr.c (expand_assignment): Remove misalignp code path.
16493
16494 2013-09-20 Marek Polacek <polacek@redhat.com>
16495
16496 PR sanitizer/58413
16497 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
16498 TYPE_PRECISION. Add asserts.
16499
16500 2013-09-20 Richard Biener <rguenther@suse.de>
16501
16502 PR tree-optimization/58453
16503 * tree-loop-distribution.c (distribute_loop): Apply the cost
16504 model for -ftree-loop-distribute-patterns, too.
16505
16506 2013-09-20 Richard Biener <rguenther@suse.de>
16507
16508 PR middle-end/58473
16509 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
16510 make type comparison less strict.
16511
16512 2013-09-20 Alan Modra <amodra@gmail.com>
16513
16514 * configure: Regenerate.
16515 * aclocal.m4: Regenerate.
16516
16517 2013-09-20 Marek Polacek <polacek@redhat.com>
16518
16519 PR other/58467
16520 * doc/extend.texi: Document that attribute used is meant to be used
16521 on variables with static storage duration.
16522
16523 2013-09-19 Jakub Jelinek <jakub@redhat.com>
16524
16525 PR tree-optimization/58472
16526 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
16527 simd_lane_access set inv_p = false.
16528 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
16529 the simduid magic VAR_DECL.
16530
16531 2013-09-19 Jan Hubicka <jh@suse.cz>
16532
16533 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
16534
16535 2013-09-17 Jeff Law <law@redhat.com>
16536
16537 * tree-ssa-dom.c (record_temporary_equivalences): New function
16538 split out of dom_opt_dom_walker::after_dom_children.
16539 (dom_opt_dom_walker::thread_across_edge): Move common code
16540 in here from dom_opt_dom_walker::after_dom_children.
16541 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
16542
16543 2013-09-19 Jan Hubicka <jh@suse.cz>
16544
16545 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
16546 (TARGET_GENERIC): Use PROCESOR_GENERIC
16547 (enum processor_type): Unify generic32 and 64.
16548 * i386.md (cpu): Likewise.
16549 * x86-tune.def (use_leave): Enable for generic32.
16550 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
16551 * athlon.md: Change generic64 to generic in all occurences.
16552 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
16553 (ix86_target_macros_internal): Likewise.
16554 * driver-i386.c (host_detect_local_cpu): Likewise.
16555 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
16556 to ..
16557 (generic_memcpy, generic_memset, generic_cost): This one.
16558 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
16559 (m_GENERIC32, m_GENERIC64): Remove.
16560 (m_GENERIC): Turn into one flag.
16561 (processor_target): Unify generic tunnings.
16562 (ix86_option_override_internal): Replace generic32/64 by generic.
16563 (ix86_issue_rate): Likewise.
16564 (ix86_adjust_cost): Likewise.
16565
16566 2013-09-19 Jan Hubicka <jh@suse.cz>
16567
16568 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
16569 of speculative flag.
16570
16571 2013-09-19 Jakub Jelinek <jakub@redhat.com>
16572
16573 * omp-low.c (expand_omp_sections): Always pass len - 1 to
16574 GOMP_sections_start, even if !exit_reachable.
16575
16576 2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
16577
16578 * lra-constraints.c (need_for_all_save_p): Use macro
16579 HARD_REGNO_CALL_PART_CLOBBERED.
16580 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
16581 set up pseudo conflict hard regs.
16582
16583 2013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
16584
16585 PR target/58452
16586 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
16587 operands.
16588
16589 2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
16590
16591 PR rtl-optimization/58438
16592 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
16593 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
16594 from previous subpasses.
16595
16596 2013-09-18 Richard Earnshaw <rearnsha@arm.com>
16597
16598 * arm.c (arm_get_frame_offsets): Validate architecture supports
16599 LDRD/STRD before accepting the tuning preference.
16600 (arm_expand_prologue): Likewise.
16601 (arm_expand_epilogue): Likewise.
16602
16603 2013-09-18 Richard Biener <rguenther@suse.de>
16604
16605 PR tree-optimization/58417
16606 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
16607 have chrecs with symbols defined in the loop as operands.
16608 (chrec_fold_multiply): Likewise.
16609 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
16610 parameters before folding binary operations.
16611 (struct instantiate_cache_entry_hasher): Remove.
16612 (struct instantiate_cache_type): Use a pointer-map.
16613 (instantiate_cache_type::instantiate_cache_type): New function.
16614 (instantiate_cache_type::get): Likewise.
16615 (instantiate_cache_type::set): Likewise.
16616 (instantiate_cache_type::~instantiate_cache_type): Adjust.
16617 (get_instantiated_value_entry): Likewise.
16618 (global_cache): New global.
16619 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
16620 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
16621 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
16622 (instantiate_scev_name): Adjust.
16623 (instantiate_scev): Construct global instead of local cache.
16624 (resolve_mixers): Likewise.
16625
16626 2013-09-18 Daniel Morris <danielm@ecoscentric.com>
16627 Paolo Carlini <paolo.carlini@oracle.com>
16628
16629 PR c++/58458
16630 * doc/implement-cxx.texi: Fix references to the C++ standards.
16631
16632 2013-09-18 Jakub Jelinek <jakub@redhat.com>
16633
16634 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
16635 * tree-vect-data-refs.c (vect_analyze_data_refs): For
16636 simd_lane_access drs, update also DR_ALIGNED_TO.
16637
16638 2013-09-18 Marek Polacek <polacek@redhat.com>
16639
16640 PR sanitizer/58411
16641 * doc/extend.texi: Document no_sanitize_undefined attribute.
16642 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
16643 no_sanitize_undefined attribute.
16644
16645 2013-09-18 Nick Clifton <nickc@redhat.com>
16646
16647 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
16648 (ASM_DECLARE_FUNCTION_NAME): Define.
16649
16650 2013-09-17 Trevor Saunders <tsaunders@mozilla.com>
16651
16652 * compare-elim.c (find_comparison_dom_walker): New class
16653 (find_comparisons_in_bb): Rename to
16654 find_comparison_dom_walker::before_dom_children
16655 (find_comparisons): Adjust
16656 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
16657 adjust.
16658 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
16659 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
16660 (init_walk_dominator_tree): Remove declaration.
16661 (fini_walk_dominator_tree): Remove declaration.
16662 * fwprop.c (single_def_use_dom_walker): New class
16663 (single_def_use_enter_block): Convert to
16664 single_def_use_dom_walker::before_dom_children.
16665 (single_def_use_leave_block): Convert to
16666 single_def_use_dom_walker::after_dom_children.
16667 (build_single_def_use_links): Adjust.
16668 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
16669 class.
16670 (find_candidates_in_block): Convert to
16671 find_candidates_dom_walker::before_dom_children.
16672 (execute_strength_reduction): Adjust.
16673 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
16674 (sese_dom_walker): New class.
16675 (sese_dom_walker::sese_dom_walker): New constructor.
16676 (sese_dom_walker::~sese_dom_walker): New destructor.
16677 (build_sese_conditions_before): Convert to
16678 sese_dom_walker::before_dom_children.
16679 (build_sese_conditions_after): Convert to
16680 sese_dom_walker::after_dom_children.
16681 (build_poly_scop): Adjust
16682 * tree-into-ssa.c (rewrite_dom_walker): New class
16683 (rewrite_enter_block): Convert to
16684 rewrite_dom_walker::before_dom_children.
16685 (rewrite_leave_block): Convert to
16686 rewrite_dom_walker::after_dom_children.
16687 (rewrite_update_dom_walker): New class.
16688 (rewrite_update_enter_block): Convert to
16689 rewrite_update_dom_walker::before_dom_children.
16690 (rewrite_update_leave_block): Convert to
16691 rewrite_update_dom_walker::after_dom_children.
16692 (rewrite_blocks, rewrite_into_ssa): Adjust.
16693 (mark_def_dom_walker): New class.
16694 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
16695 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
16696 (mark_def_sites_blocks): Convert to
16697 mark_def_dom_walker::before_dom_children.
16698 (mark_def_site_blocks): Remove.
16699 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
16700 (tree_ssa_dominator_optimize): Adjust.
16701 (dom_thread_across_edge): Convert to method
16702 dom_opt_dom_walker::thread_across_edge.
16703 (dom_opt_enter_block): Convert to member function
16704 dom_opt_dom_walker::before_dom_children.
16705 (dom_opt_leave_block): Convert to member function
16706 dom_opt_dom_walker::after_dom_children.
16707 * tree-ssa-dse.c (dse_dom_walker): New class.
16708 (dse_enter_block): Convert to member function
16709 dse_dom_walker::before_dom_children.
16710 (tree_ssa_dse): Adjust.
16711 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
16712 (determine_invariantness_stmt): Convert to method
16713 invariantness_dom_walker::before_dom_children.
16714 (determine_invariantness): Remove
16715 (move_computations_dom_walker): New class.
16716 (move_computations_stmt): Convert to method
16717 move_computations_dom_walker::before_dom_children.
16718 (move_computations, tree_ssa_lim): Adjust.
16719 * tree-ssa-phiopt.c (nontrapping_dom_walker): New class.
16720 (nt_init_block): Convert to method
16721 notrappping_dom_walker::before_dom_children.
16722 (nt_fini_block): Convert to method
16723 method nontrapping_dom_walker::after_dom_children.
16724 (get_non_trapping): Adjust.
16725 * tree-ssa-pre.c (eliminate_dom_walker): New class.
16726 (eliminate_bb): Convert to method
16727 eliminate_dom_walker::before_dom_children.
16728 (eliminate_leave_block): Convert to method
16729 eliminate_dom_walker::after_dom_children.
16730 (eliminate): Adjust.
16731 * tree-ssa-strlen.c (strlen_dom_walker): New class.
16732 (strlen_enter_block): Convert to method
16733 strlen_dom_walker::before_dom_children.
16734 (strlen_leave_block): Convert to method
16735 method strlen_dom_walker::after_dom_children.
16736 (tree_ssa_strlen): Adjust.
16737 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
16738 (tree_ssa_uncprop): Adjust.
16739 (uncprop_leave_block): Convert to method
16740 uncprop_dom_walker::after_dom_children.
16741 (uncprop_leave_block): Convert to method
16742 uncprop_dom_walker::before_dom_children.
16743
16744 2013-09-18 Bin Cheng <bin.cheng@arm.com>
16745
16746 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
16747 branch in same basic block. Check both src and dest of the move insn.
16748
16749 2013-09-17 Nick Clifton <nickc@redhat.com>
16750
16751 * config/rl78/rl78-real.md (bf): New pattern.
16752 (bt): New pattern.
16753 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
16754 (rl78_print_operand): Do not put a # before a %B.
16755 * config/rl78/rl78.opt: Tweak doc strings.
16756
16757 2013-09-17 DJ Delorie <dj@redhat.com>
16758
16759 * config/rl78/constraints.md (Wcv): Allow up to $r31.
16760 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
16761 (rl78_option_override): Likewise, if -mallregs.
16762 (is_virtual_register): Likewise.
16763 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
16764 (REGNO_OK_FOR_BASE_P): Likewise.
16765 * config/rl78/rl78.opt (-mallregs): New.
16766
16767 2013-09-17 Nick Clifton <nickc@redhat.com>
16768
16769 * config/rl78/rl78.c (need_to_save): Change return type to bool.
16770 For interrupt functions: save all call clobbered registers if the
16771 interrupt handler is not a leaf function.
16772 (rl78_expand_prologue): Always recompute the frame information.
16773 For interrupt functions: only select bank 0 if one of the bank 0
16774 registers is going to be psuhed.
16775
16776 2013-09-17 DJ Delorie <dj@redhat.com>
16777
16778 * config/rl78/constraints.md: For each W* constraint, rename to C*
16779 and create a W* constraint that checks for an optional ES: prefix
16780 pattern also.
16781 * config/rl78/rl78.md (UNS_ES_ADDR): New.
16782 (es_addr): New. Used to wrap far addresses.
16783 * config/rl78/rl78-protos.h (rl78_es_addr): New.
16784 (rl78_es_base): New.
16785 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
16786 wrapped far addresses.
16787 (rl78_print_operand_1): Unwrap far addresses before processing.
16788 (rl78_lo16): Wrap far addresses in unspecs.
16789 (rl78_es_addr): New.
16790 (rl78_es_base): New.
16791 (insn_ok_now): Check for not-yet-wrapped far addresses.
16792 (transcode_memory_rtx): Properly re-wrap far addresses.
16793
16794 2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
16795
16796 * config/sparc/t-rtems: Add leon3 multilibs.
16797
16798 2013-09-17 Cong Hou <congh@google.com>
16799
16800 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
16801 when checking the dot production pattern. The type of rhs operand
16802 of multiply is now checked correctly.
16803
16804 2013-09-17 Jeff Law <law@redhat.com>
16805
16806 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
16807 edge implied equivalences into successor phis.
16808 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
16809 here from tree-ssa-threadedge.c.
16810 (mark_threaded_blocks): When threading through a joiner, if both
16811 successors of the joiner's clone reach the same block, verify the
16812 PHI arguments are equal. If not, cancel the jump threading request.
16813 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
16814 tree-ssa-threadupdate.c
16815 (thread_across_edge): Don't check PHI argument equality when
16816 threading through joiner block here.
16817
16818 2013-09-17 Andrew MacLeod <amacleod@redhat.com>
16819
16820 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
16821 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
16822 (warn_uninit, warn_uninitialized_vars,
16823 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
16824 Move to tree-ssa-uninit.c.
16825 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
16826 (has_undefined_value_p): New. Pass dependant parts of
16827 ssa_undefined_value_p.
16828 (uninit_undefined_value_p): Use has_undefined_value_p.
16829 (warn_uninit, warn_uninitialized_vars,
16830 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
16831 Move from tree-ssa.c.
16832 * tree-ssa.h: Adjust prototypes.
16833
16834 2013-09-17 Jan Hubicka <jh@suse.cz>
16835
16836 PR middle-end/58332
16837 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
16838 * ipa-inline.c (can_inline_edge_p): Do not downgrade
16839 FUNCTION_NOT_OPTIMIZED.
16840 * ipa-inline-analysis.c (compute_inline_parameters): Function
16841 not optimized is not inlinable unless it is alwaysinline.
16842 (inline_analyze_function): Force calls in not optimized
16843 function not inlinable.
16844
16845 2013-09-17 Jan Hubicka <jh@suse.cz>
16846
16847 PR middle-end/58329
16848 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
16849 to return NULL.
16850 * ipa.c (function_and_variable_visibility): Likewise.
16851 * ipa-profile.c (ipa_profile): Likewise.
16852
16853 2013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
16854
16855 PR ipa/58398
16856 * cgraph.c (cgraph_function_body_availability): Check for ifunc
16857 attribute, and don't inline the resolver in this case.
16858
16859 2013-09-17 Teresa Johnson <tejohnson@google.com>
16860
16861 * coverage.c (get_coverage_counts): Add missing newline.
16862
16863 2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16864
16865 PR tree-optimization/58088
16866 * fold-const.c (mask_with_trailing_zeros): New function.
16867 (fold_binary_loc): Make sure we don't recurse infinitely
16868 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
16869 Use mask_with_trailing_zeros where appropriate.
16870
16871 2013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
16872
16873 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
16874 of 'prev' var to get better distance estimation.
16875
16876 2013-09-17 Eric Botcazou <ebotcazou@adacore.com>
16877
16878 * tree-inline.h (struct copy_body_data): Add transform_parameter.
16879 * tree-inline.c (is_parameter_of): New predicate.
16880 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
16881 a parameter has been remapped.
16882 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
16883 (optimize_inline_calls): Initialize transform_parameter.
16884 (copy_gimple_seq_and_replace_locals): Likewise.
16885 (tree_function_versioning): Likewise.
16886 (maybe_inline_call_in_expr): Likewise.
16887
16888 2013-09-17 Nick Clifton <nickc@redhat.com>
16889
16890 * config/msp430/msp430-protos.h: Add prototypes for new functions.
16891 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
16892 interrupt handlers.
16893 (is_attr_func): New function.
16894 (msp430_is_interrupt_func): New function.
16895 (is_naked_func): New function.
16896 (is_reentrant_func): New function.
16897 (is_critical_func): New function.
16898 (msp430_start_function): Add annotations for function attributes.
16899 (msp430_attr): New function.
16900 (msp430_attribute_table): New.
16901 (msp430_function_section): New function.
16902 (TARGET_ASM_FUNCTION_SECTION): Define.
16903 (msp430_builtin): New enum.
16904 (msp430_init_builtins): New function.
16905 (msp430_builtin_devl): New function.
16906 (msp430_expand_builtin): New function.
16907 (TARGET_INIT_BUILTINS): Define.
16908 (TARGET_EXPAND_BUILTINS): Define.
16909 (TARGET_BUILTIN_DECL): Define.
16910 (msp430_expand_prologue): Add support for naked, interrupt,
16911 critical and reentrant functions.
16912 (msp430_expand_epilogue): Likewise.
16913 (msp430_print_operand): Handle 'O' character.
16914 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
16915 NO_TRAMPOLINES.
16916 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
16917 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
16918 (pushm): Use a 'n' rather than an 'i' constraint.
16919 (msp_return): Add generation of the interrupt return instruction.
16920 (disable_interrupts): New pattern.
16921 (enable_interrupts): New pattern.
16922 (push_intr_state): New pattern.
16923 (pop_intr_state): New pattern.
16924 (bic_SR): New pattern.
16925 (bis_SR): New pattern.
16926 * doc/extend.texi: Document MSP430 function attributes and builtin
16927 functions.
16928
16929 2013-09-17 Richard Biener <rguenther@suse.de>
16930
16931 PR tree-optimization/58432
16932 * tree-loop-distribution.c (tree_loop_distribution): Also
16933 scan PHIs for outside loop uses and seed a partition from them.
16934
16935 2013-09-17 Bin Cheng <bin.cheng@arm.com>
16936
16937 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
16938 (restructure_reference): Call backtrace_base_for_ref.
16939
16940 2013-09-17 Alan Modra <amodra@gmail.com>
16941
16942 PR target/57589
16943 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
16944 patch.
16945
16946 2013-09-16 DJ Delorie <dj@redhat.com>
16947
16948 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
16949 vregs location for RL78/G10.
16950 (rl78_expand_prologue): Avoid SEL on G10.
16951 (rl78_expand_epilogue): Likewise.
16952 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
16953 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
16954 __RL78_G10__ when appropriate.
16955 (ASM_SPEC): Pass -mg10 along to the assembler.
16956 * config/rl78/rl78.md (sel_rb): Disable for G10.
16957 * config/rl78/rl78.opt: Add -mg10 option.
16958 * config/rl78/t-rl78: Add -mg10 multilib.
16959
16960 2013-09-16 Xinliang David Li <davidxl@google.com>
16961
16962 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
16963 * omp-low.c (omp_max_vf): Ditto.
16964 (expand_omp_simd): Ditto.
16965 * tree-vectorizer.c (vectorize_loops): Ditto.
16966 (gate_vect_slp): Ditto.
16967 (gate_increase_alignment): Ditto.
16968 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
16969 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
16970 (gate_tree_vectorize): Name change.
16971 (tree_vectorize): Ditto.
16972 (pass_vectorize::gate): Call new function.
16973 (pass_vectorize::execute): Ditto.
16974 * opts.c: O3 default setting change.
16975 (finish_options): Check new flag.
16976 * doc/invoke.texi: Document new flags.
16977 * common.opt: New flags.
16978
16979 2013-09-16 Andreas Schwab <schwab@linux-m68k.org>
16980
16981 * doc/tm.texi.in (Cond Exec Macros): Remove node.
16982 (Condition Code): Don't reference it.
16983 * doc/tm.texi: Regenerate.
16984
16985 2013-09-16 Vladimir Makarov <vmakarov@redhat.com>
16986
16987 PR middle-end/58418
16988 * lra-constraints.c (undo_optional_reloads): Consider all optional
16989 reload even if it did not get a hard reg.
16990
16991 2013-09-16 Teresa Johnson <tejohnson@google.com>
16992
16993 * dumpfile.c (dump_loc): Remove newline emission.
16994 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
16995 emission to dump_printf_loc calls where missing.
16996 (vect_mark_for_runtime_alias_test): Ditto.
16997 (vect_analyze_data_ref_dependence): Ditto.
16998 (vect_analyze_data_ref_dependences): Ditto.
16999 (vect_slp_analyze_data_ref_dependence): Ditto.
17000 (vect_slp_analyze_data_ref_dependences): Ditto.
17001 (vect_compute_data_ref_alignment): Ditto.
17002 (vect_update_misalignment_for_peel): Ditto.
17003 (vect_verify_datarefs_alignment): Ditto.
17004 (vector_alignment_reachable_p): Ditto.
17005 (vect_get_data_access_cost): Ditto.
17006 (vect_enhance_data_refs_alignment): Ditto.
17007 (vect_find_same_alignment_drs): Ditto.
17008 (vect_analyze_data_refs_alignment): Ditto.
17009 (vect_analyze_group_access): Ditto.
17010 (vect_analyze_data_ref_access): Ditto.
17011 (vect_analyze_data_ref_accesses): Ditto.
17012 (vect_prune_runtime_alias_test_list): Ditto.
17013 (vect_analyze_data_refs): Ditto.
17014 (vect_create_addr_base_for_vector_ref): Ditto.
17015 (vect_create_data_ref_ptr): Ditto.
17016 (vect_grouped_store_supported): Ditto.
17017 (vect_grouped_load_supported): Ditto.
17018 * value-prof.c (check_counter): Ditto.
17019 (check_ic_target): Ditto.
17020 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
17021 (vect_recog_widen_mult_pattern): Ditto.
17022 (vect_recog_widen_sum_pattern): Ditto.
17023 (vect_recog_over_widening_pattern): Ditto.
17024 (vect_recog_widen_shift_pattern): Ditto.
17025 (vect_recog_rotate_pattern): Ditto.
17026 (vect_recog_vector_vector_shift_pattern): Ditto.
17027 (vect_recog_divmod_pattern): Ditto.
17028 (vect_recog_mixed_size_cond_pattern): Ditto.
17029 (vect_recog_bool_pattern): Ditto.
17030 (vect_pattern_recog_1): Ditto.
17031 (vect_pattern_recog): Ditto.
17032 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
17033 (vect_is_simple_iv_evolution): Ditto.
17034 (vect_analyze_scalar_cycles_1): Ditto.
17035 (vect_get_loop_niters): Ditto.
17036 (vect_analyze_loop_1): Ditto.
17037 (vect_analyze_loop_form): Ditto.
17038 (vect_analyze_loop_operations): Ditto.
17039 (vect_analyze_loop_2): Ditto.
17040 (vect_analyze_loop): Ditto.
17041 (report_vect_op): Ditto.
17042 (vect_is_slp_reduction): Ditto.
17043 (vect_is_simple_reduction_1): Ditto.
17044 (vect_get_known_peeling_cost): Ditto.
17045 (vect_estimate_min_profitable_iters): Ditto.
17046 (vect_model_reduction_cost): Ditto.
17047 (vect_model_induction_cost): Ditto.
17048 (get_initial_def_for_induction): Ditto.
17049 (vect_create_epilog_for_reduction): Ditto.
17050 (vectorizable_reduction): Ditto.
17051 (vectorizable_induction): Ditto.
17052 (vectorizable_live_operation): Ditto.
17053 (vect_loop_kill_debug_uses): Ditto.
17054 (vect_transform_loop): Ditto.
17055 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
17056 (vect_stmt_relevant_p): Ditto.
17057 (process_use): Ditto.
17058 (vect_mark_stmts_to_be_vectorized): Ditto.
17059 (vect_model_simple_cost): Ditto.
17060 (vect_model_promotion_demotion_cost): Ditto.
17061 (vect_model_store_cost): Ditto.
17062 (vect_get_store_cost): Ditto.
17063 (vect_model_load_cost): Ditto.
17064 (vect_get_load_cost): Ditto.
17065 (vect_init_vector_1): Ditto.
17066 (vect_get_vec_def_for_operand): Ditto.
17067 (vect_finish_stmt_generation): Ditto.
17068 (vectorizable_call): Ditto.
17069 (vectorizable_conversion): Ditto.
17070 (vectorizable_assignment): Ditto.
17071 (vectorizable_shift): Ditto.
17072 (vectorizable_operation): Ditto.
17073 (vectorizable_store): Ditto.
17074 (vectorizable_load): Ditto.
17075 (vectorizable_condition): Ditto.
17076 (vect_analyze_stmt): Ditto.
17077 (vect_transform_stmt): Ditto.
17078 (vect_is_simple_use): Ditto.
17079 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
17080 (vect_can_advance_ivs_p): Ditto.
17081 (vect_update_ivs_after_vectorizer): Ditto.
17082 (vect_do_peeling_for_loop_bound): Ditto.
17083 (vect_gen_niters_for_prolog_loop): Ditto.
17084 (vect_update_inits_of_drs): Ditto.
17085 (vect_create_cond_for_alias_checks): Ditto.
17086 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
17087 (vect_build_slp_tree_1): Ditto.
17088 (vect_supported_load_permutation_p): Ditto.
17089 (vect_analyze_slp_instance): Ditto.
17090 (vect_analyze_slp): Ditto.
17091 (vect_make_slp_decision): Ditto.
17092 (vect_detect_hybrid_slp): Ditto.
17093 (vect_bb_vectorization_profitable_p): Ditto.
17094 (vect_slp_analyze_bb_1): Ditto.
17095 (vect_update_slp_costs_according_to_vf): Ditto.
17096 (vect_get_mask_element): Ditto.
17097 (vect_transform_slp_perm_load): Ditto.
17098 (vect_schedule_slp_instance): Ditto.
17099 (vect_schedule_slp): Ditto.
17100 (vect_slp_transform_bb): Ditto.
17101 * profile.c (read_profile_edge_counts): Ditto.
17102 (compute_branch_probabilities): Ditto.
17103 * coverage.c (get_coverage_counts): Ditto.
17104
17105 2013-09-16 Diego Novillo <dnovillo@google.com>
17106
17107 * tree-core.h: Add missing comment lines from refactoring of tree.h.
17108
17109 2013-09-16 Jan Hubicka <jh@suse.cz>
17110
17111 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
17112 abstract functions; for static functions check the presence of body.
17113
17114 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
17115
17116 * config/aarch64/aarch64-simd-builtins.def (fma): New.
17117 * config/aarch64/aarch64-simd.md
17118 (aarch64_mla_elt<mode>): New.
17119 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
17120 (aarch64_mls_elt<mode>): Likewise.
17121 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
17122 (aarch64_fma4_elt<mode>): Likewise.
17123 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
17124 (aarch64_fma4_elt_to_128v2df): Likewise.
17125 (aarch64_fma4_elt_to_64df): Likewise.
17126 (fnma<mode>4): Likewise.
17127 (aarch64_fnma4_elt<mode>): Likewise.
17128 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
17129 (aarch64_fnma4_elt_to_128v2df): Likewise.
17130 (aarch64_fnma4_elt_to_64df): Likewise.
17131 * config/aarch64/iterators.md (VDQSF): New.
17132 * config/aarch64/arm_neon.h
17133 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
17134 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
17135
17136 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
17137
17138 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
17139 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
17140 (aarch64_mul3_elt_to_128df): Likewise.
17141 (aarch64_mul3_elt_to_64v2df): Likewise.
17142 * config/aarch64/iterators.md (VEL): Also handle DFmode.
17143 (VMUL): New.
17144 (VMUL_CHANGE_NLANES) Likewise.
17145 (h_con): Likewise.
17146 (f): Likewise.
17147 * config/aarch64/arm_neon.h
17148 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
17149
17150 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
17151
17152 * config/aarch64/arm_neon.h
17153 (vcvtx_high_f32_f64): Fix parameters.
17154
17155 2013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
17156 Uros Bizjak <ubizjak@gmail.com>
17157
17158 * config/alpha.c: Include tree-ssanames.h.
17159
17160 2013-09-16 Richard Biener <rguenther@suse.de>
17161
17162 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
17163 (dot_rdg_1): Handle control_dd.
17164 (create_edge_for_control_dependence): New function.
17165 (create_rdg_edges): Add control dependences if asked for.
17166 (build_rdg): Likewise.
17167 (generate_loops_for_partition): If there are not necessary
17168 control stmts remove all their dependencies.
17169 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
17170 (distribute_loop): Pass on control dependences.
17171 (tree_loop_distribution): Compute control dependences and remove
17172 restriction on number of loop nodes.
17173
17174 2013-09-16 Jakub Jelinek <jakub@redhat.com>
17175
17176 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
17177 for internal calls.
17178
17179 2013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
17180
17181 * cse.c (try_const_anchors): Punt on CC modes.
17182
17183 2013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
17184
17185 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
17186
17187 2013-09-14 John David Anglin <danglin@gcc.gnu.org>
17188
17189 PR target/58382
17190 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
17191 calls to word_mode.
17192
17193 2013-09-14 Iain Sandoe <iain@codesourcery.com>
17194
17195 PR target/48094
17196 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
17197 seen.
17198 (darwin_objc1_section): Likewise.
17199 (darwin_file_end): Emit Image Info section when required.
17200
17201 2013-09-14 Jan Hubicka <jh@suse.cz>
17202
17203 * tree-into-ssa.c (gate_into_ssa): New.
17204 (pass_data_build_ssa): Use it.
17205 * cgraph.h (expand_thunk): Update prototype.
17206 * cgraphunit.c (analyze_function): Expand thunks early.
17207 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
17208 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
17209 set lowered flag; do not add new function.
17210 (assemble_thunks_and_aliases): Update.
17211 * tree-ssa.c (gate_init_datastructures): New gate.
17212 (pass_data_init_datastructures): Use it.
17213
17214 2013-09-14 Iain Sandoe <iain@codesourcery.com>
17215
17216 PR target/58269
17217 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
17218 xmm register set described in the psABI.
17219
17220 2013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
17221
17222 * dwarf2out.c (should_emit_struct_debug): Add check
17223 for type_decl variable is not NULL.
17224
17225 2013-09-13 Jacek Caban <jacek@codeweavers.com>
17226
17227 * config.gcc: Use new winnt-c.c target hooks
17228 * config/t-winnt: New file
17229 * config/winnt-c.c: New file
17230 * doc/tm.texi.in: Document new hook
17231 * doc/tm.texi: Regenerated
17232
17233 2013-09-13 Jan Hubicka <jh@suse.cz>
17234
17235 PR middle-end/58094
17236 * ipa-inline.c (check_callers): New function.
17237 (check_caller_edge): Remove.
17238 (want_inline_function_to_all_callers_p): Also permit alises that are
17239 called dirrectly.
17240 (inline_to_all_callers): Terminate the walk when devirtualization
17241 introduce new calls.
17242
17243 2013-09-13 Jan Hubicka <jh@suse.cz>
17244
17245 * ipa-inline-analysis.c (struct growth_data): Add node.
17246 (do_estimate_growth_1): Fix detection of recursion.
17247
17248 2013-09-13 Jakub Jelinek <jakub@redhat.com>
17249
17250 PR tree-optimization/58392
17251 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
17252 to avoid shadowing of outer loop variable. If
17253 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
17254 replace_by_duplicate_decl simduid of loops that have it set and
17255 set dest_cfun->has_simduid_loops and/or
17256 dest_cfun->has_force_vect_loops.
17257 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
17258 instead of maybe_lookup_decl.
17259 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
17260 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
17261 call. Copy over force_vect and copy and remap simduid. Set
17262 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
17263 (copy_cfg_body): Remove blocks_to_copy argument. Use
17264 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
17265 caller. Don't set cfun->has_simduid_loops and/or
17266 cfun->has_force_vect_loops here.
17267 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
17268 caller.
17269 (expand_call_inline, tree_function_versioning): Adjust copy_body
17270 callers.
17271
17272 2013-09-13 Martin Jambor <mjambor@suse.cz>
17273
17274 PR bootstrap/58388
17275 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
17276 the assert if the edge was a speculative one.
17277
17278 2013-09-13 Richard Biener <rguenther@suse.de>
17279
17280 * tree-data-ref.h (known_dependences_p): Move here ...
17281 * tree-loop-distribution.c (known_dependences_p): ... from here.
17282 (dump_rdg_component, debug_rdg_component): Remove.
17283 (dump_rdg): Adjust.
17284 (generate_loops_for_partition): Use gimple_uid instead of
17285 relying on matching stmt visit order.
17286 (rdg_build_partitions): Take starting stmt vector.
17287 (ldist_gen): Merge into ...
17288 (distribute_loop): ... this function. Do not compute starting
17289 vertices vector.
17290 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
17291
17292 2013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17293
17294 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
17295 Set type attribute correctly. Set predicable_short_it attribute.
17296 (cmpsi_shiftsi): Remove %? from output template.
17297
17298 2013-09-13 Richard Biener <rguenther@suse.de>
17299
17300 * tree-loop-distribution.c (struct rdg_component,
17301 rdg_defs_used_in_other_loops_p, free_rdg_components,
17302 rdg_build_components): Remove.
17303 (stmts_from_loop): Do not record virtual PHIs.
17304 (generate_loops_for_partition): Skip virtual PHIs.
17305 (build_rdg_partition_for_component): Rename to ...
17306 (build_rdg_partition_for_vertex): ... this and adjust.
17307 (rdg_build_partitions): Take a vector of starting vertices
17308 instead of components. Remove unnecessary leftover handling.
17309 (ldist_gen): Do not build components or record other stores.
17310 (distribute_loop): Do not distribute loops containing stmts
17311 with side-effects.
17312
17313 2013-09-13 Christian Bruel <christian.bruel@st.com>
17314
17315 PR target/58314
17316 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
17317
17318 2013-09-13 Kai Tietz <ktietz@redhat.com>
17319
17320 * config.gcc: Separate cases for mingw and cygwin targets,
17321 and add 64-bit cygwin target case.
17322
17323 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
17324 dll-export inline-functions.
17325 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
17326
17327 2013-09-13 Jeff Law <law@redhat.com>
17328
17329 PR middle-end/58387
17330 Revert:
17331 2013-09-06 Jeff Law <law@redhat.com>
17332
17333 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
17334 edge implied equivalences into successor phis.
17335
17336 2013-09-12 DJ Delorie <dj@redhat.com>
17337
17338 * config/rl78/rl78-virt.md: Change from | to \; for asm line
17339 separators.
17340
17341 2013-09-12 Brooks Moses <bmoses@google.com>
17342
17343 PR driver/42955
17344 * Makefile.in: Do not install driver binaries in $(target)/bin.
17345
17346 2013-09-12 DJ Delorie <dj@redhat.com>
17347
17348 * config/rl78/rl78.opt (mrelax): New.
17349 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
17350 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
17351
17352 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
17353 between SP and FP.
17354 (rl78_expand_epilogue): Likewise.
17355
17356 2013-09-12 Vladimir Makarov <vmakarov@redhat.com>
17357
17358 PR middle-end/58335
17359 * lra-eliminations.c (remove_reg_equal_offset_note): New.
17360 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
17361 pointer elimination with using remove_reg_equal_offset_note.
17362
17363 2013-09-12 DJ Delorie <dj@redhat.com>
17364
17365 * config/msp430/: New port.
17366 * config.gcc (msp430): Added.
17367 * doc/invoke.texi: Document MSP430 options.
17368 * doc/install.texi: Document msp430-elf
17369 * doc/md.texi: Document msp430-elf
17370 * doc/contrib.texi: Document msp430-elf
17371
17372 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
17373 PSImode.
17374
17375 2013-09-12 Martin Jambor <mjambor@suse.cz>
17376
17377 PR ipa/58389
17378 * ipa-prop.c (remove_described_reference): Give up if the edge in the
17379 reference descriptor is NULL.
17380 (ipa_edge_removal_hook): If owning a reference descriptor, set its
17381 edge to NULL.
17382
17383 2013-09-12 Andrew MacLeod <amacleod@redhat.com>
17384
17385 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
17386 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
17387 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
17388 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
17389 make_temp_ssa_name): move to tree-ssanames.h
17390 * tree-ssa-alias.h: Move prototype.
17391 * tree-ssa.h: Include tree-ssanames.h.
17392 * tree-ssanames.c (FREE_SSANAMES): Move to here.
17393 * tree-ssanames.h: New. Move items from tree-flow*.h
17394 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
17395
17396 2013-09-12 Richard Biener <rguenther@suse.de>
17397
17398 PR tree-optimization/58404
17399 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
17400 propagate non-invariant addresses into dereferences wrapped
17401 in component references.
17402
17403 2013-09-12 Richard Biener <rguenther@suse.de>
17404
17405 PR tree-optimization/58402
17406 * passes.def: Move pass_late_warn_uninitialized later.
17407
17408 2013-09-12 Andrew MacLeod <amacleod@redhat.com>
17409
17410 * tree-ssa.h: New. Move content from tree-flow.h and
17411 tree-flow-inline.h.
17412 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
17413 Move prototypes belonging to tree-ssa.c.
17414 * tree-flow-inline.h (redirect_edge_var_map_def,
17415 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
17416 tree-ssa.h.
17417 * gimple.h: Adjust prototypes.
17418 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
17419 to...
17420 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
17421 * tree.h: Move prototype to tree-ssa.h.
17422 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
17423 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
17424 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
17425 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
17426 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
17427 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
17428 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
17429 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
17430 graphite-blocking.c, graphite-clast-to-gimple.c,
17431 graphite-dependences.c, graphite-interchange.c,
17432 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
17433 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
17434 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
17435 ipa-reference.c, ipa-split.c, ipa-utils.c,
17436 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
17437 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
17438 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
17439 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
17440 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
17441 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
17442 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
17443 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
17444 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
17445 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
17446 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
17447 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
17448 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
17449 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
17450 value-prof.c, var-tracking.c,
17451 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
17452
17453 2013-09-12 Richard Biener <rguenther@suse.de>
17454
17455 PR tree-optimization/58396
17456 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
17457 (build_rdg): Take a loop-nest parameter, fix memleaks.
17458 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
17459
17460 2013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
17461
17462 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
17463 for SLM.
17464
17465 2013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
17466
17467 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
17468 The FMA instruction names should have a 'v' prefix.
17469
17470 2013-09-12 Richard Biener <rguenther@suse.de>
17471
17472 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
17473 (dot_rdg): Use popen instead of system in optional code.
17474 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
17475 (already_processed_vertex_p): Adjust.
17476 (has_anti_or_output_dependence, predecessor_has_mem_write,
17477 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
17478 rdg_flag_uses): Remove.
17479 (rdg_flag_vertex): Simplify.
17480 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
17481 remove recursion.
17482 (build_rdg_partition_for_component): Process the first vertex
17483 of a component only.
17484 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
17485
17486 2013-09-12 Alan Modra <amodra@gmail.com>
17487
17488 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
17489
17490 2013-09-11 DJ Delorie <dj@redhat.com>
17491 Nick Clifton <nickc@redhat.com>
17492
17493 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
17494 (rl78_stack_based_mem): New.
17495 * config/rl78/constraints.md (Iv08): New.
17496 (Iv16): New.
17497 (Iv24): New.
17498 (Is09): New.
17499 (Is17): New.
17500 (Is25): New.
17501 (ISsi): New.
17502 (IShi): New.
17503 (ISqi): New.
17504 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
17505 (movhi): Likewise.
17506 (movsi): Change from expand to insn-and-split.
17507 (ashrsi3): Clobber AX.
17508 (lshrsi3): New.
17509 (ashlsi3): New.
17510 (cbranchsi4): New.
17511 * config/rl78/rl78.md (CC_REG): Fix.
17512 (addsi3): Allow memory and immediate operands.
17513 (addsi3_internal): Split into...
17514 (addsi3_internal_virt): ...new, and ...
17515 (addsi3_internal_real): ...new.
17516 (subsi): New.
17517 (subsi3_internal_virt): New.
17518 (subsi3_internal_real): New.
17519 (mulsi3): Add memory operand.
17520 (mulsi3_rl78): Likewise.
17521 (mulsi3_g13): Likewise.
17522 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
17523 (cbranchqi4_real): Add more constraint options.
17524 (cbranchhi4_real): Expand pattern.
17525 (cbranchhi4_real_signed): New.
17526 (cbranchhi4_real_inverted): New.
17527 (cbranchsi4_real_lt): New.
17528 (cbranchsi4_real_ge): New.
17529 (cbranchsi4_real_signed): New.
17530 (cbranchsi4_real): New.
17531 (peephole2): New.
17532 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
17533 constant shifts.
17534 (lshrsi3_virt): Likewise.
17535 (ashlsi3_virt): Likewise.
17536 (cbranchqi4_virt_signed): New.
17537 (cbranchhi4_virt_signed): New.
17538 (cbranchsi4_virt): New.
17539 * config/rl78/rl78.c: Whitespace fixes throughout.
17540 (move_elim_pass): New.
17541 (pass_data_rl78_move_elim): New.
17542 (pass_rl78_move_elim): New.
17543 (make_pass_rl78_move_elim): New.
17544 (rl78_devirt_info): Run devirt earlier.
17545 (rl78_move_elim_info): New.
17546 (rl78_asm_file_start): Register it.
17547 (rl78_split_movsi): New.
17548 (rl78_as_legitimate_address): Allow virtual base registers when
17549 appropriate.
17550 (rl78_addr_space_convert): Remove spurious debug stuff.
17551 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
17552 (rl78_print_operand): More cases for not printing '#'.
17553 (rl78_expand_compare): Remove most of the logic.
17554 (content_memory): New.
17555 (clear_content_memory): New.
17556 (get_content_index): New.
17557 (get_content_name): New.
17558 (display_content_memory): New.
17559 (update_content): New.
17560 (record_content): New.
17561 (already_contains): New.
17562 (insn_ok_now): Re-recog insns with virtual registers.
17563 (add_postponed_content_update): New.
17564 (process_postponed_content_update): New.
17565 (gen_and_emit_move): New.
17566 (transcode_memory_rtx): Record new location content.
17567 Use gen_and_emit_move.
17568 (force_into_acc): New.
17569 (move_to_acc): Use gen_and_emit_move.
17570 (move_from_acc): Likewise.
17571 (move_acc_to_reg): Likewise.
17572 (move_to_x): Likewise.
17573 (move_to_hl): Likewise.
17574 (move_to_de): Likewise.
17575 (rl78_alloc_physical_registers_op1): Record location content.
17576 (has_constraint): New.
17577 (rl78_alloc_physical_registers_op2): Record location content.
17578 Optimize use of HL.
17579 (rl78_alloc_physical_registers_ro1): Likewise.
17580 (rl78_alloc_physical_registers_cmp): Likewise.
17581 (rl78_alloc_physical_registers_umul): Likewise.
17582 (rl78_alloc_address_registers_macax): New.
17583 (rl78_alloc_physical_registers): Initialize and set location
17584 content memory as needed.
17585 (rl78_reorg): Make sure split2 is called.
17586 (rl78_rtx_costs): New.
17587
17588 2013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
17589
17590 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
17591 for (not (neg ...)) and (neg (not ...)) cases.
17592
17593 2013-09-11 Richard Biener <rguenther@suse.de>
17594
17595 PR middle-end/58377
17596 * passes.def: Split critical edges before late uninit warning passes.
17597 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
17598
17599 2013-09-11 Jakub Jelinek <jakub@redhat.com>
17600
17601 PR tree-optimization/58385
17602 * fold-const.c (build_range_check): If both low and high are NULL,
17603 use omit_one_operand_loc to preserve exp side-effects.
17604
17605 2013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17606
17607 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
17608
17609 2013-09-11 Richard Biener <rguenther@suse.de>
17610
17611 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
17612 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
17613 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
17614 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
17615 stmts_from_loop, known_dependences_p, build_empty_rdg,
17616 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
17617 * tree-loop-distribution.c: ... here.
17618 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
17619 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
17620 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
17621 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
17622 * tree-loop-distribution.c: ... here.
17623 * tree-loop-distribution.c: Include gimple-pretty-print.h.
17624 (struct partition_s): Add loops member.
17625 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
17626 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
17627 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
17628
17629 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
17630 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17631 Sergey Lega <sergey.s.lega@intel.com>
17632 Anna Tikhonova <anna.tikhonova@intel.com>
17633 Ilya Tocar <ilya.tocar@intel.com>
17634 Andrey Turetskiy <andrey.turetskiy@intel.com>
17635 Ilya Verbin <ilya.verbin@intel.com>
17636 Kirill Yukhin <kirill.yukhin@intel.com>
17637 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17638
17639 * config/i386/constraints.md (k): New.
17640 (Yk): Ditto.
17641 * config/i386/i386.c (const regclass_map): Add new mask registers.
17642 (dbx_register_map): Ditto.
17643 (dbx64_register_map): Ditto.
17644 (svr4_dbx_register_map): Ditto.
17645 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
17646 disabled.
17647 (ix86_preferred_reload_class): Disable constants for mask registers.
17648 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
17649 (ix86_hard_regno_mode_ok): Support new mask registers.
17650 (x86_order_regs_for_local_alloc): Ditto.
17651 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
17652 (FIXED_REGISTERS): Add new mask registers.
17653 (CALL_USED_REGISTERS): Ditto.
17654 (REG_ALLOC_ORDER): Ditto.
17655 (VALID_MASK_REG_MODE): New.
17656 (FIRST_MASK_REG): Ditto.
17657 (LAST_MASK_REG): Ditto.
17658 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
17659 (MAYBE_MASK_CLASS_P): New.
17660 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
17661 (REG_CLASS_CONTENTS): Ditto.
17662 (MASK_REGNO_P): New.
17663 (ANY_MASK_REG_P): Ditto.
17664 (HI_REGISTER_NAMES): Add new mask registers.
17665 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
17666 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
17667 mask registers.
17668 (attribute "type"): Add mskmov, msklog.
17669 (attribute "length_immediate"): Support them.
17670 (attribute "memory"): Ditto.
17671 (attribute "prefix_0f"): Ditto.
17672 (*movhi_internal): Support new mask registers.
17673 (*movqi_internal): Ditto.
17674 (define_split): Split out clobber pattern is a logic
17675 insn on mask registers.
17676 (*k<logic><mode>): New.
17677 (*andhi_1): Extend to support mask regs.
17678 (*andqi_1): Extend to support mask regs.
17679 (kandn<mode>): New.
17680 (define_split): Split and-not to and and not if operands
17681 are not mask regs.
17682 (*<code><mode>_1): Separate HI mode to new pattern...
17683 (*<code>hi_1): This.
17684 (*<code>qi_1): Extend to support mask regs.
17685 (kxnor<mode>): New.
17686 (kortestzhi): Ditto.
17687 (kortestchi): Ditto.
17688 (kunpckhi): Ditto.
17689 (*one_cmpl<mode>2_1): Remove HImode and handle it...
17690 (*one_cmplhi2_1): ...Here, now with mask registers support.
17691 (*one_cmplqi2_1): Support new mask registers.
17692 (HI/QImode arithmetics splitter): Don't split if mask registers
17693 are used.
17694 (HI/QImode not splitter): Ditto.
17695 * config/i386/predicated.md (mask_reg_operand): New.
17696 (general_reg_operand): Ditto.
17697
17698 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
17699
17700 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
17701 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
17702
17703 2013-09-10 Jeff Law <law@redhat.com>
17704
17705 PR tree-optimization/58380
17706 * tree-ssa-threadupdate.c (thread_block): Recognize another case
17707 of threading through a buried loop header.
17708
17709 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
17710 return value for single successor case.
17711
17712 2013-09-10 Jan Hubicka <jh@suse.cz>
17713
17714 * ipa-devirt.c (ipa_devirt): Enable with LTO.
17715
17716 2013-09-10 Richard Earnshaw <rearnsha@arm.com>
17717
17718 PR target/58361
17719 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
17720 support conditional execution.
17721 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
17722
17723 2013-09-10 Vladimir Makarov <vmakarov@redhat.com>
17724
17725 * lra.c (lra): Clear lra_optional_reload_pseudos before every
17726 constraint pass.
17727 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
17728 Check destination too to check move insn.
17729 (undo_optional_reloads): Add check that the original peudo did not
17730 changed its allocation and the optional reload was inherited on last
17731 inheritance pass. Break loop after deciding to keep optional reload.
17732 (lra_undo_inheritance): Add check that inherited pseudo still in
17733 memory.
17734
17735 2013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
17736
17737 * config/aarch64/aarch64.md (generic_sched): New.
17738 * config/aarch64/aarch64-generic.md (load): Make conditional
17739 on generic_sched attribute.
17740 (nonload): Likewise.
17741
17742 2013-09-10 Jan Hubicka <jh@suse.cz>
17743
17744 * lto-cgraph.c: Include ipa-utils.h.
17745 (compute_ltrans_boundary): Also add possible targets into the boundary.
17746
17747 2013-09-10 Jan Hubicka <jh@suse.cz>
17748
17749 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
17750 VAR_DECL of vtable rather than full expression.
17751
17752 2013-09-10 Jan Hubicka <jh@suse.cz>
17753 Paolo Carlini <paolo.carlini@oracle.com>
17754
17755 * cgraphunit.c (analyze_functions): Save input_location, set it
17756 to UNKNOWN_LOCATION and restore it at the end.
17757
17758 2013-09-10 Martin Jambor <mjambor@suse.cz>
17759
17760 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
17761 represented by a thunk.
17762
17763 2013-09-10 Jeff Law <law@redhat.com>
17764
17765 PR tree-optimization/58343
17766 * tree-ssa-threadupdate.c (thread_block): Identify and disable
17767 jump threading requests through loop headers buried in the middle
17768 of a jump threading path.
17769
17770 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
17771 in return value/type.
17772
17773 2013-09-10 Jakub Jelinek <jakub@redhat.com>
17774
17775 PR rtl-optimization/58365
17776 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
17777 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
17778 it differs.
17779
17780 2013-09-10 Richard Biener <rguenther@suse.de>
17781
17782 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
17783 * tree-data-ref.c (create_rdg_vertices): Collect all data
17784 references, signal failure to the caller, use data-ref API.
17785 (build_rdg): Compute data references only once. Maintain lifetime
17786 of data references and data dependences from within RDG.
17787 (free_rdg): Free dependence relations.
17788 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
17789 inventing extra dependences.
17790 (distribute_loop): Update for RDG API changes.
17791
17792 2013-09-10 Kai Tietz <ktietz@redhat.com>
17793
17794 * doc/invoke.texi (fms-extensions): Document changed
17795 behavior for ms-abi targets.
17796 * config/i386/i386.c (ix86_option_override_internal):
17797 Set default value of option -fms-extension for ms-abi targets.
17798
17799 2013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
17800
17801 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
17802
17803 2013-09-10 Alan Modra <amodra@gmail.com>
17804
17805 PR target/58330
17806 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
17807
17808 2013-09-10 Alan Modra <amodra@gmail.com>
17809
17810 * config/rs6000/predicates.md (add_cint_operand): New.
17811 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
17812 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
17813 using add_cint_operand.
17814 (largetoc_high_plus_aix): Likewise.
17815
17816 2013-09-09 Jakub Jelinek <jakub@redhat.com>
17817
17818 PR tree-optimization/58364
17819 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
17820 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
17821 the current range can't be an unconditional true or false.
17822
17823 2013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
17824
17825 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
17826
17827 2013-09-09 Uros Bizjak <ubizjak@gmail.com>
17828
17829 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
17830
17831 2013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
17832
17833 PR c++/43452
17834 * doc/invoke.texi (-Wdelete-incomplete): Document it.
17835
17836 2013-09-09 Ian Bolton <ian.bolton@arm.com>
17837
17838 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
17839 NO_REGS for immediate that can't be moved directly into FP_REGS.
17840
17841 2013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17842
17843 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
17844 comparison with negated operand.
17845 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
17846 RTL form.
17847
17848 2013-09-09 Richard Biener <rguenther@suse.de>
17849
17850 PR middle-end/58326
17851 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
17852 of a subloop record all its block as affecting loop-closed SSA form.
17853
17854 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
17855
17856 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
17857 of an rtx/bitpos pair.
17858 (store_fixed_bit_field): Update accordingly.
17859
17860 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
17861
17862 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
17863 GEN_INT.
17864 * builtins.c (expand_errno_check): Likewise.
17865 * dwarf2cfi.c (init_return_column_size): Likewise.
17866 * except.c (sjlj_mark_call_sites): Likewise.
17867 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
17868 * lra-constraints.c (emit_inc): Likewise.
17869 * ree.c (combine_set_extension): Likewise.
17870 * regmove.c (fixup_match_2): Likewise.
17871 * reload1.c (inc_for_reload): Likewise.
17872
17873 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
17874
17875 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
17876 (force_to_mode, simplify_shift_const_1, simplify_comparison):
17877 Use gen_int_mode with the mode of the associated simplify_* call.
17878 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
17879 * expmed.c (expand_shift_1): Likewise.
17880 * function.c (instantiate_virtual_regs_in_insn): Likewise.
17881 * loop-iv.c (iv_number_of_iterations): Likewise.
17882 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
17883 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
17884
17885 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
17886
17887 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
17888 of the associated expand_* call.
17889 (asan_emit_stack_protection): Likewise.
17890 * builtins.c (round_trampoline_addr): Likewise.
17891 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
17892 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
17893 (emit_store_flag): Likewise.
17894 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
17895 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
17896 Likewise.
17897 * function.c (instantiate_virtual_regs_in_insn): Likewise.
17898 * ifcvt.c (noce_try_store_flag_constants): Likewise.
17899 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
17900 * modulo-sched.c (generate_prolog_epilog): Likewise.
17901 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
17902 (expand_ctz, expand_ffs, expand_unop): Likewise.
17903
17904 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
17905
17906 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
17907 of the associated gen_rtx_* call.
17908 * caller-save.c (init_caller_save): Likewise.
17909 * combine.c (find_split_point, make_extraction): Likewise.
17910 (make_compound_operation): Likewise.
17911 * dwarf2out.c (mem_loc_descriptor): Likewise.
17912 * explow.c (plus_constant, probe_stack_range): Likewise.
17913 * expmed.c (expand_mult_const): Likewise.
17914 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
17915 * reload1.c (init_reload): Likewise.
17916 * valtrack.c (cleanup_auto_inc_dec): Likewise.
17917 * var-tracking.c (adjust_mems): Likewise.
17918 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
17919 rather than gen_rtx_fmt_ee.
17920
17921 2013-09-09 Jan Hubicka <jh@suse.cz>
17922
17923 PR middle-end/58294
17924 * value-prof.c (gimple_ic): Copy also abnormal edges.
17925
17926 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
17927
17928 * asan.c (asan_shadow_cst): Use gen_int_mode.
17929
17930 2013-09-08 Jan Hubicka <jh@suse.cz>
17931
17932 * ipa-profile.c: Add toplevel comment.
17933 (ipa_propagate_frequency_1): Be more conservative when profile is read.
17934 (contains_hot_call_p): New function.
17935 (ipa_propagate_frequency): Set frequencies based on counts when
17936 profile is read.
17937 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
17938 profile; do not tamper with profile after inlining if it is read.
17939
17940 2013-09-08 Jan Hubicka <jh@suse.cz>
17941
17942 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
17943 speculative edges.
17944
17945 2013-09-08 Jan Hubicka <jh@suse.cz>
17946
17947 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
17948 summary generation.
17949
17950 2013-09-08 Jeff Law <law@redhat.com>
17951
17952 PR bootstrap/58340
17953 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
17954 of 'found'.
17955
17956 2013-09-08 Andi Kleen <ak@linux.intel.com>
17957
17958 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
17959
17960 2013-09-08 Jan Hubicka <jh@suse.cz>
17961
17962 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
17963
17964 2013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
17965
17966 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
17967 for non-debug insns.
17968 * lra.c (new_insn_reg): Take the containing insn as a parameter.
17969 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
17970 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
17971 accordingly.
17972
17973 2013-09-08 Jan Hubicka <jh@suse.cz>
17974
17975 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
17976 targets and devirtualize to BUILT_IN_UNREACHABLE.
17977 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
17978 * ipa.c (walk_polymorphic_call_targets): New function.
17979 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
17980 functions; use the new timevar.
17981 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
17982 was removed from the program.
17983 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
17984 not consider it in the walk when its vtable is dead.
17985 (possible_polymorphic_call_targets_1): Pass anonymous flag to
17986 record_binfo.
17987 (devirt_variable_node_removal_hook): New function.
17988 (possible_polymorphic_call_targets): Also register
17989 devirt_variable_node_removal_hook.
17990 (ipa_devirt): Do not do non-speculative devirtualization.
17991 (gate_ipa_devirt): One execute if devirtualizing speculatively.
17992
17993 2013-09-08 Jan Hubicka <jh@suse.cz>
17994
17995 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
17996 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
17997 varpool_remove_variable_insertion_hook): Declare.
17998 * varpool.c (varpool_node_hook_list): New structure.
17999 (first_varpool_node_removal_hook,
18000 first_varpool_variable_insertion_hook): New variables.
18001 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
18002 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
18003 varpool_remove_variable_insertion_hook,
18004 varpool_call_variable_insertion_hooks): New functions.
18005 (varpool_remove_node): Use it.
18006
18007 2013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
18008
18009 PR c++/54941
18010 * diagnostic.c (diagnostic_build_prefix): When s.file is
18011 "<built-in>" don't output line and column numbers.
18012
18013 2013-09-06 Jan Hubicka <jh@suse.cz>
18014
18015 * cgraphunit.c (expand_thunk): Get body before touching arguments.
18016 * lto-streamer-out.c: Stream thunks, too.
18017 * lto-streamer-in.c (input_function): Pop cfun here
18018 (lto_read_body): Instead of here.
18019
18020 2013-09-06 Caroline Tice <cmtice@google.com>
18021
18022 * doc/install.texi: Add documentation for the --enable-vtable-verify
18023 and the --disable-libvtv configure options.
18024
18025 2013-09-06 Jeff Law <law@redhat.com>
18026
18027 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
18028 edge implied equivalences into successor phis.
18029
18030 2013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
18031
18032 * resource.c (mark_referenced_resources): Handle COND_EXEC.
18033
18034 2013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
18035
18036 * resource.c (mark_target_live_regs): Compute resources taking
18037 into account if a call is predicated or not.
18038
18039 2013-09-06 Eric Botcazou <ebotcazou@adacore.com>
18040
18041 * toplev.c (output_stack_usage): Be prepared for suffixes created by
18042 the compiler in the function names.
18043
18044 2013-09-06 Jan Hubicka <jh@suse.cz>
18045
18046 PR middle-end/58094
18047 * ipa-inline.c (has_caller_p): New function.
18048 (want_inline_function_to_all_callers_p): Use it.
18049 (sum_callers, inline_to_all_callers): Break out from ...
18050 (ipa_inline): ... here.
18051
18052 2013-09-06 Jan Hubicka <jh@suse.cz>
18053
18054 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
18055 only when AVX is enabled.
18056
18057 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18058
18059 * config/aarch64/aarch64.md
18060 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
18061 is fpsimd_<load/store>2.
18062 (load_pair<mode>): Likewise.
18063 (store_pair<mode>): Likewise.
18064
18065 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18066
18067 * config/arm/types.md (type): Add "mrs" type.
18068 * config/aarch64/aarch64.md
18069 (aarch64_load_tp_hard): Make type "mrs".
18070 * config/arm/arm.md
18071 (load_tp_hard): Make type "mrs".
18072 * config/arm/cortex-a15.md: Update with new attributes.
18073 * config/arm/cortex-a5.md: Update with new attributes.
18074 * config/arm/cortex-a53.md: Update with new attributes.
18075 * config/arm/cortex-a7.md: Update with new attributes.
18076 * config/arm/cortex-a8.md: Update with new attributes.
18077 * config/arm/cortex-a9.md: Update with new attributes.
18078 * config/arm/cortex-m4.md: Update with new attributes.
18079 * config/arm/cortex-r4.md: Update with new attributes.
18080 * config/arm/fa526.md: Update with new attributes.
18081 * config/arm/fa606te.md: Update with new attributes.
18082 * config/arm/fa626te.md: Update with new attributes.
18083 * config/arm/fa726te.md: Update with new attributes.
18084
18085 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18086
18087 * config/aarch64/aarch64.md
18088 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
18089 (*movtf_aarch64): Likewise.
18090 * config/arm/arm.md
18091 (thumb1_movdi_insn): Use "multiple" for type where more than one
18092 instruction is used for a move.
18093 (*arm32_movhf): Likewise.
18094 (*thumb_movdf_insn): Likewise.
18095
18096 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18097
18098 * config/arm/types.md (type): Rename fcpys to fmov.
18099 * config/arm/vfp.md
18100 (*arm_movsi_vfp): Rename type fcpys as fmov.
18101 (*thumb2_movsi_vfp): Likewise
18102 (*movhf_vfp_neon): Likewise
18103 (*movhf_vfp): Likewise
18104 (*movsf_vfp): Likewise
18105 (*thumb2_movsf_vfp): Likewise
18106 (*movsfcc_vfp): Likewise
18107 (*thumb2_movsfcc_vfp): Likewise
18108 * config/aarch64/aarch64-simd.md
18109 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
18110 * config/aarch64/aarch64.md
18111 (*movsi_aarch64): Replace type mov_reg with fmovs.
18112 (*movdi_aarch64): Likewise
18113 (*movsf_aarch64): Likewise
18114 (*movdf_aarch64): Likewise
18115 * config/arm/arm.c
18116 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
18117 * config/arm/iwmmxt.md
18118 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
18119 * config/arm/arm1020e.md: Update with new attributes.
18120 * config/arm/cortex-a15-neon.md: Update with new attributes.
18121 * config/arm/cortex-a5.md: Update with new attributes.
18122 * config/arm/cortex-a53.md: Update with new attributes.
18123 * config/arm/cortex-a7.md: Update with new attributes.
18124 * config/arm/cortex-a8-neon.md: Update with new attributes.
18125 * config/arm/cortex-a9.md: Update with new attributes.
18126 * config/arm/cortex-m4-fpu.md: Update with new attributes.
18127 * config/arm/cortex-r4f.md: Update with new attributes.
18128 * config/arm/marvell-pj4.md: Update with new attributes.
18129 * config/arm/vfp11.md: Update with new attributes.
18130
18131 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18132
18133 * config/aarch64/aarch64.md
18134 (*madd<mode>): Fix type attribute.
18135 (*maddsi_uxtw): Likewise.
18136 (*msub<mode>): Likewise.
18137 (*msubsi_uxtw): Likewise.
18138 (<su_optab>maddsidi4): Likewise.
18139 (<su_optab>msubsidi4): Likewise.
18140
18141 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18142
18143 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
18144 * config/arm/arm.md (core_cycles): Remove fdiv.
18145 * config/arm/vfp.md:
18146 (*sqrtsf2_vfp): Update for attribute changes.
18147 (*sqrtdf2_vfp): Likewise.
18148 * config/aarch64/aarch64.md:
18149 (sqrt<mode>2): Update for attribute changes.
18150 * config/arm/arm1020e.md: Update with new attributes.
18151 * config/arm/cortex-a15-neon.md: Update with new attributes.
18152 * config/arm/cortex-a5.md: Update with new attributes.
18153 * config/arm/cortex-a53.md: Update with new attributes.
18154 * config/arm/cortex-a7.md: Update with new attributes.
18155 * config/arm/cortex-a8-neon.md: Update with new attributes.
18156 * config/arm/cortex-a9.md: Update with new attributes.
18157 * config/arm/cortex-m4-fpu.md: Update with new attributes.
18158 * config/arm/cortex-r4f.md: Update with new attributes.
18159 * config/arm/marvell-pj4.md: Update with new attributes.
18160 * config/arm/vfp11.md: Update with new attributes.
18161
18162 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18163
18164 * config/arm/types.md
18165 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
18166 * config/aarch64/aarch64.md
18167 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
18168 new attributes.
18169 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
18170 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
18171 (float<GPI:mode><GPF:mode>2): Likewise.
18172 * config/arm/vfp.md
18173 (*truncsisf2_vfp): Update with new attributes.
18174 (*truncsidf2_vfp): Likewise.
18175 (fixuns_truncsfsi2): Likewise.
18176 (fixuns_truncdfsi2): Likewise.
18177 (*floatsisf2_vfp): Likewise.
18178 (*floatsidf2_vfp): Likewise.
18179 (floatunssisf2): Likewise.
18180 (floatunssidf2): Likewise.
18181 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
18182 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
18183 * config/arm/arm1020e.md: Update with new attributes.
18184 * config/arm/cortex-a15-neon.md: Update with new attributes.
18185 * config/arm/cortex-a5.md: Update with new attributes.
18186 * config/arm/cortex-a53.md: Update with new attributes.
18187 * config/arm/cortex-a7.md: Update with new attributes.
18188 * config/arm/cortex-a8-neon.md: Update with new attributes.
18189 * config/arm/cortex-a9.md: Update with new attributes.
18190 * config/arm/cortex-m4-fpu.md: Update with new attributes.
18191 * config/arm/cortex-r4f.md: Update with new attributes.
18192 * config/arm/marvell-pj4.md: Update with new attributes.
18193 * config/arm/vfp11.md: Update with new attributes.
18194
18195 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18196
18197 * config/aarch64/arm_neon.h
18198 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
18199 (vqtbx<1,2,3,4><q>_s8): Likewise.
18200
18201 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18202
18203 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
18204 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
18205 (add<mode>3): Add type attribute.
18206 (add<mode>3): Likewise.
18207 (usadd<mode>3): Likewise.
18208 (ssadd<mode>3): Likewise.
18209 (sub<mode>3): Likewise.
18210 (sub<mode>3): Likewise.
18211 (ussub<mode>3): Likewise.
18212 (sssub<mode>3): Likewise.
18213 (ssmulsa3): Likewise.
18214 (usmulusa3): Likewise.
18215 (arm_usatsihi): Likewise.
18216 * config/arm/vfp.md
18217 (*movdi_vfp): Add types for all instructions.
18218 (*movdi_vfp_cortexa8): Likewise.
18219 (*movhf_vfp_neon): Likewise.
18220 (*movhf_vfp): Likewise.
18221 (*movdf_vfp): Likewise.
18222 (*thumb2_movdf_vfp): Likewise.
18223 (*thumb2_movdfcc_vfp): Likewise.
18224 * config/arm/arm.md: Add type attribute to all insn patterns.
18225 (*thumb1_adddi3): Add type attribute.
18226 (*arm_adddi3): Likewise.
18227 (*adddi_sesidi_di): Likewise.
18228 (*adddi_zesidi_di): Likewise.
18229 (*thumb1_addsi3): Likewise.
18230 (addsi3_compare0): Likewise.
18231 (*addsi3_compare0_scratch): Likewise.
18232 (*compare_negsi_si): Likewise.
18233 (cmpsi2_addneg): Likewise.
18234 (*addsi3_carryin_<optab>): Likewise.
18235 (*addsi3_carryin_alt2_<optab>): Likewise.
18236 (*addsi3_carryin_clobercc_<optab>): Likewise.
18237 (*subsi3_carryin): Likewise.
18238 (*subsi3_carryin_const): Likewise.
18239 (*subsi3_carryin_compare): Likewise.
18240 (*subsi3_carryin_compare_const): Likewise.
18241 (*arm_subdi3): Likewise.
18242 (*thumb_subdi3): Likewise.
18243 (*subdi_di_zesidi): Likewise.
18244 (*subdi_di_sesidi): Likewise.
18245 (*subdi_zesidi_di): Likewise.
18246 (*subdi_sesidi_di): Likewise.
18247 (*subdi_zesidi_ze): Likewise.
18248 (thumb1_subsi3_insn): Likewise.
18249 (*arm_subsi3_insn): Likewise.
18250 (*anddi3_insn): Likewise.
18251 (*anddi_zesidi_di): Likewise.
18252 (*anddi_sesdi_di): Likewise.
18253 (*ne_zeroextracts): Likewise.
18254 (*ne_zeroextracts): Likewise.
18255 (*ite_ne_zeroextr): Likewise.
18256 (*ite_ne_zeroextr): Likewise.
18257 (*anddi_notdi_di): Likewise.
18258 (*anddi_notzesidi): Likewise.
18259 (*anddi_notsesidi): Likewise.
18260 (andsi_notsi_si): Likewise.
18261 (thumb1_bicsi3): Likewise.
18262 (*iordi3_insn): Likewise.
18263 (*iordi_zesidi_di): Likewise.
18264 (*iordi_sesidi_di): Likewise.
18265 (*thumb1_iorsi3_insn): Likewise.
18266 (*xordi3_insn): Likewise.
18267 (*xordi_zesidi_di): Likewise.
18268 (*xordi_sesidi_di): Likewise.
18269 (*arm_xorsi3): Likewise.
18270 (*andsi_iorsi3_no): Likewise.
18271 (*smax_0): Likewise.
18272 (*smax_m1): Likewise.
18273 (*arm_smax_insn): Likewise.
18274 (*smin_0): Likewise.
18275 (*arm_smin_insn): Likewise.
18276 (*arm_umaxsi3): Likewise.
18277 (*arm_uminsi3): Likewise.
18278 (*minmax_arithsi): Likewise.
18279 (*minmax_arithsi_): Likewise.
18280 (*satsi_<SAT:code>): Likewise.
18281 (arm_ashldi3_1bit): Likewise.
18282 (arm_ashrdi3_1bit): Likewise.
18283 (arm_lshrdi3_1bit): Likewise.
18284 (*arm_negdi2): Likewise.
18285 (*thumb1_negdi2): Likewise.
18286 (*arm_negsi2): Likewise.
18287 (*thumb1_negsi2): Likewise.
18288 (*negdi_extendsid): Likewise.
18289 (*negdi_zero_extend): Likewise.
18290 (*arm_abssi2): Likewise.
18291 (*thumb1_abssi2): Likewise.
18292 (*arm_neg_abssi2): Likewise.
18293 (*thumb1_neg_abss): Likewise.
18294 (one_cmpldi2): Likewise.
18295 (extend<mode>di2): Likewise.
18296 (*compareqi_eq0): Likewise.
18297 (*arm_extendhisi2addsi): Likewise.
18298 (*arm_movdi): Likewise.
18299 (*thumb1_movdi_insn): Likewise.
18300 (*arm_movt): Likewise.
18301 (*thumb1_movsi_insn): Likewise.
18302 (pic_add_dot_plus_four): Likewise.
18303 (pic_add_dot_plus_eight): Likewise.
18304 (tls_load_dot_plus_eight): Likewise.
18305 (*thumb1_movhi_insn): Likewise.
18306 (*thumb1_movsf_insn): Likewise.
18307 (*movdf_soft_insn): Likewise.
18308 (*thumb_movdf_insn): Likewise.
18309 (cbranchsi4_insn): Likewise.
18310 (cbranchsi4_scratch): Likewise.
18311 (*negated_cbranchsi4): Likewise.
18312 (*tbit_cbranch): Likewise.
18313 (*tlobits_cbranch): Likewise.
18314 (*tstsi3_cbranch): Likewise.
18315 (*cbranchne_decr1): Likewise.
18316 (*addsi3_cbranch): Likewise.
18317 (*addsi3_cbranch_scratch): Likewise.
18318 (*arm_cmpdi_insn): Likewise.
18319 (*arm_cmpdi_unsig): Likewise.
18320 (*arm_cmpdi_zero): Likewise.
18321 (*thumb_cmpdi_zero): Likewise.
18322 (*deleted_compare): Likewise.
18323 (*mov_scc): Likewise.
18324 (*mov_negscc): Likewise.
18325 (*mov_notscc): Likewise.
18326 (*cstoresi_eq0_thumb1_insn): Likewise.
18327 (cstoresi_nltu_thumb1): Likewise.
18328 (cstoresi_ltu_thu): Likewise.
18329 (thumb1_addsi3_addgeu): Likewise.
18330 (*arm_jump): Likewise.
18331 (*thumb_jump): Likewise.
18332 (*check_arch2): Likewise.
18333 (arm_casesi_internal): Likewise.
18334 (thumb1_casesi_dispatch): Likewise.
18335 (*arm_indirect_jump): Likewise.
18336 (*thumb1_indirect_jump): Likewise.
18337 (nop): Likewise.
18338 (*and_scc): Likewise.
18339 (*ior_scc): Likewise.
18340 (*compare_scc): Likewise.
18341 (*cond_move): Likewise.
18342 (*cond_arith): Likewise.
18343 (*cond_sub): Likewise.
18344 (*cmp_ite0): Likewise.
18345 (*cmp_ite1): Likewise.
18346 (*cmp_and): Likewise.
18347 (*cmp_ior): Likewise.
18348 (*ior_scc_scc): Likewise.
18349 (*ior_scc_scc_cmp): Likewise.
18350 (*and_scc_scc): Likewise.
18351 (*and_scc_scc_cmp): Likewise.
18352 (*and_scc_scc_nod): Likewise.
18353 (*negscc): Likewise.
18354 (movcond_addsi): Likewise.
18355 (movcond): Likewise.
18356 (*ifcompare_plus_move): Likewise.
18357 (*if_plus_move): Likewise.
18358 (*ifcompare_move_plus): Likewise.
18359 (*if_move_plus): Likewise.
18360 (*ifcompare_arith_arith): Likewise.
18361 (*if_arith_arith): Likewise.
18362 (*ifcompare_arith_move): Likewise.
18363 (*if_arith_move): Likewise.
18364 (*ifcompare_move_arith): Likewise.
18365 (*if_move_arith): Likewise.
18366 (*ifcompare_move_not): Likewise.
18367 (*if_move_not): Likewise.
18368 (*ifcompare_not_move): Likewise.
18369 (*if_not_move): Likewise.
18370 (*ifcompare_shift_move): Likewise.
18371 (*if_shift_move): Likewise.
18372 (*ifcompare_move_shift): Likewise.
18373 (*if_move_shift): Likewise.
18374 (*ifcompare_shift_shift): Likewise.
18375 (*ifcompare_not_arith): Likewise.
18376 (*ifcompare_arith_not): Likewise.
18377 (*if_arith_not): Likewise.
18378 (*ifcompare_neg_move): Likewise.
18379 (*if_neg_move): Likewise.
18380 (*ifcompare_move_neg): Likewise.
18381 (*if_move_neg): Likewise.
18382 (prologue_thumb1_interwork): Likewise.
18383 (*cond_move_not): Likewise.
18384 (*sign_extract_onebit): Likewise.
18385 (*not_signextract_onebit): Likewise.
18386 (stack_tie): Likewise.
18387 (align_4): Likewise.
18388 (align_8): Likewise.
18389 (consttable_end): Likewise.
18390 (consttable_1): Likewise.
18391 (consttable_2): Likewise.
18392 (consttable_4): Likewise.
18393 (consttable_8): Likewise.
18394 (consttable_16): Likewise.
18395 (*thumb1_tablejump): Likewise.
18396 (prefetch): Likewise.
18397 (force_register_use): Likewise.
18398 (thumb_eh_return): Likewise.
18399 (load_tp_hard): Likewise.
18400 (load_tp_soft): Likewise.
18401 (tlscall): Likewise.
18402 (*arm_movtas_ze): Likewise.
18403 (*arm_rev): Likewise.
18404 (*arm_revsh): Likewise.
18405 (*arm_rev16): Likewise.
18406 * config/arm/thumb2.md
18407 (*thumb2_smaxsi3): Likewise.
18408 (*thumb2_sminsi3): Likewise.
18409 (*thumb32_umaxsi3): Likewise.
18410 (*thumb2_uminsi3): Likewise.
18411 (*thumb2_negdi2): Likewise.
18412 (*thumb2_abssi2): Likewise.
18413 (*thumb2_neg_abss): Likewise.
18414 (*thumb2_movsi_insn): Likewise.
18415 (tls_load_dot_plus_four): Likewise.
18416 (*thumb2_movhi_insn): Likewise.
18417 (*thumb2_mov_scc): Likewise.
18418 (*thumb2_mov_negs): Likewise.
18419 (*thumb2_mov_negs): Likewise.
18420 (*thumb2_mov_nots): Likewise.
18421 (*thumb2_mov_nots): Likewise.
18422 (*thumb2_movsicc_): Likewise.
18423 (*thumb2_movsfcc_soft_insn): Likewise.
18424 (*thumb2_indirect_jump): Likewise.
18425 (*thumb2_and_scc): Likewise.
18426 (*thumb2_ior_scc): Likewise.
18427 (*thumb2_ior_scc_strict_it): Likewise.
18428 (*thumb2_cond_move): Likewise.
18429 (*thumb2_cond_arith): Likewise.
18430 (*thumb2_cond_ari): Likewise.
18431 (*thumb2_cond_sub): Likewise.
18432 (*thumb2_negscc): Likewise.
18433 (*thumb2_movcond): Likewise.
18434 (thumb2_casesi_internal): Likewise.
18435 (thumb2_casesi_internal_pic): Likewise.
18436 (*thumb2_alusi3_short): Likewise.
18437 (*thumb2_mov<mode>_shortim): Likewise.
18438 (*thumb2_addsi_short): Likewise.
18439 (*thumb2_subsi_short): Likewise.
18440 (thumb2_addsi3_compare0): Likewise.
18441 (*thumb2_cbz): Likewise.
18442 (*thumb2_cbnz): Likewise.
18443 (*thumb2_one_cmplsi2_short): Likewise.
18444 (*thumb2_negsi2_short): Likewise.
18445 (*orsi_notsi_si): Likewise.
18446 * config/arm/arm1020e.md: Update with new attributes.
18447 * config/arm/arm1026ejs.md: Update with new attributes.
18448 * config/arm/arm1136jfs.md: Update with new attributes.
18449 * config/arm/arm926ejs.md: Update with new attributes.
18450 * config/arm/cortex-a15.md: Update with new attributes.
18451 * config/arm/cortex-a5.md: Update with new attributes.
18452 * config/arm/cortex-a53.md: Update with new attributes.
18453 * config/arm/cortex-a7.md: Update with new attributes.
18454 * config/arm/cortex-a8.md: Update with new attributes.
18455 * config/arm/cortex-a9.md: Update with new attributes.
18456 * config/arm/cortex-m4.md: Update with new attributes.
18457 * config/arm/cortex-r4.md: Update with new attributes.
18458 * config/arm/fa526.md: Update with new attributes.
18459 * config/arm/fa606te.md: Update with new attributes.
18460 * config/arm/fa626te.md: Update with new attributes.
18461 * config/arm/fa726te.md: Update with new attributes.
18462
18463 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18464
18465 * config/aarch64/aarch64-simd.md
18466 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
18467 <vwx> iterator to ensure correct register choice.
18468 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
18469 (aarch64_sqdmull_n<mode>): Likewise.
18470 (aarch64_sqdmull2_n<mode>_internal): Likewise.
18471 * config/aarch64/arm_neon.h
18472 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
18473 (vml<as><q>_n_<su>16): Likewise.
18474 (vml<as>l_high_lane<q>_<su>16): Likewise.
18475 (vml<as>l_high_n_<su>16): Likewise.
18476 (vml<as>l_lane<q>_<su>16): Likewise.
18477 (vml<as>l_n_<su>16): Likewise.
18478 (vmul<q>_lane<q>_<su>16): Likewise.
18479 (vmul<q>_n_<su>16): Likewise.
18480 (vmull_lane<q>_<su>16): Likewise.
18481 (vmull_n_<su>16): Likewise.
18482 (vmull_high_lane<q>_<su>16): Likewise.
18483 (vmull_high_n_<su>16): Likewise.
18484 (vqrdmulh<q>_n_s16): Likewise.
18485
18486 2013-09-06 Tejas Belagod <tejas.belagod@arm.com>
18487
18488 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
18489 have the correct lane parameter.
18490
18491 2013-09-06 Richard Biener <rguenther@suse.de>
18492
18493 * cfganal.c (control_dependences::~control_dependences):
18494 Properly free all of the vector.
18495
18496 2013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
18497
18498 PR target/58269
18499 * config/i386/i386.c (ix86_conditional_register_usage):
18500 Proper initialize extended SSE registers.
18501
18502 2013-09-06 Jan Hubicka <jh@suse.cz>
18503
18504 PR tree-optimization/58311
18505 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
18506
18507 2013-09-06 Jan Hubicka <jh@suse.cz>
18508
18509 * Makefile.in (tree-sra.o): Update dependencies.
18510 * tree-sra.c: Include ipa-utils.h
18511 (scan_function): Use recursive_call_p.
18512 (has_caller_p): New function.
18513 (cgraph_for_node_and_aliases): Count also callers of aliases.
18514
18515 2013-09-06 Jan Hubicka <jh@suse.cz>
18516
18517 PR middle-end/58094
18518 * cgraph.h (symtab_semantically_equivalent_p): Declare.
18519 * tree-tailcall.c: Include ipa-utils.h.
18520 (find_tail_calls): Use it.
18521 * ipa-pure-const.c (check_call): Likewise.
18522 * ipa-utils.c (recursive_call_p): New function.
18523 * ipa-utils.h (recursive_call_p): Dclare.
18524 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
18525 (symtab_semantically_equivalent_p): New function.
18526 * Makefile.in (tree-tailcall.o): Update dependencies.
18527
18528 2013-09-06 Eric Botcazou <ebotcazou@adacore.com>
18529
18530 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
18531 non-inlinable part.
18532
18533 2013-09-06 Richard Biener <rguenther@suse.de>
18534
18535 * lto-streamer.h (lto_global_var_decls): Remove.
18536 * Makefile.in (OBJS): Remove lto-symtab.o.
18537 (lto-symtab.o): Remove.
18538 (GTFILES): Remove lto-symtab.c
18539 * lto-symtab.c: Move to lto/
18540
18541 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18542
18543 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
18544 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
18545 (UNSPEC_FPINT_RINT): New constant definitions.
18546 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
18547 definition with 2 attributes.
18548 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
18549 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
18550 definitions.
18551
18552 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18553
18554 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
18555 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
18556 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
18557 attribute to "z196_alone".
18558 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
18559 "zEC12_simple".
18560
18561 2013-09-06 Richard Biener <rguenther@suse.de>
18562
18563 * basic-block.h (class control_dependences): New.
18564 * tree-ssa-dce.c (control_dependence_map): Remove.
18565 (cd): New global.
18566 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
18567 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
18568 find_pdom, find_control_dependence, find_all_control_dependences):
18569 Move to cfganal.c.
18570 (mark_control_dependent_edges_necessary,
18571 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
18572 tree_dce_done, perform_tree_ssa_dce): Adjust.
18573 * cfganal.c (set_control_dependence_map_bit,
18574 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
18575 find_all_control_dependences): Move from tree-ssa-dce.c and
18576 implement as methods of control_dependences class.
18577 (control_dependences::control_dependences): New.
18578 (control_dependences::~control_dependences): Likewise.
18579 (control_dependences::get_edges_dependent_on): Likewise.
18580 (control_dependences::get_edge): Likewise.
18581
18582 2013-09-04 Jan Hubicka <jh@suse.cz>
18583
18584 * tree.c (types_same_for_odr): Drop overactive check.
18585 * ipa-devirt.c (hash_type_name): Likewise.
18586
18587 2013-09-04 Jan Hubicka <jh@suse.cz>
18588
18589 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
18590 (analyze_functions): ... here.
18591
18592 2013-09-04 Jan Hubicka <jh@suse.cz>
18593
18594 PR middle-end/58201
18595 * cgraphunit.c (analyze_functions): Clear AUX fields
18596 after processing; initialize assembler name has.
18597
18598 2013-09-05 Jeff Law <law@redhat.com>
18599
18600 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
18601 from thread_around_empty_block. Record threading path into PATH.
18602 Recurse if threading through the initial block is successful.
18603 (thread_across_edge): Corresponding changes to slightly simplify.
18604
18605 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
18606
18607 * config/aarch64/aarch64.md
18608 (type): Remove frecpe, frecps, frecpx.
18609 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
18610 fix to be a TARGET_SIMD instruction.
18611 (aarch64_frecps): Remove.
18612 * config/aarch64/aarch64-simd.md
18613 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
18614 (aarch64_frecps<mode>): Handle all float/vector of float modes.
18615
18616 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
18617 Sofiane Naci <sofiane.naci@arm.com>
18618
18619 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
18620 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
18621 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
18622 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
18623 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
18624 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
18625 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
18626 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
18627 into "clz, "rbit". Rename "shift" to "shift_imm".
18628 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
18629 changes. Update for attribute changes all occurrences of arlo_* and
18630 shift* types.
18631 * config/arm/arm-fixed.md: Update for attribute changes
18632 all occurrences of arlo_* types.
18633 * config/arm/thumb2.md: Update for attribute changes all occurrences
18634 of arlo_* types.
18635 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
18636 (cortexa7_older_only): Likewise.
18637 (cortexa7_younger): Likewise.
18638 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
18639 (1020alu_shift_op): Likewise.
18640 (1020alu_shift_reg_op): Likewise.
18641 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
18642 (alu_shift_op): Likewise.
18643 (alu_shift_reg_op): Likewise.
18644 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
18645 (11_alu_shift_op): Likewise.
18646 (11_alu_shift_reg_op): Likewise.
18647 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
18648 (9_alu_shift_reg_op): Likewise.
18649 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
18650 attribute changes.
18651 (cortex_a15_alu_shift): Likewise.
18652 (cortex_a15_alu_shift_reg): Likewise.
18653 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
18654 attribute changes.
18655 (cortex_a5_alu_shift): Likewise.
18656 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
18657 attribute changes.
18658 (cortex_a53_alu_shift): Likewise.
18659 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
18660 attribute changes.
18661 (cortex_a7_alu_reg): Likewise.
18662 (cortex_a7_alu_shift): Likewise.
18663 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
18664 attribute changes.
18665 (cortex_a8_alu_shift): Likewise.
18666 (cortex_a8_alu_shift_reg): Likewise.
18667 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
18668 (cortex_a9_dp_shift): Likewise.
18669 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
18670 attribute changes.
18671 * config/arm/cortex-r4.md
18672 (cortex_r4_alu): Update for attribute changes.
18673 (cortex_r4_mov): Likewise.
18674 (cortex_r4_alu_shift_reg): Likewise.
18675 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
18676 (526_alu_shift_op): Likewise.
18677 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
18678 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
18679 (626te_alu_shift_op): Likewise.
18680 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
18681 (726te_alu_shift_op): Likewise.
18682 (726te_alu_shift_reg_op): Likewise.
18683 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
18684 (mp626_alu_shift_op): Likewise.
18685 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
18686 (pj4_alu_conds): Likewise.
18687 (pj4_shift): Likewise.
18688 (pj4_shift_conds): Likewise.
18689 (pj4_alu_shift): Likewise.
18690 (pj4_alu_shift_conds): Likewise.
18691 * config/aarch64/aarch64.md: Update for attribute change
18692 all occurrences of arlo_* and shift* types.
18693
18694 2013-09-05 Mike Stump <mikestump@comcast.net>
18695
18696 * tree.h: Move documentation for tree_function_decl to tree-core.h
18697 with the declaration.
18698
18699 2013-09-05 Peter Bergner <bergner@vnet.ibm.com>
18700
18701 PR target/58139
18702 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
18703 looking for widest mode.
18704
18705 2013-09-05 Eric Botcazou <ebotcazou@adacore.com>
18706
18707 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
18708
18709 2013-09-05 Richard Biener <rguenther@suse.de>
18710
18711 PR tree-optimization/58137
18712 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
18713 Do not create vectors of pointers.
18714 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
18715 types for the components of the vector initializer.
18716 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
18717 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
18718
18719 2013-09-05 Martin Jambor <mjambor@suse.cz>
18720
18721 * ipa-prop.c (remove_described_reference): Accept missing references,
18722 return false if that hppens, otherwise return true.
18723 (cgraph_node_for_jfunc): New function.
18724 (try_decrement_rdesc_refcount): Likewise.
18725 (try_make_edge_direct_simple_call): Use them.
18726 (ipa_edge_removal_hook): Remove references from rdescs.
18727 (ipa_edge_duplication_hook): Clone rdescs and their references
18728 when the new edge has the same caller as the old one.
18729 * cgraph.c (cgraph_resolve_speculation): Remove speculative
18730 reference before removing any edges.
18731
18732 2013-09-05 Richard Earnshaw <rearnsha@arm.com>
18733
18734 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
18735 initial store.
18736 * thumb2.md (thumb2_storewb_parisi): New pattern.
18737
18738 2013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
18739
18740 * config/aarch64/aarch64-option-extensions.def: Add
18741 AARCH64_OPT_EXTENSION of 'crc'.
18742 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
18743 (AARCH64_ISA_CRC): Ditto.
18744 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
18745 description of the CRC extension.
18746
18747 2013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
18748
18749 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
18750 * config/rs6000/linux.h: Ditto.
18751 * alpha/linux.h: Ditto.
18752 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
18753 no_c99_libc_has_function.
18754 * config/c6x/uclinux-elf.h: Ditto.
18755 * config/lm32/uclinux-elf.h: Ditto.
18756 * config/m68k/uclinux.h: Ditto.
18757 * config/moxie/uclinux.h: Ditto.
18758 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
18759 (crisv32-*-linux*, cris-*-linux*): Ditto.
18760 * config/bfin/bfin.c: Include "tm_p.h".
18761
18762 2013-09-05 Richard Biener <rguenther@suse.de>
18763
18764 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
18765 check for a definition without a basic-block.
18766
18767 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
18768 Sofiane Naci <sofiane.naci@arm.com>
18769
18770 * config/aarch64/aarch64.md
18771 (*movti_aarch64): Rename r_2_f and f_2_r.
18772 (*movsf_aarch64): Likewise.
18773 (*movdf_aarch64): Likewise.
18774 (*movtf_aarch64): Likewise.
18775 (aarch64_movdi_<mode>low): Likewise.
18776 (aarch64_movdi_<mode>high): Likewise.
18777 (aarch64_mov<mode>high_di): Likewise.
18778 (aarch64_mov<mode>low_di): Likewise.
18779 (aarch64_movtilow_tilow): Likewise.
18780 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
18781 values to config/arm/types.md
18782 (attribute "conds"): Update for attribute change.
18783 (anddi3_insn): Likewise.
18784 (iordi3_insn): Likewise.
18785 (xordi3_insn): Likewise.
18786 (one_cmpldi2): Likewise.
18787 * config/arm/types.md (type): Add Neon types.
18788 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
18789 use "type" attribute.
18790 (movmisalign<mode>_neon_store): Likewise.
18791 (movmisalign<mode>_neon_load): Likewise.
18792 (vec_set<mode>_internal): Likewise.
18793 (vec_setv2di_internal): Likewise.
18794 (vec_extract<mode>): Likewise.
18795 (vec_extractv2di): Likewise.
18796 (add<mode>3_neon): Likewise.
18797 (adddi3_neon): Likewise.
18798 (sub<mode>3_neon): Likewise.
18799 (subdi3_neon): Likewise.
18800 (mul<mode>3_neon): Likewise.
18801 (mul<mode>3add<mode>_neon): Likewise.
18802 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
18803 (fma<VCVTF:mode>4)): Likewise.
18804 (fma<VCVTF:mode>4_intrinsic): Likewise.
18805 (fmsub<VCVTF:mode>4)): Likewise.
18806 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
18807 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
18808 (ior<mode>3): Likewise.
18809 (and<mode>3): Likewise.
18810 (anddi3_neon): Likewise.
18811 (orn<mode>3_neon): Likewise.
18812 (orndi3_neon): Likewise.
18813 (bic<mode>3_neon): Likewise.
18814 (bicdi3_neon): Likewise.
18815 (xor<mode>3): Likewise.
18816 (one_cmpl<mode>2): Likewise.
18817 (abs<mode>2): Likewise.
18818 (neg<mode>2): Likewise.
18819 (umin<mode>3_neon): Likewise.
18820 (umax<mode>3_neon): Likewise.
18821 (smin<mode>3_neon): Likewise.
18822 (smax<mode>3_neon): Likewise.
18823 (vashl<mode>3): Likewise.
18824 (vashr<mode>3_imm): Likewise.
18825 (vlshr<mode>3_imm): Likewise.
18826 (ashl<mode>3_signed): Likewise.
18827 (ashl<mode>3_unsigned): Likewise.
18828 (neon_load_count): Likewise.
18829 (ashldi3_neon_noclobber): Likewise.
18830 (signed_shift_di3_neon): Likewise.
18831 (unsigned_shift_di3_neon): Likewise.
18832 (ashrdi3_neon_imm_noclobber): Likewise.
18833 (lshrdi3_neon_imm_noclobber): Likewise.
18834 (widen_ssum<mode>3): Likewise.
18835 (widen_usum<mode>3): Likewise.
18836 (quad_halves_<code>v4si): Likewise.
18837 (quad_halves_<code>v4sf): Likewise.
18838 (quad_halves_<code>v8hi): Likewise.
18839 (quad_halves_<code>v16qi): Likewise.
18840 (reduc_splus_v2di): Likewise.
18841 (neon_vpadd_internal<mode>): Likewise.
18842 (neon_vpsmin<mode>): Likewise.
18843 (neon_vpsmax<mode>): Likewise.
18844 (neon_vpumin<mode>): Likewise.
18845 (neon_vpumax<mode>): Likewise.
18846 (ss_add<mode>_neon): Likewise.
18847 (us_add<mode>_neon): Likewise.
18848 (ss_sub<mode>_neon): Likewise.
18849 (us_sub<mode>_neon): Likewise.
18850 (neon_vadd<mode>_unspec): Likewise.
18851 (neon_vaddl<mode>): Likewise.
18852 (neon_vaddw<mode>): Likewise.
18853 (neon_vhadd<mode>): Likewise.
18854 (neon_vqadd<mode>): Likewise.
18855 (neon_vaddhn<mode>): Likewise.
18856 (neon_vmul<mode>): Likewise.
18857 (neon_vmla<mode>): Likewise.
18858 (neon_vmlal<mode>): Likewise.
18859 (neon_vmls<mode>): Likewise.
18860 (neon_vmlsl<mode>): Likewise.
18861 (neon_vqdmulh<mode>): Likewise.
18862 (neon_vqdmlal<mode>): Likewise.
18863 (neon_vqdmlsl<mode>): Likewise.
18864 (neon_vmull<mode>): Likewise.
18865 (neon_vqdmull<mode>): Likewise.
18866 (neon_vsub<mode>_unspec): Likewise.
18867 (neon_vsubl<mode>): Likewise.
18868 (neon_vsubw<mode>): Likewise.
18869 (neon_vqsub<mode>): Likewise.
18870 (neon_vhsub<mode>): Likewise.
18871 (neon_vsubhn<mode>): Likewise.
18872 (neon_vceq<mode>): Likewise.
18873 (neon_vcge<mode>): Likewise.
18874 (neon_vcgeu<mode>): Likewise.
18875 (neon_vcgt<mode>): Likewise.
18876 (neon_vcgtu<mode>): Likewise.
18877 (neon_vcle<mode>): Likewise.
18878 (neon_vclt<mode>): Likewise.
18879 (neon_vcage<mode>): Likewise.
18880 (neon_vcagt<mode>): Likewise.
18881 (neon_vtst<mode>): Likewise.
18882 (neon_vabd<mode>): Likewise.
18883 (neon_vabdl<mode>): Likewise.
18884 (neon_vaba<mode>): Likewise.
18885 (neon_vabal<mode>): Likewise.
18886 (neon_vmax<mode>): Likewise.
18887 (neon_vmin<mode>): Likewise.
18888 (neon_vpaddl<mode>): Likewise.
18889 (neon_vpadal<mode>): Likewise.
18890 (neon_vpmax<mode>): Likewise.
18891 (neon_vpmin<mode>): Likewise.
18892 (neon_vrecps<mode>): Likewise.
18893 (neon_vrsqrts<mode>): Likewise.
18894 (neon_vqabs<mode>): Likewise.
18895 (neon_vqneg<mode>): Likewise.
18896 (neon_vcls<mode>): Likewise.
18897 (clz<mode>2): Likewise.
18898 (popcount<mode>2): Likewise.
18899 (neon_vrecpe): Likewise.
18900 (neon_vrsqrte): Likewise.
18901 (neon_vget_lane<mode>_sext_internal): Likewise.
18902 (neon_vget_lane<mode>_zext_internal): Likewise.
18903 (neon_vdup_n<mode>): Likewise.
18904 (neon_vdup_nv2di): Likewise.
18905 (neon_vdpu_lane<mode>_internal): Likewise.
18906 (neon_vswp<mode>): Likewise.
18907 (float<mode><V_cvtto>2): Likewise.
18908 (floatuns<mode><V_cvtto>2): Likewise.
18909 (fix_trunc<mode><V_cvtto>)2): Likewise
18910 (fixuns_trunc<mode><V_cvtto)2): Likewise.
18911 (neon_vcvt<mode>): Likewise.
18912 (neon_vcvtv4sfv4hf): Likewise.
18913 (neon_vcvtv4hfv4sf): Likewise.
18914 (neon_vcvt_n<mode>): Likewise.
18915 (neon_vmovn<mode>): Likewise.
18916 (neon_vqmovn<mode>): Likewise.
18917 (neon_vqmovun<mode>): Likewise.
18918 (neon_vmovl<mode>): Likewise.
18919 (neon_vmul_lane<mode>): Likewise.
18920 (neon_vmull_lane<mode>): Likewise.
18921 (neon_vqdmull_lane<mode>): Likewise.
18922 (neon_vqdmulh_lane<mode>): Likewise.
18923 (neon_vmla_lane<mode>): Likewise.
18924 (neon_vmlal_lane<mode>): Likewise.
18925 (neon_vqdmlal_lane<mode>): Likewise.
18926 (neon_vmls_lane<mode>): Likewise.
18927 (neon_vmlsl_lane<mode>): Likewise.
18928 (neon_vqdmlsl_lane<mode>): Likewise.
18929 (neon_vext<mode>): Likewise.
18930 (neon_vrev64<mode>): Likewise.
18931 (neon_vrev32<mode>): Likewise.
18932 (neon_vrev16<mode>): Likewise.
18933 (neon_vbsl<mode>_internal): Likewise.
18934 (neon_vshl<mode>): Likewise.
18935 (neon_vqshl<mode>): Likewise.
18936 (neon_vshr_n<mode>): Likewise.
18937 (neon_vshrn_n<mode>): Likewise.
18938 (neon_vqshrn_n<mode>): Likewise.
18939 (neon_vqshrun_n<mode>): Likewise.
18940 (neon_vshl_n<mode>): Likewise.
18941 (neon_vqshl_n<mode>): Likewise.
18942 (neon_vqshlu_n<mode>): Likewise.
18943 (neon_vshll_n<mode>): Likewise.
18944 (neon_vsra_n<mode>): Likewise.
18945 (neon_vsri_n<mode>): Likewise.
18946 (neon_vsli_n<mode>): Likewise.
18947 (neon_vtbl1v8qi): Likewise.
18948 (neon_vtbl2v8qi): Likewise.
18949 (neon_vtbl3v8qi): Likewise.
18950 (neon_vtbl4v8qi): Likewise.
18951 (neon_vtbx1v8qi): Likewise.
18952 (neon_vtbx2v8qi): Likewise.
18953 (neon_vtbx3v8qi): Likewise.
18954 (neon_vtbx4v8qi): Likewise.
18955 (neon_vtrn<mode>_internal): Likewise.
18956 (neon_vzip<mode>_internal): Likewise.
18957 (neon_vuzp<mode>_internal): Likewise.
18958 (neon_vld1<mode>): Likewise.
18959 (neon_vld1_lane<mode>): Likewise.
18960 (neon_vld1_dup<mode>): Likewise.
18961 (neon_vld1_dupv2di): Likewise.
18962 (neon_vst1<mode>): Likewise.
18963 (neon_vst1_lane<mode>): Likewise.
18964 (neon_vld2<mode>): Likewise.
18965 (neon_vld2_lane<mode>): Likewise.
18966 (neon_vld2_dup<mode>): Likewise.
18967 (neon_vst2<mode>): Likewise.
18968 (neon_vst2_lane<mode>): Likewise.
18969 (neon_vld3<mode>): Likewise.
18970 (neon_vld3qa<mode>): Likewise.
18971 (neon_vld3qb<mode>): Likewise.
18972 (neon_vld3_lane<mode>): Likewise.
18973 (neon_vld3_dup<mode>): Likewise.
18974 (neon_vst3<mode>): Likewise.
18975 (neon_vst3qa<mode>): Likewise.
18976 (neon_vst3qb<mode>): Likewise.
18977 (neon_vst3_lane<mode>): Likewise.
18978 (neon_vld4<mode>): Likewise.
18979 (neon_vld4qa<mode>): Likewise.
18980 (neon_vld4qb<mode>): Likewise.
18981 (neon_vld4_lane<mode>): Likewise.
18982 (neon_vld4_dup<mode>): Likewise.
18983 (neon_vst4<mode>): Likewise.
18984 (neon_vst4qa<mode>): Likewise.
18985 (neon_vst4qb<mode>): Likewise.
18986 (neon_vst4_lane<mode>): Likewise.
18987 (neon_vec_unpack<US>_lo_<mode>): Likewise.
18988 (neon_vec_unpack<US>_hi_<mode>): Likewise.
18989 (neon_vec_<US>mult_lo_<mode>): Likewise.
18990 (neon_vec_<US>mult_hi_<mode>): Likewise.
18991 (neon_vec_<US>shiftl_<mode>): Likewise.
18992 (neon_unpack<US>_<mode>): Likewise.
18993 (neon_vec_<US>mult_<mode>): Likewise.
18994 (vec_pack_trunc_<mode>): Likewise.
18995 (neon_vec_pack_trunk_<mode>): Likewise.
18996 (neon_vabd<mode>_2): Likewise.
18997 (neon_vabd<mode>_3): Likewise.
18998 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
18999 (thumb2_movsi_vfp): Likewise.
19000 (movdi_vfp): Likewise.
19001 (movdi_vfp_cortexa8): Likewise.
19002 (movhf_vfp_neon): Likewise.
19003 (movhf_vfp): Likewiwse.
19004 (movsf_vfp): Likewiwse.
19005 (thumb2_movsf_vfp): Likewiwse.
19006 (movdf_vfp): Likewise.
19007 (thumb2_movdf_vfp): Likewise.
19008 (movsfcc_vfp): Likewise.
19009 (thumb2_movsfcc_vfp): Likewise.
19010 (movdfcc_vfp): Likewise.
19011 (thumb2_movdfcc_vfp): Likewise.
19012 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
19013 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
19014 (v10_v2c): Likewise.
19015 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
19016 attribute change.
19017 (cortex_a15_neon_int_2): Likewise.
19018 (cortex_a15_neon_int_3): Likewise.
19019 (cortex_a15_neon_int_4): Likewise.
19020 (cortex_a15_neon_int_5): Likewise.
19021 (cortex_a15_neon_vqneg_vqabs): Likewise.
19022 (cortex_a15_neon_vmov): Likewise.
19023 (cortex_a15_neon_vaba): Likewise.
19024 (cortex_a15_neon_vaba_qqq): Likewise.
19025 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19026 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
19027 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
19028 scalar_64_32_long_scalar): Likewise.
19029 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19030 (cortex_a15_neon_mla_qqq_8_16): Likewise.
19031 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
19032 lotype_qdd_64_32_long): Likewise.
19033 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
19034 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
19035 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
19036 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
19037 (cortex_a15_neon_shift_1): Likewise.
19038 (cortex_a15_neon_shift_2): Likewise.
19039 (cortex_a15_neon_shift_3): Likewise.
19040 (cortex_a15_neon_vshl_ddd): Likewise.
19041 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
19042 (cortex_a15_neon_vsra_vrsra): Likewise.
19043 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
19044 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
19045 (cortex_a15_neon_fp_vmul_ddd): Likewise.
19046 (cortex_a15_neon_fp_vmul_qqd): Likewise.
19047 (cortex_a15_neon_fp_vmla_ddd): Likewise.
19048 (cortex_a15_neon_fp_vmla_qqq): Likewise.
19049 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
19050 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
19051 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
19052 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
19053 (cortex_a15_neon_bp_simple): Likewise.
19054 (cortex_a15_neon_bp_2cycle): Likewise.
19055 (cortex_a15_neon_bp_3cycle): Likewise.
19056 (cortex_a15_neon_vld1_1_2_regs): Likewise.
19057 (cortex_a15_neon_vld1_3_4_regs): Likewise.
19058 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
19059 (cortex_a15_neon_vld2_4_regs): Likewise.
19060 (cortex_a15_neon_vld3_vld4): Likewise.
19061 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
19062 (cortex_a15_neon_vst1_3_4_regs): Likewise.
19063 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
19064 (cortex_a15_neon_vst3_vst4): Likewise.
19065 (cortex_a15_neon_vld1_vld2_lane): Likewise.
19066 (cortex_a15_neon_vld3_vld4_lane" 10
19067 (cortex_a15_neon_vst1_vst2_lane): Likewise.
19068 (cortex_a15_neon_vst3_vst4_lane): Likewise.
19069 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
19070 (cortex_a15_neon_ldm_2): Likewise.0
19071 (cortex_a15_neon_stm_2): Likewise.
19072 (cortex_a15_neon_mcr): Likewise.
19073 (cortex_a15_neon_mcr_2_mcrr): Likewise.
19074 (cortex_a15_neon_mrc): Likewise.
19075 (cortex_a15_neon_mrrc): Likewise.
19076 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
19077 change.
19078 (cortex_a15_alu_shift): Likewise.
19079 (cortex_a15_alu_shift_reg): Likewise.
19080 (cortex_a15_mult32): Likewise.
19081 (cortex_a15_mult64): Likewise.
19082 (cortex_a15_block): Likewise.
19083 (cortex_a15_branch): Likewise.
19084 (cortex_a15_load1): Likewise.
19085 (cortex_a15_load3): Likewise.
19086 (cortex_a15_store1): Likewise.
19087 (cortex_a15_store3): Likewise.
19088 (cortex_a15_call): Likewise.
19089 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
19090 (cortex_a5_f2r): Likewise.
19091 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
19092 change.
19093 (cortex_a53_f2r): Likewise.
19094 * config/arm/cortex-a7.md
19095 (cortex_a7_branch): Update for attribute change.
19096 (cortex_a7_call): Likewise.
19097 (cortex_a7_alu_imm): Likewise.
19098 (cortex_a7_alu_reg): Likewise.
19099 (cortex_a7_alu_shift): Likewise.
19100 (cortex_a7_mul): Likewise.
19101 (cortex_a7_load1): Likewise.
19102 (cortex_a7_store1): Likewise.
19103 (cortex_a7_load2): Likewise.
19104 (cortex_a7_store2): Likewise.
19105 (cortex_a7_load3): Likewise.
19106 (cortex_a7_store3): Likewise.
19107 (cortex_a7_load4): Likewise.
19108 (cortex_a7_store4): Likewise.
19109 (cortex_a7_fpalu): Likewise.
19110 (cortex_a7_fconst): Likewise.
19111 (cortex_a7_fpmuls): Likewise.
19112 (cortex_a7_neon_mul): Likewise.
19113 (cortex_a7_fpmacs): Likewise.
19114 (cortex_a7_neon_mla: Likewise.
19115 (cortex_a7_fpmuld: Likewise.
19116 (cortex_a7_fpmacd: Likewise.
19117 (cortex_a7_fpfmad: Likewise.
19118 (cortex_a7_fdivs: Likewise.
19119 (cortex_a7_fdivd: Likewise.
19120 (cortex_a7_r2f: Likewise.
19121 (cortex_a7_f2r: Likewise.
19122 (cortex_a7_f_flags: Likewise.
19123 (cortex_a7_f_loads: Likewise.
19124 (cortex_a7_f_loadd: Likewise.
19125 (cortex_a7_f_stores: Likewise.
19126 (cortex_a7_f_stored: Likewise.
19127 (cortex_a7_neon): Likewise.
19128 * config/arm/cortex-a8-neon.md
19129 (cortex_a8_neon_mrc): Update for attribute change.
19130 (cortex_a8_neon_mrrc): Likewise.
19131 (cortex_a8_neon_int_1): Likewise.
19132 (cortex_a8_neon_int_2): Likewise.
19133 (cortex_a8_neon_int_3): Likewise.
19134 (cortex_a8_neon_int_4): Likewise.
19135 (cortex_a8_neon_int_5): Likewise.
19136 (cortex_a8_neon_vqneg_vqabs): Likewise.
19137 (cortex_a8_neon_vmov): Likewise.
19138 (cortex_a8_neon_vaba): Likewise.
19139 (cortex_a8_neon_vaba_qqq): Likewise.
19140 (cortex_a8_neon_vsma): Likewise.
19141 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19142 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
19143 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
19144 long_scalar): Likewise.
19145 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19146 (cortex_a8_neon_mla_qqq_8_16): Likewise.
19147 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
19148 long_scalar_qdd_64_32_long): Likewise.
19149 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
19150 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
19151 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
19152 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
19153 (cortex_a8_neon_shift_1): Likewise.
19154 (cortex_a8_neon_shift_2): Likewise.
19155 (cortex_a8_neon_shift_3): Likewise.
19156 (cortex_a8_neon_vshl_ddd): Likewise.
19157 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
19158 (cortex_a8_neon_vsra_vrsra): Likewise.
19159 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
19160 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
19161 (cortex_a8_neon_fp_vsum): Likewise.
19162 (cortex_a8_neon_fp_vmul_ddd): Likewise.
19163 (cortex_a8_neon_fp_vmul_qqd): Likewise.
19164 (cortex_a8_neon_fp_vmla_ddd): Likewise.
19165 (cortex_a8_neon_fp_vmla_qqq): Likewise.
19166 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
19167 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
19168 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
19169 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
19170 (cortex_a8_neon_bp_simple): Likewise.
19171 (cortex_a8_neon_bp_2cycle): Likewise.
19172 (cortex_a8_neon_bp_3cycle): Likewise.
19173 (cortex_a8_neon_ldr): Likewise.
19174 (cortex_a8_neon_str): Likewise.
19175 (cortex_a8_neon_vld1_1_2_regs): Likewise.
19176 (cortex_a8_neon_vld1_3_4_regs): Likewise.
19177 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
19178 (cortex_a8_neon_vld2_4_regs): Likewise.
19179 (cortex_a8_neon_vld3_vld4): Likewise.
19180 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
19181 (cortex_a8_neon_vst1_3_4_regs): Likewise.
19182 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
19183 (cortex_a8_neon_vst3_vst4): Likewise.
19184 (cortex_a8_neon_vld1_vld2_lane): Likewise.
19185 (cortex_a8_neon_vld3_vld4_lane): Likewise.
19186 (cortex_a8_neon_vst1_vst2_lane): Likewise.
19187 (cortex_a8_neon_vst3_vst4_lane): Likewise.
19188 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
19189 (cortex_a8_neon_mcr): Likewise.
19190 (cortex_a8_neon_mcr_2_mcrr): Likewise.
19191 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
19192 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
19193 change.
19194 (ca9_neon_mrrc): Likewise.
19195 (cortex_a9_neon_int_1): Likewise.
19196 (cortex_a9_neon_int_2): Likewise.
19197 (cortex_a9_neon_int_3): Likewise.
19198 (cortex_a9_neon_int_4): Likewise.
19199 (cortex_a9_neon_int_5): Likewise.
19200 (cortex_a9_neon_vqneg_vqabs): Likewise.
19201 (cortex_a9_neon_vmov): Likewise.
19202 (cortex_a9_neon_vaba): Likewise.
19203 (cortex_a9_neon_vaba_qqq): Likewise.
19204 (cortex_a9_neon_vsma): Likewise.
19205 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19206 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
19207 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
19208 long_scalar): Likewise.
19209 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19210 (cortex_a9_neon_mla_qqq_8_16): Likewise.
19211 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
19212 long_scalar_qdd_64_32_long): Likewise.
19213 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
19214 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
19215 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
19216 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
19217 (cortex_a9_neon_shift_1): Likewise.
19218 (cortex_a9_neon_shift_2): Likewise.
19219 (cortex_a9_neon_shift_3): Likewise.
19220 (cortex_a9_neon_vshl_ddd): Likewise.
19221 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
19222 (cortex_a9_neon_vsra_vrsra): Likewise.
19223 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
19224 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
19225 (cortex_a9_neon_fp_vsum): Likewise.
19226 (cortex_a9_neon_fp_vmul_ddd): Likewise.
19227 (cortex_a9_neon_fp_vmul_qqd): Likewise.
19228 (cortex_a9_neon_fp_vmla_ddd): Likewise.
19229 (cortex_a9_neon_fp_vmla_qqq): Likewise.
19230 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
19231 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
19232 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
19233 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
19234 (cortex_a9_neon_bp_simple): Likewise.
19235 (cortex_a9_neon_bp_2cycle): Likewise.
19236 (cortex_a9_neon_bp_3cycle): Likewise.
19237 (cortex_a9_neon_ldr): Likewise.
19238 (cortex_a9_neon_str): Likewise.
19239 (cortex_a9_neon_vld1_1_2_regs): Likewise.
19240 (cortex_a9_neon_vld1_3_4_regs): Likewise.
19241 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
19242 (cortex_a9_neon_vld2_4_regs): Likewise.
19243 (cortex_a9_neon_vld3_vld4): Likewise.
19244 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
19245 (cortex_a9_neon_vst1_3_4_regs): Likewise.
19246 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
19247 (cortex_a9_neon_vst3_vst4): Likewise.
19248 (cortex_a9_neon_vld1_vld2_lane): Likewise.
19249 (cortex_a9_neon_vld3_vld4_lane): Likewise.
19250 (cortex_a9_neon_vst1_vst2_lane): Likewise.
19251 (cortex_a9_neon_vst3_vst4_lane): Likewise.
19252 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
19253 (cortex_a9_neon_mcr): Likewise.
19254 (cortex_a9_neon_mcr_2_mcrr): Likewise.
19255 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
19256 (cortex_a9_fps): Likewise.
19257 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
19258 change.
19259 (cortex_m4_fmuls): Likewise.
19260 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
19261 change.
19262 (cortex_r4_mrc): Likewise.
19263 * config/arm/iterators.md: Update comment referring to neon_type.
19264 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
19265 (iwmmxt_movsi_insn): Likewise.
19266 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
19267 attribute change.
19268 (pj4_core_to_vfp): Likewise.
19269 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
19270 attribute change.
19271 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
19272 (vfp_fstore): Likewise.
19273 * doc/md.texi: Change references to neon_type to refer to type.
19274
19275 2013-09-04 Dodji Seketeli <dodji@redhat.com>
19276
19277 * tree.h (DECL_BUILT_IN): Fix typo in comment.
19278
19279 2013-09-04 David Edelsohn <dje.gcc@gmail.com>
19280
19281 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
19282 lglobl if not weak.
19283
19284 2013-09-04 Easwaran Raman <eraman@google.com>
19285
19286 PR middle-end/57370
19287 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
19288 (build_and_add_sum): Use it.
19289 (appears_later_in_bb): Simplify code.
19290
19291 2013-09-04 Teresa Johnson <tejohnson@google.com>
19292
19293 * dumpfile.c (dump_finish): Don't close stderr/stdout.
19294
19295 2013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
19296
19297 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
19298
19299 2013-09-04 Jan Hubicka <jh@suse.cz>
19300
19301 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
19302 * ipa-devirt.c: Include diganostic.h
19303 (odr_type_d): Add types and types_set.
19304 (hash_type_name): Work for types with vtables during LTO.
19305 (odr_hasher::remove): Fix comment; destroy types_set.
19306 (add_type_duplicate): New function,
19307 (get_odr_type): Use it.
19308 (dump_type_inheritance_graph): Dump type duplicates.
19309 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
19310 graph.
19311 * tree.c (types_same_for_odr): Give exact answers on types with
19312 virtual tables.
19313
19314 2013-09-04 Dodji Seketeli <dodji@redhat.com>
19315
19316 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
19317 explaining their differences.
19318
19319 2013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
19320
19321 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
19322
19323 2013-09-03 Jeff Law <law@redhat.com>
19324
19325 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
19326 when not threading through a joiner block. Pass joiner/no joiner
19327 state to register_jump_thread.
19328 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
19329 state from argument rather than implying on path length.
19330 Dump the entire jump thread path into debugging dump.
19331 * tree-flow.h (register_jump_thread): Update prototype.
19332
19333 2013-08-29 Xinliang David Li <davidxl@google.com>
19334
19335 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
19336 Remove a trivial gcc_assert.
19337
19338 2013-08-29 Xinliang David Li <davidxl@google.com>
19339
19340 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
19341 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
19342 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
19343 Delay base decl alignment adjustment.
19344 * tree-vectorizer.c (vect_destroy_datarefs): New function.
19345 * tree-vectorizer.h: New data structure.
19346 (set_dr_misalignment): New function.
19347 (dr_misalignment): Ditto.
19348 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
19349 (vectorizable_load): Ditto.
19350 (ensure_base_align): New function.
19351 (vectorize_loops): Add dbg_cnt support.
19352 (execute_vect_slp): Ditto.
19353 * dbgcnt.def: New debug counter.
19354 * Makefile: New dependency.
19355
19356 2013-09-03 Meador Inge <meadori@codesourcery.com>
19357
19358 Revert:
19359
19360 2013-08-30 Meador Inge <meadori@codesourcery.com>
19361
19362 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
19363
19364 2013-09-03 David Edelsohn <dje.gcc@gmail.com>
19365
19366 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
19367 function descriptor.
19368
19369 2013-09-03 Richard Biener <rguenther@suse.de>
19370
19371 * tree-affine.c (add_elt_to_tree): Fix association issue,
19372 avoid useless converts and make sure to always return a
19373 properly typed result.
19374
19375 2013-09-03 Richard Biener <rguenther@suse.de>
19376
19377 PR middle-end/57656
19378 * fold-const.c (negate_expr_p): Fix division case.
19379 (negate_expr): Likewise.
19380
19381 2013-09-03 Richard Biener <rguenther@suse.de>
19382
19383 PR lto/58285
19384 * tree-streamer-out.c: Include tm.h.
19385 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
19386
19387 2013-09-03 Jan Hubicka <jh@suse.cz>
19388
19389 * tree-profile.c (tree_profiling): Cleanup CFG when done.
19390
19391 2013-09-03 Alan Modra <amodra@gmail.com>
19392
19393 * config.gcc (powerpc*-*-linux*): Add support for little-endian
19394 multilibs to big-endian target and vice versa.
19395 * config/rs6000/t-linux64: Use := assignment on all vars.
19396 (MULTILIB_EXTRA_OPTS): Remove fPIC.
19397 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
19398 * config/rs6000/t-linux64le: New file.
19399 * config/rs6000/t-linux64bele: New file.
19400 * config/rs6000/t-linux64lebe: New file.
19401
19402 2013-09-02 Jan Hubicka <jh@suse.cz>
19403
19404 * ipa-inline-transform.c (inline_transform): Do not
19405 optimize_inline_calls when not optimizing.
19406
19407 2013-09-02 Jan Hubicka <jh@suse.cz>
19408
19409 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
19410 duplicated nodes for assembler names.
19411 * symtab.c (symtab_unregister_node): Do not attempt to unlink
19412 hard registers from assembler name hash.
19413
19414 2013-09-02 Jan Hubicka <jh@suse.cz>
19415
19416 * ipa-split.c (execute_split_functions): Split externally visible
19417 functions called once.
19418
19419 2013-09-02 Martin Jambor <mjambor@suse.cz>
19420
19421 PR ipa/58106
19422 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
19423 linked list. When finding the correct duplicate, also consider also
19424 the caller in additon to its inlined_to node.
19425
19426 2013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
19427
19428 * config/aarch64/aarch64-simd-builtins.def
19429 (dup_lane_scalar): Remove.
19430 * config/aarch64/aarch64-simd.md
19431 (aarch64_simd_dup): Add 'w->w' alternative.
19432 (aarch64_dup_lane<mode>): Allow for VALL.
19433 (aarch64_dup_lane_scalar<mode>): Remove.
19434 (aarch64_dup_lane_<vswap_width_name><mode>): New.
19435 (aarch64_get_lane_signed<mode>): Add w->w altenative.
19436 (aarch64_get_lane_unsigned<mode>): Likewise.
19437 (aarch64_get_lane<mode>): Likewise.
19438 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
19439 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
19440 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
19441 (VCON): Change container of V2SF.
19442 (vswap_width_name): Likewise.
19443 * config/aarch64/arm_neon.h
19444 (__aarch64_vdup_lane_any): New.
19445 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
19446 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
19447 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
19448
19449 2013-09-02 Eric Botcazou <ebotcazou@adacore.com>
19450
19451 PR middle-end/56382
19452 * expr.c (emit_move_complex): Do not move complex FP values as parts if
19453 the source or the destination is a single hard register.
19454
19455 2013-09-02 Richard Biener <rguenther@suse.de>
19456
19457 PR middle-end/57511
19458 * tree-scalar-evolution.c (instantiate_scev_name): Allow
19459 non-linear SCEVs.
19460
19461 2013-09-02 Richard Biener <rguenther@suse.de>
19462
19463 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
19464 arithmetic to sizetype.
19465
19466 2013-09-02 Bin Cheng <bin.cheng@arm.com>
19467
19468 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
19469 Find auto-increment use both before and after candidate.
19470
19471 2013-09-02 Marek Polacek <polacek@redhat.com>
19472
19473 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
19474
19475 2013-09-01 Jan Hubicka <jh@suse.cz>
19476
19477 * Makefile.in: Add ipa-profile.o
19478 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
19479 * cgraph.c (struct cgraph_propagate_frequency_data,
19480 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
19481 ipa-profile.c; replace cgraph_ by ipa_ prefix.
19482 * cgraph.h (cgraph_propagate_frequency): Remove.
19483 * ipa-inline-analysis.c: Include ipa-utils.h;
19484 drop duplicated cfgloop.h.
19485 (inline_update_callee_summaries): Update.
19486 * ipa-profile.c: New file.
19487 * ipa-utils.h (ipa_propagate_frequency): Declare.
19488 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
19489 data-streamer.h, value-prof.h.
19490 (symtab_remove_unreachable_nodes): Update profile.
19491 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
19492 account_time_size, cmp_counts, dump_histogram,
19493 ipa_profile_generate_summary, ipa_profile_write_summary,
19494 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
19495 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
19496 Move to ipa-profile.c.
19497
19498 2013-09-01 John David Anglin <danglin@gcc.gnu.org>
19499
19500 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
19501
19502 2013-09-01 Jan Hubicka <jh@suse.cz>
19503
19504 * common.opt (fdevirtualize-speculatively): New function.
19505 * invoke.texi (fdevirtualize-speculatively): Document.
19506 * ipa-devirt.c: Include ipa-inline.h
19507 (likely_target_p): New function.
19508 (ipa_devirt): New function.
19509 (gate_ipa_devirt): New function.
19510 (pass_data_ipa_devirt): New static var.
19511 (pass_ipa_devirt): Likewise.
19512 (make_pass_ipa_devirt): New function.
19513 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
19514 (common_handle_option): Disable devirtualization when
19515 value range profiling is available.
19516 * passes.def (pass_ipa_devirt): Add.
19517 * timever.def (TV_IPA_DEVIRT): New timevar.
19518 * tree-pass.h (make_pass_ipa_devirt):
19519
19520 2013-09-01 Iain Sandoe <iain@codesourcery.com>
19521
19522 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
19523 include sanitize(undefined).
19524
19525 2013-08-31 Diego Novillo <dnovillo@google.com>
19526
19527 * Makefile.in (TREE_CORE_H): Define.
19528 (TREE_H): Use.
19529 (GTFILES): Add tree-core.h.
19530 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
19531 size the array.
19532 * tree-core.h: New file.
19533 Move all data structures, enum, typedefs, global
19534 declarations and constants from ...
19535 * tree.h: ... here.
19536
19537 2013-08-31 Jan Hubicka <jh@suse.cz>
19538
19539 * bulitins.c (expand_builtin): Do not early exit for gcov
19540 instrumented functions.
19541
19542 2013-08-31 Marek Polacek <polacek@redhat.com>
19543
19544 * ubsan.c: Include tm_p.h.
19545
19546 2013-08-31 Jan Hubicka <jh@suse.cz>
19547
19548 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
19549 warning.
19550
19551 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
19552 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
19553 * tree-cfg.c (verify_gimple_label): ... here.
19554 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
19555 (ipa_merge_profiles): New function.
19556 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
19557 (lto_input_function_body): Likewise.
19558 * ipa-utils.h (ipa_merge_profiles): Declare.
19559 * lto-streamer.h (lto_input_function_body): Update prototype.
19560 (emit_label_in_global_context_p): Remove.
19561 * lto-symtab.c: Include ipa-utils.h
19562 (lto_cgraph_replace_node): Use ipa_merge_profiles.
19563
19564 2013-08-31 Jan Hubicka <jh@suse.cz>
19565
19566 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
19567
19568 2013-08-31 Jan Hubicka <jh@suse.cz>
19569
19570 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
19571
19572 2013-08-31 Uros Bizjak <ubizjak@gmail.com>
19573
19574 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
19575 "cmp" RTX before signed_comparison_operator check to account
19576 for "code" changes.
19577
19578 2013-08-30 Jan Hubicka <jh@suse.cz>
19579
19580 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
19581 (detect_type_change_1): Rename to ...
19582 (detect_type_change): ... this one; early return on non-polymorphic
19583 types.
19584 (detect_type_change_ssa): Add comp_type parameter; update
19585 use of detect_type_change.
19586 (compute_complex_assign_jump_func): Add param_type parameter;
19587 update use of detect_type_change_ssa.
19588 (compute_complex_ancestor_jump_func): Likewise.
19589 (ipa_get_callee_param_type): New function.
19590 (ipa_compute_jump_functions_for_edge): Compute parameter type;
19591 update calls to the jump function computation functions.
19592
19593 2013-08-30 Teresa Johnson <tejohnson@google.com>
19594 Steven Bosscher <steven@gcc.gnu.org>
19595
19596 * cfgrtl.c (fixup_new_cold_bb): New routine.
19597 (commit_edge_insertions): Invoke fixup_partitions.
19598 (find_partition_fixes): New routine.
19599 (fixup_partitions): Ditto.
19600 (verify_hot_cold_block_grouping): Update comments.
19601 (rtl_verify_edges): Invoke find_partition_fixes.
19602 (rtl_verify_bb_pointers): Update comments.
19603 (rtl_verify_bb_layout): Ditto.
19604 * basic-block.h (probably_never_executed_edge_p): Declare.
19605 (fixup_partitions): Ditto.
19606 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
19607 * bb-reorder.c (sanitize_hot_paths): New function.
19608 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
19609 sanitize_hot_paths.
19610 * predict.c (probably_never_executed_edge_p): New routine.
19611 * cfg.c (check_bb_profile): Add partition insanity warnings.
19612
19613 2013-08-30 Meador Inge <meadori@codesourcery.com>
19614
19615 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
19616
19617 2013-08-30 Marek Polacek <polacek@redhat.com>
19618
19619 * Makefile.in (ubsan.o): Add.
19620 (c-family/c-ubsan.o): Add.
19621 (builtins.o): Add ubsan.h dependency.
19622 * ubsan.h: New file.
19623 * ubsan.c: New file.
19624 * common.opt: Add -fsanitize=undefined option.
19625 (flag_sanitize): Add variable.
19626 (fsanitize=): Add option. Add Driver.
19627 (fsanitize=thread): Remove option.
19628 (fsanitize=address): Likewise.
19629 (static-libubsan): New option.
19630 * doc/invoke.texi: Document the new flag and -static-libubsan.
19631 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
19632 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
19633 * builtin-attrs.def (ATTR_COLD): Define.
19634 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
19635 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
19636 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
19637 * flag-types.h (sanitize_code): New enum.
19638 * opts.c (common_handle_option): Parse command line arguments
19639 of -fsanitize=. Add -fsanitize=unreachable option.
19640 * varasm.c (get_variable_section): Adjust.
19641 (assemble_noswitch_variable): Likewise.
19642 (assemble_variable): Likewise.
19643 (output_constant_def_contents): Likewise.
19644 (categorize_decl_for_section): Likewise.
19645 (place_block_symbol): Likewise.
19646 (output_object_block): Likewise.
19647 * builtins.def: Likewise.
19648 * toplev.c (compile_file): Likewise.
19649 (process_options): Likewise.
19650 * cppbuiltin.c: Likewise.
19651 * tsan.c (tsan_pass): Likewise.
19652 (tsan_gate): Likewise.
19653 (tsan_gate_O0): Likewise.
19654 * cfgexpand.c (partition_stack_vars): Likewise.
19655 (expand_stack_vars): Likewise.
19656 (defer_stack_allocation): Likewise.
19657 (expand_used_vars): Likewise.
19658 * cfgcleanup.c (old_insns_match_p): Likewise.
19659 * asan.c (asan_finish_file): Likewise.
19660 (asan_instrument): Likewise.
19661 (gate_asan): Likewise.
19662 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
19663 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
19664 (asan_global_struct): Use pointer_sized_int_node instead
19665 calling build_nonstandard_integer_type.
19666 (initialize_sanitizer_builtins): Likewise.
19667 (asan_finish_file): Likewise.
19668 * gcc.c: Document %{%:function(args):X}.
19669 (static_spec_functions): Add sanitize.
19670 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
19671 store funcval != NULL there.
19672 (do_spec_1): Adjust handle_spec_function caller.
19673 (handle_braces): Allow %:function(args) as condition.
19674 (sanitize_spec_function): New function.
19675 (ADD_STATIC_LIBUBSAN_LIBS): Define.
19676 (LIBUBSAN_SPEC): Likewise.
19677 (LIBUBSAN_EARLY_SPEC): Likewise.
19678 (SANITIZER_SPEC): Handle libubsan.
19679 (SANITIZER_EARLY_SPEC): Likewise.
19680 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
19681 instead of fsanitize=address.
19682 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
19683 instead of fsanitize=address*.
19684 * builtins.c: Include ubsan.h.
19685 (fold_builtin_0): Instrument __builtin_unreachable.
19686 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
19687 instead of flag_asan.
19688 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
19689 (pointer_sized_int_node): Define.
19690 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
19691
19692 2013-08-30 Mike Stump <mikestump@comcast.net>
19693
19694 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
19695 with RE patterns.
19696
19697 2013-08-29 Jan Hubicka <jh@suse.cz>
19698
19699 * cgraph.c (cgraph_function_body_availability): Handle weakref
19700 correctly.
19701 * passes.def: Remove pass_fixup_cfg.
19702 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
19703 track when we need to remove functions.
19704 (gate_ipa_inline): Execute inlining always; add comment why.
19705 (pass_data_ipa_inline): Remove TODO_remove_functions.
19706 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
19707 do not produce summaries.
19708 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
19709 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
19710 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
19711 constant pool and vtable.
19712
19713 2013-08-30 Tejas Belagod <tejas.belagod@arm.com>
19714
19715 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
19716 New arm_neon.h's internal macros to specify 64-bit constants.
19717 Avoid using stdint.h's macros.
19718
19719 2013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
19720
19721 * recog.c (verify_changes): Verify that changes[i].old is non-zero
19722 before applying REG_P.
19723
19724 2013-08-30 Jakub Jelinek <jakub@redhat.com>
19725
19726 PR tree-optimization/58277
19727 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
19728 after seeing too many stmts with vdef in between dombb and current
19729 bb, invalidate everything.
19730
19731 2013-08-30 Richard Biener <rguenther@suse.de>
19732
19733 * fold-const.c (fold_single_bit_test): Fix overflow test.
19734
19735 2013-08-30 Eric Botcazou <ebotcazou@adacore.com>
19736
19737 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
19738 and which can live in a register, always retrieve the value on entry.
19739 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
19740 passed by invisible reference specially.
19741 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
19742 (vt_add_function_parameter): Correctly deal with a parameter passed by
19743 invisible reference.
19744
19745 2013-08-30 Jan Hubicka <jh@suse.cz>
19746
19747 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
19748
19749 2013-08-30 Richard Biener <rguenther@suse.de>
19750
19751 PR tree-optimization/58228
19752 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
19753 allow invariant loads in nested loop vectorization.
19754
19755 2013-08-30 Richard Biener <rguenther@suse.de>
19756
19757 PR tree-optimization/58223
19758 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
19759 (has_anti_or_output_dependence): ... this and adjust to also
19760 look for output dependences.
19761 (mark_nodes_having_upstream_mem_writes): Adjust.
19762 (rdg_flag_uses): Likewise.
19763
19764 2013-08-30 Richard Biener <rguenther@suse.de>
19765
19766 PR tree-optimization/58010
19767 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
19768 assert that we have a loop-closed PHI.
19769
19770 2013-08-29 Jan Hubicka <jh@suse.cz>
19771
19772 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
19773 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
19774 * lto-section-in.c (lto_free_function_in_decl_state): New function.
19775 (lto_free_function_in_decl_state_for_node): New function.
19776
19777 2013-08-29 Xinliang David Li <davidxl@google.com>
19778
19779 * loop-unroll.c (report_unroll_peel): Minor message change.
19780 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
19781 Emit alignment peeling message with default -fopt-info.
19782 (vect_loop_versioning): Emit loop version info message.
19783 * tree-vectorizer.c (vectorize_loops): Minor message change.
19784 (execute_vect_slp): Ditto.
19785
19786 2013-08-29 Eric Botcazou <ebotcazou@adacore.com>
19787
19788 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
19789 of the clone from the DECL_NAME of the original function.
19790
19791 2013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
19792
19793 * passes.c (register_pass): Add overload.
19794 * tree-pass.h (register_pass): Forward declare it. Add comment.
19795
19796 2013-08-29 Jan Hubicka <jh@suse.cz>
19797
19798 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
19799 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
19800 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
19801 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
19802 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
19803 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
19804 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
19805 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
19806
19807 2013-08-29 Teresa Johnson <tejohnson@google.com>
19808
19809 * dumpfile.c (dump_loc): Output column number.
19810 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
19811 * doc/invoke.texi: Document optall -fopt-info flag.
19812 * profile.c (read_profile_edge_counts): Use new dump framework.
19813 (compute_branch_probabilities): Ditto.
19814 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
19815 when pass not in any opt group.
19816 * pass_manager.h (pass_manager::get_pass_profile): New method.
19817 * value-prof.c (check_counter): Use new dump framework.
19818 (check_ic_target): Ditto.
19819 * coverage.c (get_coverage_counts): Ditto.
19820 (coverage_init): Setup new dump framework.
19821
19822 2013-08-29 Richard Biener <rguenther@suse.de>
19823
19824 PR tree-optimization/58246
19825 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
19826 handle the dominance check inside a basic-block.
19827
19828 2013-08-29 Richard Biener <rguenther@suse.de>
19829
19830 PR middle-end/57287
19831 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
19832 of default defs that appear in abnormal PHI nodes.
19833
19834 2013-08-29 Richard Biener <rguenther@suse.de>
19835
19836 PR tree-optimization/57685
19837 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
19838 single-use operands to avoid exponential complexity.
19839
19840 2013-08-28 Dehao Chen <dehao@google.com>
19841
19842 * ipa-inline.c (edge_badness): Fix integer underflow.
19843
19844 2013-08-28 Uros Bizjak <ubizjak@gmail.com>
19845
19846 * gtm-builtins.def (_ITM_free): Declare leaf.
19847
19848 2013-08-28 Jakub Jelinek <jakub@redhat.com>
19849
19850 PR target/58067
19851 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
19852 (*tls_local_dynamic_base_64_largepic): Likewise.
19853 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
19854 Remove predicate from call operand.
19855 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
19856 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
19857
19858 2013-08-28 Jeff Law <law@redhat.com>
19859
19860 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
19861 checks for the number of predecessors and successors allowed.
19862 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
19863 which require copying a joiner block if there is a request which
19864 is a subpath that requires no joiner block copying.
19865
19866 2013-08-28 Jan Hubicka <jh@suse.cz>
19867
19868 * lto-streamer-out.c (DFS_write_tree_body): Drop
19869 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
19870 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
19871 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
19872 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
19873 Do not read DECL_ERROR_ISSUED.
19874 (unpack_ts_decl_with_vis_value_fields): Do not read
19875 DECL_DEFER_OUTPUT.
19876 (lto_input_ts_binfo_tree_pointers): Do not read
19877 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
19878 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
19879 write DECL_ERROR_ISSUED..
19880 (pack_ts_decl_with_vis_value_fields): Do not write
19881 DECL_DEFER_OUTPUT.
19882 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
19883 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
19884 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
19885 * tree.h (tree_decl_common): Update comment.
19886 (DECL_ERROR_ISSUED): Remove.
19887
19888 2013-08-28 Jakub Jelinek <jakub@redhat.com>
19889
19890 PR middle-end/58257
19891 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
19892
19893 2013-08-28 Jan Hubicka <jh@suse.cz>
19894
19895 * builtins.def (free): Declare leaf.
19896
19897 2013-08-27 David Malcolm <dmalcolm@redhat.com>
19898
19899 * gdbhooks.py: New.
19900 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
19901 * configure: Regenerate.
19902
19903 2013-08-27 Martin Jambor <mjambor@suse.cz>
19904
19905 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
19906 (ipa_ancestor_jf_data): Likewise.
19907 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
19908 (ipa_get_jf_pass_through_type_preserved): New function.
19909 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
19910 (ipa_get_jf_ancestor_type_preserved): New function.
19911 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
19912 (ipa_get_jf_ancestor_result): Likewise.
19913 (propagate_vals_accross_pass_through): Use
19914 ipa_get_jf_pass_through_result to do all the value mappings.
19915 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
19916 type_preserved flag.
19917 (ipa_set_jf_cst_copy): New function.
19918 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
19919 (ipa_set_jf_arith_pass_through): Likewise.
19920 (ipa_set_ancestor_jf): Likewise.
19921 (compute_complex_assign_jump_func): Set type_preserved instead of
19922 punting.
19923 (ipa_compute_jump_functions_for_edge): Likewise.
19924 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
19925 (update_jump_functions_after_inlining): Update type_preserved.
19926 Explicitely create jump functions when combining one with pass_through.
19927 (ipa_write_jump_function): Stream the type_preserved flags.
19928 (ipa_read_jump_function): Likewise.
19929
19930 2013-08-27 Jakub Jelinek <jakub@redhat.com>
19931 Aldy Hernandez <aldyh@redhat.com>
19932
19933 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
19934 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
19935 * function.h (struct function): Add has_force_vect_loops and
19936 has_simduid_loops.
19937 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
19938 * gimple.c (gimple_build_omp_critical): Add KIND argument and
19939 handle it.
19940 * gimple.def: Update CLAUSES comments.
19941 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
19942 (gimple_build_omp_for): Add argument to prototype.
19943 (gimple_omp_for_kind): New.
19944 (gimple_omp_for_set_kind): New.
19945 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
19946 GOVD_DATA_SHARE_CLASS.
19947 (enum omp_region_type): Add ORT_SIMD.
19948 (gimple_add_tmp_var): Handle ORT_SIMD.
19949 (gimplify_var_or_parm_decl): Same.
19950 (is_gimple_stmt): Same.
19951 (omp_firstprivatize_variable): Same.
19952 (omp_add_variable): Only use splay_tree_insert if lookup failed.
19953 (omp_notice_variable): Handle ORT_SIMD.
19954 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
19955 (omp_check_private): Handle ORT_SIMD.
19956 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
19957 OMP_CLAUSE_SAFELEN.
19958 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
19959 Handle OMP_CLAUSE_LASTPRIVATE.
19960 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
19961 OMP_CLAUSE_SAFELEN.
19962 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
19963 (gimplify_expr): Handle OMP_SIMD.
19964 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
19965 (expand_GOMP_SIMD_VF): New.
19966 (expand_GOMP_SIMD_LAST_LANE): New.
19967 * internal-fn.def (GOMP_SIMD_LANE): New.
19968 (GOMP_SIMD_VF): New.
19969 (GOMP_SIMD_LAST_LANE): New.
19970 * omp-low.c: Include target.h.
19971 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
19972 OMP_CLAUSE_SAFELEN.
19973 (check_omp_nesting_restrictions): Same.
19974 (omp_max_vf): New.
19975 (lower_rec_simd_input_clauses): New.
19976 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
19977 OMP_CLAUSE_LINEAR.
19978 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
19979 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
19980 (expand_omp_build_assign): New.
19981 (expand_omp_for_init_counts): New.
19982 (expand_omp_for_init_vars): New.
19983 (extract_omp_for_update_vars): New.
19984 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
19985 and rewrite accordingly.
19986 (expand_omp_simd): New.
19987 (expand_omp_for): Use expand_omp_simd.
19988 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
19989 (lower_omp_for): Do not lower the body.
19990 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
19991 in their own loops.
19992 * tree-flow.h (find_omp_clause): Remove prototype.
19993 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
19994 forcing vectorization of the loop, or if flag_tree_vectorize.
19995 (gate_tree_if_conversion): Similarly.
19996 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
19997 gimple_build_omp_for.
19998 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
19999 * tree-parloops (create_parallel_loop): Pass kind argument to
20000 gimple_build_omp_for.
20001 * tree-pretty-print.c (dump_omp_clause): Add cases for
20002 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
20003 OMP_CLAUSE__SIMDUID_.
20004 (dump_generic_node): Handle OMP_SIMD.
20005 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
20006 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
20007 unroll OMP_SIMD loops here.
20008 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
20009 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
20010 loop->safelen.
20011 (vect_analyze_data_refs): Handle simd loops.
20012 * tree-vect-loop.c (vectorizable_live_operation): Handle
20013 IFN_GOMP_SIMD*.
20014 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
20015 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
20016 (vectorizable_load): Same.
20017 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
20018 (struct simduid_to_vf): New.
20019 (simduid_to_vf::hash): New.
20020 (simduid_to-vf::equal): New.
20021 (struct simd_array_to_simduid): New.
20022 (simd_array_to_simduid::hash): New.
20023 (simd_array_to_simduid::equal): New.
20024 (adjust_simduid_builtins): New.
20025 (struct note_simd_array_uses_struct): New.
20026 (note_simd_array_uses_cb): New.
20027 (note_simd_array_uses): New.
20028 (vectorize_loops): Handle simd hints and adjust simd builtins
20029 accordingly.
20030 * tree-vectorizer.h (struct _stmt_vec_info): Add
20031 simd_lane_access_p field.
20032 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
20033 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
20034 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
20035 (omp_clause_code_name): Same.
20036 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
20037 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
20038 * tree.def (OMP_SIMD): New entry.
20039 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
20040 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
20041 (OMP_CLAUSE_DECL): Adjust range for new clauses.
20042 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
20043 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
20044 (OMP_CLAUSE_LINEAR_STEP): New.
20045 (OMP_CLAUSE_SAFELEN_EXPR): New.
20046 (OMP_CLAUSE__SIMDUID__DECL): New.
20047 (find_omp_clause): New prototype.
20048
20049 2013-08-27 H.J. Lu <hongjiu.lu@intel.com>
20050
20051 * config/i386/driver-i386.c (host_detect_local_cpu): Update
20052 Haswell processor detection.
20053
20054 2013-08-27 Christian Widmer <shadow@umbrox.de>
20055
20056 PR target/57927
20057 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
20058 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
20059 AVX2 capable processors.
20060
20061 2013-08-27 Tejas Belagod <tejas.belagod@arm.com>
20062
20063 * config/aarch64/arm_neon.h: Replace all inline asm implementations
20064 of vget_low_* with implementations in terms of other intrinsics.
20065
20066 2013-08-27 Marc Glisse <marc.glisse@inria.fr>
20067
20068 PR middle-end/57219
20069 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
20070 values to -1, 0 and 1.
20071
20072 2013-08-27 Vidya Praveen <vidyapraveen@arm.com>
20073
20074 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
20075 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
20076 (<optab><mode>3_insn): Remove.
20077 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
20078 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
20079 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
20080 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
20081 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
20082 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
20083 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
20084 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
20085 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
20086 (ror<mode>3_insn): Likewise.
20087 * config/aarch64/predicates.md (aarch64_simd_register): New.
20088
20089 2013-08-27 Richard Biener <rguenther@suse.de>
20090
20091 PR tree-optimization/57521
20092 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
20093 one edge is non-critical.
20094 (find_phi_replacement_condition): Make sure to use a non-critical
20095 edge. Cleanup and remove old bug workarounds.
20096 (bb_postdominates_preds): Remove.
20097 (if_convertible_loop_p_1): Do not compute post-dominators.
20098 (combine_blocks): Do not free post-dominators.
20099 (main_tree_if_conversion): Likewise.
20100 (pass_data_if_conversion): Add TODO_verify_ssa.
20101
20102 2013-08-27 DJ Delorie <dj@redhat.com>
20103
20104 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
20105
20106 2013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
20107
20108 * function.c (assign_parm_find_data_types): Set passed_mode and
20109 nominal_mode to the TYPE_MODE of nominal_type for the built
20110 pointer type in case of the struct-pass-by-reference.
20111
20112 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
20113
20114 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
20115 (UINT16_TYPE): Change default to "unsigned int".
20116
20117 * config/avr/avr.opt (mfract-convert-truncate): New option.
20118 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
20119 is set, round negative fractional integers according to n1169
20120 when converting to integer types.
20121
20122 2013-08-26 Jan Hubicka <jh@suse.cz>
20123
20124 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
20125 methods can not be called indirectly when their address is not taken.
20126
20127 2013-08-26 Jan Hubicka <jh@suse.cz>
20128
20129 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
20130 ctor_for_folding.
20131
20132 2013-08-26 Jan Hubicka <jh@suse.cz>
20133
20134 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
20135 can be unshared.
20136
20137 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
20138
20139 * reload.c (find_valid_class): Allow classes that do not include
20140 FIRST_PSEUDO_REGISTER - 1.
20141
20142 2013-08-26 Jan Hubicka <jh@suse.cz>
20143
20144 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
20145 fix edge count/frequency when speculation failed; fix type check
20146 for the direct call.
20147
20148 2013-08-26 Jan Hubicka <jh@suse.cz>
20149
20150 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
20151
20152 2013-08-26 Jan Hubicka <jh@suse.cz>
20153
20154 * ipa-inline-transform.c (inline_transform): Be ready for basic block
20155 to be changed by edge redirection.
20156
20157 2013-08-26 Jan Hubicka <jh@suse.cz>
20158
20159 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
20160 formating; add sanity check.
20161 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
20162 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
20163 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
20164 (resolve_noninline_speculation): Update callee keys, too.
20165
20166 2013-08-26 Jan Hubicka <jh@suse.cz>
20167
20168 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
20169 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
20170
20171 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
20172
20173 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
20174 into proper place.
20175
20176 2013-08-26 Uros Bizjak <ubizjak@gmail.com>
20177
20178 * config/i386/i386.c (ix86_debug_options): Remove prototype.
20179 (x86_64_elf_select_section): Ditto.
20180 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
20181 arguments.
20182 (ix86_pass_by_reference): Ditto.
20183 (output_set_got): Ditto.
20184 (ix86_unary_operator_ok): Ditto.
20185 (ix86_expand_builtin): Ditto.
20186
20187 2013-08-23 Jan Hubicka <jh@suse.cz>
20188
20189 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
20190
20191 2013-08-23 Jan Hubicka <jh@suse.cz>
20192
20193 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
20194 (tree_decl_with_vis): Add FINAL field.
20195
20196 2013-08-23 Jeff Law <law@redhat.com>
20197
20198 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
20199 the debugging dump when the expression is fully redundant.
20200
20201 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
20202
20203 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
20204 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
20205 * pretty-print.c (pp_formatted_text_data): Likewise.
20206 (pp_write_text_to_stream): Likewise.
20207 (pp_write_text_as_dot_label_to_stream): Likewise.
20208 (pp_append_r): Likewise.
20209 (pp_format): Likewise.
20210 (pp_flush): Likewise.
20211 (pp_clear_output_area): Likewise.
20212 (pp_append_text): Likewise.
20213 (pp_formatted_text): Likewise.
20214 (pp_remaining_character_count_for_line): Likewise.
20215 (pp_newline): Likewise.
20216 (pp_character): Likewise.
20217 (output_buffer::~output_buffer): Define.
20218 (pretty_printer::~pretty_printer): Destruct output buffer.
20219 * pretty-print.h (output_buffer::~output_buffer): Declare.
20220 (pretty_printer::~pretty_printer): Declare virtual.
20221
20222 2013-08-24 Marc Glisse <marc.glisse@inria.fr>
20223
20224 PR other/57324
20225 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
20226 HOST_WIDE_INT_M1U): New macros.
20227 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
20228 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
20229 unsigned -1 for lshift.
20230 * cse.c (cse_insn): Likewise.
20231 * double-int.c (rshift_double, lshift_double): Likewise.
20232 * builtins.c (fold_builtin_bitop): Likewise.
20233 * combine.c (force_to_mode): Likewise.
20234 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
20235 * simplify-rtx.c (simplify_const_unary_operation,
20236 simplify_const_binary_operation): Likewise.
20237 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
20238 check_va_list_escapes): Likewise.
20239 * rtlanal.c (nonzero_bits1): Likewise.
20240 * expmed.c (expand_smod_pow2): Likewise.
20241 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
20242
20243 2013-08-23 Jan Hubicka <jh@suse.cz>
20244
20245 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
20246 as having address taken.
20247
20248 2013-08-23 Jan Hubicka <jh@suse.cz>
20249
20250 * ipa-utils.h (method_class_type): Declare.
20251 * ipa-devirt.c (method_class_type): Export.
20252
20253 * cgraphunit.c (analyze_functions): Do basic devirtualization;
20254 do not walk base classes of anonymous types.
20255
20256 2013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
20257
20258 PR rtl-optimization/58220
20259 PR regression/58221
20260 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
20261 handle SEQUENCE insns properly.
20262
20263 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
20264
20265 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
20266 definition.
20267 (pp_newline_and_indent): Likewise.
20268 (pp_separate_with): Likewise.
20269 * pretty-print.c (pp_newline_and_flush): Define.
20270 (pp_newline_and_indent): Likewise.
20271 (pp_separate_with): Likewise.
20272
20273 2013-08-23 Jakub Jelinek <jakub@redhat.com>
20274
20275 PR target/58218
20276 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
20277 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
20278
20279 2013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
20280
20281 * config/i386/predicates.md (ext_sse_reg_operand): New.
20282 * config/i386/i386.md (*movti_internal): Use
20283 predicate to determine if EVEX is needed.
20284 (*movsi_internal): Ditto.
20285 (*movdf_internal): Ditto.
20286 (*movsf_internal): Ditto.
20287 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
20288
20289 2013-08-23 Jakub Jelinek <jakub@redhat.com>
20290
20291 PR tree-optimization/58209
20292 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
20293 (find_tail_calls): Give up for pointer result types if m is non-NULL.
20294 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
20295 emit POINTER_PLUS_EXPR.
20296 (create_tailcall_accumulator): For pointer result type accumulate in
20297 sizetype type.
20298
20299 2013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
20300
20301 * configure.ac: Add backslashes missing from the last change.
20302 * configure: Regenerate.
20303
20304 2013-08-22 Jan Hubicka <jh@susue.cz>
20305
20306 * ipa.c (function_and_variable_visibility): First remember function
20307 was global and then make it local.
20308
20309 2013-08-22 Julian Brown <julian@codesourcery.com>
20310
20311 * configure.ac: Add aarch64 to list of arches which use "nop" in
20312 debug_line test.
20313 * configure: Regenerate.
20314
20315 2013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20316
20317 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
20318 gnu_libc_has_function.
20319 * config/s390/tpf.h: Likewise.
20320
20321 2013-08-22 Jan Hubicka <jh@susue.cz>
20322
20323 * timevar.c (validate_phases): Add cast.
20324
20325 2013-08-22 Jan Hubicka <jh@susue.cz>
20326
20327 * timevar.c (validate_phases): Use size_t for memory.
20328 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
20329
20330 2013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
20331
20332 * pretty-print.h (output_buffer::output_buffer): Declare.
20333 (pretty_printer::pretty_printer): Likewise.
20334 (pp_construct): Remove.
20335 * pretty-print.c (output_buffer::output_buffer): Define.
20336 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
20337 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
20338 (print_gimple_expr): Likewise.
20339 (print_gimple_seq): Likewise.
20340 (gimple_dump_bb): Likewise.
20341 * sched-vis.c (dump_value_slim): Likewise.
20342 (dump_insn_slim): Likewise.
20343 (dump_rtl_slim): Likewise.
20344 (str_pattern_slim): Likewise.
20345 * tree-mudflap.c (mf_varname_tree): Likewise.
20346 * graph.c (print_graph_cfg): Likewise.
20347 (start_graph_dump): Likewise.
20348 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
20349 placement-new.
20350 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
20351 pretty printer initialization.
20352 * coretypes.h (diagnostic_context): Remove superflous type alias
20353 declaration.
20354 (pretty_printer): Likewise. Declare directly as a class.
20355 (pretty_print_info): Remove declaration as class.
20356 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
20357 and pp_clear_output_area.
20358 (asan_add_global): Likewise.
20359
20360 2013-08-22 Jan Hubicka <jh@suse.cz>
20361
20362 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
20363 * ipa-utils.h (update_type_inheritance_graph): Declare.
20364 (possible_polymorphic_call_target_p): Declare.
20365 (possible_polymorphic_call_target_p): New.
20366 * ipa-devirt.c: Update toplevel comments.
20367 (cached_polymorphic_call_targets): Move up.
20368 (odr_type_d): Move ID down.
20369 (polymorphic_type_binfo_p): Update comment.
20370 (odr_hasher::remove): Likewise;
20371 (get_odr_type): Set anonymous_namespace.
20372 (dump_odr_type): Dump it.
20373 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
20374 (maybe_record_node): Record node in cached_polymorphic_call_targets.
20375 (record_binfo): Add comment.
20376 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
20377 built.
20378 (devirt_node_removal_hook): Do not iCE when cache is freed.
20379 (possible_polymorphic_call_target_p): New predicate.
20380 (update_type_inheritance_graph): New function.
20381
20382 2013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
20383 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20384 Sergey Lega <sergey.s.lega@intel.com>
20385 Anna Tikhonova <anna.tikhonova@intel.com>
20386 Ilya Tocar <ilya.tocar@intel.com>
20387 Andrey Turetskiy <andrey.turetskiy@intel.com>
20388 Ilya Verbin <ilya.verbin@intel.com>
20389 Kirill Yukhin <kirill.yukhin@intel.com>
20390 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20391
20392 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
20393 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
20394 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
20395 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
20396 (OPTION_MASK_ISA_AVX2_UNSET): Update.
20397 (OPTION_MASK_ISA_AVX512F_UNSET): New.
20398 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
20399 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
20400 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
20401 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
20402 OPT_mavx512pf, OPT_mavx512er cases.
20403 * config/i386/constraints.md (v): New constraint.
20404 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
20405 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
20406 (bit_AVX512CD): New.
20407 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
20408 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
20409 * config/i386/i386-c.c (ix86_target_macros_internal):
20410 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
20411 __AVX512PF__.
20412 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
20413 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
20414 * config/i386/i386.c (regclass_map, dbx_register_map)
20415 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
20416 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
20417 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
20418 -mavx512pf options.
20419 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
20420 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
20421 -mavx512pf options. Fix formatting.
20422 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
20423 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
20424 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
20425 -mavx512cd, -mavx512pf options.
20426 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
20427 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
20428 (ix86_preferred_output_reload_class): Replace SSE_REGS with
20429 ALL_SSE_REGS.
20430 (ix86_hard_regno_mode_ok): Support 512-bit registers.
20431 (ix86_set_reg_reg_cost): Ditto.
20432 (x86_order_regs_for_local_alloc): Ditto.
20433 (MAX_VECT_LEN): Extend to 64-byte.
20434 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
20435 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
20436 (TARGET_AVX512ER, TARGET_AVX512CD): New.
20437 (BIGGEST_ALIGNMENT): Extend to 512-bits.
20438 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
20439 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
20440 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
20441 (SSE_REG_MODE_P): Support new modes.
20442 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
20443 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
20444 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
20445 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
20446 (REG_CLASS_CONTENTS): Add new registers.
20447 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
20448 (EXT_REX_SSE_REGNO_P): New.
20449 (HI_REGISTER_NAMES): Add new registers.
20450 * config/i386/i386.md: Define constants for new registers.
20451 (mode): Add new 512-bit modes.
20452 (prefix): Support evex prefix.
20453 (isa): Support avx512f, noavx512f, fma_avx512f.
20454 (ssemodesuffix): Add new 512-bit modes.
20455 (movxi): New.
20456 (*movxi_internal_avx512f): Ditto.
20457 (*movdi_internal): Replace constraint "x" with the new constraint "v".
20458 Support MODE_XI.
20459 (*movsi_internal): Likewise.
20460 (*movdf_internal): Likewise.
20461 (*movsf_internal): Likewise.
20462 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
20463 (<code><mode>3): Likewise.
20464 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
20465 New.
20466 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
20467 with the new constraint "v".
20468 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
20469 modes.
20470 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
20471 with the new constraint "v".
20472 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
20473 (<sse2>_storedqu<avxsizesuffix>): Likewise.
20474 (*<plusminus_insn><mode>3): Likewise.
20475 (<sse>_vm<plusminus_insn><mode>3): Likewise.
20476 (*mul<mode>3): Likewise.
20477 (<sse>_vmmul<mode>3): Likewise.
20478 (<sse>_div<mode>3): Likewise.
20479 (<sse>_vmdiv<mode>3): Likewise.
20480 (<sse>_sqrt<mode>2): Likewise.
20481 (<sse>_vmsqrt<mode>2): Likewise.
20482 (*<code><mode>3_finite): Likewise.
20483 (*<code><mode>3) <smaxmin>: Likewise.
20484 (<sse>_vm<code><mode>3): Likewise.
20485 (*<code><mode>3) <any_logic>: Likewise.
20486 (*fma_fmadd_<mode>): Likewise.
20487 (*fma_fmsub_<mode>): Likewise.
20488 (*fma_fnmadd_<mode>): Likewise.
20489 (*fma_fnmsub_<mode>): Likewise.
20490 (*fma_fmaddsub_<mode>): Likewise.
20491 (*fma_fmsubadd_<mode>): Likewise.
20492 (*fmai_fmadd_<mode>): Likewise.
20493 (*fmai_fmsub_<mode>): Likewise.
20494 (*fmai_fnmadd_<mode>): Likewise.
20495 (*fmai_fnmsub_<mode>): Likewise.
20496 (sse_cvtsi2ss): Likewise.
20497 (sse_cvtsi2ssq): Likewise.
20498 (sse_cvtss2si): Likewise.
20499 (sse_cvtss2si_2): Likewise.
20500 (sse_cvtss2siq): Likewise.
20501 (sse_cvtss2siq_2): Likewise.
20502 (sse_cvttss2si): Likewise.
20503 (sse_cvtss2siq_2): Likewise.
20504 (float<sseintvecmodelower><mode>2): Likewise.
20505 (sse2_cvtsd2si_2): Likewise.
20506 (sse2_cvtsd2siq_2): Likewise.
20507 (*<plusminus_insn><mode>3): Likewise.
20508 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
20509 (*<sse4_1_avx2>_mul<mode>3): Likewise.
20510 (ashr<mode>3): Likewise.
20511 (<shift_insn><mode>3): Likewise.
20512 (avx2_<code><mode>3): Likewise.
20513 (*avx2_<code><mode>3): Likewise.
20514 (*andnot<mode>3): Likewise.
20515 (*<code><mode>3) <any_logic>: Likewise.
20516 (abs<mode>2): Likewise.
20517 (avx2_permvar<mode>): Likewise.
20518 (avx2_perm<mode>_1): Likewise.
20519 (*avx_vpermilp<mode>): Likewise.
20520 (avx_vpermilvar<mode>3): Likewise.
20521 (avx2_ashrv<mode>): Likewise.
20522 (avx2_<shift_insn>v<mode>): Likewise.
20523 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
20524 -mavx512cd.
20525 * doc/rtl.texi: Document XImode.
20526
20527 2013-08-21 Jeff Law <law@redhat.com>
20528
20529 * tree-flow.h (register_jump_thread): Pass vector of edges
20530 instead of each important edge.
20531 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
20532 thread path into a vector and pass that to register_jump_thread.
20533 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
20534 passed in edge vector to the current 3-edge form.
20535
20536 Revert:
20537 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
20538
20539 * dce.c (fini_dce): Call df_analyze again just in case
20540 delete_unmarked_insns removed anything.
20541
20542 2013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
20543
20544 * reload.h (struct reg_equivs): Rename to ..
20545 (struct reg_equivs_s): .. this.
20546
20547 2013-08-20 Martin Liska <marxin.liska@gmail.com>
20548
20549 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
20550
20551 2013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20552
20553 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
20554
20555 2013-08-21 Jeff Law <law@redhat.com>
20556
20557 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
20558 simplify assignments too. If the RHS collapses to a singleton
20559 range, then return the value for the range.
20560
20561 2013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
20562
20563 * config/i386/sse.md (V16): Rename to...
20564 (VMOVE): this.
20565 (mov<mode>): Update iterator name.
20566 (*mov<mode>_internal): Ditto.
20567 (push<mode>1): Ditto.
20568 (movmisalign<mode>): Ditto.
20569
20570 2013-08-20 Jan Hubicka <jh@suse.cz>
20571
20572 PR bootstrap/58186
20573 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
20574 entry for direct edges.
20575 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
20576
20577 2013-08-20 David Malcolm <dmalcolm@redhat.com>
20578
20579 Revert my last two changes, r201865 and r201864:
20580
20581 Revert r201865:
20582 2013-08-20 David Malcolm <dmalcolm@redhat.com>
20583
20584 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
20585 instances can own GC refs.
20586
20587 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
20588 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
20589 (gcc::context::gt_pch_nx): Likewise.
20590 (gcc::context::gt_pch_nx): Likewise.
20591 * ggc.h (gt_ggc_mx <T>): New.
20592 (gt_pch_nx_with_op <T>): New.
20593 (gt_pch_nx <T>): New.
20594 * passes.c (opt_pass::gt_ggc_mx): New.
20595 (opt_pass::gt_pch_nx): New.
20596 (opt_pass::gt_pch_nx_with_op): New.
20597 (pass_manager::gt_ggc_mx): New.
20598 (pass_manager::gt_pch_nx): New.
20599 (pass_manager::gt_pch_nx_with_op): New.
20600 (pass_manager::operator new): Use
20601 ggc_internal_cleared_alloc_stat rather than xcalloc.
20602 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
20603 (pass_manager::gt_ggc_mx): New.
20604 (pass_manager::gt_pch_nx): New.
20605 (pass_manager::gt_pch_nx_with_op): New.
20606 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
20607 (opt_pass::operator new): New.
20608 (opt_pass::gt_ggc_mx): New.
20609 (opt_pass::gt_pch_nx): New.
20610 (opt_pass::gt_pch_nx_with_op): New.
20611
20612 Revert r201864:
20613 2013-08-20 David Malcolm <dmalcolm@redhat.com>
20614
20615 * Makefile.in (GTFILES): Add context.h.
20616 * context.c (gcc::context::operator new): New.
20617 (gcc::context::gt_ggc_mx): New.
20618 (gcc::context::gt_pch_nx): New.
20619 (gcc::context::gt_pch_nx): New.
20620 * context.h (gcc::context): Add GTY((user)) marking.
20621 (gcc::context::operator new): New.
20622 (gcc::context::gt_ggc_mx): New.
20623 (gcc::context::gt_pch_nx): New.
20624 (gcc::context::gt_pch_nx): New.
20625 (g): Add GTY marking.
20626 (gt_ggc_mx (gcc::context *)): New.
20627 (gt_pch_nx (gcc::context *)): New.
20628 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
20629 void *cookie)): New.
20630 * gengtype.c (open_base_files) <ifiles>: Add context.h.
20631
20632 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
20633
20634 * dce.c (fini_dce): Call df_analyze again just in case
20635 delete_unmarked_insns removed anything.
20636
20637 2013-08-20 Teresa Johnson <tejohnson@google.com>
20638
20639 PR rtl-optimizations/57451
20640 * final.c (reemit_insn_block_notes): Prevent lexical blocks
20641 from crossing split section boundaries.
20642
20643 2013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
20644
20645 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
20646 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
20647 with MULTLIB_DEFAULTS.
20648
20649 2013-08-20 Nick Clifton <nickc@redhat.com>
20650
20651 * target.def (narrow_volatile_bitfield): Note that the default
20652 value is false, not !TARGET_STRICT_ALIGN.
20653 * doc/tm.texi: Regenerate.
20654
20655 2013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
20656
20657 Fix LIB_SPEC for systems without libpthread.
20658
20659 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
20660 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
20661 for Android.
20662 * config/i386/linux-common.h: Likewise.
20663 * config/mips/linux-common.h: Likewise.
20664
20665 2013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
20666
20667 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
20668 checks.
20669
20670 2013-08-20 David Malcolm <dmalcolm@redhat.com>
20671
20672 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
20673 instances can own GC refs.
20674
20675 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
20676 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
20677 (gcc::context::gt_pch_nx): Likewise.
20678 (gcc::context::gt_pch_nx): Likewise.
20679 * ggc.h (gt_ggc_mx <T>): New.
20680 (gt_pch_nx_with_op <T>): New.
20681 (gt_pch_nx <T>): New.
20682 * passes.c (opt_pass::gt_ggc_mx): New.
20683 (opt_pass::gt_pch_nx): New.
20684 (opt_pass::gt_pch_nx_with_op): New.
20685 (pass_manager::gt_ggc_mx): New.
20686 (pass_manager::gt_pch_nx): New.
20687 (pass_manager::gt_pch_nx_with_op): New.
20688 (pass_manager::operator new): Use
20689 ggc_internal_cleared_alloc_stat rather than xcalloc.
20690 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
20691 (pass_manager::gt_ggc_mx): New.
20692 (pass_manager::gt_pch_nx): New.
20693 (pass_manager::gt_pch_nx_with_op): New.
20694 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
20695 (opt_pass::operator new): New.
20696 (opt_pass::gt_ggc_mx): New.
20697 (opt_pass::gt_pch_nx): New.
20698 (opt_pass::gt_pch_nx_with_op): New.
20699
20700 2013-08-20 David Malcolm <dmalcolm@redhat.com>
20701
20702 * Makefile.in (GTFILES): Add context.h.
20703 * context.c (gcc::context::operator new): New.
20704 (gcc::context::gt_ggc_mx): New.
20705 (gcc::context::gt_pch_nx): New.
20706 (gcc::context::gt_pch_nx): New.
20707 * context.h (gcc::context): Add GTY((user)) marking.
20708 (gcc::context::operator new): New.
20709 (gcc::context::gt_ggc_mx): New.
20710 (gcc::context::gt_pch_nx): New.
20711 (gcc::context::gt_pch_nx): New.
20712 (g): Add GTY marking.
20713 (gt_ggc_mx (gcc::context *)): New.
20714 (gt_pch_nx (gcc::context *)): New.
20715 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
20716 void *cookie)): New.
20717 * gengtype.c (open_base_files) <ifiles>: Add context.h.
20718
20719 2013-08-20 Alan Modra <amodra@gmail.com>
20720
20721 PR target/57865
20722 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
20723 (rs6000_emit_epilogue): Likewise.
20724
20725 2013-08-19 Dehao Chen <dehao@google.com>
20726
20727 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
20728
20729 2013-08-19 Peter Bergner <bergner@vnet.ibm.com>
20730 Jakub Jelinek <jakub@redhat.com>
20731
20732 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
20733 (BUILT_IN_FABSD64): Likewise.
20734 (BUILT_IN_FABSD128): Likewise.
20735 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
20736 (fold_builtin_1): Likewise.
20737 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
20738 destination and source operands.
20739 (*abstd2_fpr): Likewise.
20740 (*nabstd2_fpr): Likewise.
20741
20742 2013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
20743
20744 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
20745 JUMP_P and INSN_P.
20746
20747 2013-08-19 Aldy Hernandez <aldyh@redhat.com>
20748
20749 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
20750 incomplete.
20751
20752 2013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
20753
20754 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
20755 * builtins.c (default_libc_has_function): New.
20756 (gnu_libc_has_function): Ditto.
20757 (no_c99_libc_has_function): Ditto.
20758 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
20759 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
20760 (fold_builtin_sincos): Likewise.
20761 (fold_builtin_cexp): Likewise.
20762 * builtins.def (DEF_C94_BUILTIN): Likewise.
20763 (DEF_C99_BUILTIN): Likewise.
20764 (DEF_C99_C90RES_BUILTIN): Likewise.
20765 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
20766 definitions to using this define.
20767 * config/darwin-protos.h (darwin_libc_has_function): New.
20768 * config/darwin.c (darwin_libc_has_function): Ditto.
20769 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
20770 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
20771 * config/darwin.h: Ditto.
20772 * config/elfos.h: Ditto.
20773 * config/freebsd.h: Ditto.
20774 * config/i386/cygming.h: Ditto.
20775 * config/i386/djgpp.h: Ditto.
20776 * config/i386/i386-interix.h: Ditto.
20777 * config/microblaze/microblaze.h: Ditto.
20778 * config/mmix/mmix.h: Ditto.
20779 * config/gnu-user.h: Ditto.
20780 * config/ia64/hpux.h: Ditto.
20781 * config/pa/pa-hpux.h: Ditto.
20782 * config/pdp11/pdp11.h: Ditto.
20783 * config/picochip/picochip.h: Ditto.
20784 * config/linux.h: Ditto.
20785 * config/netbsd.h: Ditto.
20786 * config/openbsd.h: Ditto.
20787 * config/rs6000/aix43.h: Ditto.
20788 * config/rs6000/aix51.h: Ditto.
20789 * config/rs6000/aix52.h: Ditto.
20790 * config/rs6000/aix53.h: Ditto.
20791 * config/rs6000/aix61.h: Ditto.
20792 * config/rs6000/darwin.h: Ditto.
20793 * config/rs6000/linux.h: Ditto.
20794 * config/rs6000/linux64.h: Ditto.
20795 * config/s390/tpf.h: Ditto.
20796 * config/sol2-10.h: Ditto.
20797 * config/sol2.h: Ditto.
20798 * config/vms/vms.h: Ditto.
20799 * config/vxworks.h: Ditto.
20800 * config/linux-android.c (linux_android_libc_has_function):
20801 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
20802 * config/linux-protos.h (linux_android_libc_has_function):
20803 New declaration.
20804 * config/i386/i386.c (ix86_libc_has_function): New.
20805 * config/i386/i386-protos.h
20806 (ix86_libc_has_function): New declaration.
20807 * config/i386/i386.md
20808 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
20809 ("isinf<mode>2): Likewise.
20810 * convert.c (convert_to_integer): Using new target hook
20811 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
20812 TARGET_C99_FUNCTIONS.
20813 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
20814 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
20815 * coretypes.h (function_class): New enum for different
20816 classes of functions.
20817 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
20818 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
20819 (TARGET_HAS_SINCOS): Likewise.
20820 (TARGET_LIBC_HAS_FUNCTION): New.
20821 * doc/tm.texi: Regenerated.
20822 * targhooks.h (default_libc_has_function): New declaration.
20823 (no_c99_libc_has_function): Ditto.
20824 (gnu_libc_has_function): Ditto.
20825 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
20826 and TARGET_HAS_SINCOS.
20827
20828 2013-08-18 Jan Hubicka <jh@suse.cz>
20829
20830 * Makeifle-in (ipa-devirt.o): New.
20831 (GTFILES): Add ipa-utils.h and ipa-devirt.c
20832 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
20833 (analyze_functions): Look into possible targets of polymorphic call.
20834 * dumpfile.c (dump_files): Add type-inheritance dump.
20835 * dumpfile.h (TDI_inheritance): New.
20836 * ipa-devirt.c: New file.
20837 * ipa-utils.h (odr_type_d): Forward declare.
20838 (odr_type): New type.
20839 (build_type_inheritance_graph): Declare.
20840 (possible_polymorphic_call_targets): Declare and introduce inline
20841 variant when only edge is pased.
20842 (dump_possible_polymorphic_call_targets): Likewise.
20843 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
20844 * tree.c (type_in_anonymous_namespace_p): Break out from ...
20845 (types_same_for_odr): ... here.
20846 * tree.h (type_in_anonymous_namespace_p): Declare.
20847
20848 2013-08-18 Jakub Jelinek <jakub@redhat.com>
20849
20850 PR tree-optimization/58006
20851 * tree-parloops.c (take_address_of): Don't ICE if get_name
20852 returns NULL.
20853 (eliminate_local_variables_stmt): Remove clobber stmts.
20854
20855 2013-08-18 Eric Botcazou <ebotcazou@adacore.com>
20856
20857 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
20858 error message is issued for an alias to undefined symbol.
20859
20860 2013-08-18 Jan Hubicka <jh@suse.cz>
20861
20862 * cgraph.c (cgraph_create_indirect_edge): Discover
20863 polymorphic calls and record basic info into indirect_info.
20864 * gimple-fold.c (gimple_fold_call): When doing BINFO based
20865 devirtualization, ignore objc function calls.
20866 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
20867 call with no parm index info.
20868 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
20869 * tree.c (virtual_method_call_p): New function.
20870 * tree.h (virtual_method_call_p): Declare.
20871
20872 2013-08-16 Jan Hubicka <jh@suse.cz>
20873
20874 PR middle-end/58179
20875 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
20876
20877 2013-08-16 David Edelsohn <dje.gcc@gmail.com>
20878
20879 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
20880 attribute.
20881
20882 2013-08-16 David Malcolm <dmalcolm@redhat.com>
20883
20884 * gengtype.c (type_for_name): Add special-case support for
20885 locating types within the "gcc::" namespace.
20886 (open_base_files): Emit a "using namespace gcc" directive.
20887
20888 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
20889
20890 PR target/58160
20891 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
20892 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
20893
20894 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
20895 array instead of each individual operand as a separate argument.
20896 (emit_fusion_gpr_load): Likewise.
20897 (expand_fusion_gpr_load): Add new function declaration.
20898
20899 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
20900 signature to have the operands passed as an array, instead of as
20901 separate arguments. Allow ZERO_EXTEND to be in the memory
20902 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
20903 depend on the register live/dead flags when peepholes are run.
20904 (expand_fusion_gpr_load): New function to be called from the
20905 peephole2 pass, to change the register that addis sets to be the
20906 target register.
20907 (emit_fusion_gpr_load): Change the calling signature to have the
20908 operands passed as an array, instead of as separate arguments.
20909 Allow ZERO_EXTEND to be in the memory address, and also
20910 SIGN_EXTEND if -mpower8-fusion-sign.
20911
20912 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
20913 unspec enumeration.
20914 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
20915 adjust the register addis loads up in the peephole2 pass. Do not
20916 depend on the register live/dead state when the peephole pass is done.
20917
20918 2013-08-16 David Malcolm <dmalcolm@redhat.com>
20919
20920 * gengtype.c (create_user_defined_type): Ensure that the kind
20921 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
20922 declaration is seen before the GTY((user)) marking.
20923
20924 2013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
20925
20926 PR target/58105
20927 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
20928
20929 2013-08-16 Jan Hubicka <jh@suse.cz>
20930
20931 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
20932 arugment expected_type.
20933 (gimple_fold_call): Use it.
20934 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
20935 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
20936 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
20937 (try_make_edge_direct_virtual_call): Likewise.
20938 * tree.c (obj_type_ref_class): New.
20939 * tree.h (obj_type_ref_class): Use it.
20940
20941 2013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
20942
20943 * sched-vis.c (rtl_slim_pp_initialized): Remove.
20944 (rtl_slim_pp): Likewise.
20945 (init_rtl_slim_pretty_print): Likewise.
20946 (dump_value_slim): Don't call it. Use local pretty printer.
20947 (dump_insn_slim): Likewise.
20948 (dump_rtl_slim): Likewise.
20949 (str_pattern_slim): Likewise.
20950 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
20951 Simplify.
20952
20953 2013-08-16 Jakub Jelinek <jakub@redhat.com>
20954
20955 PR tree-optimization/58164
20956 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
20957 walk gimple_goto_dest of GIMPLE_GOTO.
20958
20959 PR tree-optimization/58165
20960 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
20961 bi_call must be the last stmt in a bb, don't split_block, instead
20962 use fallthru edge from it and give up if there is none.
20963 Release conds vector when returning early.
20964
20965 2013-08-14 Xinliang David Li <davidxl@google.com>
20966
20967 * config/i386/i386.c (ix86_option_override_internal):
20968 Remove unused variable and field.
20969
20970 2013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20971
20972 PR target/57949
20973 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
20974 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
20975 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
20976 and Linux, correct BLKmode alignment when 128-bit alignment is
20977 required and compatibility flag is not set.
20978 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
20979 for zero-size arguments when compatibility flag is not set.
20980
20981 2013-08-14 Jakub Jelinek <jakub@redhat.com>
20982
20983 PR tree-optimization/58145
20984 * tree-sra.c (build_ref_for_offset): If prev_base has
20985 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
20986
20987 2013-08-14 Xinliang David Li <davidxl@google.com>
20988
20989 * config/i386/i386.c (ix86_option_override_internal):
20990 Fix uninitialized variable error.
20991
20992 2013-08-14 Xinliang David Li <davidxl@google.com>
20993
20994 * config/i386/i386.opt: Define two new options.
20995 * config/i386/x86-tune.def: Add arch selector field in macros.
20996 * config/i386/i386.h: Adjust macro definition.
20997 * config/i386/i386.c (ix86_option_override_internal):
20998 Refactor the code.
20999 (parse_mtune_ctrl_str): New function.
21000 (set_ix86_tune_features): New function.
21001 (ix86_function_specific_restore): Call the new helper function.
21002
21003 2013-08-14 Andrey Belevantsev <abel@ispras.ru>
21004
21005 PR rtl-optimization/57662
21006 * sel-sched.c (code_motion_process_successors): When the current insn
21007 is removed after the recursive traversal, break from the loop.
21008 Add comments and debug printouts.
21009
21010 2013-08-14 Jakub Jelinek <jakub@redhat.com>
21011 Alexandre Oliva <aoliva@redhat.com>
21012
21013 PR target/58067
21014 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
21015 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
21016 there also UNSPEC_PLTOFF.
21017
21018 2013-08-14 Marek Polacek <polacek@redhat.com>
21019
21020 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
21021 NUM_CONDITIONS bit positions.
21022
21023 2013-08-13 Cary Coutant <ccoutant@google.com>
21024
21025 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
21026 (attr_checksum): Hash vector contents instead of pointer.
21027 (attr_checksum_ordered): Likewise.
21028
21029 2013-08-13 Uros Bizjak <ubizjak@gmail.com>
21030
21031 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
21032 when Pmode != word_mode. Add length_address attribute.
21033 (sse3_monitor_<mode>): Merge from sse3_monitor and
21034 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
21035 Pmode != word_mode. Update insn length attribute.
21036 * config/i386/i386.c (ix86_option_override_internal): Update
21037 ix86_gen_monitor selection for merged sse3_monitor insn.
21038
21039 2013-08-13 Julian Brown <julian@codesourcery.com>
21040
21041 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
21042 perform invalid legitimization on greater-than-word-size modes for
21043 TARGET_E500_DOUBLE.
21044
21045 2013-08-13 Vladimir Makarov <vmakarov@redhat.com>
21046
21047 * ira.c (setup_class_translate_array): Use aclass instead of cl
21048 for classes not fully covered by allocno classes.
21049
21050 2013-08-13 Jakub Jelinek <jakub@redhat.com>
21051
21052 PR tree-optimization/57661
21053 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
21054 * tree-inline.c (tree_function_versioning): Initialize it.
21055 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
21056 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
21057 that is not being copied.
21058
21059 PR sanitizer/56417
21060 * asan.c (instrument_strlen_call): Fix typo in comment.
21061 Use char * type even for the lhs of POINTER_PLUS_EXPR.
21062
21063 2013-08-13 Steve Ellcey <sellcey@mips.com>
21064
21065 * config/mips/mips.md (prefetch): Use lw instead of ld on
21066 loongson in 32bit mode.
21067
21068 2013-08-13 Nick Clifton <nickc@redhat.com>
21069
21070 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
21071
21072 2013-08-13 Jan Hubicka <jh@suse.cz>
21073
21074 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
21075 introduced edge; fix typo in sanity check.
21076 (cgraph_resolve_speculation): Export; improve diagnostic.
21077 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
21078 speculation at type mismatch.
21079 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
21080 (cgraph_resolve_speculation): Declare.
21081 (symtab_can_be_discarded): New function.
21082 * value-prof.c (gimple_ic_transform): Remove actual transform code.
21083 * ipa-inline-transform.c (speculation_removed): New global var.
21084 (clone_inlined_nodes): See if speculation can be removed.
21085 (inline_call): If speculations was removed, we growths may not match.
21086 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
21087 (speculation_useful_p): New function.
21088 (resolve_noninline_speculation): New function.
21089 (inline_small_functions): Resolve useless speculations.
21090 * ipa-inline.h (speculation_useful_p): Declare
21091 * ipa.c (can_replace_by_local_alias): Simplify.
21092 (ipa_profile): Produce speculative calls in non-lto, too;
21093 add simple cost model; produce local aliases.
21094
21095 2013-08-13 David Malcolm <dmalcolm@redhat.com>
21096
21097 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
21098 PASS_MANAGER_H.
21099
21100 2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
21101
21102 * config/i386/i386.c (ix86_function_versions): Use error + inform.
21103
21104 2013-08-12 Uros Bizjak <ubizjak@gmail.com>
21105
21106 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
21107 iterator instead of X87MODEF.
21108
21109 2013-08-12 Perez Read <netfirewall@gmail.com>
21110
21111 PR target/58132
21112 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
21113 operand 0 for intel asm alternative.
21114 (*movabs<mode>_2): Ditto for operand 1.
21115
21116 2013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
21117
21118 * config/aarch64/arm_none.h
21119 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
21120
21121 2013-08-12 Nick Clifton <nickc@redhat.com>
21122
21123 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
21124
21125 2013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
21126
21127 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
21128 expand for QI/HImode operand to produce more effictive code for
21129 unsigned char(short) --> float(double) conversion.
21130
21131 2013-08-12 Alexander Monakov <amonakov@ispras.ru>
21132
21133 * doc/invoke.texi: Mention that -ftls-model does not force the final
21134 model.
21135
21136 2013-08-12 Marek Polacek <polacek@redhat.com>
21137 Marc Glisse <marc.glisse@inria.fr>
21138
21139 PR tree-optimization/57980
21140 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
21141 when creating -1 constant.
21142
21143 2013-08-10 Jan Hubicka <jh@suse.cz>
21144
21145 Workaround binutils PR14342.
21146 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
21147 (gimple_init_edge_profiler): Likewise.
21148 (gimple_gen_ic_func_profiler): Likewise.
21149
21150 2013-08-09 Jan Hubicka <jh@suse.cz>
21151
21152 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
21153
21154 2013-08-09 Xinliang David Li <davidxl@google.com>
21155
21156 * config/i386/stringop.def: New file.
21157 * config/i386/stringop.opt: New file.
21158 * config/i386/i386-opts.h: Include stringopt.def.
21159 * config/i386/i386.opt: Include stringopt.opt.
21160 * config/i386/i386.c (ix86_option_override_internal):
21161 Override default size based stringop inline strategies with options.
21162 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
21163 New function.
21164
21165 2013-08-09 Jan Hubicka <jh@suse.cz>
21166
21167 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
21168
21169 2013-08-09 Jan Hubicka <jh@suse.cz>
21170
21171 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
21172 CGRAPH_FREQ_MAX.
21173 (dump_cgraph_node): Dump profile-id.
21174 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
21175 and common_target_probability.
21176 * lto-cgraph.c (lto_output_edge): Stream common targets.
21177 (lto_output_node): Stream profile ids.
21178 (input_node): Stream profile ids.
21179 (input_edge): Stream common targets.
21180 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
21181 * ipa.c: Include value-prof.h
21182 (ipa_profile_generate_summary): Turn indirect call statement histograms
21183 into common targets.
21184 (ipa_profile): Turn common targets into speculative edges.
21185
21186 2013-08-09 Jan Hubicka <jh@suse.cz>
21187
21188 * cgraph.h (cgraph_node): Add profile_id.
21189 * value-prof.c (cgraph_node_map): Turn into pointer_map.
21190 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
21191 (del_node_map): Update.
21192 (find_func_by_funcdef_no): Replace by ...
21193 (find_func_by_profile_id): ... this one.
21194 (gimple_ic_transform): Do not remove useful histograms when
21195 speculation is not done; dump info when indirect call removal
21196 can happen at LTO.
21197 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
21198 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
21199 (__gcov_indirect_call_profiler_v2): .. this one.
21200 * profile.h (init_node_map): Update.
21201 * coverage.c (coverage_compute_profile_id): New function.
21202 * coverage.h (coverage_compute_profile_id): Declare.
21203 * tree-profile.c (init_ic_make_global_vars): Make
21204 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
21205 (gimple_init_edge_profiler): Update prototype of
21206 __gcov_indirect_call_profiler.
21207 (gimple_gen_ic_func_profiler): Simplify.
21208 (tree_profiling): Use init_node_map
21209
21210 2013-08-09 Jan Hubicka <jh@suse.cz>
21211
21212 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
21213 non-speculative refs.
21214 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
21215 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
21216 (cgraph_set_call_stmt): Likewise.
21217 (cgraph_create_edge_1): Fix release checking compilatoin;
21218 clear lto_stmt_uid.
21219 (cgraph_free_edge): Free indirect info.
21220 (cgraph_turn_edge_to_speculative): New function.
21221 (cgraph_speculative_call_info): New function.
21222 (cgraph_make_edge_direct): Return direct edge; handle speculation.
21223 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
21224 (dump_cgraph_node): Dump speculation.
21225 (verify_edge_count_and_frequency): Accept speculative edges.
21226 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
21227 (verify_cgraph_node): Handle speculation.
21228 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
21229 (cgraph_set_call_stmt): Update prototype.
21230 (cgraph_make_edge_direct): Update prototype.
21231 (cgraph_speculative_call_info): Declare.
21232 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
21233 to change; update call of ipa_find_references.
21234 * ipa-ref.c (ipa_record_reference): Fix return value; clear
21235 lto_stmt_uid and speculative flags.
21236 (ipa_dump_references): Dump speculation.
21237 (ipa_clone_references): Clone speculative flag.
21238 (ipa_clone_referring): Likewise.
21239 (ipa_clone_ref): New function.
21240 (ipa_find_reference): Look into lto_stmt_uids
21241 (ipa_clear_stmts_in_references): Do not clear speculative calls.
21242 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
21243 (ipa_find_reference): Update declaration.
21244 (ipa_clone_ref): Declare.
21245 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
21246 stream speculative flag.
21247 (lto_output_ref): Stream statements uids and speculation.
21248 (input_ref): Likewise.
21249 (input_edge): Stream speuclation.
21250 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
21251 (cgraph_set_call_stmt_including_clones): Handle speculation.
21252 * ipa-inline.c (heap_edge_removal_hook): New function.
21253 (inline_small_functions): Register it.
21254 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
21255 also initialize refs.
21256 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
21257 edge to change.
21258 (try_make_edge_direct_simple_call): Likewise.
21259 (try_make_edge_direct_simple_call): Likewise.
21260 (update_indirect_edges_after_inlining): Likewise.
21261 (remove_described_reference): Look proper lto_stmt_uid.
21262 (propagate_controlled_uses): Likewise.
21263 (propagate_controlled_uses): Liekwise.
21264 * tree-inline.c (copy_bb): Copy speculative edges.
21265 (redirect_all_calls): New function.
21266 (copy_cfg_body): Do redirection after loop info is updated.
21267 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
21268
21269 2013-08-09 Jan Hubicka <jh@suse.cz>
21270
21271 * lto-streamer-out.c (output_function): Renumber PHIs.
21272 * lto-streamer-in.c (input_function): Likewise.
21273
21274 2013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
21275
21276 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
21277 (get_lane_unsigned): Likewise.
21278 (dup_lane_scalar): Likewise.
21279 (get_lane): enable for VALL.
21280 * config/aarch64/aarch64-simd.md
21281 (aarch64_dup_lane_scalar<mode>): Remove.
21282 (aarch64_get_lane_signed<mode>): Likewise.
21283 (aarch64_get_lane_unsigned<mode>): Likewise.
21284 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
21285 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
21286 (aarch64_get_lane<mode>): Enable for all vector modes.
21287 (aarch64_get_lanedi): Remove misleading constraints.
21288 * config/aarch64/arm_neon.h
21289 (__aarch64_vget_lane_any): Define.
21290 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
21291 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
21292 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
21293 * config/aarch64/iterators.md (VDQQH): New.
21294 (VDQQHS): Likewise.
21295 (vwcore): Likewise.
21296
21297 2013-08-09 Eric Botcazou <ebotcazou@adacore.com>
21298
21299 * configure.ac: Add GAS check for LEON instructions on SPARC.
21300 * configure: Regenerate.
21301 * config.in: Likewise.
21302 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
21303 sparc*-*-* block.
21304 * config/sparc/sparc.opt (LEON, LEON3): New masks.
21305 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
21306 for LEON or LEON3.
21307 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
21308 (AS_LEON_FLAG): New macro.
21309 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
21310 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
21311 Deal with LEON and LEON3 for the memory model.
21312 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
21313 (atomic_compare_and_swap<mode>_1): Likewise.
21314 (*atomic_compare_and_swap<mode>_1): Likewise.
21315
21316 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21317
21318 * config/arm/neon.md (vcond): Fix floating-point vector
21319 comparisons against 0.
21320
21321 2013-08-08 Vladimir Makarov <vmakarov@redhat.com>
21322
21323 * lra-constraints.c (emit_spill_move): Remove assert.
21324 (process_alt_operands): Add more debugging
21325 output. Increase reject for spilling into memory. Decrease
21326 reject for reloading scratch.
21327 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
21328
21329 2013-08-08 Steve Ellcey <sellcey@mips.com>
21330
21331 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
21332 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
21333 micromips incompatible. Add nan2008.
21334 (MULTILIB_DIRNAMES): Add nan2008.
21335 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
21336 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
21337 and micromips incompatible. Add nan2008.
21338 (MULTILIB_DIRNAMES): Add nan2008.
21339 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
21340
21341 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
21342
21343 PR rtl-optimization/58079
21344 * combine.c (combine_simplify_rtx): Avoid using SUBST if
21345 simplify_comparison has widened a comparison with an integer.
21346
21347 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21348
21349 * config/arm/neon.md (movmisalign<mode>): Disable when we
21350 don't allow unaligned accesses.
21351 (*movmisalign<mode>_neon_store): Likewise.
21352 (*movmisalign<mode>_neon_load): Likewise.
21353 (*movmisalign<mode>_neon_store): Likewise.
21354 (*movmisalign<mode>_neon_load): Likewise.
21355
21356 2013-08-08 Jan Hubicka <jh@suse.cz>
21357
21358 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
21359 (make_pass_rebuild_cgraph_edges): Also clear references.
21360 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
21361 * ipa-inline-transform.c (inline_transform): Remove all references
21362 after inlining.
21363 * cgraphunit.c (expand_function): Remove all references after
21364 expansion.
21365 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
21366 (ipa_find_reference): Rewrite to iterator.
21367 (remove_stmt_references): Likewise.
21368 (ipa_clear_stmts_in_references): New function.
21369 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
21370 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
21371 clear references.
21372 * ipa-split.c (split_function): Remove references in split function.
21373
21374 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
21375
21376 PR target/57431
21377 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
21378 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
21379
21380 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
21381
21382 PR target/56979
21383 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
21384 suggested mode for the assignment isn't compatible with the
21385 registers required.
21386
21387 2013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
21388
21389 PR target/58065
21390 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
21391
21392 2013-08-07 Xinliang David Li <davidxl@google.com>
21393
21394 * config/i386/i386.opt: New option -mtune-ctrl=.
21395 * config/i386/x86-tune.def: New file.
21396 * config/i386/i386.h: include x86-tune.def.
21397 * config/i386/i386.c (ix86_option_override_internal):
21398 Parsing -mtune-ctrl= option and set tune features.
21399
21400 2013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
21401
21402 PR other/12081
21403 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
21404 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
21405 to gen_2arg_fn_t.
21406
21407 2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
21408
21409 * rtl.h (update_alignments): Declare.
21410 * final.c (grow_label_align): New function extracted from...
21411 (shorten_branches): ...here. Call it.
21412 (update_alignments): New function.
21413 * reorg.c (sibling_labels): New variable.
21414 (get_label_before): Add SIBLING parameter. If it is non-zero, push
21415 the new label along with it onto the sibling_labels vector.
21416 (fill_simple_delay_slots): Adjust call to get_label_before.
21417 (fill_slots_from_thread): Likewise.
21418 (relax_delay_slots): Likewise.
21419 (make_return_insns): Likewise.
21420 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
21421
21422 2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
21423
21424 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
21425 document its semantics.
21426 (diagnostic_report_diagnostic): Adjust accordingly.
21427
21428 2013-08-07 David Malcolm <dmalcolm@redhat.com>
21429
21430 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
21431 (sparc_option_override): ...and port to new C++ pass API.
21432 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
21433
21434 2013-08-07 Peter Bergner <bergner@vnet.ibm.com>
21435
21436 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
21437
21438 2013-08-06 Caroline Tice <cmtice@google.com>
21439
21440 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
21441 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
21442 * tree-pass.h: Add pass_vtable_verify.
21443 * varasm.c (assemble_variable): Add code to properly set the comdat
21444 section and name for the .vtable_map_vars section.
21445 (assemble_vtyv_preinit_initializer): New function.
21446 (default_sectin_type_flags): Make sure .vtable_map_vars section has
21447 LINK_ONCE flag.
21448 * output.h: Add function decl for assemble_vtv_preinit_initializer.
21449 * vtable-verify.c: New file.
21450 * vtable-verify.h: New file.
21451 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
21452 initialiation levels.
21453 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
21454 * passes.def: Insert pass_vtable_verify.
21455 * aclocal.m4: Reorder includes.
21456 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
21457 -fvtv-counts options.
21458 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
21459 as appropriate, if -fvtable-verify=... is used.
21460 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
21461 -fvtable-verify=... is used.
21462 * Makefile.in (OBJS): Add vtable-verify.o to list.
21463 (vtable-verify.o): Add new build rule.
21464 (GTFILES): Add vtable-verify.c to list.
21465 * common.opt (fvtable-verify=): New flag.
21466 (vtv_priority): Values for fvtable-verify= flag.
21467 (fvtv-counts): New flag.
21468 (fvtv-debug): New flag.
21469 * tree.h (save_vtable_map_decl): New extern function decl.
21470
21471 2013-08-07 David Malcolm <dmalcolm@redhat.com>
21472
21473 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
21474 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
21475 (pass_data_rl78_devirt): ...new pass_data instance and...
21476 (make_pass_rl78_devirt): ...new function.
21477 (rl78_asm_file_start): Port pass registration to new C++ API.
21478
21479 2013-08-07 David Malcolm <dmalcolm@redhat.com>
21480
21481 * coretypes.h (rtl_opt_pass): Add.
21482 (gcc::context): Add.
21483 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
21484 (epiphany_init): Port to new C++ pass API.
21485 (epiphany_optimize_mode_switching): Likewise.
21486 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
21487 (pass_manager::get_pass_mode_switching): New.
21488 (pass_manager::get_pass_peephole2): New.
21489 * mode-switching.c (pass_mode_switching): Add clone method.
21490 * recog.c (pass_peephole2): Add clone method.
21491 (pass_split_all_insns): Add clone method.
21492
21493 2013-08-06 David Malcolm <dmalcolm@redhat.com>
21494
21495 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
21496 (mips_option_override): ...here, porting to new C++ API for passes.
21497
21498 2013-08-06 Jan Hubicka <jh@suse.cz>
21499
21500 * cgraph.c (cgraph_get_body): New function based on lto.c
21501 implementation.
21502 * cgraph.h (cgraph_get_body): Declare.
21503 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
21504 LTO paths.
21505 * cgraphunit.c (expand_function): Get body prior expanding.
21506 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
21507 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
21508 really need.
21509 * passes.c (do_per_function_toporder): Get body.
21510 * tree-inline.c (expand_call_inline): Get body prior inlining it.
21511 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
21512
21513 2013-08-06 Martin Jambor <mjambor@suse.cz>
21514
21515 PR fortran/57987
21516 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
21517 is not re-finalized. Rename second parameter to no_collect.
21518
21519 2013-08-06 Martin Jambor <mjambor@suse.cz>
21520
21521 PR middle-end/58041
21522 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
21523 MEM_REF has proper alignment information.
21524
21525 2013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
21526
21527 PR other/12081
21528 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
21529 class insn_gen_fn.
21530 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
21531 rtx (*) (rtx, ...) with insn_gen_fn.
21532 * genoutput.c (output_insn_data): Cast gen_? function pointers to
21533 insn_gen_fn::stored_funcptr. Add initializer braces.
21534
21535 2013-08-05 David Malcolm <dmalcolm@redhat.com>
21536
21537 Rewrite how instances of passes are cloned to remove assumptions
21538 about their sizes (thus allowing pass subclasses to have
21539 additional data fields, albeit non-GC-managed ones at this point).
21540
21541 * passes.c (make_pass_instance): Now that passes have clone
21542 methods, rewrite this function to eliminate XNEW and memcpy
21543 calls that used hardcoded sizes. Since this function no longer
21544 creates pass instances, rename it to...
21545 (add_pass_instance): ...this. Document the old way that passes were
21546 numbered and flagged, and rework this function to continue using it.
21547 (next_pass_1): Add an initial_pass argument for use by
21548 add_pass_instance.
21549 (position_pass): When adding multiple instances of a pass, use
21550 the pass's clone method, rather than relying on the XNEW/memcpy
21551 within the former make_pass_instance (now add_pass_instance).
21552 (pass_manager::pass_manager): When invoking next_pass_1, also supply
21553 the initial instance of the current pass within the pass manager.
21554
21555 2013-08-05 David Malcolm <dmalcolm@redhat.com>
21556
21557 This is the automated part of the conversion of passes from C
21558 structs to C++ classes.
21559
21560 Patch autogenerated by refactor_passes.py from
21561 https://github.com/davidmalcolm/gcc-refactoring-scripts
21562 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
21563
21564 * asan.c (pass_asan): Convert from a global struct to a subclass of
21565 gimple_opt_pass along with...
21566 (pass_data_asan): ...new pass_data instance and...
21567 (make_pass_asan): ...new function.
21568 (pass_asan_O0): Convert from a global struct to a subclass of
21569 gimple_opt_pass along with...
21570 (pass_data_asan_O0): ...new pass_data instance and...
21571 (make_pass_asan_O0): ...new function.
21572 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
21573 subclass of rtl_opt_pass along with...
21574 (pass_data_inc_dec): ...new pass_data instance and...
21575 (make_pass_inc_dec): ...new function.
21576 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
21577 a subclass of rtl_opt_pass along with...
21578 (pass_data_reorder_blocks): ...new pass_data instance and...
21579 (make_pass_reorder_blocks): ...new function.
21580 (pass_duplicate_computed_gotos): Convert from a global struct to a
21581 subclass of rtl_opt_pass along with...
21582 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
21583 (make_pass_duplicate_computed_gotos): ...new function.
21584 (pass_partition_blocks): Convert from a global struct to a subclass of
21585 rtl_opt_pass along with...
21586 (pass_data_partition_blocks): ...new pass_data instance and...
21587 (make_pass_partition_blocks): ...new function.
21588 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
21589 struct to a subclass of rtl_opt_pass along with...
21590 (pass_data_branch_target_load_optimize1): ...new pass_data instance
21591 and...
21592 (make_pass_branch_target_load_optimize1): ...new function.
21593 (pass_branch_target_load_optimize2): Convert from a global struct to a
21594 subclass of rtl_opt_pass along with...
21595 (pass_data_branch_target_load_optimize2): ...new pass_data instance
21596 and...
21597 (make_pass_branch_target_load_optimize2): ...new function.
21598 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
21599 of rtl_opt_pass along with...
21600 (pass_data_jump): ...new pass_data instance and...
21601 (make_pass_jump): ...new function.
21602 (pass_jump2): Convert from a global struct to a subclass of
21603 rtl_opt_pass along with...
21604 (pass_data_jump2): ...new pass_data instance and...
21605 (make_pass_jump2): ...new function.
21606 * cfgexpand.c (pass_expand): Convert from a global struct to a
21607 subclass of rtl_opt_pass along with...
21608 (pass_data_expand): ...new pass_data instance and...
21609 (make_pass_expand): ...new function.
21610 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
21611 of rtl_opt_pass along with...
21612 (pass_data_free_cfg): ...new pass_data instance and...
21613 (make_pass_free_cfg): ...new function.
21614 (pass_into_cfg_layout_mode): Convert from a global struct to a
21615 subclass of rtl_opt_pass along with...
21616 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
21617 (make_pass_into_cfg_layout_mode): ...new function.
21618 (pass_outof_cfg_layout_mode): Convert from a global struct to a
21619 subclass of rtl_opt_pass along with...
21620 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
21621 (make_pass_outof_cfg_layout_mode): ...new function.
21622 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
21623 struct to a subclass of gimple_opt_pass along with...
21624 (pass_data_build_cgraph_edges): ...new pass_data instance and...
21625 (make_pass_build_cgraph_edges): ...new function.
21626 (pass_rebuild_cgraph_edges): Convert from a global struct to a
21627 subclass of gimple_opt_pass along with...
21628 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
21629 (make_pass_rebuild_cgraph_edges): ...new function.
21630 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
21631 subclass of gimple_opt_pass along with...
21632 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
21633 and...
21634 (make_pass_remove_cgraph_callee_edges): ...new function.
21635 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
21636 struct to a subclass of rtl_opt_pass along with...
21637 (pass_data_stack_adjustments): ...new pass_data instance and...
21638 (make_pass_stack_adjustments): ...new function.
21639 * combine.c (pass_combine): Convert from a global struct to a subclass
21640 of rtl_opt_pass along with...
21641 (pass_data_combine): ...new pass_data instance and...
21642 (make_pass_combine): ...new function.
21643 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
21644 global struct to a subclass of rtl_opt_pass along with...
21645 (pass_data_compare_elim_after_reload): ...new pass_data instance
21646 and...
21647 (make_pass_compare_elim_after_reload): ...new function.
21648 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
21649 of rtl_opt_pass along with...
21650 (pass_data_rtl_cprop): ...new pass_data instance and...
21651 (make_pass_rtl_cprop): ...new function.
21652 * cse.c (pass_cse): Convert from a global struct to a subclass of
21653 rtl_opt_pass along with...
21654 (pass_data_cse): ...new pass_data instance and...
21655 (make_pass_cse): ...new function.
21656 (pass_cse2): Convert from a global struct to a subclass of
21657 rtl_opt_pass along with...
21658 (pass_data_cse2): ...new pass_data instance and...
21659 (make_pass_cse2): ...new function.
21660 (pass_cse_after_global_opts): Convert from a global struct to a
21661 subclass of rtl_opt_pass along with...
21662 (pass_data_cse_after_global_opts): ...new pass_data instance and...
21663 (make_pass_cse_after_global_opts): ...new function.
21664 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
21665 of rtl_opt_pass along with...
21666 (pass_data_ud_rtl_dce): ...new pass_data instance and...
21667 (make_pass_ud_rtl_dce): ...new function.
21668 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
21669 rtl_opt_pass along with...
21670 (pass_data_fast_rtl_dce): ...new pass_data instance and...
21671 (make_pass_fast_rtl_dce): ...new function.
21672 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
21673 a subclass of rtl_opt_pass along with...
21674 (pass_data_df_initialize_opt): ...new pass_data instance and...
21675 (make_pass_df_initialize_opt): ...new function.
21676 (pass_df_initialize_no_opt): Convert from a global struct to a
21677 subclass of rtl_opt_pass along with...
21678 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
21679 (make_pass_df_initialize_no_opt): ...new function.
21680 (pass_df_finish): Convert from a global struct to a subclass of
21681 rtl_opt_pass along with...
21682 (pass_data_df_finish): ...new pass_data instance and...
21683 (make_pass_df_finish): ...new function.
21684 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
21685 rtl_opt_pass along with...
21686 (pass_data_rtl_dse1): ...new pass_data instance and...
21687 (make_pass_rtl_dse1): ...new function.
21688 (pass_rtl_dse2): Convert from a global struct to a subclass of
21689 rtl_opt_pass along with...
21690 (pass_data_rtl_dse2): ...new pass_data instance and...
21691 (make_pass_rtl_dse2): ...new function.
21692 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
21693 subclass of rtl_opt_pass along with...
21694 (pass_data_dwarf2_frame): ...new pass_data instance and...
21695 (make_pass_dwarf2_frame): ...new function.
21696 * except.c (pass_set_nothrow_function_flags): Convert from a global
21697 struct to a subclass of rtl_opt_pass along with...
21698 (pass_data_set_nothrow_function_flags): ...new pass_data instance
21699 and...
21700 (make_pass_set_nothrow_function_flags): ...new function.
21701 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
21702 subclass of rtl_opt_pass along with...
21703 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
21704 and...
21705 (make_pass_convert_to_eh_region_ranges): ...new function.
21706 * final.c (pass_compute_alignments): Convert from a global struct to a
21707 subclass of rtl_opt_pass along with...
21708 (pass_data_compute_alignments): ...new pass_data instance and...
21709 (make_pass_compute_alignments): ...new function.
21710 (pass_final): Convert from a global struct to a subclass of
21711 rtl_opt_pass along with...
21712 (pass_data_final): ...new pass_data instance and...
21713 (make_pass_final): ...new function.
21714 (pass_shorten_branches): Convert from a global struct to a subclass of
21715 rtl_opt_pass along with...
21716 (pass_data_shorten_branches): ...new pass_data instance and...
21717 (make_pass_shorten_branches): ...new function.
21718 (pass_clean_state): Convert from a global struct to a subclass of
21719 rtl_opt_pass along with...
21720 (pass_data_clean_state): ...new pass_data instance and...
21721 (make_pass_clean_state): ...new function.
21722 * function.c (pass_instantiate_virtual_regs): Convert from a global
21723 struct to a subclass of rtl_opt_pass along with...
21724 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
21725 (make_pass_instantiate_virtual_regs): ...new function.
21726 (pass_leaf_regs): Convert from a global struct to a subclass of
21727 rtl_opt_pass along with...
21728 (pass_data_leaf_regs): ...new pass_data instance and...
21729 (make_pass_leaf_regs): ...new function.
21730 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
21731 subclass of rtl_opt_pass along with...
21732 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
21733 and...
21734 (make_pass_thread_prologue_and_epilogue): ...new function.
21735 (pass_match_asm_constraints): Convert from a global struct to a
21736 subclass of rtl_opt_pass along with...
21737 (pass_data_match_asm_constraints): ...new pass_data instance and...
21738 (make_pass_match_asm_constraints): ...new function.
21739 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
21740 subclass of rtl_opt_pass along with...
21741 (pass_data_rtl_fwprop): ...new pass_data instance and...
21742 (make_pass_rtl_fwprop): ...new function.
21743 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
21744 rtl_opt_pass along with...
21745 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
21746 (make_pass_rtl_fwprop_addr): ...new function.
21747 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
21748 rtl_opt_pass along with...
21749 (pass_data_rtl_pre): ...new pass_data instance and...
21750 (make_pass_rtl_pre): ...new function.
21751 (pass_rtl_hoist): Convert from a global struct to a subclass of
21752 rtl_opt_pass along with...
21753 (pass_data_rtl_hoist): ...new pass_data instance and...
21754 (make_pass_rtl_hoist): ...new function.
21755 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
21756 subclass of gimple_opt_pass along with...
21757 (pass_data_lower_cf): ...new pass_data instance and...
21758 (make_pass_lower_cf): ...new function.
21759 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
21760 from a global struct to a subclass of gimple_opt_pass along with...
21761 (pass_data_strength_reduction): ...new pass_data instance and...
21762 (make_pass_strength_reduction): ...new function.
21763 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
21764 of rtl_opt_pass along with...
21765 (pass_data_rtl_ifcvt): ...new pass_data instance and...
21766 (make_pass_rtl_ifcvt): ...new function.
21767 (pass_if_after_combine): Convert from a global struct to a subclass of
21768 rtl_opt_pass along with...
21769 (pass_data_if_after_combine): ...new pass_data instance and...
21770 (make_pass_if_after_combine): ...new function.
21771 (pass_if_after_reload): Convert from a global struct to a subclass of
21772 rtl_opt_pass along with...
21773 (pass_data_if_after_reload): ...new pass_data instance and...
21774 (make_pass_if_after_reload): ...new function.
21775 * init-regs.c (pass_initialize_regs): Convert from a global struct to
21776 a subclass of rtl_opt_pass along with...
21777 (pass_data_initialize_regs): ...new pass_data instance and...
21778 (make_pass_initialize_regs): ...new function.
21779 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
21780 of ipa_opt_pass_d along with...
21781 (pass_data_ipa_cp): ...new pass_data instance and...
21782 (make_pass_ipa_cp): ...new function.
21783 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
21784 global struct to a subclass of gimple_opt_pass along with...
21785 (pass_data_inline_parameters): ...new pass_data instance and...
21786 (make_pass_inline_parameters): ...new function.
21787 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
21788 subclass of gimple_opt_pass along with...
21789 (pass_data_early_inline): ...new pass_data instance and...
21790 (make_pass_early_inline): ...new function.
21791 (pass_ipa_inline): Convert from a global struct to a subclass of
21792 ipa_opt_pass_d along with...
21793 (pass_data_ipa_inline): ...new pass_data instance and...
21794 (make_pass_ipa_inline): ...new function.
21795 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
21796 struct to a subclass of gimple_opt_pass along with...
21797 (pass_data_local_pure_const): ...new pass_data instance and...
21798 (make_pass_local_pure_const): ...new function.
21799 (pass_ipa_pure_const): Convert from a global struct to a subclass of
21800 ipa_opt_pass_d along with...
21801 (pass_data_ipa_pure_const): ...new pass_data instance and...
21802 (make_pass_ipa_pure_const): ...new function.
21803 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
21804 to a subclass of ipa_opt_pass_d along with...
21805 (pass_data_ipa_reference): ...new pass_data instance and...
21806 (make_pass_ipa_reference): ...new function.
21807 * ipa-split.c (pass_split_functions): Convert from a global struct to
21808 a subclass of gimple_opt_pass along with...
21809 (pass_data_split_functions): ...new pass_data instance and...
21810 (make_pass_split_functions): ...new function.
21811 (pass_feedback_split_functions): Convert from a global struct to a
21812 subclass of gimple_opt_pass along with...
21813 (pass_data_feedback_split_functions): ...new pass_data instance and...
21814 (make_pass_feedback_split_functions): ...new function.
21815 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
21816 global struct to a subclass of simple_ipa_opt_pass along with...
21817 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
21818 instance and...
21819 (make_pass_ipa_function_and_variable_visibility): ...new function.
21820 (pass_ipa_free_inline_summary): Convert from a global struct to a
21821 subclass of simple_ipa_opt_pass along with...
21822 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
21823 (make_pass_ipa_free_inline_summary): ...new function.
21824 (pass_ipa_whole_program_visibility): Convert from a global struct to a
21825 subclass of ipa_opt_pass_d along with...
21826 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
21827 and...
21828 (make_pass_ipa_whole_program_visibility): ...new function.
21829 (pass_ipa_profile): Convert from a global struct to a subclass of
21830 ipa_opt_pass_d along with...
21831 (pass_data_ipa_profile): ...new pass_data instance and...
21832 (make_pass_ipa_profile): ...new function.
21833 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
21834 ipa_opt_pass_d along with...
21835 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
21836 (make_pass_ipa_cdtor_merge): ...new function.
21837 * ira.c (pass_ira): Convert from a global struct to a subclass of
21838 rtl_opt_pass along with...
21839 (pass_data_ira): ...new pass_data instance and...
21840 (make_pass_ira): ...new function.
21841 (pass_reload): Convert from a global struct to a subclass of
21842 rtl_opt_pass along with...
21843 (pass_data_reload): ...new pass_data instance and...
21844 (make_pass_reload): ...new function.
21845 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
21846 subclass of rtl_opt_pass along with...
21847 (pass_data_cleanup_barriers): ...new pass_data instance and...
21848 (make_pass_cleanup_barriers): ...new function.
21849 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
21850 of rtl_opt_pass along with...
21851 (pass_data_loop2): ...new pass_data instance and...
21852 (make_pass_loop2): ...new function.
21853 (pass_rtl_loop_init): Convert from a global struct to a subclass of
21854 rtl_opt_pass along with...
21855 (pass_data_rtl_loop_init): ...new pass_data instance and...
21856 (make_pass_rtl_loop_init): ...new function.
21857 (pass_rtl_loop_done): Convert from a global struct to a subclass of
21858 rtl_opt_pass along with...
21859 (pass_data_rtl_loop_done): ...new pass_data instance and...
21860 (make_pass_rtl_loop_done): ...new function.
21861 (pass_rtl_move_loop_invariants): Convert from a global struct to a
21862 subclass of rtl_opt_pass along with...
21863 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
21864 (make_pass_rtl_move_loop_invariants): ...new function.
21865 (pass_rtl_unswitch): Convert from a global struct to a subclass of
21866 rtl_opt_pass along with...
21867 (pass_data_rtl_unswitch): ...new pass_data instance and...
21868 (make_pass_rtl_unswitch): ...new function.
21869 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
21870 subclass of rtl_opt_pass along with...
21871 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
21872 and...
21873 (make_pass_rtl_unroll_and_peel_loops): ...new function.
21874 (pass_rtl_doloop): Convert from a global struct to a subclass of
21875 rtl_opt_pass along with...
21876 (pass_data_rtl_doloop): ...new pass_data instance and...
21877 (make_pass_rtl_doloop): ...new function.
21878 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
21879 a subclass of rtl_opt_pass along with...
21880 (pass_data_lower_subreg): ...new pass_data instance and...
21881 (make_pass_lower_subreg): ...new function.
21882 (pass_lower_subreg2): Convert from a global struct to a subclass of
21883 rtl_opt_pass along with...
21884 (pass_data_lower_subreg2): ...new pass_data instance and...
21885 (make_pass_lower_subreg2): ...new function.
21886 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
21887 struct to a subclass of ipa_opt_pass_d along with...
21888 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
21889 (make_pass_ipa_lto_gimple_out): ...new function.
21890 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
21891 of ipa_opt_pass_d along with...
21892 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
21893 (make_pass_ipa_lto_finish_out): ...new function.
21894 * mode-switching.c (pass_mode_switching): Convert from a global struct
21895 to a subclass of rtl_opt_pass along with...
21896 (pass_data_mode_switching): ...new pass_data instance and...
21897 (make_pass_mode_switching): ...new function.
21898 * modulo-sched.c (pass_sms): Convert from a global struct to a
21899 subclass of rtl_opt_pass along with...
21900 (pass_data_sms): ...new pass_data instance and...
21901 (make_pass_sms): ...new function.
21902 * omp-low.c (pass_expand_omp): Convert from a global struct to a
21903 subclass of gimple_opt_pass along with...
21904 (pass_data_expand_omp): ...new pass_data instance and...
21905 (make_pass_expand_omp): ...new function.
21906 (pass_lower_omp): Convert from a global struct to a subclass of
21907 gimple_opt_pass along with...
21908 (pass_data_lower_omp): ...new pass_data instance and...
21909 (make_pass_lower_omp): ...new function.
21910 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
21911 of gimple_opt_pass along with...
21912 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
21913 (make_pass_diagnose_omp_blocks): ...new function.
21914 * passes.c (pass_early_local_passes): Convert from a global struct to
21915 a subclass of simple_ipa_opt_pass along with...
21916 (pass_data_early_local_passes): ...new pass_data instance and...
21917 (make_pass_early_local_passes): ...new function.
21918 (pass_all_early_optimizations): Convert from a global struct to a
21919 subclass of gimple_opt_pass along with...
21920 (pass_data_all_early_optimizations): ...new pass_data instance and...
21921 (make_pass_all_early_optimizations): ...new function.
21922 (pass_all_optimizations): Convert from a global struct to a subclass
21923 of gimple_opt_pass along with...
21924 (pass_data_all_optimizations): ...new pass_data instance and...
21925 (make_pass_all_optimizations): ...new function.
21926 (pass_all_optimizations_g): Convert from a global struct to a subclass
21927 of gimple_opt_pass along with...
21928 (pass_data_all_optimizations_g): ...new pass_data instance and...
21929 (make_pass_all_optimizations_g): ...new function.
21930 (pass_rest_of_compilation): Convert from a global struct to a subclass
21931 of rtl_opt_pass along with...
21932 (pass_data_rest_of_compilation): ...new pass_data instance and...
21933 (make_pass_rest_of_compilation): ...new function.
21934 (pass_postreload): Convert from a global struct to a subclass of
21935 rtl_opt_pass along with...
21936 (pass_data_postreload): ...new pass_data instance and...
21937 (make_pass_postreload): ...new function.
21938 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
21939 subclass of rtl_opt_pass along with...
21940 (pass_data_gcse2): ...new pass_data instance and...
21941 (make_pass_gcse2): ...new function.
21942 * postreload.c (pass_postreload_cse): Convert from a global struct to
21943 a subclass of rtl_opt_pass along with...
21944 (pass_data_postreload_cse): ...new pass_data instance and...
21945 (make_pass_postreload_cse): ...new function.
21946 * predict.c (pass_profile): Convert from a global struct to a subclass
21947 of gimple_opt_pass along with...
21948 (pass_data_profile): ...new pass_data instance and...
21949 (make_pass_profile): ...new function.
21950 (pass_strip_predict_hints): Convert from a global struct to a subclass
21951 of gimple_opt_pass along with...
21952 (pass_data_strip_predict_hints): ...new pass_data instance and...
21953 (make_pass_strip_predict_hints): ...new function.
21954 * recog.c (pass_peephole2): Convert from a global struct to a subclass
21955 of rtl_opt_pass along with...
21956 (pass_data_peephole2): ...new pass_data instance and...
21957 (make_pass_peephole2): ...new function.
21958 (pass_split_all_insns): Convert from a global struct to a subclass of
21959 rtl_opt_pass along with...
21960 (pass_data_split_all_insns): ...new pass_data instance and...
21961 (make_pass_split_all_insns): ...new function.
21962 (pass_split_after_reload): Convert from a global struct to a subclass
21963 of rtl_opt_pass along with...
21964 (pass_data_split_after_reload): ...new pass_data instance and...
21965 (make_pass_split_after_reload): ...new function.
21966 (pass_split_before_regstack): Convert from a global struct to a
21967 subclass of rtl_opt_pass along with...
21968 (pass_data_split_before_regstack): ...new pass_data instance and...
21969 (make_pass_split_before_regstack): ...new function.
21970 (pass_split_before_sched2): Convert from a global struct to a subclass
21971 of rtl_opt_pass along with...
21972 (pass_data_split_before_sched2): ...new pass_data instance and...
21973 (make_pass_split_before_sched2): ...new function.
21974 (pass_split_for_shorten_branches): Convert from a global struct to a
21975 subclass of rtl_opt_pass along with...
21976 (pass_data_split_for_shorten_branches): ...new pass_data instance
21977 and...
21978 (make_pass_split_for_shorten_branches): ...new function.
21979 * ree.c (pass_ree): Convert from a global struct to a subclass of
21980 rtl_opt_pass along with...
21981 (pass_data_ree): ...new pass_data instance and...
21982 (make_pass_ree): ...new function.
21983 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
21984 subclass of rtl_opt_pass along with...
21985 (pass_data_stack_regs): ...new pass_data instance and...
21986 (make_pass_stack_regs): ...new function.
21987 (pass_stack_regs_run): Convert from a global struct to a subclass of
21988 rtl_opt_pass along with...
21989 (pass_data_stack_regs_run): ...new pass_data instance and...
21990 (make_pass_stack_regs_run): ...new function.
21991 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
21992 subclass of rtl_opt_pass along with...
21993 (pass_data_cprop_hardreg): ...new pass_data instance and...
21994 (make_pass_cprop_hardreg): ...new function.
21995 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
21996 subclass of rtl_opt_pass along with...
21997 (pass_data_reginfo_init): ...new pass_data instance and...
21998 (make_pass_reginfo_init): ...new function.
21999 * regmove.c (pass_regmove): Convert from a global struct to a subclass
22000 of rtl_opt_pass along with...
22001 (pass_data_regmove): ...new pass_data instance and...
22002 (make_pass_regmove): ...new function.
22003 * regrename.c (pass_regrename): Convert from a global struct to a
22004 subclass of rtl_opt_pass along with...
22005 (pass_data_regrename): ...new pass_data instance and...
22006 (make_pass_regrename): ...new function.
22007 * reorg.c (pass_delay_slots): Convert from a global struct to a
22008 subclass of rtl_opt_pass along with...
22009 (pass_data_delay_slots): ...new pass_data instance and...
22010 (make_pass_delay_slots): ...new function.
22011 (pass_machine_reorg): Convert from a global struct to a subclass of
22012 rtl_opt_pass along with...
22013 (pass_data_machine_reorg): ...new pass_data instance and...
22014 (make_pass_machine_reorg): ...new function.
22015 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
22016 of rtl_opt_pass along with...
22017 (pass_data_sched): ...new pass_data instance and...
22018 (make_pass_sched): ...new function.
22019 (pass_sched2): Convert from a global struct to a subclass of
22020 rtl_opt_pass along with...
22021 (pass_data_sched2): ...new pass_data instance and...
22022 (make_pass_sched2): ...new function.
22023 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
22024 to a subclass of rtl_opt_pass along with...
22025 (pass_data_stack_ptr_mod): ...new pass_data instance and...
22026 (make_pass_stack_ptr_mod): ...new function.
22027 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
22028 to a subclass of rtl_opt_pass along with...
22029 (pass_data_rtl_store_motion): ...new pass_data instance and...
22030 (make_pass_rtl_store_motion): ...new function.
22031 * tracer.c (pass_tracer): Convert from a global struct to a subclass
22032 of gimple_opt_pass along with...
22033 (pass_data_tracer): ...new pass_data instance and...
22034 (make_pass_tracer): ...new function.
22035 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
22036 to a subclass of gimple_opt_pass along with...
22037 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
22038 (make_pass_diagnose_tm_blocks): ...new function.
22039 (pass_lower_tm): Convert from a global struct to a subclass of
22040 gimple_opt_pass along with...
22041 (pass_data_lower_tm): ...new pass_data instance and...
22042 (make_pass_lower_tm): ...new function.
22043 (pass_tm_init): Convert from a global struct to a subclass of
22044 gimple_opt_pass along with...
22045 (pass_data_tm_init): ...new pass_data instance and...
22046 (make_pass_tm_init): ...new function.
22047 (pass_tm_mark): Convert from a global struct to a subclass of
22048 gimple_opt_pass along with...
22049 (pass_data_tm_mark): ...new pass_data instance and...
22050 (make_pass_tm_mark): ...new function.
22051 (pass_tm_edges): Convert from a global struct to a subclass of
22052 gimple_opt_pass along with...
22053 (pass_data_tm_edges): ...new pass_data instance and...
22054 (make_pass_tm_edges): ...new function.
22055 (pass_tm_memopt): Convert from a global struct to a subclass of
22056 gimple_opt_pass along with...
22057 (pass_data_tm_memopt): ...new pass_data instance and...
22058 (make_pass_tm_memopt): ...new function.
22059 (pass_ipa_tm): Convert from a global struct to a subclass of
22060 simple_ipa_opt_pass along with...
22061 (pass_data_ipa_tm): ...new pass_data instance and...
22062 (make_pass_ipa_tm): ...new function.
22063 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
22064 subclass of gimple_opt_pass along with...
22065 (pass_data_call_cdce): ...new pass_data instance and...
22066 (make_pass_call_cdce): ...new function.
22067 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
22068 subclass of gimple_opt_pass along with...
22069 (pass_data_build_cfg): ...new pass_data instance and...
22070 (make_pass_build_cfg): ...new function.
22071 (pass_split_crit_edges): Convert from a global struct to a subclass of
22072 gimple_opt_pass along with...
22073 (pass_data_split_crit_edges): ...new pass_data instance and...
22074 (make_pass_split_crit_edges): ...new function.
22075 (pass_warn_function_return): Convert from a global struct to a
22076 subclass of gimple_opt_pass along with...
22077 (pass_data_warn_function_return): ...new pass_data instance and...
22078 (make_pass_warn_function_return): ...new function.
22079 (pass_warn_function_noreturn): Convert from a global struct to a
22080 subclass of gimple_opt_pass along with...
22081 (pass_data_warn_function_noreturn): ...new pass_data instance and...
22082 (make_pass_warn_function_noreturn): ...new function.
22083 (pass_warn_unused_result): Convert from a global struct to a subclass
22084 of gimple_opt_pass along with...
22085 (pass_data_warn_unused_result): ...new pass_data instance and...
22086 (make_pass_warn_unused_result): ...new function.
22087 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
22088 a subclass of gimple_opt_pass along with...
22089 (pass_data_merge_phi): ...new pass_data instance and...
22090 (make_pass_merge_phi): ...new function.
22091 * tree-complex.c (pass_lower_complex): Convert from a global struct to
22092 a subclass of gimple_opt_pass along with...
22093 (pass_data_lower_complex): ...new pass_data instance and...
22094 (make_pass_lower_complex): ...new function.
22095 (pass_lower_complex_O0): Convert from a global struct to a subclass of
22096 gimple_opt_pass along with...
22097 (pass_data_lower_complex_O0): ...new pass_data instance and...
22098 (make_pass_lower_complex_O0): ...new function.
22099 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
22100 subclass of gimple_opt_pass along with...
22101 (pass_data_lower_eh): ...new pass_data instance and...
22102 (make_pass_lower_eh): ...new function.
22103 (pass_refactor_eh): Convert from a global struct to a subclass of
22104 gimple_opt_pass along with...
22105 (pass_data_refactor_eh): ...new pass_data instance and...
22106 (make_pass_refactor_eh): ...new function.
22107 (pass_lower_resx): Convert from a global struct to a subclass of
22108 gimple_opt_pass along with...
22109 (pass_data_lower_resx): ...new pass_data instance and...
22110 (make_pass_lower_resx): ...new function.
22111 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
22112 of gimple_opt_pass along with...
22113 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
22114 (make_pass_lower_eh_dispatch): ...new function.
22115 (pass_cleanup_eh): Convert from a global struct to a subclass of
22116 gimple_opt_pass along with...
22117 (pass_data_cleanup_eh): ...new pass_data instance and...
22118 (make_pass_cleanup_eh): ...new function.
22119 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
22120 to a subclass of simple_ipa_opt_pass along with...
22121 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
22122 (make_pass_ipa_lower_emutls): ...new function.
22123 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
22124 a subclass of gimple_opt_pass along with...
22125 (pass_data_if_conversion): ...new pass_data instance and...
22126 (make_pass_if_conversion): ...new function.
22127 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
22128 subclass of gimple_opt_pass along with...
22129 (pass_data_build_ssa): ...new pass_data instance and...
22130 (make_pass_build_ssa): ...new function.
22131 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
22132 global struct to a subclass of gimple_opt_pass along with...
22133 (pass_data_loop_distribution): ...new pass_data instance and...
22134 (make_pass_loop_distribution): ...new function.
22135 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
22136 subclass of gimple_opt_pass along with...
22137 (pass_data_mudflap_1): ...new pass_data instance and...
22138 (make_pass_mudflap_1): ...new function.
22139 (pass_mudflap_2): Convert from a global struct to a subclass of
22140 gimple_opt_pass along with...
22141 (pass_data_mudflap_2): ...new pass_data instance and...
22142 (make_pass_mudflap_2): ...new function.
22143 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
22144 subclass of gimple_opt_pass along with...
22145 (pass_data_mudflap_1): ...new pass_data instance and...
22146 (make_pass_mudflap_1): ...new function.
22147 (pass_mudflap_2): Convert from a global struct to a subclass of
22148 gimple_opt_pass along with...
22149 (pass_data_mudflap_2): ...new pass_data instance and...
22150 (make_pass_mudflap_2): ...new function.
22151 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
22152 gimple_opt_pass along with...
22153 (pass_data_nrv): ...new pass_data instance and...
22154 (make_pass_nrv): ...new function.
22155 (pass_return_slot): Convert from a global struct to a subclass of
22156 gimple_opt_pass along with...
22157 (pass_data_return_slot): ...new pass_data instance and...
22158 (make_pass_return_slot): ...new function.
22159 * tree-object-size.c (pass_object_sizes): Convert from a global struct
22160 to a subclass of gimple_opt_pass along with...
22161 (pass_data_object_sizes): ...new pass_data instance and...
22162 (make_pass_object_sizes): ...new function.
22163 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
22164 global struct to a subclass of gimple_opt_pass along with...
22165 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
22166 and...
22167 (make_pass_cleanup_cfg_post_optimizing): ...new function.
22168 (pass_fixup_cfg): Convert from a global struct to a subclass of
22169 gimple_opt_pass along with...
22170 (pass_data_fixup_cfg): ...new pass_data instance and...
22171 (make_pass_fixup_cfg): ...new function.
22172 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
22173 (make_pass_mudflap_1): ...new function.
22174 (pass_mudflap_2): Replace declaration with that of...
22175 (make_pass_mudflap_2): ...new function.
22176 (pass_asan): Replace declaration with that of...
22177 (make_pass_asan): ...new function.
22178 (pass_asan_O0): Replace declaration with that of...
22179 (make_pass_asan_O0): ...new function.
22180 (pass_tsan): Replace declaration with that of...
22181 (make_pass_tsan): ...new function.
22182 (pass_tsan_O0): Replace declaration with that of...
22183 (make_pass_tsan_O0): ...new function.
22184 (pass_lower_cf): Replace declaration with that of...
22185 (make_pass_lower_cf): ...new function.
22186 (pass_refactor_eh): Replace declaration with that of...
22187 (make_pass_refactor_eh): ...new function.
22188 (pass_lower_eh): Replace declaration with that of...
22189 (make_pass_lower_eh): ...new function.
22190 (pass_lower_eh_dispatch): Replace declaration with that of...
22191 (make_pass_lower_eh_dispatch): ...new function.
22192 (pass_lower_resx): Replace declaration with that of...
22193 (make_pass_lower_resx): ...new function.
22194 (pass_build_cfg): Replace declaration with that of...
22195 (make_pass_build_cfg): ...new function.
22196 (pass_early_tree_profile): Replace declaration with that of...
22197 (make_pass_early_tree_profile): ...new function.
22198 (pass_cleanup_eh): Replace declaration with that of...
22199 (make_pass_cleanup_eh): ...new function.
22200 (pass_sra): Replace declaration with that of...
22201 (make_pass_sra): ...new function.
22202 (pass_sra_early): Replace declaration with that of...
22203 (make_pass_sra_early): ...new function.
22204 (pass_early_ipa_sra): Replace declaration with that of...
22205 (make_pass_early_ipa_sra): ...new function.
22206 (pass_tail_recursion): Replace declaration with that of...
22207 (make_pass_tail_recursion): ...new function.
22208 (pass_tail_calls): Replace declaration with that of...
22209 (make_pass_tail_calls): ...new function.
22210 (pass_tree_loop): Replace declaration with that of...
22211 (make_pass_tree_loop): ...new function.
22212 (pass_tree_loop_init): Replace declaration with that of...
22213 (make_pass_tree_loop_init): ...new function.
22214 (pass_lim): Replace declaration with that of...
22215 (make_pass_lim): ...new function.
22216 (pass_tree_unswitch): Replace declaration with that of...
22217 (make_pass_tree_unswitch): ...new function.
22218 (pass_predcom): Replace declaration with that of...
22219 (make_pass_predcom): ...new function.
22220 (pass_iv_canon): Replace declaration with that of...
22221 (make_pass_iv_canon): ...new function.
22222 (pass_scev_cprop): Replace declaration with that of...
22223 (make_pass_scev_cprop): ...new function.
22224 (pass_empty_loop): Replace declaration with that of...
22225 (make_pass_empty_loop): ...new function.
22226 (pass_record_bounds): Replace declaration with that of...
22227 (make_pass_record_bounds): ...new function.
22228 (pass_graphite): Replace declaration with that of...
22229 (make_pass_graphite): ...new function.
22230 (pass_graphite_transforms): Replace declaration with that of...
22231 (make_pass_graphite_transforms): ...new function.
22232 (pass_if_conversion): Replace declaration with that of...
22233 (make_pass_if_conversion): ...new function.
22234 (pass_loop_distribution): Replace declaration with that of...
22235 (make_pass_loop_distribution): ...new function.
22236 (pass_vectorize): Replace declaration with that of...
22237 (make_pass_vectorize): ...new function.
22238 (pass_slp_vectorize): Replace declaration with that of...
22239 (make_pass_slp_vectorize): ...new function.
22240 (pass_complete_unroll): Replace declaration with that of...
22241 (make_pass_complete_unroll): ...new function.
22242 (pass_complete_unrolli): Replace declaration with that of...
22243 (make_pass_complete_unrolli): ...new function.
22244 (pass_parallelize_loops): Replace declaration with that of...
22245 (make_pass_parallelize_loops): ...new function.
22246 (pass_loop_prefetch): Replace declaration with that of...
22247 (make_pass_loop_prefetch): ...new function.
22248 (pass_iv_optimize): Replace declaration with that of...
22249 (make_pass_iv_optimize): ...new function.
22250 (pass_tree_loop_done): Replace declaration with that of...
22251 (make_pass_tree_loop_done): ...new function.
22252 (pass_ch): Replace declaration with that of...
22253 (make_pass_ch): ...new function.
22254 (pass_ccp): Replace declaration with that of...
22255 (make_pass_ccp): ...new function.
22256 (pass_phi_only_cprop): Replace declaration with that of...
22257 (make_pass_phi_only_cprop): ...new function.
22258 (pass_build_ssa): Replace declaration with that of...
22259 (make_pass_build_ssa): ...new function.
22260 (pass_build_alias): Replace declaration with that of...
22261 (make_pass_build_alias): ...new function.
22262 (pass_build_ealias): Replace declaration with that of...
22263 (make_pass_build_ealias): ...new function.
22264 (pass_dominator): Replace declaration with that of...
22265 (make_pass_dominator): ...new function.
22266 (pass_dce): Replace declaration with that of...
22267 (make_pass_dce): ...new function.
22268 (pass_dce_loop): Replace declaration with that of...
22269 (make_pass_dce_loop): ...new function.
22270 (pass_cd_dce): Replace declaration with that of...
22271 (make_pass_cd_dce): ...new function.
22272 (pass_call_cdce): Replace declaration with that of...
22273 (make_pass_call_cdce): ...new function.
22274 (pass_merge_phi): Replace declaration with that of...
22275 (make_pass_merge_phi): ...new function.
22276 (pass_split_crit_edges): Replace declaration with that of...
22277 (make_pass_split_crit_edges): ...new function.
22278 (pass_pre): Replace declaration with that of...
22279 (make_pass_pre): ...new function.
22280 (pass_profile): Replace declaration with that of...
22281 (make_pass_profile): ...new function.
22282 (pass_strip_predict_hints): Replace declaration with that of...
22283 (make_pass_strip_predict_hints): ...new function.
22284 (pass_lower_complex_O0): Replace declaration with that of...
22285 (make_pass_lower_complex_O0): ...new function.
22286 (pass_lower_complex): Replace declaration with that of...
22287 (make_pass_lower_complex): ...new function.
22288 (pass_lower_vector): Replace declaration with that of...
22289 (make_pass_lower_vector): ...new function.
22290 (pass_lower_vector_ssa): Replace declaration with that of...
22291 (make_pass_lower_vector_ssa): ...new function.
22292 (pass_lower_omp): Replace declaration with that of...
22293 (make_pass_lower_omp): ...new function.
22294 (pass_diagnose_omp_blocks): Replace declaration with that of...
22295 (make_pass_diagnose_omp_blocks): ...new function.
22296 (pass_expand_omp): Replace declaration with that of...
22297 (make_pass_expand_omp): ...new function.
22298 (pass_expand_omp_ssa): Replace declaration with that of...
22299 (make_pass_expand_omp_ssa): ...new function.
22300 (pass_object_sizes): Replace declaration with that of...
22301 (make_pass_object_sizes): ...new function.
22302 (pass_strlen): Replace declaration with that of...
22303 (make_pass_strlen): ...new function.
22304 (pass_fold_builtins): Replace declaration with that of...
22305 (make_pass_fold_builtins): ...new function.
22306 (pass_stdarg): Replace declaration with that of...
22307 (make_pass_stdarg): ...new function.
22308 (pass_early_warn_uninitialized): Replace declaration with that of...
22309 (make_pass_early_warn_uninitialized): ...new function.
22310 (pass_late_warn_uninitialized): Replace declaration with that of...
22311 (make_pass_late_warn_uninitialized): ...new function.
22312 (pass_cse_reciprocals): Replace declaration with that of...
22313 (make_pass_cse_reciprocals): ...new function.
22314 (pass_cse_sincos): Replace declaration with that of...
22315 (make_pass_cse_sincos): ...new function.
22316 (pass_optimize_bswap): Replace declaration with that of...
22317 (make_pass_optimize_bswap): ...new function.
22318 (pass_optimize_widening_mul): Replace declaration with that of...
22319 (make_pass_optimize_widening_mul): ...new function.
22320 (pass_warn_function_return): Replace declaration with that of...
22321 (make_pass_warn_function_return): ...new function.
22322 (pass_warn_function_noreturn): Replace declaration with that of...
22323 (make_pass_warn_function_noreturn): ...new function.
22324 (pass_cselim): Replace declaration with that of...
22325 (make_pass_cselim): ...new function.
22326 (pass_phiopt): Replace declaration with that of...
22327 (make_pass_phiopt): ...new function.
22328 (pass_forwprop): Replace declaration with that of...
22329 (make_pass_forwprop): ...new function.
22330 (pass_phiprop): Replace declaration with that of...
22331 (make_pass_phiprop): ...new function.
22332 (pass_tree_ifcombine): Replace declaration with that of...
22333 (make_pass_tree_ifcombine): ...new function.
22334 (pass_dse): Replace declaration with that of...
22335 (make_pass_dse): ...new function.
22336 (pass_nrv): Replace declaration with that of...
22337 (make_pass_nrv): ...new function.
22338 (pass_rename_ssa_copies): Replace declaration with that of...
22339 (make_pass_rename_ssa_copies): ...new function.
22340 (pass_sink_code): Replace declaration with that of...
22341 (make_pass_sink_code): ...new function.
22342 (pass_fre): Replace declaration with that of...
22343 (make_pass_fre): ...new function.
22344 (pass_check_data_deps): Replace declaration with that of...
22345 (make_pass_check_data_deps): ...new function.
22346 (pass_copy_prop): Replace declaration with that of...
22347 (make_pass_copy_prop): ...new function.
22348 (pass_vrp): Replace declaration with that of...
22349 (make_pass_vrp): ...new function.
22350 (pass_uncprop): Replace declaration with that of...
22351 (make_pass_uncprop): ...new function.
22352 (pass_return_slot): Replace declaration with that of...
22353 (make_pass_return_slot): ...new function.
22354 (pass_reassoc): Replace declaration with that of...
22355 (make_pass_reassoc): ...new function.
22356 (pass_rebuild_cgraph_edges): Replace declaration with that of...
22357 (make_pass_rebuild_cgraph_edges): ...new function.
22358 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
22359 (make_pass_remove_cgraph_callee_edges): ...new function.
22360 (pass_build_cgraph_edges): Replace declaration with that of...
22361 (make_pass_build_cgraph_edges): ...new function.
22362 (pass_local_pure_const): Replace declaration with that of...
22363 (make_pass_local_pure_const): ...new function.
22364 (pass_tracer): Replace declaration with that of...
22365 (make_pass_tracer): ...new function.
22366 (pass_warn_unused_result): Replace declaration with that of...
22367 (make_pass_warn_unused_result): ...new function.
22368 (pass_diagnose_tm_blocks): Replace declaration with that of...
22369 (make_pass_diagnose_tm_blocks): ...new function.
22370 (pass_lower_tm): Replace declaration with that of...
22371 (make_pass_lower_tm): ...new function.
22372 (pass_tm_init): Replace declaration with that of...
22373 (make_pass_tm_init): ...new function.
22374 (pass_tm_mark): Replace declaration with that of...
22375 (make_pass_tm_mark): ...new function.
22376 (pass_tm_memopt): Replace declaration with that of...
22377 (make_pass_tm_memopt): ...new function.
22378 (pass_tm_edges): Replace declaration with that of...
22379 (make_pass_tm_edges): ...new function.
22380 (pass_split_functions): Replace declaration with that of...
22381 (make_pass_split_functions): ...new function.
22382 (pass_feedback_split_functions): Replace declaration with that of...
22383 (make_pass_feedback_split_functions): ...new function.
22384 (pass_strength_reduction): Replace declaration with that of...
22385 (make_pass_strength_reduction): ...new function.
22386 (pass_ipa_lower_emutls): Replace declaration with that of...
22387 (make_pass_ipa_lower_emutls): ...new function.
22388 (pass_ipa_function_and_variable_visibility): Replace declaration with
22389 that of...
22390 (make_pass_ipa_function_and_variable_visibility): ...new function.
22391 (pass_ipa_tree_profile): Replace declaration with that of...
22392 (make_pass_ipa_tree_profile): ...new function.
22393 (pass_early_local_passes): Replace declaration with that of...
22394 (make_pass_early_local_passes): ...new function.
22395 (pass_ipa_whole_program_visibility): Replace declaration with that
22396 of...
22397 (make_pass_ipa_whole_program_visibility): ...new function.
22398 (pass_ipa_lto_gimple_out): Replace declaration with that of...
22399 (make_pass_ipa_lto_gimple_out): ...new function.
22400 (pass_ipa_increase_alignment): Replace declaration with that of...
22401 (make_pass_ipa_increase_alignment): ...new function.
22402 (pass_ipa_inline): Replace declaration with that of...
22403 (make_pass_ipa_inline): ...new function.
22404 (pass_ipa_free_lang_data): Replace declaration with that of...
22405 (make_pass_ipa_free_lang_data): ...new function.
22406 (pass_ipa_free_inline_summary): Replace declaration with that of...
22407 (make_pass_ipa_free_inline_summary): ...new function.
22408 (pass_ipa_cp): Replace declaration with that of...
22409 (make_pass_ipa_cp): ...new function.
22410 (pass_ipa_reference): Replace declaration with that of...
22411 (make_pass_ipa_reference): ...new function.
22412 (pass_ipa_pure_const): Replace declaration with that of...
22413 (make_pass_ipa_pure_const): ...new function.
22414 (pass_ipa_pta): Replace declaration with that of...
22415 (make_pass_ipa_pta): ...new function.
22416 (pass_ipa_lto_finish_out): Replace declaration with that of...
22417 (make_pass_ipa_lto_finish_out): ...new function.
22418 (pass_ipa_tm): Replace declaration with that of...
22419 (make_pass_ipa_tm): ...new function.
22420 (pass_ipa_profile): Replace declaration with that of...
22421 (make_pass_ipa_profile): ...new function.
22422 (pass_ipa_cdtor_merge): Replace declaration with that of...
22423 (make_pass_ipa_cdtor_merge): ...new function.
22424 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
22425 of...
22426 (make_pass_cleanup_cfg_post_optimizing): ...new function.
22427 (pass_init_datastructures): Replace declaration with that of...
22428 (make_pass_init_datastructures): ...new function.
22429 (pass_fixup_cfg): Replace declaration with that of...
22430 (make_pass_fixup_cfg): ...new function.
22431 (pass_expand): Replace declaration with that of...
22432 (make_pass_expand): ...new function.
22433 (pass_instantiate_virtual_regs): Replace declaration with that of...
22434 (make_pass_instantiate_virtual_regs): ...new function.
22435 (pass_rtl_fwprop): Replace declaration with that of...
22436 (make_pass_rtl_fwprop): ...new function.
22437 (pass_rtl_fwprop_addr): Replace declaration with that of...
22438 (make_pass_rtl_fwprop_addr): ...new function.
22439 (pass_jump): Replace declaration with that of...
22440 (make_pass_jump): ...new function.
22441 (pass_jump2): Replace declaration with that of...
22442 (make_pass_jump2): ...new function.
22443 (pass_lower_subreg): Replace declaration with that of...
22444 (make_pass_lower_subreg): ...new function.
22445 (pass_cse): Replace declaration with that of...
22446 (make_pass_cse): ...new function.
22447 (pass_fast_rtl_dce): Replace declaration with that of...
22448 (make_pass_fast_rtl_dce): ...new function.
22449 (pass_ud_rtl_dce): Replace declaration with that of...
22450 (make_pass_ud_rtl_dce): ...new function.
22451 (pass_rtl_dce): Replace declaration with that of...
22452 (make_pass_rtl_dce): ...new function.
22453 (pass_rtl_dse1): Replace declaration with that of...
22454 (make_pass_rtl_dse1): ...new function.
22455 (pass_rtl_dse2): Replace declaration with that of...
22456 (make_pass_rtl_dse2): ...new function.
22457 (pass_rtl_dse3): Replace declaration with that of...
22458 (make_pass_rtl_dse3): ...new function.
22459 (pass_rtl_cprop): Replace declaration with that of...
22460 (make_pass_rtl_cprop): ...new function.
22461 (pass_rtl_pre): Replace declaration with that of...
22462 (make_pass_rtl_pre): ...new function.
22463 (pass_rtl_hoist): Replace declaration with that of...
22464 (make_pass_rtl_hoist): ...new function.
22465 (pass_rtl_store_motion): Replace declaration with that of...
22466 (make_pass_rtl_store_motion): ...new function.
22467 (pass_cse_after_global_opts): Replace declaration with that of...
22468 (make_pass_cse_after_global_opts): ...new function.
22469 (pass_rtl_ifcvt): Replace declaration with that of...
22470 (make_pass_rtl_ifcvt): ...new function.
22471 (pass_into_cfg_layout_mode): Replace declaration with that of...
22472 (make_pass_into_cfg_layout_mode): ...new function.
22473 (pass_outof_cfg_layout_mode): Replace declaration with that of...
22474 (make_pass_outof_cfg_layout_mode): ...new function.
22475 (pass_loop2): Replace declaration with that of...
22476 (make_pass_loop2): ...new function.
22477 (pass_rtl_loop_init): Replace declaration with that of...
22478 (make_pass_rtl_loop_init): ...new function.
22479 (pass_rtl_move_loop_invariants): Replace declaration with that of...
22480 (make_pass_rtl_move_loop_invariants): ...new function.
22481 (pass_rtl_unswitch): Replace declaration with that of...
22482 (make_pass_rtl_unswitch): ...new function.
22483 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
22484 (make_pass_rtl_unroll_and_peel_loops): ...new function.
22485 (pass_rtl_doloop): Replace declaration with that of...
22486 (make_pass_rtl_doloop): ...new function.
22487 (pass_rtl_loop_done): Replace declaration with that of...
22488 (make_pass_rtl_loop_done): ...new function.
22489 (pass_web): Replace declaration with that of...
22490 (make_pass_web): ...new function.
22491 (pass_cse2): Replace declaration with that of...
22492 (make_pass_cse2): ...new function.
22493 (pass_df_initialize_opt): Replace declaration with that of...
22494 (make_pass_df_initialize_opt): ...new function.
22495 (pass_df_initialize_no_opt): Replace declaration with that of...
22496 (make_pass_df_initialize_no_opt): ...new function.
22497 (pass_reginfo_init): Replace declaration with that of...
22498 (make_pass_reginfo_init): ...new function.
22499 (pass_inc_dec): Replace declaration with that of...
22500 (make_pass_inc_dec): ...new function.
22501 (pass_stack_ptr_mod): Replace declaration with that of...
22502 (make_pass_stack_ptr_mod): ...new function.
22503 (pass_initialize_regs): Replace declaration with that of...
22504 (make_pass_initialize_regs): ...new function.
22505 (pass_combine): Replace declaration with that of...
22506 (make_pass_combine): ...new function.
22507 (pass_if_after_combine): Replace declaration with that of...
22508 (make_pass_if_after_combine): ...new function.
22509 (pass_ree): Replace declaration with that of...
22510 (make_pass_ree): ...new function.
22511 (pass_partition_blocks): Replace declaration with that of...
22512 (make_pass_partition_blocks): ...new function.
22513 (pass_match_asm_constraints): Replace declaration with that of...
22514 (make_pass_match_asm_constraints): ...new function.
22515 (pass_regmove): Replace declaration with that of...
22516 (make_pass_regmove): ...new function.
22517 (pass_split_all_insns): Replace declaration with that of...
22518 (make_pass_split_all_insns): ...new function.
22519 (pass_fast_rtl_byte_dce): Replace declaration with that of...
22520 (make_pass_fast_rtl_byte_dce): ...new function.
22521 (pass_lower_subreg2): Replace declaration with that of...
22522 (make_pass_lower_subreg2): ...new function.
22523 (pass_mode_switching): Replace declaration with that of...
22524 (make_pass_mode_switching): ...new function.
22525 (pass_sms): Replace declaration with that of...
22526 (make_pass_sms): ...new function.
22527 (pass_sched): Replace declaration with that of...
22528 (make_pass_sched): ...new function.
22529 (pass_ira): Replace declaration with that of...
22530 (make_pass_ira): ...new function.
22531 (pass_reload): Replace declaration with that of...
22532 (make_pass_reload): ...new function.
22533 (pass_clean_state): Replace declaration with that of...
22534 (make_pass_clean_state): ...new function.
22535 (pass_branch_prob): Replace declaration with that of...
22536 (make_pass_branch_prob): ...new function.
22537 (pass_value_profile_transformations): Replace declaration with that
22538 of...
22539 (make_pass_value_profile_transformations): ...new function.
22540 (pass_postreload_cse): Replace declaration with that of...
22541 (make_pass_postreload_cse): ...new function.
22542 (pass_gcse2): Replace declaration with that of...
22543 (make_pass_gcse2): ...new function.
22544 (pass_split_after_reload): Replace declaration with that of...
22545 (make_pass_split_after_reload): ...new function.
22546 (pass_branch_target_load_optimize1): Replace declaration with that
22547 of...
22548 (make_pass_branch_target_load_optimize1): ...new function.
22549 (pass_thread_prologue_and_epilogue): Replace declaration with that
22550 of...
22551 (make_pass_thread_prologue_and_epilogue): ...new function.
22552 (pass_stack_adjustments): Replace declaration with that of...
22553 (make_pass_stack_adjustments): ...new function.
22554 (pass_peephole2): Replace declaration with that of...
22555 (make_pass_peephole2): ...new function.
22556 (pass_if_after_reload): Replace declaration with that of...
22557 (make_pass_if_after_reload): ...new function.
22558 (pass_regrename): Replace declaration with that of...
22559 (make_pass_regrename): ...new function.
22560 (pass_cprop_hardreg): Replace declaration with that of...
22561 (make_pass_cprop_hardreg): ...new function.
22562 (pass_reorder_blocks): Replace declaration with that of...
22563 (make_pass_reorder_blocks): ...new function.
22564 (pass_branch_target_load_optimize2): Replace declaration with that
22565 of...
22566 (make_pass_branch_target_load_optimize2): ...new function.
22567 (pass_leaf_regs): Replace declaration with that of...
22568 (make_pass_leaf_regs): ...new function.
22569 (pass_split_before_sched2): Replace declaration with that of...
22570 (make_pass_split_before_sched2): ...new function.
22571 (pass_compare_elim_after_reload): Replace declaration with that of...
22572 (make_pass_compare_elim_after_reload): ...new function.
22573 (pass_sched2): Replace declaration with that of...
22574 (make_pass_sched2): ...new function.
22575 (pass_stack_regs): Replace declaration with that of...
22576 (make_pass_stack_regs): ...new function.
22577 (pass_stack_regs_run): Replace declaration with that of...
22578 (make_pass_stack_regs_run): ...new function.
22579 (pass_df_finish): Replace declaration with that of...
22580 (make_pass_df_finish): ...new function.
22581 (pass_compute_alignments): Replace declaration with that of...
22582 (make_pass_compute_alignments): ...new function.
22583 (pass_duplicate_computed_gotos): Replace declaration with that of...
22584 (make_pass_duplicate_computed_gotos): ...new function.
22585 (pass_variable_tracking): Replace declaration with that of...
22586 (make_pass_variable_tracking): ...new function.
22587 (pass_free_cfg): Replace declaration with that of...
22588 (make_pass_free_cfg): ...new function.
22589 (pass_machine_reorg): Replace declaration with that of...
22590 (make_pass_machine_reorg): ...new function.
22591 (pass_cleanup_barriers): Replace declaration with that of...
22592 (make_pass_cleanup_barriers): ...new function.
22593 (pass_delay_slots): Replace declaration with that of...
22594 (make_pass_delay_slots): ...new function.
22595 (pass_split_for_shorten_branches): Replace declaration with that of...
22596 (make_pass_split_for_shorten_branches): ...new function.
22597 (pass_split_before_regstack): Replace declaration with that of...
22598 (make_pass_split_before_regstack): ...new function.
22599 (pass_convert_to_eh_region_ranges): Replace declaration with that
22600 of...
22601 (make_pass_convert_to_eh_region_ranges): ...new function.
22602 (pass_shorten_branches): Replace declaration with that of...
22603 (make_pass_shorten_branches): ...new function.
22604 (pass_set_nothrow_function_flags): Replace declaration with that of...
22605 (make_pass_set_nothrow_function_flags): ...new function.
22606 (pass_dwarf2_frame): Replace declaration with that of...
22607 (make_pass_dwarf2_frame): ...new function.
22608 (pass_final): Replace declaration with that of...
22609 (make_pass_final): ...new function.
22610 (pass_rtl_seqabstr): Replace declaration with that of...
22611 (make_pass_rtl_seqabstr): ...new function.
22612 (pass_release_ssa_names): Replace declaration with that of...
22613 (make_pass_release_ssa_names): ...new function.
22614 (pass_early_inline): Replace declaration with that of...
22615 (make_pass_early_inline): ...new function.
22616 (pass_inline_parameters): Replace declaration with that of...
22617 (make_pass_inline_parameters): ...new function.
22618 (pass_update_address_taken): Replace declaration with that of...
22619 (make_pass_update_address_taken): ...new function.
22620 (pass_convert_switch): Replace declaration with that of...
22621 (make_pass_convert_switch): ...new function.
22622 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
22623 to a subclass of simple_ipa_opt_pass along with...
22624 (pass_data_ipa_tree_profile): ...new pass_data instance and...
22625 (make_pass_ipa_tree_profile): ...new function.
22626 * tree-sra.c (pass_sra_early): Convert from a global struct to a
22627 subclass of gimple_opt_pass along with...
22628 (pass_data_sra_early): ...new pass_data instance and...
22629 (make_pass_sra_early): ...new function.
22630 (pass_sra): Convert from a global struct to a subclass of
22631 gimple_opt_pass along with...
22632 (pass_data_sra): ...new pass_data instance and...
22633 (make_pass_sra): ...new function.
22634 (pass_early_ipa_sra): Convert from a global struct to a subclass of
22635 gimple_opt_pass along with...
22636 (pass_data_early_ipa_sra): ...new pass_data instance and...
22637 (make_pass_early_ipa_sra): ...new function.
22638 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
22639 subclass of gimple_opt_pass along with...
22640 (pass_data_ccp): ...new pass_data instance and...
22641 (make_pass_ccp): ...new function.
22642 (pass_fold_builtins): Convert from a global struct to a subclass of
22643 gimple_opt_pass along with...
22644 (pass_data_fold_builtins): ...new pass_data instance and...
22645 (make_pass_fold_builtins): ...new function.
22646 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
22647 subclass of gimple_opt_pass along with...
22648 (pass_data_copy_prop): ...new pass_data instance and...
22649 (make_pass_copy_prop): ...new function.
22650 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
22651 global struct to a subclass of gimple_opt_pass along with...
22652 (pass_data_rename_ssa_copies): ...new pass_data instance and...
22653 (make_pass_rename_ssa_copies): ...new function.
22654 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
22655 subclass of gimple_opt_pass along with...
22656 (pass_data_dce): ...new pass_data instance and...
22657 (make_pass_dce): ...new function.
22658 (pass_dce_loop): Convert from a global struct to a subclass of
22659 gimple_opt_pass along with...
22660 (pass_data_dce_loop): ...new pass_data instance and...
22661 (make_pass_dce_loop): ...new function.
22662 (pass_cd_dce): Convert from a global struct to a subclass of
22663 gimple_opt_pass along with...
22664 (pass_data_cd_dce): ...new pass_data instance and...
22665 (make_pass_cd_dce): ...new function.
22666 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
22667 subclass of gimple_opt_pass along with...
22668 (pass_data_dominator): ...new pass_data instance and...
22669 (make_pass_dominator): ...new function.
22670 (pass_phi_only_cprop): Convert from a global struct to a subclass of
22671 gimple_opt_pass along with...
22672 (pass_data_phi_only_cprop): ...new pass_data instance and...
22673 (make_pass_phi_only_cprop): ...new function.
22674 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
22675 subclass of gimple_opt_pass along with...
22676 (pass_data_dse): ...new pass_data instance and...
22677 (make_pass_dse): ...new function.
22678 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
22679 a subclass of gimple_opt_pass along with...
22680 (pass_data_forwprop): ...new pass_data instance and...
22681 (make_pass_forwprop): ...new function.
22682 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
22683 struct to a subclass of gimple_opt_pass along with...
22684 (pass_data_tree_ifcombine): ...new pass_data instance and...
22685 (make_pass_tree_ifcombine): ...new function.
22686 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
22687 subclass of gimple_opt_pass along with...
22688 (pass_data_ch): ...new pass_data instance and...
22689 (make_pass_ch): ...new function.
22690 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
22691 subclass of gimple_opt_pass along with...
22692 (pass_data_tree_loop): ...new pass_data instance and...
22693 (make_pass_tree_loop): ...new function.
22694 (pass_tree_loop_init): Convert from a global struct to a subclass of
22695 gimple_opt_pass along with...
22696 (pass_data_tree_loop_init): ...new pass_data instance and...
22697 (make_pass_tree_loop_init): ...new function.
22698 (pass_lim): Convert from a global struct to a subclass of
22699 gimple_opt_pass along with...
22700 (pass_data_lim): ...new pass_data instance and...
22701 (make_pass_lim): ...new function.
22702 (pass_tree_unswitch): Convert from a global struct to a subclass of
22703 gimple_opt_pass along with...
22704 (pass_data_tree_unswitch): ...new pass_data instance and...
22705 (make_pass_tree_unswitch): ...new function.
22706 (pass_predcom): Convert from a global struct to a subclass of
22707 gimple_opt_pass along with...
22708 (pass_data_predcom): ...new pass_data instance and...
22709 (make_pass_predcom): ...new function.
22710 (pass_vectorize): Convert from a global struct to a subclass of
22711 gimple_opt_pass along with...
22712 (pass_data_vectorize): ...new pass_data instance and...
22713 (make_pass_vectorize): ...new function.
22714 (pass_graphite): Convert from a global struct to a subclass of
22715 gimple_opt_pass along with...
22716 (pass_data_graphite): ...new pass_data instance and...
22717 (make_pass_graphite): ...new function.
22718 (pass_graphite_transforms): Convert from a global struct to a subclass
22719 of gimple_opt_pass along with...
22720 (pass_data_graphite_transforms): ...new pass_data instance and...
22721 (make_pass_graphite_transforms): ...new function.
22722 (pass_check_data_deps): Convert from a global struct to a subclass of
22723 gimple_opt_pass along with...
22724 (pass_data_check_data_deps): ...new pass_data instance and...
22725 (make_pass_check_data_deps): ...new function.
22726 (pass_iv_canon): Convert from a global struct to a subclass of
22727 gimple_opt_pass along with...
22728 (pass_data_iv_canon): ...new pass_data instance and...
22729 (make_pass_iv_canon): ...new function.
22730 (pass_scev_cprop): Convert from a global struct to a subclass of
22731 gimple_opt_pass along with...
22732 (pass_data_scev_cprop): ...new pass_data instance and...
22733 (make_pass_scev_cprop): ...new function.
22734 (pass_record_bounds): Convert from a global struct to a subclass of
22735 gimple_opt_pass along with...
22736 (pass_data_record_bounds): ...new pass_data instance and...
22737 (make_pass_record_bounds): ...new function.
22738 (pass_complete_unroll): Convert from a global struct to a subclass of
22739 gimple_opt_pass along with...
22740 (pass_data_complete_unroll): ...new pass_data instance and...
22741 (make_pass_complete_unroll): ...new function.
22742 (pass_complete_unrolli): Convert from a global struct to a subclass of
22743 gimple_opt_pass along with...
22744 (pass_data_complete_unrolli): ...new pass_data instance and...
22745 (make_pass_complete_unrolli): ...new function.
22746 (pass_parallelize_loops): Convert from a global struct to a subclass
22747 of gimple_opt_pass along with...
22748 (pass_data_parallelize_loops): ...new pass_data instance and...
22749 (make_pass_parallelize_loops): ...new function.
22750 (pass_loop_prefetch): Convert from a global struct to a subclass of
22751 gimple_opt_pass along with...
22752 (pass_data_loop_prefetch): ...new pass_data instance and...
22753 (make_pass_loop_prefetch): ...new function.
22754 (pass_iv_optimize): Convert from a global struct to a subclass of
22755 gimple_opt_pass along with...
22756 (pass_data_iv_optimize): ...new pass_data instance and...
22757 (make_pass_iv_optimize): ...new function.
22758 (pass_tree_loop_done): Convert from a global struct to a subclass of
22759 gimple_opt_pass along with...
22760 (pass_data_tree_loop_done): ...new pass_data instance and...
22761 (make_pass_tree_loop_done): ...new function.
22762 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
22763 struct to a subclass of gimple_opt_pass along with...
22764 (pass_data_cse_reciprocals): ...new pass_data instance and...
22765 (make_pass_cse_reciprocals): ...new function.
22766 (pass_cse_sincos): Convert from a global struct to a subclass of
22767 gimple_opt_pass along with...
22768 (pass_data_cse_sincos): ...new pass_data instance and...
22769 (make_pass_cse_sincos): ...new function.
22770 (pass_optimize_bswap): Convert from a global struct to a subclass of
22771 gimple_opt_pass along with...
22772 (pass_data_optimize_bswap): ...new pass_data instance and...
22773 (make_pass_optimize_bswap): ...new function.
22774 (pass_optimize_widening_mul): Convert from a global struct to a
22775 subclass of gimple_opt_pass along with...
22776 (pass_data_optimize_widening_mul): ...new pass_data instance and...
22777 (make_pass_optimize_widening_mul): ...new function.
22778 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
22779 subclass of gimple_opt_pass along with...
22780 (pass_data_phiopt): ...new pass_data instance and...
22781 (make_pass_phiopt): ...new function.
22782 (pass_cselim): Convert from a global struct to a subclass of
22783 gimple_opt_pass along with...
22784 (pass_data_cselim): ...new pass_data instance and...
22785 (make_pass_cselim): ...new function.
22786 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
22787 subclass of gimple_opt_pass along with...
22788 (pass_data_phiprop): ...new pass_data instance and...
22789 (make_pass_phiprop): ...new function.
22790 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
22791 subclass of gimple_opt_pass along with...
22792 (pass_data_pre): ...new pass_data instance and...
22793 (make_pass_pre): ...new function.
22794 (pass_fre): Convert from a global struct to a subclass of
22795 gimple_opt_pass along with...
22796 (pass_data_fre): ...new pass_data instance and...
22797 (make_pass_fre): ...new function.
22798 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
22799 subclass of gimple_opt_pass along with...
22800 (pass_data_reassoc): ...new pass_data instance and...
22801 (make_pass_reassoc): ...new function.
22802 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
22803 subclass of gimple_opt_pass along with...
22804 (pass_data_sink_code): ...new pass_data instance and...
22805 (make_pass_sink_code): ...new function.
22806 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
22807 subclass of gimple_opt_pass along with...
22808 (pass_data_strlen): ...new pass_data instance and...
22809 (make_pass_strlen): ...new function.
22810 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
22811 struct to a subclass of gimple_opt_pass along with...
22812 (pass_data_build_alias): ...new pass_data instance and...
22813 (make_pass_build_alias): ...new function.
22814 (pass_build_ealias): Convert from a global struct to a subclass of
22815 gimple_opt_pass along with...
22816 (pass_data_build_ealias): ...new pass_data instance and...
22817 (make_pass_build_ealias): ...new function.
22818 (pass_ipa_pta): Convert from a global struct to a subclass of
22819 simple_ipa_opt_pass along with...
22820 (pass_data_ipa_pta): ...new pass_data instance and...
22821 (make_pass_ipa_pta): ...new function.
22822 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
22823 subclass of gimple_opt_pass along with...
22824 (pass_data_uncprop): ...new pass_data instance and...
22825 (make_pass_uncprop): ...new function.
22826 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
22827 global struct to a subclass of gimple_opt_pass along with...
22828 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
22829 (make_pass_late_warn_uninitialized): ...new function.
22830 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
22831 to a subclass of gimple_opt_pass along with...
22832 (pass_data_init_datastructures): ...new pass_data instance and...
22833 (make_pass_init_datastructures): ...new function.
22834 (pass_early_warn_uninitialized): Convert from a global struct to a
22835 subclass of gimple_opt_pass along with...
22836 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
22837 (make_pass_early_warn_uninitialized): ...new function.
22838 (pass_update_address_taken): Convert from a global struct to a
22839 subclass of gimple_opt_pass along with...
22840 (pass_data_update_address_taken): ...new pass_data instance and...
22841 (make_pass_update_address_taken): ...new function.
22842 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
22843 struct to a subclass of gimple_opt_pass along with...
22844 (pass_data_release_ssa_names): ...new pass_data instance and...
22845 (make_pass_release_ssa_names): ...new function.
22846 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
22847 subclass of gimple_opt_pass along with...
22848 (pass_data_stdarg): ...new pass_data instance and...
22849 (make_pass_stdarg): ...new function.
22850 * tree-switch-conversion.c (pass_convert_switch): Convert from a
22851 global struct to a subclass of gimple_opt_pass along with...
22852 (pass_data_convert_switch): ...new pass_data instance and...
22853 (make_pass_convert_switch): ...new function.
22854 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
22855 to a subclass of gimple_opt_pass along with...
22856 (pass_data_tail_recursion): ...new pass_data instance and...
22857 (make_pass_tail_recursion): ...new function.
22858 (pass_tail_calls): Convert from a global struct to a subclass of
22859 gimple_opt_pass along with...
22860 (pass_data_tail_calls): ...new pass_data instance and...
22861 (make_pass_tail_calls): ...new function.
22862 * tree-vect-generic.c (pass_lower_vector): Convert from a global
22863 struct to a subclass of gimple_opt_pass along with...
22864 (pass_data_lower_vector): ...new pass_data instance and...
22865 (make_pass_lower_vector): ...new function.
22866 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
22867 gimple_opt_pass along with...
22868 (pass_data_lower_vector_ssa): ...new pass_data instance and...
22869 (make_pass_lower_vector_ssa): ...new function.
22870 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
22871 to a subclass of gimple_opt_pass along with...
22872 (pass_data_slp_vectorize): ...new pass_data instance and...
22873 (make_pass_slp_vectorize): ...new function.
22874 (pass_ipa_increase_alignment): Convert from a global struct to a
22875 subclass of simple_ipa_opt_pass along with...
22876 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
22877 (make_pass_ipa_increase_alignment): ...new function.
22878 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
22879 gimple_opt_pass along with...
22880 (pass_data_vrp): ...new pass_data instance and...
22881 (make_pass_vrp): ...new function.
22882 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
22883 subclass of simple_ipa_opt_pass along with...
22884 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
22885 (make_pass_ipa_free_lang_data): ...new function.
22886 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
22887 gimple_opt_pass along with...
22888 (pass_data_tsan): ...new pass_data instance and...
22889 (make_pass_tsan): ...new function.
22890 (pass_tsan_O0): Convert from a global struct to a subclass of
22891 gimple_opt_pass along with...
22892 (pass_data_tsan_O0): ...new pass_data instance and...
22893 (make_pass_tsan_O0): ...new function.
22894 * var-tracking.c (pass_variable_tracking): Convert from a global
22895 struct to a subclass of rtl_opt_pass along with...
22896 (pass_data_variable_tracking): ...new pass_data instance and...
22897 (make_pass_variable_tracking): ...new function.
22898 * web.c (pass_web): Convert from a global struct to a subclass of
22899 rtl_opt_pass along with...
22900 (pass_data_web): ...new pass_data instance and...
22901 (make_pass_web): ...new function.
22902 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
22903 declaration with that of...
22904 (make_pass_mode_switch_use): ...new function.
22905 (pass_resolve_sw_modes): Replace declaration with that of...
22906 (make_pass_resolve_sw_modes): ...new function.
22907 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
22908 from a global struct to a subclass of rtl_opt_pass along with...
22909 (pass_data_mode_switch_use): ...new pass_data instance and...
22910 (make_pass_mode_switch_use): ...new function.
22911 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
22912 from a global struct to a subclass of rtl_opt_pass along with...
22913 (pass_data_resolve_sw_modes): ...new pass_data instance and...
22914 (make_pass_resolve_sw_modes): ...new function.
22915 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
22916 struct to a subclass of rtl_opt_pass along with...
22917 (pass_data_insert_vzeroupper): ...new pass_data instance and...
22918 (make_pass_insert_vzeroupper): ...new function.
22919 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
22920 global struct to a subclass of rtl_opt_pass along with...
22921 (pass_data_work_around_errata): ...new pass_data instance and...
22922 (make_pass_work_around_errata): ...new function.
22923 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
22924 struct to a subclass of rtl_opt_pass along with...
22925 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
22926 (make_pass_mips_machine_reorg2): ...new function.
22927
22928 2013-08-05 David Malcolm <dmalcolm@redhat.com>
22929
22930 * passes.c (pass_manager::operator new): New.
22931
22932 2013-08-05 David Malcolm <dmalcolm@redhat.com>
22933
22934 Handwritten part of conversion of passes to C++ classes.
22935
22936 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
22937 (toplev.o): Add dep on PASS_MANAGER_H.
22938 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
22939 of early local pases to reflect this moving from a global to a
22940 member of gcc::pass_manager.
22941 (cgraph_add_new_function): Likewise.
22942 * lto-cgraph.c (lto_output_node): Update for conversion of
22943 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
22944 * passes.c (opt_pass::clone): New.
22945 (opt_pass::gate): New.
22946 (opt_pass::execute): New.
22947 (opt_pass::opt_pass): New.
22948 (pass_manager::execute_early_local_passes): New.
22949 (pass_manager::execute_pass_mode_switching): new.
22950 (finish_optimization_passes): Convert to...
22951 (pass_manager::finish_optimization_passes): ...this.
22952 (finish_optimization_passes): Update for conversion of passes to
22953 C++ classes.
22954 (register_dump_files_1): Use has_gate since we cannot portably
22955 check a vtable entry against NULL.
22956 (dump_one_pass): Likewise.
22957 (ipa_write_summaries_2): Likewise.
22958 (ipa_write_optimization_summaries_1): Likewise.
22959 (ipa_read_summaries_1): Likewise.
22960 (ipa_read_optimization_summaries_1): Likewise.
22961 (execute_ipa_stmt_fixups): Likewise.
22962 (pass_manager::pass_manager): Rewrite pass-creation, invoking
22963 pass-creation functions rather than wiring up globals, and
22964 storing the results in fields of pass_manager generated using
22965 pass-instances.def.
22966 (pass_manager::dump_profile_report): Update for conversion of
22967 passes to C++ classes.
22968 (pass_manager::execute_ipa_summary_passes): Likewise.
22969 (execute_one_ipa_transform_pass): Likewise.
22970 (execute_one_pass): Use has_gate and has_execute since we cannot
22971 portably check a vtable entry against NULL.
22972 * pass_manager.h (pass_manager::finish_optimization_passes): New.
22973 (pass_manager): Use pass-instances.def to add fields for the
22974 various pass instances.
22975 * toplev.c (finalize): Update for move of
22976 finish_optimization_passes to a method of gcc::pass_manager.
22977 * toplev.h (finish_optimization_passes): Move to method of class
22978 pass_manager.
22979 * tree-pass.h (struct pass_data): New.
22980 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
22981 (opt_pass::gate): Convert to virtual function.
22982 (opt_pass::~opt_pass): New.
22983 (opt_pass::clone): New.
22984 (opt_pass::execute): Convert to virtual function.
22985 (opt_pass::opt_pass): New.
22986 (opt_pass::ctxt_): new.
22987 (gimple_opt_pass): Convert to subclass of opt_pass.
22988 (gimple_opt_pass::gimple_opt_pass): New.
22989 (rtl_opt_pass): Convert to subclass of opt_pass.
22990 (rtl_opt_pass::rtl_opt_pass): New.
22991 (ipa_opt_pass_d): Convert to subclass of opt_pass.
22992 (ipa_opt_pass_d::ipa_opt_pass_d): New.
22993 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
22994 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
22995 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
22996 invocation of pass_mode_switching to reflect this moving from a
22997 global to a member of gcc::pass_manager.
22998 (ix86_option_override): Rework how pass_insert_vzeroupper is
22999 added to the pass_manager to reflect autogenerated changes.
23000 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
23001
23002 2013-08-05 Richard Earnshaw <rearnsha@arm.com>
23003
23004 PR rtl-optimization/57708
23005 * recog.c (peep2_find_free_register): Validate all regs in a
23006 multi-reg mode.
23007
23008 2013-08-05 Jan Hubicka <jh@suse.cz>
23009
23010 PR lto/57602
23011 * cgraph.c (verify_cgraph_node): Accept local flags from other
23012 partitions.
23013 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
23014 (function_and_variable_visibility): Likewise.
23015 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
23016
23017 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
23018
23019 * graph.c (init_graph_slim_pretty_print): Remove.
23020 (print_graph_cfg): Do not call it. Use local pretty printer.
23021 (start_graph_dump): Likewise.
23022
23023 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
23024
23025 * gimple-pretty-print.c (buffer): Remove.
23026 (initialized): Likewise.
23027 (maybe_init_pretty_print): Likewise.
23028 (print_gimple_stmt): Do not call it. Use non-static local
23029 pretty_printer variable.
23030 (print_gimple_expr): Likewise.
23031 (print_gimple_seq): Likewise.
23032 (gimple_dump_bb): Likewise.
23033
23034 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
23035
23036 * asan.c (asan_pp): Remove.
23037 (asan_pp_initialized): Likewise.
23038 (asan_pp_initialize): Likewise.
23039 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
23040 (asan_emit_stack_protection): Tidy. Use local pretty printer.
23041 (asan_add_global): Likewise.
23042
23043 2013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
23044
23045 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
23046 * diagnostic.h (diagnostic_flush_buffer): Adjust.
23047 * pretty-print.c (pp_formatted_text_data): Likewise.
23048 (pp_indent): Rename from pp_base_indent.
23049 (pp_format): Rename from pp_base_format.
23050 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
23051 (pp_format_verbatim): Rename from pp_base_format_verbatim.
23052 (pp_flush): Rename from pp_base_flush.
23053 (pp_set_line_maximum_length): Rename from
23054 pp_base_set_line_maximum_length.
23055 (pp_clear_output_area): Rename from pp_base_clear_output_area.
23056 (pp_set_prefix): Rename from pp_base_set_prefix.
23057 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
23058 (pp_emit_prefix): Rename from pp_base_emit_prefix.
23059 (pp_append_text): Rename from pp_base_append_text.
23060 (pp_formatted_text): Rename from pp_base_formatted_text.
23061 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
23062 (pp_remaining_character_count_for_line): Rename from
23063 pp_base_remaining_character_count_for_line.
23064 (pp_newline): Rename from pp_base_newline.
23065 (pp_character): Rename from pp_base_character.
23066 (pp_string): Rename from pp_base_string.
23067 (pp_maybe_space): Rename from pp_base_maybe_space.
23068 * asan.c (asan_pp_string): Adjust.
23069 (asan_emit_stack_protection): Likewise.
23070 (asan_add_global): Likewise.
23071 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
23072 * tree-mudflap.c (mf_varname_tree): Likewise.
23073 * tree-pretty-print.c (pp_tree_identifier): Rename from
23074 pp_base_tree_identifier.
23075 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
23076 Declare as function.
23077
23078 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
23079
23080 * pretty-print.h (pp_bar_bar): New.
23081 (pp_ampersand_ampersand): Likewise.
23082 (pp_less_equal): Likewise.
23083 (pp_greater_equal): Likewise.
23084 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
23085 printer functions instead of pp_string or operators and punctuators.
23086 (dump_gimple_call): Likewise.
23087 (dump_gimple_omp_for): Likewise.
23088 (dump_gimple_transaction): Likewise.
23089 (dump_gimple_phi): Likewise.
23090 (pp_gimple_stmt_1): Likewise.
23091 * sched-vis.c (print_insn): Likewise.
23092 * tree-mudflap.c (mf_varname_tree): Likewise.
23093 * tree-pretty-print.c (dump_block_node): Likewise.
23094 (dump_generic_node): Likewise.
23095
23096 2013-08-02 Jan Hubicka <jh@suse.cz>
23097
23098 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
23099 boundaries.
23100 * lto-streamer-out.c (tree_is_indexable): Results decls and
23101 parm decls are not indexable.
23102 (DFS_write_tree_body): Do not follow args and results.
23103 (hash_tree): Likewise.
23104 (output_functions): Rearrange so struct function is needed
23105 only when real body is output; be able to also ouptut abstract
23106 functions; output DECL_ARGUMENTS and DECL_RESULT.
23107 (lto_output): When not in WPA, ale store abstract functions.
23108 (write_symbol): Do not care about RESULT_DECL.
23109 (output_symbol_p): Handle correctly sbtract decls.
23110 * lto-streamer-in.c (input_function): Rearrange so struct
23111 function can be NULL at entry; allow streaming of
23112 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
23113 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
23114 sanity check during LTO.
23115 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
23116 RESULT_DECl and DECL_ARGUMENTS.
23117 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
23118 Likewise.
23119
23120 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
23121
23122 * pretty-print.h (pp_underscore): New.
23123 (pp_comma): Tidy.
23124 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
23125 printer functions instead of pp_character.
23126 (dump_binary_rhs): Likewise.
23127 (dump_ternary_rhs): Likewise.
23128 (dump_gimple_call_args): Likewise.
23129 (pp_points_to_solution): Likewise.
23130 (dump_gimple_call): Likewise.
23131 (dump_gimple_switch): Likewise.
23132 (dump_gimple_cond): Likewise.
23133 (dump_gimple_bind): Likewise.
23134 (dump_gimple_try): Likewise.
23135 (dump_gimple_omp_for): Likewise.
23136 (dump_gimple_omp_continue): Likewise.
23137 (dump_gimple_omp_single): Likewise.
23138 (dump_gimple_omp_sections): Likewise.
23139 (dump_gimple_omp_block): Likewise.
23140 (dump_gimple_omp_critical): Likewise.
23141 (dump_gimple_transaction): Likewise.
23142 (dump_gimple_asm): Likewise.
23143 (dump_gimple_phi): Likewise.
23144 (dump_gimple_omp_parallel): Likewise.
23145 (dump_gimple_omp_task): Likewise.
23146 (dump_gimple_omp_atomic_load): Likewise.
23147 (dump_gimple_omp_atomic_store): Likewise.
23148 (dump_gimple_mem_ops): Likewise.
23149 (pp_gimple_stmt_1): Likewise.
23150 (pp_cfg_jump): Likewise.
23151 (dump_implicit_edges): Likewise.
23152 (gimple_dump_bb_for_graph): Likewise.
23153 * graph.c (draw_cfg_node): Likewise.
23154 * langhooks.c (lhd_print_error_function): Likewise.
23155 * sched-vis.c (print_exp): Likewise.
23156 (print_value): Likewise.
23157 (print_pattern): Likewise.
23158 (print_insn): Likewise.
23159 (rtl_dump_bb_for_graph): Likewise.
23160 * tree-pretty-print.c (dump_function_declaration): Likewise.
23161 (dump_array_domain): Likewise.
23162 (dump_omp_clause): Likewise.
23163 (dump_location): Likewise.
23164 (dump_generic_node): Likewise.
23165 (print_struct_decl): Likewise.
23166 * diagnostic.c (diagnostic_show_locus): Use pp_space.
23167
23168 2013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
23169
23170 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
23171 candidate table when replacing a candidate statement.
23172 (replace_rhs_if_not_dup): Likewise.
23173 (replace_one_candidate): Likewise.
23174
23175 2013-08-02 Jan Hubicka <jh@suse.cz>
23176 Martin Liska <marxin.liska@gmail.com>
23177
23178 * cgraphunit.c (add_new_function): Fix logic when adding from
23179 late IPA pass.
23180 (assemble_thunk): Rename to ...
23181 (expand_thunk); .. this one; export; get it working with
23182 general functions; make produced gimple valid.
23183 * cgraph.h (expand_thunk): Declare.
23184
23185 2013-08-02 Jan Hubicka <jh@suse.cz>
23186
23187 * ipa-cp.c (gather_context_independent_values): Use
23188 ipa_get_param_move_cost.
23189 (get_replacement_map): Remove PARAM; move parameter folding
23190 into tree-inline.c
23191 (create_specialized_node): Update.
23192 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
23193 assert that we have gimple body; update move_cost.
23194 (count_formal_params): Assert that we have gimple body.
23195 (ipa_dump_param): New function.
23196 (ipa_alloc_node_params): Break out from ...
23197 (ipa_initialize_node_params): ... here.
23198 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
23199 (ipa_write_node_info): Stream move costs.
23200 (ipa_read_node_info): Read move costs.
23201 (ipa_update_after_lto_read): Do not recompute node params.
23202 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
23203 (ipa_get_param): Check we are not in WPA.
23204 (ipa_get_param_move_cost): New.
23205 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
23206 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
23207 parm numbers to be present.
23208
23209 2013-08-02 Vladimir Makarov <vmakarov@redhat.com>
23210
23211 PR rtl-optimization/58048
23212 * lra-constraints.c (process_alt_operands): Don't check asm
23213 operand on register.
23214
23215 2013-08-02 Eric Botcazou <ebotcazou@adacore.com>
23216
23217 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
23218 the implied StoreLoad barrier for atomic operations if before.
23219
23220 2013-08-02 Jan Hubicka <jh@suse.cz>
23221 Martin Liska <marxin.liska@gmail.com>
23222
23223 * cgraph.c (cgraph_function_body_availability): Do not check
23224 cgraph flags.
23225 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
23226 symtab_node_availability): Declare.
23227 * ipa.c (can_replace_by_local_alias): New.
23228 (function_and_variable_visibility): Use it.
23229 * symtab.c (symtab_for_node_and_aliases,
23230 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
23231
23232 2013-08-02 Vladimir Makarov <vmakarov@redhat.com>
23233
23234 PR rtl-optimization/57963
23235 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
23236 (lra_constraints): Use them.
23237
23238 2013-08-02 Sofiane Naci <sofiane.naci@arm.com>
23239
23240 * config/arm/types.md (define_attr "type"): Add "load_acq"
23241 and "store_rel".
23242 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
23243 changes.
23244 (cortex_a53_store1): Likewise.
23245
23246 2013-08-01 Jan Hubicka <jh@suse.cz>
23247
23248 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
23249 partitions are not needed.
23250
23251 2013-08-01 Uros Bizjak <ubizjak@gmail.com>
23252
23253 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
23254 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
23255 MAYBE_NON_Q_CLASS_P where appropriate.
23256
23257 2013-08-01 Jan Hubicka <jh@suse.cz>
23258
23259 * cgraph.h (release_function_body): Declare.
23260 * tree.c (free_lang_data_in_decl): Free, parameters and return values
23261 of unused delcarations.
23262
23263 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23264
23265 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
23266 RTL form when subtracting a constant.
23267
23268 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23269
23270 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
23271 Generate canonical plus rtx with negated immediate instead of minus
23272 where appropriate.
23273 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
23274
23275 2013-08-01 Jan Hubicka <jh@suse.cz>
23276
23277 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
23278 (cgraph_release_function_body): Likewise.
23279 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
23280 * cgraph.h (cgrpah_node): Rename abstract_and_needed
23281 to used_as_abstract_origin.
23282 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
23283 symbols used as abstract origins.
23284 * cgraphunit.c (analyze_functions): Update.
23285 * ipa.c (symtab_remove_unreachable_nodes): Recompute
23286 used_as_abstract_origin.
23287 * tree-inline.c (tree_function_versioning): Update
23288 used_as_abstract_origin; be ready for DECL_RESULT and
23289 DECL_ARGUMENTS to be NULL.
23290
23291 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
23292 for abstract functions.
23293 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
23294 real symbols.
23295
23296 2013-08-01 Jan Hubicka <jh@suse.cz>
23297
23298 * profile.c (compute_value_histograms): Fix thinko.
23299
23300 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
23301
23302 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
23303 aarch-common-protos.h to extra_headers.
23304 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
23305 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
23306 * config/aarch64/t-aarch64 (aarch-common.o): Define.
23307
23308 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
23309
23310 * config/aarch64/aarch64.md (define_attr "type"): Delete.
23311 Include "../arm/types.md". Define "type" attribute for all patterns.
23312 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
23313 attribute changes.
23314
23315 2013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
23316
23317 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
23318 to support power8 load fusion.
23319 (fusion_gpr_mem_load): Likewise.
23320
23321 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
23322
23323 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
23324 declarations for power8 load fusion.
23325 (emit_fusion_gpr_load): Likewise.
23326
23327 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
23328 tuning for power8, turn on fusion mode by default. Turn on sign
23329 extending fusion mode if normal fusion mode is on, and we are at
23330 -O2 or -O3.
23331 (fusion_gpr_load_p): New function, return true if we can fuse an
23332 addis instruction with a dependent load to a GPR.
23333 (emit_fusion_gpr_load): Emit the instructions for power8 load
23334 fusion to GPRs.
23335
23336 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
23337 (VSX load fusion peepholes): New peepholes to fuse together an
23338 addi instruction with a VSX load instruction.
23339
23340 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
23341 peepholes to fuse an addis instruction with a load to a GPR base
23342 register. If we are supporting sign extending fusions, convert
23343 sign extending loads to zero extending loads and add an explicit
23344 sign extension.
23345
23346 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
23347
23348 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
23349 aarch-common-protos.h to extra_headers.
23350 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
23351 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
23352 (arm_early_store_addr_dep): Likewise.
23353 (arm_no_early_alu_shift_dep): Likewise.
23354 (arm_no_early_alu_shift_value_dep): Likewise.
23355 (arm_no_early_mul_dep): Likewise.
23356 (arm_no_early_store_addr_dep): Likewise.
23357 (arm_mac_accumulator_is_mul_result): Likewise.
23358 (arm_mac_accumulator_is_result): Likewise.
23359 * config/arm/aarch-common.c: ... here. New file.
23360 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
23361 here to ...
23362 (arm_early_store_addr_dep): Likewise.
23363 (arm_no_early_alu_shift_dep): Likewise.
23364 (arm_no_early_alu_shift_value_dep): Likewise.
23365 (arm_no_early_mul_dep): Likewise.
23366 (arm_no_early_store_addr_dep): Likewise.
23367 (arm_mac_accumulator_is_mul_result): Likewise.
23368 (arm_mac_accumulator_is_result): Likewise.
23369 * config/arm/aarch-common-protos.h: ... here. New file.
23370 * config/arm/t-arm (aarch-common.o): Define.
23371
23372 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
23373
23374 * config/arm/arm.md: Include new file "types.md".
23375 (define_attr "type"): Move from here to ...
23376 (define_attr "mul32"): Likewise.
23377 (define_attr "mul64"): Likewise.
23378 * config/arm/types.md: ... here. New file.
23379
23380 2013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
23381
23382 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
23383 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
23384
23385 2013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
23386
23387 * gen-pass-instances.awk: Fix offset of substr().
23388
23389 2013-07-31 David Malcolm <dmalcolm@redhat.com>
23390
23391 * Makefile.in (pass-instances.def): New.
23392 (passes.o): Replace dependency on passes.def with one on
23393 pass-instances.def
23394
23395 * gen-pass-instances.awk: New.
23396
23397 * passes.c (pass_manager::pass_manager): Use pass-instances.def
23398 rather than passes.def, updating local definition of NEXT_PASS
23399 macro to add an extra NUM parameter (currently unused).
23400
23401 2013-07-30 David Malcolm <dmalcolm@redhat.com>
23402
23403 * Makefile.in (PASS_MANAGER_H): New.
23404 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
23405 (passes.o): Likewise.
23406 (statistics.o): Likewise.
23407 (cgraphunit.o): Likewise.
23408 (context.o): Depend on PASS_MANAGER_H.
23409
23410 * pass_manager.h: New.
23411
23412 * cgraphunit.c (cgraph_add_new_function): Update for moves
23413 of globals to fields of pass_manager.
23414 (analyze_function): Likewise.
23415 (expand_function): Likewise.
23416 (ipa_passes): Likewise.
23417 (compile): Likewise.
23418
23419 * context.c (context::context): New.
23420 * context.h (context::context): New.
23421 (context::get_passes): New.
23422 (context::passes_): New.
23423
23424 * lto-cgraph.c (input_node): Update for moves of globals to
23425 fields of pass_manager.
23426
23427 * passes.c (all_passes): Remove, in favor of a field of the
23428 same name within the new class pass_manager.
23429 (all_small_ipa_passes): Likewise.
23430 (all_lowering_passes): Likewise.
23431 (all_regular_ipa_passes): Likewise.
23432 (all_late_ipa_passes): Likewise.
23433 (all_lto_gen_passes): Likewise.
23434 (passes_by_id): Likewise.
23435 (passes_by_id_size): Likewise.
23436 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
23437 the new class pass_manager.
23438 (set_pass_for_id): Convert to...
23439 (pass_manager::set_pass_for_id): ...method.
23440 (get_pass_for_id): Convert to...
23441 (pass_manager::get_pass_for_id): ...method.
23442 (register_one_dump_file): Move body of implementation into...
23443 (pass_manager::register_one_dump_file): ...here.
23444 (register_dump_files_1): Convert to...
23445 (pass_manager::register_dump_files_1): ...method.
23446 (register_dump_files): Convert to...
23447 (pass_manager::register_dump_files): ...method.
23448 (create_pass_tab): Update for moves of globals to fields of
23449 pass_manager.
23450 (dump_passes): Move body of implementation into...
23451 (pass_manager::dump_passes): ...here.
23452 (register_pass): Move body of implementation into...
23453 (pass_manager::register_pass): ...here.
23454 (init_optimization_passes): Convert into...
23455 (pass_manager::pass_manager): ...constructor for new
23456 pass_manager class, and initialize the pass_lists array.
23457 (check_profile_consistency): Update for moves of globals to
23458 fields of pass_manager.
23459 (dump_profile_report): Move body of implementation into...
23460 (pass_manager::dump_profile_report): ...here.
23461 (ipa_write_summaries_1): Update for moves of pass lists from
23462 being globals to fields of pass_manager.
23463 (ipa_write_optimization_summaries): Likewise.
23464 (ipa_read_summaries): Likewise.
23465 (ipa_read_optimization_summaries): Likewise.
23466 (execute_all_ipa_stmt_fixups): Likewise.
23467
23468 * statistics.c (statistics_fini): Update for moves of globals to
23469 fields of pass_manager.
23470
23471 * toplev.c (general_init): Replace call to
23472 init_optimization_passes with construction of the pass_manager
23473 instance.
23474
23475 * tree-pass.h (all_passes): Remove, in favor of a field of the
23476 same name within the new class pass_manager.
23477 (all_small_ipa_passes): Likewise.
23478 (all_lowering_passes): Likewise.
23479 (all_regular_ipa_passes): Likewise.
23480 (all_lto_gen_passes): Likewise.
23481 (all_late_ipa_passes): Likewise.
23482 (passes_by_id): Likewise.
23483 (passes_by_id_size): Likewise.
23484 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
23485 the new class pass_manager.
23486 (get_pass_for_id): Remove.
23487
23488 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
23489
23490 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
23491 configs.
23492
23493 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
23494
23495 * arm.md (mulhi3): New expand pattern.
23496
23497 2013-07-30 Jan Hubicka <jh@suse.cz>
23498 Martin Liska <marxin.liska@gmail.com>
23499
23500 * profile.c (compute_value_histograms): Do not ICE when
23501 there is mismatch only on some counters.
23502
23503 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23504
23505 PR rtl-optimization/57637
23506 * function.c (move_insn_for_shrink_wrap): Also check the
23507 GEN set of the LIVE problem for the liveness analysis
23508 if it exists, otherwise give up.
23509
23510 2013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
23511
23512 PR tree-optimization/57993
23513 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
23514 replaced statement in the candidate table.
23515 (phi_add_costs): Return infinite cost when the hidden basis does
23516 not dominate all phis on which the candidate is dependent.
23517 (replace_one_candidate): Record replaced statement in the
23518 candidate table.
23519
23520 2013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
23521
23522 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
23523 (ashlv2si3): New expander.
23524 (*ashlv2si3_i): New define_insn_and_split.
23525 * predicates.md (float_operation): Allow patterns with three
23526 basic sub-patterns.
23527
23528 PR rtl-optimization/58021
23529 * mode-switching.c (create_pre_exit): Always split off preceding
23530 insns if we are not at the basic block head.
23531
23532 2013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
23533
23534 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
23535 (UCLIBC_DYNAMIC_LINKER): New macro.
23536 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
23537 `-mnan=2008'.
23538 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
23539 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
23540 `-mnan=2008'.
23541 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
23542 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
23543 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
23544 for SF and DF modes. Use ieee_quad_format for TF mode.
23545 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
23546 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
23547 (mips_option_override): Handle `-mnan=legacy'.
23548 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
23549 `-mabs=2008' and `-mnan=2008'.
23550 (OPTION_DEFAULT_SPECS): Add "nan" default.
23551 (ASM_SPEC): Handle `-mnan='.
23552 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
23553 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
23554 comment accordingly.
23555 (neg<mode>2): Likewise.
23556 * config/mips/mips.opt (mabs, mnan): New options.
23557 * doc/install.texi (Configuration): Document `--with-nan=' option.
23558 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
23559 `-mnan=' options.
23560 (MIPS Options): Document them.
23561 * config.gcc <mips*-*-*>: Handle `--with-nan='.
23562 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
23563 * configure: Regenerate.
23564 * config.in: Regenerate.
23565
23566 2013-07-29 Uros Bizjak <ubizjak@gmail.com>
23567
23568 * config/i386/i386.md (float post-reload splitters): Do not check
23569 for subregs of SSE registers.
23570
23571 2013-07-29 Uros Bizjak <ubizjak@gmail.com>
23572 H.J. Lu <hongjiu.lu@intel.com>
23573
23574 PR target/57954
23575 PR target/57988
23576 * config/i386/i386.md (post-reload splitter
23577 to avoid partial SSE reg dependency stalls): New pattern.
23578
23579 2013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
23580
23581 * config/s390/s390.md ("movcc"): Swap load and store instructions.
23582
23583 2013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
23584
23585 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
23586 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
23587
23588 2013-07-26 Cary Coutant <ccoutant@google.com>
23589
23590 * dwarf2out.c (die_checksum_ordered): Don't include template
23591 instantiations in signature.
23592 (is_template_parameter): New function.
23593 (is_template_instantiation): New function.
23594 (generate_skeleton_bottom_up): Don't include template instantiations
23595 in type unit DIE.
23596 (generate_skeleton): Likewise.
23597 (break_out_comdat_types): Move recursive call to break out nested
23598 types earlier.
23599 (prune_unused_types_mark_generic_parms_dies): Call
23600 is_template_parameter.
23601
23602 2013-07-26 Ian Bolton <ian.bolton@arm.com>
23603
23604 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
23605 uses vector registers.
23606 * config/aarch64/iterators.md: Add attributes rtn and vas.
23607
23608 2013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23609 Richard Earnshaw <richard.earnshaw@arm.com>
23610
23611 * combine.c (simplify_comparison): Re-canonicalize operands
23612 where appropriate.
23613 * config/arm/arm.md (movcond_addsi): New splitter.
23614
23615 2013-07-25 Sterling Augustine <saugustine@google.com>
23616
23617 * dwarf2out.c (size_of_pubnames): Move code to...
23618 (include_pubname_in_output): ...here. New.
23619 (want_pubnames): Rearrange.
23620 (output_pubnames): Call include_pubname_in_output. Move assertion.
23621
23622 2013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
23623
23624 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
23625
23626 2013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
23627
23628 PR target/38836
23629 * doc/extend.texi: Remove obsolete builtins. Fix
23630 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
23631
23632 2013-07-25 Jan Hubicka <jh@suse.cz>
23633
23634 * cgraph.c (release_function_body): Break out from ...
23635 (cgraph_release_function_body): ... this one; also release DECL_RESULT
23636 and DECL_ARGUMENTS.
23637 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
23638 old_tree in the map.
23639 (create_specialized_node): Update.
23640 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
23641 into index.
23642 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
23643 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
23644 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
23645 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
23646 DECL_RESULT.
23647
23648 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23649
23650 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
23651 addsi3_carryin_alt2_<optab>): Correct output template.
23652
23653 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23654
23655 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
23656 Adjust for arm_restrict_it.
23657 Remove trailing whitespace.
23658
23659 2013-07-25  Mark Kettenis  <kettenis@openbsd.org>
23660
23661 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
23662 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
23663
23664 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
23665
23666 2013-07-25 Vladimir Makarov <vmakarov@redhat.com>
23667
23668 PR rtl-optimization/57960
23669 * lra-constraints.c (process_alt_operands): Use the right mode
23670 when checking strict_low.
23671
23672 2013-07-25 Jan Hubicka <jh@suse.cz>
23673
23674 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
23675 * cgraph.c (cgraph_remove_node): Do not release function body
23676 when in cgraph streaming.
23677 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
23678 in other partitions are not considered reachable; fix handling of
23679 clones.
23680
23681 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23682
23683 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
23684
23685 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23686
23687 PR target/19599
23688 PR target/57731
23689 PR target/57837
23690 * config/arm/arm.md ("*sibcall_insn): Replace use of
23691 Ss with US. Adjust output for v5 and v4t.
23692 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
23693
23694 * config/arm/constraints.md ("Ss"): Rename to US.
23695
23696 2013-07-25 Terry Guo <terry.guo@arm.com>
23697
23698 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
23699 shift_add/shift_sub0/shift_sub1 RTXs.
23700
23701 2013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
23702 Anton Blanchard <anton@au1.ibm.com>
23703
23704 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
23705 (altivec_vpks<VI_char>ss): Likewise.
23706 (altivec_vpks<VI_char>us): Likewise.
23707 (altivec_vpku<VI_char>us): Likewise.
23708 (altivec_vpku<VI_char>um): Likewise.
23709
23710 2013-07-24 David Malcolm <dmalcolm@redhat.com>
23711
23712 Introduce context class.
23713
23714 * Makefile.in (CONTEXT_H): New.
23715 (OBJS): Add context.o.
23716 (toplev.o): Add CONTEXT_H to dependencies.
23717 (context.o): New.
23718
23719 * toplev.c (general_init): Create the singleton gcc::context instance.
23720
23721 * context.c: New.
23722
23723 * context.h: New.
23724
23725 2013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
23726
23727 PR rtl-optimization/57968
23728 * mode-switching.c (create_pre_exit): Allow instructions that
23729 don't set a return register to need a non-exit mode.
23730
23731 2013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
23732 Anton Blanchard <anton@au1.ibm.com>
23733
23734 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
23735 operands to vperm for little endian.
23736 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
23737 of lvsl to create the control mask for a vperm for little endian.
23738
23739 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23740 Anton Blanchard <anton@au1.ibm.com>
23741
23742 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
23743 two operands for little-endian.
23744
23745 2013-07-23 Steve Ellcey <sellcey@mips.com>
23746
23747 * config/mips/mips.c (mips_case_values_threshold): New.
23748 (TARGET_CASE_VALUES_THRESHOLD): Define.
23749
23750 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23751 Anton Blanchard <anton@au1.ibm.com>
23752
23753 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
23754 selection of field for vector splat in little endian mode.
23755
23756 2013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
23757
23758 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
23759 expanders to rs6000.md.
23760 (ior<mode>3): Likewise.
23761 (and<mode>3): Likewise.
23762 (one_cmpl<mode>2): Likewise.
23763 (nor<mode>3): Likewise.
23764 (andc<mode>3): Likewise.
23765 (eqv<mode>3): Likewise.
23766 (nand<mode>3): Likewise.
23767 (orc<mode>3): Likewise.
23768
23769 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
23770 declaration.
23771
23772 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
23773 to split multi-word logical operations.
23774 (rs6000_split_logical_di): Likewise.
23775 (rs6000_split_logical): Likewise.
23776
23777 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
23778 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
23779 and allow TImode operations in 32-bit.
23780 (vsx_and<mode>3_64bit): Likewise.
23781 (vsx_ior<mode>3_32bit): Likewise.
23782 (vsx_ior<mode>3_64bit): Likewise.
23783 (vsx_xor<mode>3_32bit): Likewise.
23784 (vsx_xor<mode>3_64bit): Likewise.
23785 (vsx_one_cmpl<mode>2_32bit): Likewise.
23786 (vsx_one_cmpl<mode>2_64bit): Likewise.
23787 (vsx_nor<mode>3_32bit): Likewise.
23788 (vsx_nor<mode>3_64bit): Likewise.
23789 (vsx_andc<mode>3_32bit): Likewise.
23790 (vsx_andc<mode>3_64bit): Likewise.
23791 (vsx_eqv<mode>3_32bit): Likewise.
23792 (vsx_eqv<mode>3_64bit): Likewise.
23793 (vsx_nand<mode>3_32bit): Likewise.
23794 (vsx_nand<mode>3_64bit): Likewise.
23795 (vsx_orc<mode>3_32bit): Likewise.
23796 (vsx_orc<mode>3_64bit): Likewise.
23797
23798 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
23799 logical types in GPRs.
23800
23801 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
23802 logical insns to rs6000.md, and allow TImode operations in
23803 32-bit.
23804 (altivec_ior<mode>3): Likewise.
23805 (altivec_xor<mode>3): Likewise.
23806 (altivec_one_cmpl<mode>2): Likewise.
23807 (altivec_nor<mode>3): Likewise.
23808 (altivec_andc<mode>3): Likewise.
23809
23810 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
23811 attributes for moving the 128-bit logical operations into
23812 rs6000.md.
23813 (BOOL_REGS_OUTPUT): Likewise.
23814 (BOOL_REGS_OP1): Likewise.
23815 (BOOL_REGS_OP2): Likewise.
23816 (BOOL_REGS_UNARY): Likewise.
23817 (BOOL_REGS_AND_CR0): Likewise.
23818 (one_cmpl<mode>2): Add support for DI logical operations on
23819 32-bit, splitting the operations to 32-bit.
23820 (anddi3): Likewise.
23821 (iordi3): Likewise.
23822 (xordi3): Likewise.
23823 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
23824 changes to combine the 32/64-bit code, allow logical operations on
23825 TI mode in 32-bit, and to use similar match_operator patterns like
23826 scalar mode uses. Combine the Altivec and VSX code for logical
23827 operations, and move it here.
23828 (ior<mode>3, 128-bit types): Likewise.
23829 (xor<mode>3, 128-bit types): Likewise.
23830 (one_cmpl<mode>3, 128-bit types): Likewise.
23831 (nor<mode>3, 128-bit types): Likewise.
23832 (andc<mode>3, 128-bit types): Likewise.
23833 (eqv<mode>3, 128-bit types): Likewise.
23834 (nand<mode>3, 128-bit types): Likewise.
23835 (orc<mode>3, 128-bit types): Likewise.
23836 (and<mode>3_internal): Likewise.
23837 (bool<mode>3_internal): Likewise.
23838 (boolc<mode>3_internal1): Likewise.
23839 (boolc<mode>3_internal2): Likewise.
23840 (boolcc<mode>3_internal1): Likewise.
23841 (boolcc<mode>3_internal2): Likewise.
23842 (eqv<mode>3_internal1): Likewise.
23843 (eqv<mode>3_internal2): Likewise.
23844 (one_cmpl1<mode>3_internal): Likewise.
23845
23846 2013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
23847
23848 * config/microblaze/microblaze.c (microblaze_expand_prologue):
23849 Rename flag_stack_usage to flag_stack_usage_info.
23850
23851 2013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
23852
23853 * config/microblaze/sync.md: New file.
23854 * config/microblaze/microblaze.md: Include sync.md
23855 * config/microblaze/microblaze.c: Add print_operand 'y'.
23856 * config/microblaze/constraints.md: Add memory_contraint
23857 'Q' which is a single register.
23858
23859 2013-07-23 Eric Botcazou <ebotcazou@adacore.com>
23860
23861 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
23862
23863 2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
23864
23865 * reload.c (find_reloads): Exit loop once we find this operand
23866 cannot be reloaded somehow for this alternative.
23867
23868 * reload.c (find_reloads): Exit loop once we find a hard register.
23869
23870 * rtlanal.c (computed_jump_p): Exit loop once we find label
23871 reference is used.
23872
23873 * i386.c (ix86_pad_returns): Exit loop after setting replace.
23874
23875 * cfgloopmanip.c (remove_path): Exit loop after setting
23876 irred_invalidated.
23877
23878 * gensupport.c (subst_dup): Avoid loop if code is not
23879 MATCH_DUP nor MATCH_OP_DUP.
23880
23881 2013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
23882
23883 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
23884
23885 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
23886
23887 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
23888 true for SP_REGNUM if mode == ptr_mode.
23889 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
23890 with value R0_REGNUM + 31.
23891
23892 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
23893
23894 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
23895 pad pointer-typed argument downward.
23896
23897 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
23898
23899 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
23900 and __ILP32__ when the ILP32 model is in use.
23901
23902 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
23903
23904 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
23905 (aarch64_load_symref_appropriately): In the case of
23906 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
23907 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
23908 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
23909 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
23910 if 'mode' doesn't equal to 'ptr_mode'.
23911 (aarch64_output_mi_thunk): Add an assertion on the alignment of
23912 'vcall_offset'; change to call aarch64_emit_move differently depending
23913 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
23914 to calculate the upper bound of 'vcall_offset'.
23915 (aarch64_cannot_force_const_mem): Change to also return true if
23916 mode != ptr_mode.
23917 (aarch64_legitimize_reload_address): In the case of large
23918 displacements, add new local variable 'xmode' and an assertion
23919 based on it; change to use 'xmode' to generate the new rtx and
23920 reload.
23921 (aarch64_asm_trampoline_template): Change to generate the template
23922 differently depending on TARGET_ILP32 or not; change to use
23923 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
23924 (aarch64_trampoline_size): Removed.
23925 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
23926 and replace immediate literals with it. Change to use 'ptr_mode'
23927 instead of 'DImode' and call convert_memory_address if the mode
23928 of 'fnaddr' doesn't equal to 'ptr_mode'.
23929 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
23930 to output symbol.
23931 (aarch64_elf_asm_destructor): Likewise.
23932 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
23933 on TARGET_ILP32 instead of aarch64_trampoline_size.
23934 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
23935 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
23936 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
23937 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
23938 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
23939 (storewb_pair<GPI:mode>_<P:mode>): ... this.
23940 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
23941 depending on the value of 'mode'.
23942 (add_losym_<mode>): New.
23943 (ldr_got_small_<mode>): New, based on ldr_got_small.
23944 (ldr_got_small): Remove.
23945 (ldr_got_small_sidi): New.
23946 * config/aarch64/iterators.md (P): New.
23947 (PTR): Change to 'ptr_mode' in the condition.
23948
23949 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
23950
23951 * config.gcc (aarch64*-*-*): Support --with-abi.
23952 (aarch64*-*-elf): Support --with-multilib-list.
23953 (aarch64*-*-linux*): Likewise.
23954 (supported_defaults): Add abi to aarch64*-*-*.
23955 * configure.ac: Mention AArch64 for --with-multilib-list.
23956 * configure: Re-generated.
23957 * config/aarch64/biarchilp32.h: New file.
23958 * config/aarch64/biarchlp64.h: New file.
23959 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
23960 (ABI_SPEC): Ditto.
23961 (MULTILIB_DEFAULTS): Ditto.
23962 (DRIVER_SELF_SPECS): Ditto.
23963 (ASM_SPEC): Update to also substitute -mabi.
23964 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
23965 file whose name depends on -mabi= and -mbig-endian.
23966 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
23967 TARGET_ILP32.
23968 (POINTER_SIZE): New define.
23969 (POINTERS_EXTEND_UNSIGNED): Ditto.
23970 (enum aarch64_abi_type): New enumeration tag.
23971 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
23972 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
23973 (TARGET_ILP32): New define.
23974 * config/aarch64/aarch64.opt (mabi): New.
23975 (aarch64_abi): New.
23976 (ilp32, lp64): New values for -mabi.
23977 * config/aarch64/t-aarch64 (comma): New define.
23978 (MULTILIB_OPTIONS): Ditto.
23979 (MULTILIB_DIRNAMES): Ditto.
23980 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
23981 * doc/invoke.texi: Document -mabi for AArch64.
23982
23983 2013-07-23 Georg-Johann Lay <avr@gjlay.de>
23984
23985 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
23986
23987 2013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
23988 Anton Blanchard <anton@au1.ibm.com>
23989
23990 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
23991 endianness when selecting field to splat.
23992
23993 2013-07-22 Eric Christopher <echristo@gmail.com>
23994
23995 * dwarf2out.c (die_odr_checksum): New function to use
23996 CHECKSUM_ macros and ULEB128 for DIE tag.
23997 (generate_type_signature): Use.
23998
23999 2013-07-22 Eric Botcazou <ebotcazou@adacore.com>
24000
24001 * config.gcc (sparc*-*-*): Accept leon3 processor.
24002 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
24003 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
24004 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
24005 * config/sparc/sparc.opt (enum processor_type): Add leon3.
24006 (mfix-ut699): Adjust comment.
24007 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
24008 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
24009 (CPP_CPU_SPEC): Likewise.
24010 (ASM_CPU_SPEC): Likewise.
24011 * config/sparc/sparc.c (leon3_cost): New constant.
24012 (sparc_option_override): Add leon3 support.
24013 (mem_ref): New function.
24014 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
24015 (sparc_do_work_around_errata): Look into the instruction in the delay
24016 slot and adjust accordingly. Add fix for the data cache nullify issues
24017 of the UT699. Change insertion position for the NOP.
24018 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
24019 (leon3_load): New reservation.
24020 (leon_store): Bump latency to 2.
24021 (grfpu): New automaton.
24022 (grfpu_alu): New unit.
24023 (grfpu_ds): Likewise.
24024 (leon_fp_alu): Adjust.
24025 (leon_fp_mult): Delete.
24026 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
24027 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
24028 * config/sparc/sparc.md (cpu): Add leon3.
24029 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
24030 (swapsi): Likewise.
24031 (atomic_test_and_set): Likewise.
24032 (ldstub): Likewise.
24033
24034 2013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
24035
24036 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
24037 default for R5900 targets.
24038 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
24039 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
24040 * config/mips/mips.c (mips_option_override): Report an error for
24041 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
24042 for -march=r5900 -mhard-float.
24043
24044 2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
24045
24046 * df-problems.c (can_move_insns_across): Exit loop once we
24047 find a non-fixed, non-global register.
24048
24049 * ipa-pure-const.c (propagate_nothrow): Exit loop after
24050 setting can_throw.
24051
24052 * omega.c (omega_eliminate_red): Break after setting red_found.
24053 (omega_problem_has_red_equations): Similarly after setting found.
24054 (omega_query_variable): Similarly after setting coupled.
24055
24056 2013-07-22 Marek Polacek <polacek@redhat.com>
24057
24058 * gimplify.c: Don't include gimple.h twice.
24059
24060 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24061
24062 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
24063 instead of TARGET_THUMB1.
24064 (Pz): New constraint.
24065 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
24066 encodings.
24067 (compare_negsi_si): Likewise.
24068 (compare_addsi2_op0): Likewise.
24069 (compare_addsi2_op1): Likewise.
24070 (addsi3_carryin_<optab>): Likewise.
24071 (addsi3_carryin_alt2_<optab>): Likewise.
24072 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
24073 for arm_restrict_it.
24074 (subsi3_carryin): Likewise.
24075 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
24076 (minmax_arithsi): Disable for arm_restrict_it.
24077 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
24078 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
24079 (satsi_<SAT:code>_shift): Likewise.
24080 (arm_shiftsi3): Add alternative for 16-bit encoding.
24081 (arm32_movhf): Disable for arm_restrict_it.
24082 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
24083 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
24084
24085 2013-07-22 Sofiane Naci <sofiane.naci@arm.com>
24086
24087 * config/arm/arm.md (attribute "insn"): Delete.
24088 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
24089 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
24090 (not_shiftsi): Update for attribute change.
24091 (not_shiftsi_compare0): Likewise.
24092 (not_shiftsi_compare0_scratch): Likewise.
24093 (arm_one_cmplsi2): Likewise.
24094 (thumb1_one_cmplsi2): Likewise.
24095 (notsi_compare0): Likewise.
24096 (notsi_compare0_scratch): Likewise.
24097 (thumb1_movdi_insn): Likewise.
24098 (arm_movsi_insn): Likewise.
24099 (movhi_insn_arch4): Likewise.
24100 (movhi_bytes): Likewise.
24101 (arm_movqi_insn): Likewise.
24102 (thumb1_movqi_insn): Likewise.
24103 (arm32_movhf): Likewise.
24104 (thumb1_movhf): Likewise.
24105 (arm_movsf_soft_insn): Likewise.
24106 (thumb1_movsf_insn): Likewise.
24107 (thumb_movdf_insn): Likewise.
24108 (movsicc_insn): Likewise.
24109 (movsfcc_soft_insn): Likewise.
24110 (and_scc): Likewise.
24111 (cond_move): Likewise.
24112 (if_move_not): Likewise.
24113 (if_not_move): Likewise.
24114 (if_shift_move): Likewise.
24115 (if_move_shift): Likewise.
24116 (if_shift_shift): Likewise.
24117 (if_not_arith): Likewise.
24118 (if_arith_not): Likewise.
24119 (cond_move_not): Likewise.
24120 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
24121 (neon_mov<mode>): Likewise.
24122 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
24123 (thumb2_movsi_vfp): Likewise.
24124 (movsf_vfp): Likewise.
24125 (thumb2_movsf_vfp): Likewise.
24126 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
24127 change.
24128 (cortexa7_older_only): Likewise.
24129 (cortexa7_younger): Likewise.
24130 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
24131 (1020alu_shift_op): Likewise.
24132 (1020alu_shift_reg_op): Likewise.
24133 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
24134 (alu_shift_op): Likewise.
24135 (alu_shift_reg_op): Likewise.
24136 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
24137 (11_alu_shift_op): Likewise.
24138 (11_alu_shift_reg_op): Likewise.
24139 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
24140 (9_alu_shift_reg_op): Likewise.
24141 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
24142 change.
24143 (cortex_a15_alu_shift): Likewise.
24144 (cortex_a15_alu_shift_reg): Likewise.
24145 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
24146 (cortex_a5_alu_shift): Likewise.
24147 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
24148 change.
24149 (cortex_a53_alu_shift): Likewise.
24150 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
24151 change.
24152 (cortex_a7_alu_reg): Likewise.
24153 (cortex_a7_alu_shift): Likewise.
24154 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
24155 (cortex_a8_alu_shift): Likewise.
24156 (cortex_a8_alu_shift_reg): Likewise.
24157 (cortex_a8_mov): Likewise.
24158 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
24159 (cortex_a9_dp_shift): Likewise.
24160 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
24161 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
24162 (cortex_r4_mov): Likewise.
24163 (cortex_r4_alu_shift): Likewise.
24164 (cortex_r4_alu_shift_reg): Likewise.
24165 * config/arm/fa526.md (526_alu_op): Update for attribute change.
24166 (526_alu_shift_op): Likewise.
24167 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
24168 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
24169 (626te_alu_shift_op): Likewise.
24170 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
24171 (726te_alu_op): Likewise.
24172 (726te_alu_shift_op): Likewise.
24173 (726te_alu_shift_reg_op): Likewise.
24174 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
24175 (mp626_alu_shift_op): Likewise.
24176 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
24177 (pj4_alu_e1_conds): Likewise.
24178 (pj4_alu): Likewise.
24179 (pj4_alu_conds): Likewise.
24180 (pj4_shift): Likewise.
24181 (pj4_shift_conds): Likewise.
24182 (pj4_alu_shift): Likewise.
24183 (pj4_alu_shift_conds): Likewise.
24184
24185 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24186
24187 * config/arm/predicates.md (shiftable_operator_strict_it):
24188 New predicate.
24189 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
24190 Disable cond_exec version for arm_restrict_it.
24191 (thumb2_smaxsi3): Convert to generate cond_exec.
24192 (thumb2_sminsi3): Likewise.
24193 (thumb32_umaxsi3): Likewise.
24194 (thumb2_uminsi3): Likewise.
24195 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
24196 (thumb2_neg_abssi2): Likewise.
24197 (thumb2_mov_scc): Add alternative for 16-bit encoding.
24198 (thumb2_movsicc_insn): Adjust alternatives.
24199 (thumb2_mov_negscc): Disable for arm_restrict_it.
24200 (thumb2_mov_negscc_strict_it): New pattern.
24201 (thumb2_mov_notscc_strict_it): New pattern.
24202 (thumb2_mov_notscc): Disable for arm_restrict_it.
24203 (thumb2_ior_scc): Likewise.
24204 (thumb2_ior_scc_strict_it): New pattern.
24205 (thumb2_cond_move): Adjust for arm_restrict_it.
24206 (thumb2_cond_arith): Disable for arm_restrict_it.
24207 (thumb2_cond_arith_strict_it): New pattern.
24208 (thumb2_cond_sub): Adjust for arm_restrict_it.
24209 (thumb2_movcond): Likewise.
24210 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
24211 (thumb2_zero_extendhisi2_v6): Likewise.
24212 (thumb2_zero_extendqisi2_v6): Likewise.
24213 (orsi_notsi_si): Likewise.
24214 (orsi_not_shiftsi_si): Likewise.
24215
24216 2013-07-22 Georg-Johann Lay <avr@gjlay.de>
24217
24218 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
24219 instruction sequence is 1 byte shorter.
24220
24221 2013-07-22 Uros Bizjak <ubizjak@gmail.com>
24222
24223 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
24224 it is not needed after split.
24225
24226 2013-07-20 Iain Sandoe <iain@codesourcery.com>
24227
24228 PR target/51784
24229 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
24230 second label for nonlocal goto receivers. Don't output pic base labels
24231 unless we're producing PIC; mark that action unreachable().
24232 (ix86_save_reg): If the function contains a nonlocal label, save the
24233 PIC base reg.
24234 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
24235 * config/darwin.c (emitted_pic_label_num): New GTY.
24236 (update_pic_label_number_if_needed): New.
24237 (machopic_output_function_base_name): Adjust for nonlocal receiver
24238 case.
24239 (machopic_should_output_picbase_label): New.
24240 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
24241 (nonlocal_goto_receiver): New insn and split.
24242
24243 2013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
24244
24245 * config/aarch64/aarch64-builtins.c
24246 (aarch64_fold_builtin): Fold abs in all modes.
24247 * config/aarch64/aarch64-simd-builtins.def
24248 (abs): Enable for all modes.
24249 * config/aarch64/arm_neon.h
24250 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
24251 (vabs_f64): Add missing intrinsic.
24252
24253 2013-07-19 Ian Bolton <ian.bolton@arm.com>
24254
24255 * config/aarch64/arm_neon.h (vabs_s64): New function
24256
24257 2013-07-19 Georg-Johann Lay <avr@gjlay.de>
24258
24259 PR target/57516
24260 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
24261 * config/avr/avr.md (adjust_len): Add `round'.
24262 * config/avr/avr-protos.h (avr_out_round): New prototype.
24263 (avr_out_plus): Add `out_label' argument.
24264 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
24265 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
24266 Handle the case where `insn' is just a pattern.
24267 (avr_out_bitop): Handle the case where `insn' is just a pattern.
24268 (avr_out_round): New function.
24269 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
24270
24271 2013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
24272
24273 * config/microblaze/microblaze.c (microblaze_expand_prologue):
24274 Add check for flag_stack_usage to handle -fstack-usage support
24275
24276 2013-07-18 Pat Haugen <pthaugen@us.ibm.com>
24277
24278 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
24279 interaction for new Power8 flags and VSX.
24280
24281 2013-07-18 Sriraman Tallam <tmsriram@google.com>
24282
24283 PR middle-end/57698
24284 * tree-inline.c (expand_call_inline): Emit errors during
24285 early_inlining only if optimization is not turned on.
24286
24287 2013-07-18 David Malcolm <dmalcolm@redhat.com>
24288
24289 * passes.def: New.
24290
24291 * passes.c (init_optimization_passes): Move the construction of
24292 the pass hierarchy into a new passes.def file.
24293
24294 * Makefile.in (passes.o): Add dependency on passes.def.
24295
24296 2013-07-18 David Malcolm <dmalcolm@redhat.com>
24297
24298 * passes.c (init_optimization_passes): Introduce macros for
24299 constructing the tree of passes (INSERT_PASSES_AFTER,
24300 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
24301 TERMINATE_PASS_LIST).
24302
24303 2013-07-18 Vladimir Makarov <vmakarov@redhat.com>
24304 Wei Mi <wmi@google.com>
24305
24306 PR rtl-optimization/57878
24307 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
24308 top.
24309 (reload_pseudo_compare_func): Check nregs first for reload
24310 pseudos.
24311
24312 2013-07-18 David Malcolm <dmalcolm@redhat.com>
24313
24314 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
24315
24316 2013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
24317
24318 * read-rtl.c (validate_const_int): Once an invalid character is
24319 seen, quit the loop.
24320
24321 * gengtype.c (write_roots): Similarly once we find the "deletable"
24322 or "if_marked" option.
24323
24324 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
24325
24326 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
24327 "xtab" and "sat". Move value "clz" from here to ...
24328 (attriubte "type"): ... here.
24329 (satsi_<SAT:code>): Delete "insn" attribute.
24330 (satsi_<SAT:code>_shift): Likewise.
24331 (arm_zero_extendqisi2addsi): Likewise.
24332 (arm_extendqisi2addsi): Likewise.
24333 (clzsi2): Update for attribute changes.
24334 (rbitsi2): Likewise.
24335 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
24336 attribute.
24337 (arm_usatsihi): Likewise.
24338 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
24339
24340 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
24341
24342 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
24343 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
24344 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
24345 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
24346 in alphabetical order.
24347 (attribute "core_cycles"): Update for attribute changes.
24348 (arm_addsi3): Likewise.
24349 (addsi3_compare0): Likewise.
24350 (addsi3_compare0_scratch): Likewise.
24351 (addsi3_compare_op1): Likewise.
24352 (addsi3_compare_op2): Likewise.
24353 (compare_addsi2_op0): Likewise.
24354 (compare_addsi2_op1): Likewise.
24355 (addsi3_carryin_shift_<optab>): Likewise.
24356 (subsi3_carryin_shift): Likewise.
24357 (rsbsi3_carryin_shift): Likewise.
24358 (arm_subsi3_insn): Likewise.
24359 (subsi3_compare0): Likewise.
24360 (subsi3_compare): Likewise.
24361 (arm_andsi3_insn): Likewise.
24362 (thumb1_andsi3_insn): Likewise.
24363 (andsi3_compare0): Likewise.
24364 (andsi3_compare0_scratch): Likewise.
24365 (zeroextractsi_compare0_scratch
24366 (andsi_not_shiftsi_si): Likewise.
24367 (iorsi3_insn): Likewise.
24368 (iorsi3_compare0): Likewise.
24369 (iorsi3_compare0_scratch): Likewise.
24370 (arm_xorsi3): Likewise.
24371 (thumb1_xorsi3_insn): Likewise.
24372 (xorsi3_compare0): Likewise.
24373 (xorsi3_compare0_scratch): Likewise.
24374 (satsi_<SAT:code>_shift): Likewise.
24375 (rrx): Likewise.
24376 (arm_shiftsi3): Likewise.
24377 (shiftsi3_compare0): Likewise.
24378 (not_shiftsi): Likewise.
24379 (not_shiftsi_compare0): Likewise.
24380 (not_shiftsi_compare0_scratch): Likewise.
24381 (arm_one_cmplsi2): Likewise.
24382 (thumb_one_complsi2): Likewise.
24383 (notsi_compare0): Likewise.
24384 (notsi_compare0_scratch): Likewise.
24385 (thumb1_zero_extendhisi2): Likewise.
24386 (arm_zero_extendhisi2): Likewise.
24387 (arm_zero_extendhisi2_v6): Likewise.
24388 (arm_zero_extendhisi2addsi): Likewise.
24389 (thumb1_zero_extendqisi2): Likewise.
24390 (thumb1_zero_extendqisi2_v6): Likewise.
24391 (arm_zero_extendqisi2): Likewise.
24392 (arm_zero_extendqisi2_v6): Likewise.
24393 (arm_zero_extendqisi2addsi): Likewise.
24394 (thumb1_extendhisi2): Likewise.
24395 (arm_extendhisi2): Likewise.
24396 (arm_extendhisi2_v6): Likewise.
24397 (arm_extendqisi): Likewise.
24398 (arm_extendqisi_v6): Likewise.
24399 (arm_extendqisi2addsi): Likewise.
24400 (thumb1_extendqisi2): Likewise.
24401 (thumb1_movdi_insn): Likewise.
24402 (arm_movsi_insn): Likewise.
24403 (movsi_compare0): Likewise.
24404 (movhi_insn_arch4): Likewise.
24405 (movhi_bytes): Likewise.
24406 (arm_movqi_insn): Likewise.
24407 (thumb1_movqi_insn): Likewise.
24408 (arm32_movhf): Likewise.
24409 (thumb1_movhf): Likewise.
24410 (arm_movsf_soft_insn): Likewise.
24411 (thumb1_movsf_insn): Likewise.
24412 (movdf_soft_insn): Likewise.
24413 (thumb_movdf_insn): Likewise.
24414 (arm_cmpsi_insn): Likewise.
24415 (cmpsi_shiftsi): Likewise.
24416 (cmpsi_shiftsi_swp): Likewise.
24417 (arm_cmpsi_negshiftsi_si): Likewise.
24418 (movsicc_insn): Likewise.
24419 (movsfcc_soft_insn): Likewise.
24420 (arith_shiftsi): Likewise.
24421 (arith_shiftsi_compare0
24422 (arith_shiftsi_compare0_scratch
24423 (sub_shiftsi): Likewise.
24424 (sub_shiftsi_compare0
24425 (sub_shiftsi_compare0_scratch
24426 (and_scc): Likewise.
24427 (cond_move): Likewise.
24428 (if_plus_move): Likewise.
24429 (if_move_plus): Likewise.
24430 (if_move_not): Likewise.
24431 (if_not_move): Likewise.
24432 (if_shift_move): Likewise.
24433 (if_move_shift): Likewise.
24434 (if_shift_shift): Likewise.
24435 (if_not_arith): Likewise.
24436 (if_arith_not): Likewise.
24437 (cond_move_not): Likewise.
24438 (thumb1_ashlsi3): Set type attribute.
24439 (thumb1_ashrsi3): Likewise.
24440 (thumb1_lshrsi3): Likewise.
24441 (thumb1_rotrsi3): Likewise.
24442 (shiftsi3_compare0_scratch): Likewise.
24443 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
24444 (neon_mov<mode>): Likewise.
24445 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
24446 attribute changes.
24447 (thumb2_movsi_insn): Likewise.
24448 (thumb2_cmpsi_neg_shiftsi): Likewise.
24449 (thumb2_extendqisi_v6): Likewise.
24450 (thumb2_zero_extendhisi2_v6): Likewise.
24451 (thumb2_zero_extendqisi2_v6): Likewise.
24452 (thumb2_shiftsi3_short): Likewise.
24453 (thumb2_addsi3_compare0_scratch): Likewise.
24454 (orsi_not_shiftsi_si): Likewise.
24455 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
24456 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
24457 changes.
24458 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
24459 (1020alu_shift_op): Likewise.
24460 (1020alu_shift_reg_op): Likewise.
24461 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
24462 (alu_shift_op): Likewise.
24463 (alu_shift_reg_op): Likewise.
24464 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
24465 (11_alu_shift_op): Likewise.
24466 (11_alu_shift_reg_op): Likewise.
24467 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
24468 (9_alu_shift_reg_op): Likewise.
24469 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
24470 changes.
24471 (cortex_a15_alu_shift): Likewise.
24472 (cortex_a15_alu_shift_reg): Likewise.
24473 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
24474 changes.
24475 (cortex_a5_alu_shift): Likewise.
24476 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
24477 changes.
24478 (cortex_a53_alu_shift): Likewise.
24479 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
24480 changes.
24481 (cortex_a7_alu_reg): Likewise.
24482 (cortex_a7_alu_shift): Likewise.
24483 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
24484 changes.
24485 (cortex_a8_alu_shift): Likewise.
24486 (cortex_a8_alu_shift_reg): Likewise.
24487 (cortex_a8_mov): Likewise.
24488 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
24489 (cortex_a9_dp_shift): Likewise.
24490 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
24491 changes.
24492 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
24493 changes.
24494 (cortex_r4_mov): Likewise.
24495 (cortex_r4_alu_shift): Likewise.
24496 (cortex_r4_alu_shift_reg): Likewise.
24497 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
24498 (526_alu_shift_op): Likewise.
24499 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
24500 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
24501 (626te_alu_shift_op): Likewise.
24502 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
24503 (726te_alu_op): Likewise.
24504 (726te_alu_shift_op): Likewise.
24505 (726te_alu_shift_reg_op): Likewise.
24506 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
24507 (mp626_alu_shift_op): Likewise.
24508 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
24509 (pj4_alu_e1_conds): Likewise.
24510 (pj4_alu): Likewise.
24511 (pj4_alu_conds): Likewise.
24512 (pj4_shift): Likewise.
24513 (pj4_shift_conds): Likewise.
24514 (pj4_alu_shift): Likewise.
24515 (pj4_alu_shift_conds): Likewise.
24516 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
24517 changes.
24518 (cortexa7_older_only): Likewise.
24519 (cortexa7_younger): Likewise.
24520
24521 2013-07-18 David Malcolm <dmalcolm@redhat.com>
24522
24523 * ipa-pure-const.c (generate_summary): Rename to...
24524 (pure_const_generate_summary): ... this.
24525
24526 2013-07-17 Iain Sandoe <iain@codesourcery.com>
24527
24528 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
24529
24530 2013-07-17 Yvan Roux <yvan.roux@linaro.org>
24531
24532 PR target/57909
24533 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
24534 usage in HI mode.
24535
24536 2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24537
24538 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
24539 enabled without -march=zEC12.
24540 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
24541 flags to be set.
24542
24543 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
24544
24545 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
24546 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
24547 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
24548 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
24549 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
24550 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
24551 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
24552 ISA_HAS_FP4.
24553 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
24554 and ISA_HAS_NMADD3_NMSUB3.
24555 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
24556 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
24557 (nmsub4<mode>, nmsub3<mode>): Likewise.
24558 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
24559
24560 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
24561
24562 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
24563 TARGET_MIPS5400 checking.
24564
24565 2013-07-16 Jakub Jelinek <jakub@redhat.com>
24566 Peter Bergner <bergner@vnet.ibm.com>
24567
24568 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
24569 registers in the comment.
24570 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
24571 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
24572 rather than FIRST_PSEUDO_REGISTERS.
24573
24574 2013-07-16 Peter Bergner <bergner@vnet.ibm.com>
24575
24576 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
24577 enable extra ISA flags with TARGET_HTM.
24578
24579 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
24580
24581 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
24582 Fix comment typos.
24583
24584 2013-07-15 Cong Hou <congh@google.com>
24585
24586 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
24587 in compare function for sorting.
24588
24589 2013-07-15 Peter Bergner <bergner@vnet.ibm.com>
24590
24591 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
24592 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
24593 * config/rs6000/rs6000.opt: Add -mhtm option.
24594 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
24595 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
24596 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
24597 __HTM__ if the HTM instructions are available.
24598 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
24599 htm_spr_reg_operand): New define_predicates.
24600 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
24601 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
24602 Include htm.md.
24603 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
24604 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
24605 HTM builtin functions.
24606 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
24607 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
24608 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
24609 (rs6000_builtin_mask_calculate): Likewise.
24610 (rs6000_option_override_internal): Likewise.
24611 (bdesc_htm): Add new HTM builtin support.
24612 (htm_spr_num): New function.
24613 (htm_spr_regno): Likewise.
24614 (rs6000_htm_spr_icode): Likewise.
24615 (htm_expand_builtin): Likewise.
24616 (htm_init_builtins): Likewise.
24617 (rs6000_expand_builtin): Add support for HTM builtin functions.
24618 (rs6000_init_builtins): Likewise.
24619 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
24620 option.
24621 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
24622 (TARGET_HTM, MASK_HTM): Define macros.
24623 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
24624 (FIXED_REGISTERS): Likewise.
24625 (CALL_USED_REGISTERS): Likewise.
24626 (CALL_REALLY_USED_REGISTERS): Likewise.
24627 (REG_ALLOC_ORDER): Likewise.
24628 (enum reg_class): Likewise.
24629 (REG_CLASS_NAMES): Likewise.
24630 (REG_CLASS_CONTENTS): Likewise.
24631 (REGISTER_NAMES): Likewise.
24632 (ADDITIONAL_REGISTER_NAMES): Likewise.
24633 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
24634 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
24635 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
24636 * config/rs6000/htm.md: New file.
24637 * config/rs6000/htmintrin.h: New file.
24638 * config/rs6000/htmxlintrin.h: New file.
24639
24640 2013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
24641
24642 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
24643 Define SYMBOL_TINY_GOT, update comment.
24644 * config/aarch64/aarch64.c
24645 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
24646 (aarch64_expand_mov_immediate): Likewise.
24647 (aarch64_print_operand): Likewise.
24648 (aarch64_classify_symbol): Likewise.
24649 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
24650 (ldr_got_tiny): Define.
24651
24652 2013-07-13 Tobias Grosser <tobias@grosser.es>
24653
24654 PR tree-optimization/54094
24655 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
24656 scheduling dimension for the parallelism check from the polyhedral
24657 information in the AST.
24658 * graphite-dependences.c (carries_deps): Do not assume the schedule is
24659 in 2D + 1 form.
24660
24661 2013-07-13 Jason Merrill <jason@redhat.com>
24662
24663 * print-tree.c (debug_vec_tree): Use debug_raw.
24664 (debug_raw (vec<tree, va_gc> &)): New.
24665 (debug_raw (vec<tree, va_gc> *)): New.
24666 * tree.h: Declare them.
24667
24668 2013-07-13 Bin Cheng <bin.cheng@arm.com>
24669
24670 * ifcvt.c (ifcvt_after_combine): New static variable.
24671 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
24672 for size.
24673 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
24674 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
24675 rest_of_handle_if_after_reload): Pass new argument for if_convert.
24676
24677 2013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
24678
24679 * config/mips/mips.c (mips_expand_call): Remove empty statement.
24680
24681 2013-07-12 Michael Matz <matz@suse.de>
24682
24683 PR middle-end/55771
24684 * convert.c (convert_to_real): Reject non-float inner types.
24685
24686 2013-07-12 Tejas Belagod <tejas.belagod@arm.com>
24687
24688 * config/aarch64/aarch64-protos.h
24689 (aarch64_simd_immediate_valid_for_move): Remove.
24690 * config/aarch64/aarch64.c (simd_immediate_info): New member.
24691 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
24692 cases.
24693 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
24694
24695 2013-07-11 Steve Ellcey <sellcey@mips.com>
24696
24697 * config/mips/mips.c (mips_conditional_register_usage): Do not
24698 use t[0-7] registers in MIPS16 mode when optimizing for size.
24699
24700 2013-07-11 Sriraman Tallam <tmsriram@google.com>
24701
24702 * config/i386/i386.c (dispatch_function_versions): Fix array
24703 indexing of function_version_info to match actual_versions.
24704
24705 2013-07-11 Teresa Johnson <tejohnson@google.com>
24706
24707 * vec.h (struct va_gc): Move release out-of-line.
24708 (va_gc::release): Call ggc_free on released vec.
24709
24710 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24711
24712 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
24713 Require GOT register as additional operand in UNSPEC.
24714 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
24715 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
24716 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
24717 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
24718 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
24719 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
24720 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
24721
24722 2013-07-11 Georg-Johann Lay <avr@gjlay.de>
24723
24724 PR target/57631
24725 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
24726 name seen by assembler/linker rather if available.
24727
24728 2013-07-11 Andreas Schwab <schwab@suse.de>
24729
24730 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
24731
24732 2013-07-10 Vladimir Makarov <vmakarov@redhat.com>
24733
24734 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
24735
24736 2013-07-10 Joseph Myers <joseph@codesourcery.com>
24737
24738 * doc/tm.texi.in: Move hook documentation to ....
24739 * target.def: ... here.
24740
24741 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
24742 text on @hook line.
24743 * doc/tm.texi: Regenerate.
24744
24745 2013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
24746
24747 PR c++/57869
24748 * doc/invoke.texi: Document -Wconditionally-supported.
24749
24750 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
24751
24752 PR target/57844
24753 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
24754 of my_fp.
24755
24756 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
24757
24758 PR target/57506
24759 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
24760 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
24761 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
24762 Remove duplicate devices.
24763 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
24764 * config/avr/t-multilib: Regenerate.
24765 * config/avr/avr-tables.opt: Regenerate.
24766 * doc/avr-mmcu.texi: Regenerate.
24767
24768 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
24769
24770 PR target/56987
24771 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
24772
24773 2013-07-10 Graham Stott <graham.stott@btinternet.com>
24774
24775 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
24776 the cost of MULT when optimizing for size.
24777
24778 2013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24779
24780 * config/cr16/cr16-protos.h: Don't include target.h.
24781
24782 2013-07-09 Joseph Myers <joseph@codesourcery.com>
24783
24784 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
24785 adjust register size for TDmode and TFmode for VSX registers.
24786
24787 2013-07-08 Kai Tietz <ktietz@redhat.com>
24788
24789 PR target/56892
24790 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
24791 hook_bool_const_tree_true.
24792
24793 2013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24794
24795 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
24796 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
24797 * config/s390/s390.md: Define FPR*_REGNUM constants.
24798 Fix FPR2_REGNUM constant (18 -> 17).
24799 ("*trunc<BFP:mode><DFP_ALL:mode>2")
24800 ("*trunc<DFP_ALL:mode><BFP:mode>2")
24801 ("trunc<BFP:mode><DFP_ALL:mode>2")
24802 ("trunc<DFP_ALL:mode><BFP:mode>2")
24803 ("*extend<BFP:mode><DFP_ALL:mode>2")
24804 ("*extend<DFP_ALL:mode><BFP:mode>2")
24805 ("extend<BFP:mode><DFP_ALL:mode>2")
24806 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
24807 FPR4_REGNUM.
24808
24809 2013-07-08 Graham Stott <graham.stott@btinternet.com>
24810
24811 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
24812
24813 2013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24814
24815 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
24816 and cfun_fpr_bit_p to cfun_fpr_save_p.
24817 (s390_frame_area, s390_register_info, s390_frame_info)
24818 (s390_emit_prologue, s390_emit_epilogue)
24819 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
24820 register numbers.
24821 * config/s390/s390.h: Define *_REGNUM macros for floating point
24822 register numbers.
24823
24824 2013-07-08 Eric Botcazou <ebotcazou@adacore.com>
24825
24826 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
24827
24828 2013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
24829
24830 PR rtl-optimization/57786
24831 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
24832 and break out of the loop when it is set to false.
24833
24834 2013-07-08 Jakub Jelinek <jakub@redhat.com>
24835
24836 PR target/57819
24837 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
24838 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
24839 (const_int 63)) 0)).
24840 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
24841 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
24842 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
24843
24844 PR rtl-optimization/57829
24845 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
24846 mask bits outside of mode are just sign-extension from mode to HWI.
24847
24848 2013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
24849
24850 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
24851 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
24852 adjust_address instead of change_address to keep info about alignment.
24853 (emit_strmov): Remove.
24854 (emit_memmov): New function.
24855 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
24856 (expand_movmem_epilogue): Likewise and return updated rtx for
24857 destination.
24858 (expand_constant_movmem_prologue): Likewise and return updated rtx for
24859 destination and source.
24860 (decide_alignment): Refactor, handle vector_loop.
24861 (ix86_expand_movmem): Likewise.
24862 (ix86_expand_setmem): Likewise.
24863 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
24864
24865 2013-07-07 Uros Bizjak <ubizjak@gmail.com>
24866
24867 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
24868 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
24869
24870 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
24871
24872 * config/i386/sse.md (sse_movlhps): Change alternative 3
24873 of operand 2 to "m".
24874
24875 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
24876
24877 PR target/57807
24878 * config/i386/sse.md (iptr): New mode attribute.
24879 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
24880 (<sse>_vm<plusminus_insn><mode>3): Ditto.
24881 (<sse>_vmmul<mode>3): Ditto.
24882 (<sse>_vmdiv<mode>3): Ditto.
24883 (sse_vmrcpv4sf2): Ditto.
24884 (<sse>_vmsqrt<mode>2): Ditto.
24885 (sse_vmrsqrtv4sf2): Ditto.
24886 (<sse>_vm<code><mode>3): Ditto.
24887 (avx_vmcmp<mode>3): Ditto.
24888 (<sse>_vmmaskcmp<mode>3): Ditto.
24889 (<sse>_comi): Ditto.
24890 (<sse>_ucomi): Ditto.
24891 (*xop_vmfrcz_<mode>): Ditto.
24892 (*fmai_fmadd_<mode>): Ditto.
24893 (*fmai_fmsub_<mode>): Ditto.
24894 (*fmai_fnmadd_<mode>): Ditto.
24895 (*fmai_fnmsub_<mode>): Ditto.
24896 (*fma4i_vmfmadd_<mode>): Ditto.
24897 (*fma4i_vmfmsub_<mode>): Ditto.
24898 (*fma4i_vmfnmadd_<mode>): Ditto.
24899 (*fma4i_vmfnmsub_<mode>): Ditto.
24900 (*xop_vmfrcz_<mode>): Ditto.
24901 (sse_cvtps2pi): Ditto.
24902 (sse_cvttps2pi): Ditto.
24903 (sse_cvtss2si): Ditto.
24904 (sse_cvtss2si_2): Ditto.
24905 (sse_cvtss2siq_2): Ditto.
24906 (sse_cvttss2si): Ditto.
24907 (sse_cvttss2siq): Ditto.
24908 (sse_cvtsd2si): Ditto.
24909 (sse_cvtsd2si_2): Ditto.
24910 (sse_cvtsd2siq_2): Ditto.
24911 (sse_cvttsd2si): Ditto.
24912 (sse_cvttsd2siq): Ditto.
24913 (sse_cvtsd2ss): Ditto.
24914 (sse_cvtss2sd): Ditto.
24915 (avx2_pbroadcast<mode>): Ditto.
24916 (avx2_pbroadcast<mode>_1): Ditto.
24917 (*avx_vperm_broadcast_v4sf): Ditto.
24918
24919 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
24920 (sse_movlhps): Ditto.
24921 (sse_storehps): Ditto.
24922 (sse_loadhps): Ditto.
24923 (sse_storelps): Ditto.
24924 (sse_loadlps): Ditto.
24925 (*vec_concatv4sf): Ditto.
24926 (*vec_interleave_highv2df): Ditto.
24927 (*vec_interleave_lowv2df): Ditto.
24928 (*vec_extractv2df_1_sse): Ditto.
24929 (*vec_extractv2df_0_sse): Ditto.
24930 (sse2_storelpd): Ditto.
24931 (sse2_loadlpd): Ditto.
24932 (sse2_movsd): Ditto.
24933 (*vec_concatv4si): Ditto.
24934 (vec_concatv2di): Ditto.
24935
24936 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
24937 for Intel asm dialect.
24938 (mmx_punpcklwd): Ditto.
24939 (mmx_punpckldq): Ditto.
24940
24941 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
24942 for intel assembler dialect.
24943
24944 2013-07-06 Jakub Jelinek <jakub@redhat.com>
24945
24946 PR target/29776
24947 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
24948 for BUILT_IN_C{LZ,LRSB}*.
24949 * tree.h (CASE_INT_FN): Add FN##IMAX case.
24950 * tree-vrp.c (extract_range_basic): Handle
24951 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
24952 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
24953 fall thru to code calling set_value*.
24954 * builtins.c (expand_builtin): Remove *IMAX cases.
24955 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
24956 if width is bigger than 2*HWI.
24957
24958 2013-07-05 Vladimir Makarov <vmakarov@redhat.com>
24959
24960 PR rtl-optimization/55342
24961 * lra-int.h (lra_subreg_reload_pseudos): New.
24962 * lra.c: Add undoing optional reloads to the block diagram.
24963 (lra_subreg_reload_pseudos): New.
24964 (lra_optional_reload_pseudos): Change comments.
24965 (lra): Init and clear lra_subreg_reload_pseudos. Clear
24966 lra_optional_reload_pseudos after undo transformations.
24967 * lra-assigns.c (pseudo_prefix_title): New.
24968 (lra_setup_reg_renumber): Use it.
24969 (spill_for): Ditto. Check subreg reload pseudos too.
24970 (assign_by_spills): Consider subreg reload pseudos too.
24971 * lra-constraints.c (simplify_operand_subreg): Use
24972 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
24973 (curr_insn_transform): Recognize and do optional reloads.
24974 (undo_optional_reloads): New.
24975 (lra_undo_inheritance): Call undo_optional_reloads.
24976
24977 2013-07-05 Thomas Quinot <quinot@adacore.com>
24978
24979 * tree-complex.c (expand_complex_operations_1): Fix typo.
24980
24981 2013-07-04 Tejas Belagod <tejas.belagod@arm.com>
24982
24983 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
24984 (tune_params): New member 'const vec_costs'.
24985 * config/aarch64/aarch64.c (generic_vector_cost): New.
24986 (generic_tunings): New member 'generic_vector_cost'.
24987 (aarch64_builtin_vectorization_cost): New.
24988 (aarch64_add_stmt_cost): New.
24989 (TARGET_VECTORIZE_ADD_STMT_COST): New.
24990 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
24991
24992 2013-07-03 Jakub Jelinek <jakub@redhat.com>
24993
24994 PR target/57777
24995 * config/i386/predicates.md (vsib_address_operand): Disallow
24996 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
24997
24998 2013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
24999
25000 PR middle-end/55030
25001 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
25002 expand_builtin_setjmp_receiver.
25003 (expand_label): Adjust, call expand_builtin_setjmp_receiver
25004 with NULL for the label parameter.
25005 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
25006 the frame-pointer. Adjust comments.
25007 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
25008 only if LABEL is non-NULL.
25009
25010 2013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
25011
25012 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
25013 (ARM_ABI_AAPCS64): Ditto.
25014 (arm_abi): Ditto.
25015 (ARM_DEFAULT_ABI): Ditto.
25016
25017 2013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
25018
25019 * config/aarch64/aarch64-builtins.c
25020 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
25021 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
25022 (st1): Likewise.
25023 * config/aarch64/aarch64-simd.md
25024 (aarch64_ld1<VALL:mode>): New.
25025 (aarch64_st1<VALL:mode>): Likewise.
25026 * config/aarch64/arm_neon.h
25027 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
25028
25029 2013-07-02 Sriraman Tallam <tmsriram@google.com>
25030
25031 * config/i386/i386.c (gate_insert_vzeroupper): Check if
25032 target ISA is AVX.
25033 (ix86_option_override_internal):Turn on all -mavx target flags by
25034 default as they are dependent on AVX anyway.
25035
25036 2013-07-02 Cary Coutant <ccoutant@google.com>
25037
25038 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
25039 deterministic hash.
25040 (loc_checksum_ordered): Likewise.
25041 (hash_loc_operands): Remove inline keyword.
25042
25043 2013-07-02 Jakub Jelinek <jakub@redhat.com>
25044
25045 PR tree-optimization/57741
25046 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
25047 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
25048 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
25049 Allow REAL_CST step_exprs if flag_associative_math.
25050 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
25051
25052 2013-07-02 Ian Bolton <ian.bolton@arm.com>
25053
25054 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
25055
25056 2013-07-02 Ian Bolton <ian.bolton@arm.com>
25057
25058 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
25059
25060 2013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25061
25062 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
25063 encoding.
25064 (iorsi3_insn): Likewise.
25065 (arm_xorsi3): Likewise.
25066
25067 2013-07-01 Sofiane Naci <sofiane.naci@arm.com>
25068
25069 * arm.md (attribute "wtype"): Delete. Move attribute values from here
25070 to ...
25071 (attribute "type"): ... here, and prefix with "wmmx_".
25072 (attribute "core_cycles"): Update for attribute changes.
25073 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
25074 (tbcstv4hi): Likewise.
25075 (tbcstv2si): Likewise.
25076 (iwmmxt_iordi3): Likewise.
25077 (iwmmxt_xordi3): Likewise.
25078 (iwmmxt_anddi3): Likewise.
25079 (iwmmxt_nanddi3): Likewise.
25080 (iwmmxt_arm_movdi): Likewise.
25081 (iwmmxt_movsi_insn): Likewise.
25082 (mov<mode>_internal): Likewise.
25083 (and<mode>3_iwmmxt): Likewise.
25084 (ior<mode>3_iwmmxt): Likewise.
25085 (xor<mode>3_iwmmxt): Likewise.
25086 (add<mode>3_iwmmxt): Likewise.
25087 (ssaddv8qi3): Likewise.
25088 (ssaddv4hi3): Likewise.
25089 (ssaddv2si3): Likewise.
25090 (usaddv8qi3): Likewise.
25091 (usaddv4hi3): Likewise.
25092 (usaddv2si3): Likewise.
25093 (sub<mode>3_iwmmxt): Likewise.
25094 (sssubv8qi3): Likewise.
25095 (sssubv4hi3): Likewise.
25096 (sssubv2si3): Likewise.
25097 (ussubv8qi3): Likewise.
25098 (ussubv4hi3): Likewise.
25099 (ussubv2si3): Likewise.
25100 (mulv4hi3_iwmmxt): Likewise.
25101 (smulv4hi3_highpart): Likewise.
25102 (umulv4hi3_highpart): Likewise.
25103 (iwmmxt_wmacs): Likewise.
25104 (iwmmxt_wmacsz): Likewise.
25105 (iwmmxt_wmacu): Likewise.
25106 (iwmmxt_wmacuz): Likewise.
25107 (iwmmxt_clrdi): Likewise.
25108 (iwmmxt_clrv8qi): Likewise.
25109 (iwmmxt_clr4hi): Likewise.
25110 (iwmmxt_clr2si): Likewise.
25111 (iwmmxt_uavgrndv8qi3): Likewise.
25112 (iwmmxt_uavgrndv4hi3): Likewise.
25113 (iwmmxt_uavgv8qi3): Likewise.
25114 (iwmmxt_uavgv4hi3): Likewise.
25115 (iwmmxt_tinsrb): Likewise.
25116 (iwmmxt_tinsrh): Likewise.
25117 (iwmmxt_tinsrw): Likewise.
25118 (iwmmxt_textrmub): Likewise.
25119 (iwmmxt_textrmsb): Likewise.
25120 (iwmmxt_textrmuh): Likewise.
25121 (iwmmxt_textrmsh): Likewise.
25122 (iwmmxt_textrmw): Likewise.
25123 (iwmxxt_wshufh): Likewise.
25124 (eqv8qi3): Likewise.
25125 (eqv4hi3): Likewise.
25126 (eqv2si3): Likewise.
25127 (gtuv8qi3): Likewise.
25128 (gtuv4hi3): Likewise.
25129 (gtuv2si3): Likewise.
25130 (gtv8qi3): Likewise.
25131 (gtv4hi3): Likewise.
25132 (gtv2si3): Likewise.
25133 (smax<mode>3_iwmmxt): Likewise.
25134 (umax<mode>3_iwmmxt): Likewise.
25135 (smin<mode>3_iwmmxt): Likewise.
25136 (umin<mode>3_iwmmxt): Likewise.
25137 (iwmmxt_wpackhss): Likewise.
25138 (iwmmxt_wpackwss): Likewise.
25139 (iwmmxt_wpackdss): Likewise.
25140 (iwmmxt_wpackhus): Likewise.
25141 (iwmmxt_wpackwus): Likewise.
25142 (iwmmxt_wpackdus): Likewise.
25143 (iwmmxt_wunpckihb): Likewise.
25144 (iwmmxt_wunpckihh): Likewise.
25145 (iwmmxt_wunpckihw): Likewise.
25146 (iwmmxt_wunpckilb): Likewise.
25147 (iwmmxt_wunpckilh): Likewise.
25148 (iwmmxt_wunpckilw): Likewise.
25149 (iwmmxt_wunpckehub): Likewise.
25150 (iwmmxt_wunpckehuh): Likewise.
25151 (iwmmxt_wunpckehuw): Likewise.
25152 (iwmmxt_wunpckehsb): Likewise.
25153 (iwmmxt_wunpckehsh): Likewise.
25154 (iwmmxt_wunpckehsw): Likewise.
25155 (iwmmxt_wunpckelub): Likewise.
25156 (iwmmxt_wunpckeluh): Likewise.
25157 (iwmmxt_wunpckeluw): Likewise.
25158 (iwmmxt_wunpckelsb): Likewise.
25159 (iwmmxt_wunpckelsh): Likewise.
25160 (iwmmxt_wunpckelsw): Likewise.
25161 (ror<mode>3): Likewise.
25162 (ashr<mode>3_iwmmxt): Likewise.
25163 (lshr<mode>3_iwmmxt): Likewise.
25164 (ashl<mode>3_iwmmxt): Likewise.
25165 (ror<mode>3_di): Likewise.
25166 (ashr<mode>3_di): Likewise.
25167 (lshr<mode>3_di): Likewise.
25168 (ashl<mode>3_di): Likewise.
25169 (iwmmxt_wmadds): Likewise.
25170 (iwmmxt_wmaddu): Likewise.
25171 (iwmmxt_tmia): Likewise.
25172 (iwmmxt_tmiaph): Likewise.
25173 (iwmmxt_tmiabb): Likewise.
25174 (iwmmxt_tmiatb): Likewise.
25175 (iwmmxt_tmiabt): Likewise.
25176 (iwmmxt_tmiatt): Likewise.
25177 (iwmmxt_tmovmskb): Likewise.
25178 (iwmmxt_tmovmskh): Likewise.
25179 (iwmmxt_tmovmskw): Likewise.
25180 (iwmmxt_waccb): Likewise.
25181 (iwmmxt_wacch): Likewise.
25182 (iwmmxt_waccw): Likewise.
25183 (iwmmxt_waligni): Likewise.
25184 (iwmmxt_walignr): Likewise.
25185 (iwmmxt_walignr0): Likewise.
25186 (iwmmxt_walignr1): Likewise.
25187 (iwmmxt_walignr2): Likewise.
25188 (iwmmxt_walignr3): Likewise.
25189 (iwmmxt_wsadb): Likewise.
25190 (iwmmxt_wsadh): Likewise.
25191 (iwmmxt_wsadbz): Likewise.
25192 (iwmmxt_wsadhz): Likewise.
25193 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
25194 (iwmmxt_wabsdiffb): Likewise.
25195 (iwmmxt_wabsdiffh): Likewise.
25196 (iwmmxt_wabsdiffw): Likewise.
25197 (iwmmxt_waddsubhx): Likewise
25198 (iwmmxt_wsubaddhx): Likewise.
25199 (addc<mode>3): Likewise.
25200 (iwmmxt_avg4): Likewise.
25201 (iwmmxt_avg4r): Likewise.
25202 (iwmmxt_wmaddsx): Likewise.
25203 (iwmmxt_wmaddux): Likewise.
25204 (iwmmxt_wmaddsn): Likewise.
25205 (iwmmxt_wmaddun): Likewise.
25206 (iwmmxt_wmulwsm): Likewise.
25207 (iwmmxt_wmulwum): Likewise.
25208 (iwmmxt_wmulsmr): Likewise.
25209 (iwmmxt_wmulumr): Likewise.
25210 (iwmmxt_wmulwsmr): Likewise.
25211 (iwmmxt_wmulwumr): Likewise.
25212 (iwmmxt_wmulwl): Likewise.
25213 (iwmmxt_wqmulm): Likewise.
25214 (iwmmxt_wqmulwm): Likewise.
25215 (iwmmxt_wqmulmr): Likewise.
25216 (iwmmxt_wqmulwmr): Likewise.
25217 (iwmmxt_waddbhusm): Likewise.
25218 (iwmmxt_waddbhusl): Likewise.
25219 (iwmmxt_wqmiabb): Likewise.
25220 (iwmmxt_wqmiabt): Likewise.
25221 (iwmmxt_wqmiatb): Likewise.
25222 (iwmmxt_wqmiatt): Likewise.
25223 (iwmmxt_wqmiabbn): Likewise.
25224 (iwmmxt_wqmiabtn): Likewise.
25225 (iwmmxt_wqmiatbn): Likewise.
25226 (iwmmxt_wqmiattn): Likewise.
25227 (iwmmxt_wmiabb): Likewise.
25228 (iwmmxt_wmiabt): Likewise.
25229 (iwmmxt_wmiatb): Likewise.
25230 (iwmmxt_wmiatt): Likewise.
25231 (iwmmxt_wmiabbn): Likewise.
25232 (iwmmxt_wmiabtn): Likewise.
25233 (iwmmxt_wmiatbn): Likewise.
25234 (iwmmxt_wmiattn): Likewise.
25235 (iwmmxt_wmiawbb): Likewise.
25236 (iwmmxt_wmiawbt): Likewise.
25237 (iwmmxt_wmiawtb): Likewise.
25238 (iwmmxt_wmiawtt): Likewise.
25239 (iwmmxt_wmiawbbn): Likewise.
25240 (iwmmxt_wmiawbtn): Likewise.
25241 (iwmmxt_wmiawtbn): Likewise.
25242 (iwmmxt_wmiawttn): Likewise.
25243 (iwmmxt_wmerge): Likewise.
25244 (iwmmxt_tandc<mode>3): Likewise.
25245 (iwmmxt_torc<mode>3): Likewise.
25246 (iwmmxt_torvsc<mode>3): Likewise.
25247 (iwmmxt_textrc<mode>3): Likewise.
25248 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
25249 (wmmxt_pack): Likewise.
25250 (wmmxt_mult_c1): Likewise.
25251 (wmmxt_mult_c2): Likewise.
25252 (wmmxt_alu_c1): Likewise.
25253 (wmmxt_alu_c2): Likewise.
25254 (wmmxt_alu_c3): Likewise.
25255 (wmmxt_transfer_c1): Likewise.
25256 (wmmxt_transfer_c2): Likewise.
25257 (wmmxt_transfer_c3): Likewise.
25258 (marvell_f_iwmmxt_wstr): Likewise.
25259 (marvell_f_iwmmxt_wldr): Likewise.
25260
25261 2013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
25262
25263 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
25264
25265 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
25266
25267 Revert:
25268 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
25269 * lra-constraints.c (need_for_split_p): Check call used hard regs
25270 living through calls.
25271
25272 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
25273 call used regs for call insn.
25274
25275 2013-06-28 Jakub Jelinek <jakub@redhat.com>
25276
25277 PR target/57736
25278 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
25279 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
25280
25281 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
25282
25283 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
25284
25285 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
25286
25287 * lra-constraints.c (need_for_split_p): Check call used hard regs
25288 living through calls.
25289
25290 2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
25291
25292 PR target/57744
25293 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
25294 to tie with any other modes. Eliminate Altivec vector mode tests,
25295 since these are a subset of ALTIVEC or VSX vector modes. Simplify
25296 code, to return 0 if testing MODE2 for a condition, if we've
25297 already tested MODE1 for the same condition.
25298
25299 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
25300
25301 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
25302 layout.
25303
25304 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
25305
25306 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
25307 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
25308
25309 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
25310
25311 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
25312 Define.
25313 (aarch64_symbolic_constant_p): Remove.
25314 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
25315 static. Fix line length and white space.
25316 (aarch64_symbolic_constant_p): Remove.
25317 * config/aarch64/predicates.md (aarch64_valid_symref):
25318 Use aarch64_classify_symbol_expression.
25319
25320 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25321
25322 * config/arm/constraints.md (Ts): New constraint.
25323 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
25324 16-bit encodings.
25325 (compare_scc): Use "Ts" constraint for operand 0.
25326 (ior_scc_scc): Likewise.
25327 (and_scc_scc): Likewise.
25328 (and_scc_scc_nodom): Likewise.
25329 (ior_scc_scc_cmp): Likewise for operand 7.
25330 (and_scc_scc_cmp): Likewise.
25331 * config/arm/thumb2.md (thumb2_movsi_insn):
25332 Add alternatives for 16-bit encodings.
25333 (thumb2_movhi_insn): Likewise.
25334 (thumb2_movsicc_insn): Likewise.
25335 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
25336 (thumb2_negscc): Use "Ts" constraint.
25337 Move mvn instruction outside cond_exec block.
25338 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
25339 for 16-bit encodings.
25340
25341 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25342
25343 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
25344 encoding.
25345 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
25346 (mulsi3subsi): Likewise.
25347 (mulsidi3adddi): Likewise.
25348 (mulsidi3_v6): Likewise.
25349 (umulsidi3_v6): Likewise.
25350 (umulsidi3adddi_v6): Likewise.
25351 (smulsi3_highpart_v6): Likewise.
25352 (umulsi3_highpart_v6): Likewise.
25353 (mulhisi3tb): Likewise.
25354 (mulhisi3bt): Likewise.
25355 (mulhisi3tt): Likewise.
25356 (maddhisi4): Likewise.
25357 (maddhisi4tb): Likewise.
25358 (maddhisi4tt): Likewise.
25359 (maddhidi4): Likewise.
25360 (maddhidi4tb): Likewise.
25361 (maddhidi4tt): Likewise.
25362 (zeroextractsi_compare0_scratch): Likewise.
25363 (insv_zero): Likewise.
25364 (insv_t2): Likewise.
25365 (anddi_notzesidi_di): Likewise.
25366 (anddi_notsesidi_di): Likewise.
25367 (andsi_notsi_si): Likewise.
25368 (iordi_zesidi_di): Likewise.
25369 (xordi_zesidi_di): Likewise.
25370 (andsi_iorsi3_notsi): Likewise.
25371 (smax_0): Likewise.
25372 (smax_m1): Likewise.
25373 (smin_0): Likewise.
25374 (not_shiftsi): Likewise.
25375 (unaligned_loadsi): Likewise.
25376 (unaligned_loadhis): Likewise.
25377 (unaligned_loadhiu): Likewise.
25378 (unaligned_storesi): Likewise.
25379 (unaligned_storehi): Likewise.
25380 (extv_reg): Likewise.
25381 (extzv_t2): Likewise.
25382 (divsi3): Likewise.
25383 (udivsi3): Likewise.
25384 (arm_zero_extendhisi2addsi): Likewise.
25385 (arm_zero_extendqisi2addsi): Likewise.
25386 (compareqi_eq0): Likewise.
25387 (arm_extendhisi2_v6): Likewise.
25388 (arm_extendqisi2addsi): Likewise.
25389 (arm_movt): Likewise.
25390 (thumb2_ldrd): Likewise.
25391 (thumb2_ldrd_base): Likewise.
25392 (thumb2_ldrd_base_neg): Likewise.
25393 (thumb2_strd): Likewise.
25394 (thumb2_strd_base): Likewise.
25395 (thumb2_strd_base_neg): Likewise.
25396 (arm_negsi2): Add alternative for 16-bit encoding.
25397 (arm_one_cmplsi2): Likewise.
25398
25399 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25400
25401 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
25402 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
25403 (movdfcc): Likewise.
25404 * config/arm/vfp.md (*thumb2_movsf_vfp):
25405 Disable predication for arm_restrict_it.
25406 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
25407 (*thumb2_movdfcc_vfp): Likewise.
25408 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
25409 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
25410 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
25411 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
25412 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
25413 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
25414 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
25415 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
25416 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
25417 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
25418 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
25419 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
25420 Disable predication for arm_restrict_it.
25421
25422 2013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
25423
25424 * config/i386/bmiintrin.h (_bextr_u32): New.
25425 (_bextr_u64): Ditto.
25426
25427 2013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
25428
25429 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
25430 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
25431 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
25432 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
25433 * config/mips/n32-elf.h: ...this new file.
25434
25435 2013-06-27 Marc Glisse <marc.glisse@inria.fr>
25436
25437 PR target/57224
25438 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
25439 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
25440
25441 2013-06-27 Catherine Moore <clm@codesourcery.com>
25442
25443 * config/mips/mips-tables.opt: Regenerate.
25444 * config/mips/mips-cpus.def: Add m14ke and m14kec.
25445 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
25446 * doc/invoke.texi: Add -m14kc.
25447
25448 2013-06-27 Jakub Jelinek <jakub@redhat.com>
25449
25450 PR target/57623
25451 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
25452 constraints of operand 1 and 2.
25453
25454 PR target/57623
25455 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
25456 to match RTL canonicalization. Swap predicates and
25457 constraints of operand 1 and 2.
25458
25459 2013-06-27 Vladimir Makarov <vmakarov@redhat.com>
25460
25461 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
25462 Process OP_INOUT regs for splitting too.
25463
25464 2013-06-27 Jakub Jelinek <jakub@redhat.com>
25465
25466 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
25467 decl before the loop, initialize to NULL.
25468 (vectorizable_load): Initialize ptr_incr to NULL.
25469
25470 2013-06-27 Martin Jambor <mjambor@suse.cz>
25471
25472 PR lto/57208
25473 * ipa-ref.h (ipa_maybe_record_reference): Declare.
25474 * ipa-ref.c (ipa_maybe_record_reference): New function.
25475 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
25476 * ipa-cp.c (create_specialized_node): Record potential references from
25477 aggvals.
25478 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
25479
25480 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
25481
25482 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
25483 parameter 'mode' of type 'enum machine_mode mode'; change to pass
25484 'mode' to force_reg.
25485 (aarch64_add_offset): Update calls to aarch64_force_temporary.
25486 (aarch64_expand_mov_immediate): Likewise.
25487
25488 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
25489
25490 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
25491 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
25492
25493 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25494
25495 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
25496 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
25497 (struct machine_function): Add tbegin_p.
25498 (s390_canonicalize_comparison): Fold CC mode compares to
25499 conditional jump if possible.
25500 (s390_emit_jump): Return the emitted jump.
25501 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
25502 Handle CCRAWmode compares.
25503 (s390_option_override): Default to -mhtm if available.
25504 (s390_reg_clobbered_rtx): Handle floating point regs as well.
25505 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
25506 FPRs instead of df_regs_ever_live_p.
25507 (s390_optimize_nonescaping_tx): New function.
25508 (s390_init_frame_layout): Extend clobbered_regs array to cover
25509 FPRs as well.
25510 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
25511 (s390_expand_tbegin): New function.
25512 (enum s390_builtin): New enum definition.
25513 (code_for_builtin): New array definition.
25514 (s390_init_builtins): New function.
25515 (s390_expand_builtin): New function.
25516 (TARGET_INIT_BUILTINS): Define.
25517 (TARGET_EXPAND_BUILTIN): Define.
25518 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
25519 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
25520 (s390_alc_comparison): Likewise.
25521 * config/s390/s390-modes.def: Add CCRAWmode.
25522 * config/s390/s390.h (processor_flags): Add PF_TX.
25523 (TARGET_CPU_HTM): Define macro.
25524 (TARGET_HTM): Define macro.
25525 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
25526 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
25527 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
25528 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
25529 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
25530 (TBEGIN_MASK, TBEGINC_MASK): New constants.
25531 ("*cc_to_int"): Move up.
25532 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
25533 constants other than 0.
25534 ("*ccraw_to_int"): New insn and splitter definition.
25535 ("tbegin", "tbegin_nofloat", "tbegin_retry")
25536 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
25537 ("tx_assist"): New expander.
25538 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
25539 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
25540 * config/s390/s390.opt: Add -mhtm option.
25541 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
25542 * config/s390/htmxlintrin.h: New file.
25543 * config/s390/htmintrin.h: New file.
25544 * config/s390/s390intrin.h: New file.
25545 * doc/extend.texi: Document htm builtins.
25546 * config.gcc: Add the new header files to extra_headers.
25547
25548 2013-06-26 Thomas Schwinge <thomas@codesourcery.com>
25549
25550 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
25551 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
25552
25553 2013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
25554 Pat Haugen <pthaugen@us.ibm.com>
25555 Peter Bergner <bergner@vnet.ibm.com>
25556
25557 * config/rs6000/power8.md: New.
25558 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
25559 setting for power8 entry.
25560 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
25561 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
25562 test for Power4/Power5 only.
25563 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
25564 support.
25565 (force_new_group): Adjust comment.
25566 * config/rs6000/rs6000.md: Include power8.md.
25567
25568 2013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
25569
25570 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
25571 * config/arm/arm-protos.h (arm_max_conditional_execute): New
25572 declaration.
25573 (tune_params): Update comment.
25574 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
25575 (arm_max_conditional_execute): New function.
25576 (thumb2_final_prescan_insn): Use max_insn_skipped and
25577 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
25578
25579 2013-06-25 Jakub Jelinek <jakub@redhat.com>
25580
25581 PR tree-optimization/57705
25582 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
25583 SSA_NAME step, provided that it is not defined inside the loop.
25584 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
25585 (get_initial_def_for_induction): Handle SSA_NAME IV step.
25586
25587 2013-06-25 Martin Jambor <mjambor@suse.cz>
25588
25589 PR middle-end/57670
25590 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
25591 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
25592 calls in the dump.
25593 (ipa_note_param_call): Initialize member_ptr flag.
25594 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
25595 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
25596 (ipa_write_indirect_edge_info): Stream member_ptr flag.
25597 (ipa_read_indirect_edge_info): Likewise.
25598
25599 2013-06-25 Richard Biener <rguenther@suse.de>
25600
25601 PR middle-end/56977
25602 * passes.c (init_optimization_passes): Move pass_fold_builtins
25603 and pass_dce earlier with -Og.
25604
25605 2013-06-25 Eric Botcazou <ebotcazou@adacore.com>
25606
25607 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
25608 <BIT_FIELD_REF>: Remove trailing TAB.
25609 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
25610 remove blank line.
25611
25612 2013-06-24 Martin Jambor <mjambor@suse.cz>
25613
25614 PR tree-optimization/57358
25615 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
25616 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
25617 (ipa_analyze_params_uses): Generate pessimistic info when true.
25618
25619 2013-06-24 Martin Jambor <mjambor@suse.cz>
25620
25621 PR tree-optimization/57539
25622 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
25623 global.inlined_to of the new node to it. All callers changed.
25624 * ipa-inline-transform.c (clone_inlined_nodes): New variable
25625 inlining_into, pass it to cgraph_clone_node.
25626 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
25627 ipa_free_edge_args_substructures.
25628 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
25629 rdesc linked list. Do not assert rdesc edges have inlined caller.
25630 Assert we have found an rdesc in the rdesc list.
25631
25632 2013-06-24 Richard Biener <rguenther@suse.de>
25633
25634 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
25635 (pointer_set_lookup): Declare.
25636 (class pointer_map): New template class implementing a
25637 generic pointer to T map.
25638 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
25639 pointer_map<T>::contains, pointer_map<T>::insert,
25640 pointer_map<T>::traverse): New functions.
25641 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
25642 (pointer_set_lookup): New function.
25643 (pointer_set_contains): Use pointer_set_lookup.
25644 (pointer_set_insert): Likewise.
25645 (insert_aux): Remove.
25646 (struct pointer_map_t): Embed a pointer_set_t.
25647 (pointer_map_create): Adjust.
25648 (pointer_map_destroy): Likewise.
25649 (pointer_map_contains): Likewise.
25650 (pointer_map_insert): Likewise.
25651 (pointer_map_traverse): Likewise.
25652 * tree-streamer.h (struct streamer_tree_cache_d): Use a
25653 pointer_map<unsigned> instead of a pointer_map_t.
25654 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
25655 (streamer_tree_cache_lookup): Likewise.
25656 (streamer_tree_cache_create): Likewise.
25657 (streamer_tree_cache_delete): Likewise.
25658 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
25659 pointer_map<unsigned> instead of a pointer_map_t.
25660 (lto_init_tree_ref_encoder): Adjust.
25661 (lto_destroy_tree_ref_encoder): Likewise.
25662 * lto-section-out.c (lto_output_decl_index): Likewise.
25663 (lto_record_function_out_decl_state): Likewise.
25664 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
25665
25666 2013-06-24 Richard Biener <rguenther@suse.de>
25667
25668 PR tree-optimization/57488
25669 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
25670
25671 2013-06-24 Alan Modra <amodra@gmail.com>
25672
25673 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
25674 (gen_easy_altivec_constant): Likewise.
25675 * config/rs6000/predicates.md (easy_vector_constant_add_self,
25676 easy_vector_constant_msb): Likewise.
25677
25678 2013-06-23 Jakub Jelinek <jakub@redhat.com>
25679
25680 PR target/57688
25681 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
25682 add missing return true.
25683
25684 2013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
25685
25686 PR target/52483
25687 * config/sh/predicates.md (general_extend_operand): Invoke
25688 general_movsrc_operand for memory operands.
25689 (general_movsrc_operand): Allow reg+reg addressing, do not use
25690 general_operand for memory operands.
25691
25692 2013-06-23 Sriraman Tallam <tmsriram@google.com>
25693
25694 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
25695 when current target options does not apply.
25696 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
25697 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
25698 * config/i386/bmiintrin.h: Pass appropriate target
25699 attributes to header.
25700 * config/i386/mmintrin.h: Ditto.
25701 * config/i386/nmmintrin.h: Ditto.
25702 * config/i386/avx2intrin.h: Ditto.
25703 * config/i386/fxsrintrin.h: Ditto.
25704 * config/i386/tbmintrin.h: Ditto.
25705 * config/i386/xsaveintrin.h: Ditto.
25706 * config/i386/f16cintrin.h: Ditto.
25707 * config/i386/xtestintrin.h: Ditto.
25708 * config/i386/xsaveoptintrin.h: Ditto.
25709 * config/i386/bmi2intrin.h: Ditto.
25710 * config/i386/lzcntintrin.h: Ditto.
25711 * config/i386/smmintrin.h: Ditto.
25712 * config/i386/wmmintrin.h: Ditto.
25713 * config/i386/x86intrin.h: Remove all header include guards.
25714 * config/i386/prfchwintrin.h: Ditto.
25715 * config/i386/pmmintrin.h: Ditto.
25716 * config/i386/tmmintrin.h: Ditto.
25717 * config/i386/xmmintrin.h: Ditto.
25718 * config/i386/popcntintrin.h: Ditto.
25719 * config/i386/rdseedintrin.h: Ditto.
25720 * config/i386/ammintrin.h: Ditto.
25721 * config/i386/emmintrin.h: Ditto.
25722 * config/i386/immintrin.h: Remove all header include guards.
25723 * config/i386/fma4intrin.h: Ditto.
25724 * config/i386/lwpintrin.h: Ditto.
25725 * config/i386/xopintrin.h: Ditto.
25726 * config/i386/ia32intrin.h: Ditto.
25727 * config/i386/avxintrin.h: Ditto.
25728 * config/i386/rtmintrin.h: Ditto.
25729 * config/i386/fmaintrin.h: Ditto.
25730 * config/i386/mm3dnow.h: Ditto.
25731
25732 2013-06-22 Sriraman Tallam <tmsriram@google.com>
25733
25734 * common/config/i386/i386-common.c: Handle LZCNT.
25735
25736 2013-06-22 Andi Kleen <ak@linux.intel.com>
25737
25738 * doc/extend.texi: Use __atomic_store_n instead of
25739 __atomic_store in HLE example.
25740
25741 2013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
25742
25743 * config/sh/sh.c: Remove <cstdlib> workaround.
25744
25745 2013-06-21 Andi Kleen <ak@linux.intel.com>
25746
25747 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
25748
25749 2013-06-21 Andi Kleen <ak@linux.intel.com>
25750
25751 * doc/extend.texi: Document that __atomic_clear and
25752 __atomic_test_and_set should only be used with bool.
25753
25754 2013-06-20 Jan Hubicka <jh@suse.cz>
25755
25756 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
25757 types_same_for_odr.
25758 * tree.c (decls_same_for_odr): New function.
25759 (same_for_edr): New function.
25760 (types_same_for_odr): New function.
25761 (get_binfo_at_offset): Use it.
25762 * tree.h (types_same_for_odr): Declare.
25763
25764 2013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
25765 Jason Merrill <jason@redhat.com>
25766
25767 * system.h: Include <cstdlib> as well as <stdlib.h>.
25768
25769 2013-06-20 Uros Bizjak <ubizjak@gmail.com>
25770
25771 PR target/57655
25772 * config/i386/i386.c (construct_container): Report error if
25773 long double is used with disabled x87 float returns.
25774
25775 2013-06-20 Jan Hubicka <jh@suse.cz>
25776
25777 * lto-cgraph.c (input_symtab): Do not set cgraph state.
25778
25779 2013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
25780
25781 PR rtl-optimization/57425
25782 PR rtl-optimization/57569
25783 * alias.c (write_dependence_p): Remove parameters mem_mode and
25784 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
25785 Changed all callers.
25786 (canon_anti_dependence): Get comments and semantics in sync.
25787 Add parameter mem_canonicalized. Changed all callers.
25788 * rtl.h (canon_anti_dependence): Update prototype.
25789
25790 2013-06-20 Richard Biener <rguenther@suse.de>
25791
25792 * data-streamer-in.c (streamer_read_uhwi): Optimize single
25793 byte case, inline streamer_read_uchar and defer section
25794 overrun check.
25795
25796 2013-06-20 Richard Biener <rguenther@suse.de>
25797
25798 PR tree-optimization/57584
25799 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
25800 SSA names into the expanded expression that take part in
25801 abnormal coalescing.
25802
25803 2013-06-19 Sharad Singhai <singhai@google.com>
25804
25805 * gcov.c (print_usage): Handle new option.
25806 (process_args): Ditto.
25807 (get_gcov_intermediate_filename): New function.
25808 (output_intermediate_file): New function.
25809 (output_gcov_file): New function
25810 (generate_results): Handle new option.
25811 (release_function): Relase demangled name.
25812 (read_graph_file): Handle demangled name.
25813 (output_lines): Ditto.
25814 * doc/gcov.texi: Document gcov intermediate format.
25815
25816 2013-06-19 Vladimir Makarov <vmakarov@redhat.com>
25817
25818 PR bootstrap/57604
25819 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
25820 (lra_emit_add): Use the functions. Add comment about Y as an
25821 address segment.
25822
25823 2013-06-19 David Edelsohn <dje.gcc@gmail.com>
25824
25825 PR driver/57652
25826 * collect2.c (collect_atexit): New.
25827 (collect_exit): Delete.
25828 (main): Register collect_atexit with atexit.
25829 (collect_wait): Change collect_exit to exit.
25830 (do_wait): Same.
25831 * collect2.h (collect_exit): Delete.
25832 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
25833
25834 2013-06-19 Wei Mi <wmi@google.com>
25835
25836 PR rtl-optimization/57518
25837 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
25838 if regno is used in paradoxical subreg.
25839 (update_equiv_regs): Check pdx_subregs[regno] before
25840 set a reg to be equivalent with a mem.
25841
25842 2013-06-19 Matthias Klose <doko@ubuntu.com>
25843
25844 PR driver/57651
25845 * file-find.h (find_a_file): Add a mode parameter.
25846 * file-find.c (find_a_file): Likewise.
25847 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
25848 with X_OK for the executables.
25849 * collect2.c (main): Call find_a_file with X_OK.
25850
25851 2013-06-19 Steve Ellcey <sellcey@mips.com>
25852
25853 PR target/56942
25854 * config/mips/mips.md (casesi_internal_mips16_<mode>):
25855 Use NEXT_INSN instead of next_real_insn.
25856
25857 2013-06-19 Jan Hubicka <jh@suse.cz>
25858
25859 * cgraph.h (const_value_known_p): Replace by ...
25860 (ctor_for_folding): .. this one.
25861 * cgraphunit.c (process_function_and_variable_attributes): Use it.
25862 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
25863 * expr.c (expand_expr_real_1): Likewise.
25864 (string_constant): Likewise.
25865 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
25866 * ipa.c (process_references): Likewise.
25867 (symtab_remove_unreachable_nodes): Likewise.
25868 * ipa-inline-analysis.c (param_change_prob): Likewise.
25869 * gimple-fold.c (canonicalize_constructor_val): Likewise.
25870 (get_base_constructor): Likwise.
25871 * varpool.c (varpool_remove_node): Likewise.
25872 (varpool_remove_initializer): LIkewise.
25873 (dump_varpool_node): LIkwise.
25874 (const_value_known_p): Rewrite to ...
25875 (ctor_for_folding): ... this one.
25876
25877 2013-06-19 Jakub Jelinek <jakub@redhat.com>
25878
25879 PR driver/57651
25880 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
25881 PERSONALITY in $PATH derived prefixes.
25882
25883 2013-06-19 Jeff Law <law@redhat.com>
25884
25885 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
25886 in comment.
25887
25888 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
25889 (simplify_bitwise_binary): Use it to simpify certain binary ops on
25890 booleans.
25891
25892 2013-06-19 Sofiane Naci <sofiane.naci@arm.com>
25893
25894 * config/arm/vfp.md: Move VFP instruction classification documentation
25895 to ...
25896 * config/arm/arm.md: ... here. Update instruction classification
25897 documentation.
25898
25899 2013-06-19 Richard Earnshaw <rearnsha@arm.com>
25900
25901 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
25902 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
25903 pattern. Use more efficient sequences on ARMv5 and Thumb2.
25904
25905 2013-06-19 Steven Bosscher <steven@gcc.gnu.org>
25906
25907 PR target/57609
25908 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
25909 with NEXT_INSN. Use tablejump_p to check for jump table data
25910 insns.
25911
25912 2013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
25913
25914 PR c++/56544
25915 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
25916 that now in C++ the value is correct per the C++ standards.
25917
25918 2013-06-19 Richard Biener <rguenther@suse.de>
25919
25920 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
25921 for global context.
25922
25923 2013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25924
25925 Revert:
25926 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25927
25928 PR target/57609
25929 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
25930 with next_active_insn.
25931
25932 2013-06-18 Sriraman Tallam <tmsriram@google.com>
25933
25934 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
25935 functions are inlined during failures to flag an error.
25936 * tree-inline.c (expand_call_inline): Allow the error to be flagged
25937 in early inline pass.
25938
25939 2013-06-18 H.J. Lu <hongjiu.lu@intel.com>
25940
25941 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
25942 in comments.
25943
25944 2013-06-18 Julian Brown <julian@codesourcery.com>
25945
25946 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
25947 Permit virtual register pre-reload if !strict.
25948 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
25949 change.
25950 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
25951 prototype.
25952 * config/arm/neon.md (movmisalign<mode>): Use
25953 neon_perm_struct_or_reg_operand instead of
25954 neon_struct_or_register_operand.
25955 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
25956 neon_permissive_struct_operand instead of neon_struct_operand.
25957 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
25958 neon_vector_mem_operand.
25959 * config/arm/predicates.md (neon_struct_operand): Adjust call to
25960 neon_vector_mem_operand.
25961 (neon_permissive_struct_operand): New.
25962 (neon_struct_or_register_operand): Rename to...
25963 (neon_perm_struct_or_reg_operand): This. Adjust call to
25964 neon_vector_mem_operand.
25965
25966 2013-06-18 Richard Biener <rguenther@suse.de>
25967
25968 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
25969 * lto-streamer.h: Include pointer-set.h.
25970 (struct lto_decl_slot): Remove.
25971 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
25972 Remove next_index entry.
25973 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
25974 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
25975 (lto_init_tree_ref_encoder): Adjust.
25976 (lto_destroy_tree_ref_encoder): Likewise.
25977 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
25978 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
25979 (lto_output_decl_index): Adjust.
25980 (lto_new_out_decl_state): Likewise.
25981 (lto_record_function_out_decl_state): Likewise.
25982 * lto-streamer-out.c (copy_function): Likewise.
25983
25984 2013-06-18 Richard Biener <rguenther@suse.de>
25985
25986 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
25987 * cgraphunit.c: Include cfgloop.h.
25988 (init_lowered_empty_function): Initialize the loop tree.
25989 (assemble_thunk): Insert new BBs into loops.
25990
25991 2013-06-18 Richard Biener <rguenther@suse.de>
25992
25993 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
25994 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
25995 the map from cache entry to cache index optional.
25996 (streamer_tree_cache_replace_tree): Adjust accordingly.
25997 (streamer_tree_cache_append): Likewise.
25998 (streamer_tree_cache_delete): Likewise.
25999 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
26000 streamer cache map from cache entry to cache index.
26001 * lto-streamer-out.c (create_output_block): Adjust.
26002
26003 2013-06-18 Sofiane Naci <sofiane.naci@arm.com>
26004
26005 * config/arm/arm.md (attribute "insn"): Move multiplication and
26006 division attributes to...
26007 (attribute "type"): ... here. Remove mult.
26008 (attribute "mul32"): New attribute.
26009 (attribute "mul64"): Add umaal.
26010 (*arm_mulsi3): Update attributes.
26011 (*arm_mulsi3_v6): Likewise.
26012 (*thumb_mulsi3): Likewise.
26013 (*thumb_mulsi3_v6): Likewise.
26014 (*mulsi3_compare0): Likewise.
26015 (*mulsi3_compare0_v6): Likewise.
26016 (*mulsi_compare0_scratch): Likewise.
26017 (*mulsi_compare0_scratch_v6): Likewise.
26018 (*mulsi3addsi): Likewise.
26019 (*mulsi3addsi_v6): Likewise.
26020 (*mulsi3addsi_compare0): Likewise.
26021 (*mulsi3addsi_compare0_v6): Likewise.
26022 (*mulsi3addsi_compare0_scratch): Likewise.
26023 (*mulsi3addsi_compare0_scratch_v6): Likewise.
26024 (*mulsi3subsi): Likewise.
26025 (*mulsidi3adddi): Likewise.
26026 (*mulsi3addsi_v6): Likewise.
26027 (*mulsidi3adddi_v6): Likewise.
26028 (*mulsidi3_nov6): Likewise.
26029 (*mulsidi3_v6): Likewise.
26030 (*umulsidi3_nov6): Likewise.
26031 (*umulsidi3_v6): Likewise.
26032 (*umulsidi3adddi): Likewise.
26033 (*umulsidi3adddi_v6): Likewise.
26034 (*smulsi3_highpart_nov6): Likewise.
26035 (*smulsi3_highpart_v6): Likewise.
26036 (*umulsi3_highpart_nov6): Likewise.
26037 (*umulsi3_highpart_v6): Likewise.
26038 (mulhisi3): Likewise.
26039 (*mulhisi3tb): Likewise.
26040 (*mulhisi3bt): Likewise.
26041 (*mulhisi3tt): Likewise.
26042 (maddhisi4): Likewise.
26043 (*maddhisi4tb): Likewise.
26044 (*maddhisi4tt): Likewise.
26045 (maddhidi4): Likewise.
26046 (*maddhidi4tb): Likewise.
26047 (*maddhidi4tt): Likewise.
26048 (divsi3): Likewise.
26049 (udivsi3): Likewise.
26050 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
26051 (thumb2_mulsi_short_compare0): Likewise.
26052 (thumb2_mulsi_short_compare0_scratch): Likewise.
26053 * config/arm/arm1020e.md (1020mult1): Update attribute change.
26054 (1020mult2): Likewise.
26055 (1020mult3): Likewise.
26056 (1020mult4): Likewise.
26057 (1020mult5): Likewise.
26058 (1020mult6): Likewise.
26059 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
26060 change.
26061 (cortex_a15_mult64): Likewise.
26062 (cortex_a15_sdiv): Likewise.
26063 (cortex_a15_udiv): Likewise.
26064 * config/arm/arm1026ejs.md (mult1): Update attribute change.
26065 (mult2): Likewise.
26066 (mult3): Likewise.
26067 (mult4): Likewise.
26068 (mult5): Likewise.
26069 (mult6): Likewise.
26070 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
26071 (pj4_ir_div): Likewise.
26072 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
26073 (11_mult2): Likewise.
26074 (11_mult3): Likewise.
26075 (11_mult4): Likewise.
26076 (11_mult5): Likewise.
26077 (11_mult6): Likewise.
26078 (11_mult7): Likewise.
26079 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
26080 (cortex_a8_mla): Likewise.
26081 (cortex_a8_mull): Likewise.
26082 (cortex_a8_smulwy): Likewise.
26083 (cortex_a8_smlald): Likewise.
26084 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
26085 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
26086 (cortex_r4_mul_3): Likewise.
26087 (cortex_r4_mla_4): Likewise.
26088 (cortex_r4_mla_3): Likewise.
26089 (cortex_r4_smlald): Likewise.
26090 (cortex_r4_mull): Likewise.
26091 (cortex_r4_sdiv): Likewise.
26092 (cortex_r4_udiv): Likewise.
26093 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
26094 (cortex_a7_idiv): Likewise.
26095 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
26096 (9_mult2): Likewise.
26097 (9_mult3): Likewise.
26098 (9_mult4): Likewise.
26099 (9_mult5): Likewise.
26100 (9_mult6): Likewise.
26101 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
26102 (cortex_a53_sdiv): Likewise.
26103 (cortex_a53_udiv): Likewise.
26104 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
26105 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
26106 (mp626_mult2): Likewise.
26107 (mp626_mult3): Likewise.
26108 (mp626_mult4): Likewise.
26109 * config/arm/fa526.md (526_mult1): Update attribute change.
26110 (526_mult2): Likewise.
26111 * config/arm/arm-generic.md (mult): Update attribute change.
26112 (mult_ldsched_strongarm): Likewise.
26113 (mult_ldsched): Likewise.
26114 (multi_cycle): Likewise.
26115 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
26116 * config/arm/fa606te.md (606te_mult1): Update attribute change.
26117 (606te_mult2): Likewise.
26118 (606te_mult3): Likewise.
26119 (606te_mult4): Likewise.
26120 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
26121 (cortex_a9_mac16): Likewise.
26122 (cortex_a9_multiply): Likewise.
26123 (cortex_a9_mac): Likewise.
26124 (cortex_a9_multiply_long): Likewise.
26125 * config/arm/fa626te.md (626te_mult1): Update attribute change.
26126 (626te_mult2): Likewise.
26127 (626te_mult3): Likewise.
26128 (626te_mult4): Likewise.
26129
26130 2013-06-18 Richard Biener <rguenther@suse.de>
26131
26132 PR lto/57334
26133 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
26134
26135 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26136
26137 PR target/57609
26138 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
26139 with next_active_insn.
26140
26141 2013-06-18 Alan Modra <amodra@gmail.com>
26142
26143 * config/rs6000/rs6000.h (enum data_align): New.
26144 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
26145 (DATA_ABI_ALIGNMENT): Define.
26146 (CONSTANT_ALIGNMENT): Correct comment.
26147 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
26148 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
26149
26150 2013-06-17 David Malcolm <dmalcolm@redhat.com>
26151
26152 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
26153 ATTRIBUTE_UNUSED marking.
26154
26155 2013-06-17 Sofiane Naci <sofiane.naci@arm.com>
26156
26157 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
26158 alternative and update.
26159 (aarch64_dup_lanedi): Delete.
26160 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
26161 * config/aarch64/aarch64-simd-builtins.def: Update.
26162
26163 2013-06-17 Richard Biener <rguenther@suse.de>
26164
26165 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
26166 (lto_input_scc): Declare.
26167 (lto_input_tree_1): Likewise.
26168 (struct lto_stats_d): Add num_tree_bodies_output and
26169 num_pickle_refs_output.
26170 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
26171 (lto_read_tree_1): Split out from ...
26172 (lto_read_tree): ... this.
26173 (lto_input_scc): New function.
26174 (lto_input_tree_1): Split out from ...
26175 (lto_input_tree): ... this. Handle LTO_tree_scc.
26176 (lto_data_in_create): Create the streamer cache without hashes.
26177 * lto-streamer-out.c (create_output_block): Create the streamer
26178 cache with hashes when not doing WPA.
26179 (lto_write_tree_1): Split out from ...
26180 (lto_write_tree): ... this.
26181 (get_symbol_initial_value): New function.
26182 (lto_output_tree_1): Split out from ...
26183 (lto_output_tree): ... this. Write trees as series of SCCs
26184 using a DFS walk via DFS_write_tree.
26185 (struct sccs, struct scc_entry): New types.
26186 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
26187 (DFS_write_tree_body): New function.
26188 (DFS_write_tree): Likewise.
26189 (hash_tree): Likewise.
26190 (scc_entry_compare): Likewise.
26191 (hash_scc): Likewise.
26192 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
26193 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
26194 TREE_CHAIN as regular reference.
26195 (streamer_read_integer_cst): Remove.
26196 (streamer_get_pickled_tree): Adjust.
26197 * tree-streamer-out.c (streamer_write_chain): Disable streaming
26198 of DECL_EXTERNALs in BLOCK_VARS for now.
26199 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
26200 reference.
26201 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
26202 Add hash value argument and record that if hashes are recorded
26203 in the cache.
26204 (streamer_tree_cache_insert_1): Adjust.
26205 (streamer_tree_cache_insert): Likewise.
26206 (streamer_tree_cache_insert_at): Rename to ...
26207 (streamer_tree_cache_replace_tree): ... this and adjust.
26208 (streamer_tree_cache_append): Adjust.
26209 (record_common_node): Likewise.
26210 (streamer_tree_cache_create): Add argument whether to
26211 record hash values together with trees.
26212 (streamer_tree_cache_delete): Adjust.
26213 * tree-streamer.h (struct streamer_tree_cache_d): Add
26214 vector of hashes.
26215 (streamer_read_integer_cst): Remove.
26216 (streamer_tree_cache_insert): Adjust.
26217 (streamer_tree_cache_append): Likewise.
26218 (streamer_tree_cache_insert_at): Rename to ...
26219 (streamer_tree_cache_replace_tree): ... this and adjust.
26220 (streamer_tree_cache_create): Add argument whether to record hashes.
26221 (streamer_tree_cache_get): Rename to ...
26222 (streamer_tree_cache_get_tree): ... this.
26223 (streamer_tree_cache_get_hash): New function.
26224 * tree.c (cache_integer_cst): New function.
26225 * tree.h (cache_integer_cst): Declare.
26226 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
26227 * lto-symtab.c (lto_varpool_replace_node): Only release
26228 DECL_INITIAL of non-prevailing decls.
26229 * varpool.c (varpool_remove_initializer): Do not release
26230 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
26231
26232 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
26233
26234 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
26235 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
26236 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
26237 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
26238 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
26239 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
26240 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
26241 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
26242 instead of TARGET_64BIT.
26243 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
26244 Require ISA_HAS_<D>DIV.
26245
26246 2013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
26247
26248 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
26249 (mips*-*-linux*): Move default with_llsc setting to where other
26250 defaults are set.
26251 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
26252 with_arch block.
26253 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
26254 Likewise. Remove default with_tune setting. Move default float
26255 setting to its own block. Handle with_llsc in the same block as above.
26256
26257 2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
26258
26259 PR rtl-optimization/57425
26260 PR rtl-optimization/57569
26261 * alias.c (write_dependence_p): Add new parameters mem_mode,
26262 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
26263 Changed all callers.
26264 (canon_anti_dependence): New function.
26265 * cse.c (check_dependence): Use canon_anti_dependence.
26266 * cselib.c (cselib_invalidate_mem): Likewise.
26267 * rtl.h (canon_anti_dependence): Declare.
26268
26269 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
26270
26271 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
26272 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
26273 ".set mips3" for 64-bit targets.
26274
26275 2013-06-15 Dehao Chen <dehao@google.com>
26276
26277 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
26278 * gimple-low.c (gimple_check_call_matching_types): Likewise.
26279 (gimple_check_call_args): Likewise.
26280 * value-prof.c (check_ic_target): Likewise.
26281 * ipa-inline.c (early_inliner): Likewise.
26282 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
26283 * cgraph.c (cgraph_create_edge_1): Likewise.
26284 (cgraph_make_edge_direct): Likewise.
26285
26286 2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
26287
26288 PR target/57615
26289 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
26290 rs6000_output_move_128bit to handle emitting quad memory
26291 operations. Set attribute length to 8 bytes.
26292
26293 2013-06-14 Vidya Praveen <vidyapraveen@arm.com>
26294
26295 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
26296 New pattern.
26297 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
26298 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
26299 (aarch64_<su>mlsl<mode>): Likewise.
26300
26301 2013-06-14 Mike Stump <mikestump@comcast.net>
26302
26303 * Makefile.in (TARGET_H): Add insn-codes.h.
26304
26305 2013-06-14 Alan Modra <amodra@gmail.com>
26306
26307 PR middle-end/57134
26308 PR middle-end/57586
26309 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
26310 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
26311 bitfield expansion when EXPAND_MEMORY.
26312 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
26313
26314 2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
26315
26316 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
26317 test for clearing quad memory on 32-bit later.
26318
26319 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
26320
26321 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
26322 (fold_negate_expr): Likewise.
26323 (fold_real_zero_addition_p): Handle vectors.
26324 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
26325
26326 2013-06-14 Alan Modra <amodra@gmail.com>
26327
26328 * varasm.c (force_const_mem): Revert 2013-06-07 change.
26329
26330 2013-06-13 Jan Hubicka <jh@suse.cz>
26331
26332 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
26333 Local comdats are not externally visible.
26334 * symtab.c (dump_symtab_base): Dump externally visible.
26335 (verify_symtab_base): Verify back links in the symtab hash.
26336
26337 2013-06-13 Bin Cheng <bin.cheng@arm.com>
26338
26339 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
26340 CONVERT_EXPR as equal nodes.
26341
26342 2013-06-13 Bin Cheng <bin.cheng@arm.com>
26343
26344 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
26345
26346 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
26347
26348 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
26349 Generalize to complex and vector.
26350 * tree.c (build_all_ones_cst): New function.
26351 * tree.h (build_all_ones_cst): Declare it.
26352
26353 2013-06-13 Alan Modra <amodra@gmail.com>
26354
26355 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
26356 * config/rs6000/rs6000.md (signbittf2): New insn.
26357 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
26358 (abstf2_internal, cmptf_internal2): Likewise.
26359 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
26360
26361 2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
26362 Pat Haugen <pthaugen@us.ibm.com>
26363 Peter Bergner <bergner@vnet.ibm.com>
26364
26365 * config/rs6000/rs6000.c (emit_load_locked): Add support for
26366 power8 byte, half-word, and quad-word atomic instructions.
26367 (emit_store_conditional): Likewise.
26368 (rs6000_expand_atomic_compare_and_swap): Likewise.
26369 (rs6000_expand_atomic_op): Likewise.
26370
26371 * config/rs6000/sync.md (larx): Add new modes for power8.
26372 (stcx): Likewise.
26373 (AINT): New mode iterator to include TImode as well as normal
26374 integer modes on power8.
26375 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
26376 that VSX registers are not considered. Use AINT mode iterator
26377 instead of INT1 to allow inclusion of quad word atomic operations
26378 on power8.
26379 (load_locked<mode>): Likewise.
26380 (store_conditional<mode>): Likewise.
26381 (atomic_compare_and_swap<mode>): Likewise.
26382 (atomic_exchange<mode>): Likewise.
26383 (atomic_nand<mode>): Likewise.
26384 (atomic_fetch_<fetchop_name><mode>): Likewise.
26385 (atomic_nand_fetch<mode>): Likewise.
26386 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
26387 each type.
26388 (ATOMIC): On power8, add QImode, HImode modes.
26389 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
26390 modes that promote to SImode.
26391 (load_lockedti): Convert TImode arguments to PTImode, so that we
26392 get a guaranteed even/odd register pair.
26393 (load_lockedpti): Likewise.
26394 (store_conditionalti): Likewise.
26395 (store_conditionalpti): Likewise.
26396
26397 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
26398 atomic load/store instructions.
26399 (HSI): Likewise.
26400
26401 2013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
26402
26403 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
26404 loads.
26405 (insn_count): New attribute, with most cases extracted from...
26406 (length): ...here. Redefine most cases in terms of insn_count.
26407 (single_insn): Delete.
26408 (can_delay): Use insn_count to check for single instructions.
26409 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
26410 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
26411 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
26412 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
26413 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
26414 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
26415 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
26416 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
26417 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
26418 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
26419 rather than "length".
26420 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
26421 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
26422 Use "insn_count" rather than "length".
26423 * config/mips/mips-dsp.md
26424 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
26425 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
26426 length attributes.
26427
26428 2013-06-12 Marc Glisse <marc.glisse@inria.fr>
26429
26430 PR tree-optimization/57361
26431 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
26432
26433 2013-06-12 Sofiane Naci <sofiane.naci@arm.com>
26434
26435 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
26436 to split.
26437 (aarch64_simd_combine<mode>): New instruction expansion.
26438 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
26439 function prototype.
26440 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
26441 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
26442
26443 2013-06-12 Jan Hubicka <jh@suse.cz>
26444
26445 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
26446 decl has when in streaming stage.
26447 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
26448 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
26449
26450 2013-06-12 Roland Stigge <stigge@antcom.de>
26451
26452 PR target/57578
26453 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
26454
26455 2013-06-12 Jakub Jelinek <jakub@redhat.com>
26456
26457 PR tree-optimization/57537
26458 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
26459 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
26460
26461 2013-06-12 Richard Biener <rguenther@suse.de>
26462
26463 * data-streamer.h (streamer_write_char_stream): CSE
26464 obs->current_pointer.
26465 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
26466 streamer_write_char_stream manually and optimize the resulting loop.
26467 (streamer_write_hwi_stream): Likewise.
26468
26469 2013-06-12 Jan Hubicka <jh@suse.cz>
26470
26471 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
26472 * cgraph.h (varpool_create_empty_node): Declare.
26473 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
26474 duplicated nodes.
26475 * symtab.c (symtab_unregister_node): Be lax about missin entries
26476 in node hash.
26477 (symtab_get_node): Update comment.
26478 * varpool.c (varpool_create_empty_node): Break out from ...
26479 (varpool_node_for_decl): ... here.
26480 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
26481
26482 2013-06-12 Eric Botcazou <ebotcazou@adacore.com>
26483
26484 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
26485 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
26486 part. Use straight-line flow at the end.
26487 <COMPONENT_REF>: Remove superfluous else.
26488 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
26489
26490 2013-06-12 Jakub Jelinek <jakub@redhat.com>
26491
26492 PR target/56564
26493 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
26494 target hook even for !TREE_PUBLIC decls. If no resolution info
26495 is available, return false for common and external decls.
26496
26497 2013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
26498
26499 * config/rl78/constraints.md (U): New constraint.
26500 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
26501 valloc attribute.
26502
26503 2013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26504
26505 PR target/57589
26506 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
26507 to allow returning address to AT_PLATFORM name.
26508
26509 2013-06-11 Jan Hubicka <jh@suse.cz>
26510
26511 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
26512 * cgraph.h (symtab_node_base): Add weakref flag.
26513 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
26514 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
26515 (output_weakrefs): Use weakref flag.
26516 * fold-const.c (simple_operand_p): Handle WEAK.
26517 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
26518 * ipa.c (varpool_externally_visible_p): Drop weakref.
26519 (function_and_variable_visibility): Update comment; fix weakref
26520 sanity checks; do not clear DECL_WEAK on them.
26521 * lto-cgraph.c (lto_output_node): update.
26522 (lto_output_varpool_node): Update.
26523 (input_overwrite_node): Update.
26524 (input_node): Update.
26525 (input_varpool_node): Update.
26526 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
26527 (lto_symtab_merge_symbols): Add sanity check.
26528 (lto_symtab_prevailing_decl): Do not special case weakrefs.
26529 * passes.c (rest_of_decl_compilation): Set static flag, too.
26530 * symtab.c (dump_symtab_base): Dump weakref.
26531 (verify_symtab_base): Sanity check weakrefs.
26532 (symtab_make_decl_local): Remove duplicated code.
26533 (symtab_alias_ultimate_target): Simplify.
26534 * varpool.c (varpool_create_variable_alias): Set weakref flag.
26535
26536 2013-06-11 Tom de Vries <tom@codesourcery.com>
26537
26538 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
26539 sequence_vect == NULL.
26540
26541 2013-06-11 DJ Delorie <dj@redhat.com>
26542
26543 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
26544 (rl78_unwind_word_mode): New.
26545
26546 2013-06-11 David Malcolm <dmalcolm@redhat.com>
26547
26548 * final.c (debug_prefix_maps): Make static.
26549
26550 2013-06-11 David Malcolm <dmalcolm@redhat.com>
26551
26552 * function.c (initial_trampoline): Remove stray copy.
26553
26554 2013-06-11 Sofiane Naci <sofiane.naci@arm.com>
26555
26556 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
26557
26558 2013-06-11 Martin Jambor <mjambor@suse.cz>
26559
26560 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
26561 within bounds at the beginning of the function.
26562
26563 2013-06-11 Alan Modra <amodra@gmail.com>
26564
26565 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
26566 reporting.
26567 (get_named_section): Don't NULL !DECL_P decl.
26568
26569 2013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
26570
26571 * doc/invoke.texi (core-avx2): Document.
26572 (slm): Likewise.
26573 (atom): Updated with MOVBE.
26574
26575 2013-06-11 Richard Biener <rguenther@suse.de>
26576
26577 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
26578
26579 2013-06-11 Anton Blanchard <anton@samba.org>
26580
26581 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
26582 correct shift value in little-endian mode.
26583
26584 2013-06-11 Jakub Jelinek <jakub@redhat.com>
26585
26586 PR target/56564
26587 * varasm.c (get_variable_align): Move #endif to the right place.
26588
26589 2013-06-10 Cary Coutant <ccoutant@google.com>
26590
26591 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
26592 for hash so that hash table traversal order is deterministic.
26593
26594 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
26595 Pat Haugen <pthaugen@us.ibm.com>
26596 Peter Bergner <bergner@vnet.ibm.com>
26597
26598 * config/rs6000/vector.md (GPR move splitter): Do not split moves
26599 of vectors in GPRS if they are direct moves or quad word load or
26600 store moves.
26601
26602 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
26603 declaration.
26604 (direct_move_p): Likewise.
26605 (quad_load_store_p): Likewise.
26606
26607 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
26608 classes into bins based on the physical register type.
26609 (reg_class_to_reg_type): Likewise.
26610 (IS_STD_REG_TYPE): Likewise.
26611 (IS_FP_VECT_REG_TYPE): Likewise.
26612 (reload_fpr_gpr): Arrays to determine what insn to use if we can
26613 use direct move instructions.
26614 (reload_gpr_vsx): Likewise.
26615 (reload_vsx_gpr): Likewise.
26616 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
26617 information that is a simplification of register classes. Also
26618 precalculate direct move reload helpers.
26619 (direct_move_p): New function to return true if the operation can
26620 be done as a direct move instruciton.
26621 (quad_load_store_p): New function to return true if the operation
26622 is a quad memory operation.
26623 (rs6000_legitimize_address): If quad memory, only allow register
26624 indirect for TImode addresses.
26625 (rs6000_legitimate_address_p): Likewise.
26626 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
26627 (rs6000_reload_register_type): Likewise.
26628 (register_to_reg_type): Return register type.
26629 (rs6000_secondary_reload_simple_move): New helper function for
26630 secondary reload and secondary memory needed to identify anything
26631 that is a simple move, and does not need reloading.
26632 (rs6000_secondary_reload_direct_move): New helper function for
26633 secondary reload to identify cases that can be done with several
26634 instructions via the direct move instructions.
26635 (rs6000_secondary_reload_move): New helper function for secondary
26636 reload to identify moves between register types that can be done.
26637 (rs6000_secondary_reload): Add support for quad memory operations
26638 and for direct move.
26639 (rs6000_secondary_memory_needed): Likewise.
26640 (rs6000_debug_secondary_memory_needed): Change argument names.
26641 (rs6000_output_move_128bit): New function to return the move to
26642 use for 128-bit moves, including knowing about the various
26643 limitations of quad memory operations.
26644
26645 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
26646 memory operations. call rs6000_output_move_128bit for the actual
26647 instruciton(s) to generate.
26648 (vsx_movti_64bit): Likewise.
26649
26650 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
26651 (UNSPEC_P8V_MTVSRWZ): Likewise.
26652 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
26653 (UNSPEC_P8V_MTVSRD): Likewise.
26654 (UNSPEC_P8V_XXPERMDI): Likewise.
26655 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
26656 (UNSPEC_FUSION_GPR): Likewise.
26657 (FMOVE128_GPR): New iterator for direct move.
26658 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
26659 (f32_sv): Likewise.
26660 (f32_dm): Likewise.
26661 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
26662 loads and direct move instructions.
26663 (zero_extendsidi2_lfiwzx): Likewise.
26664 (extendsidi2_lfiwax): Likewise.
26665 (extendsidi2_nocell): Likewise.
26666 (floatsi<mode>2_lfiwax): Likewise.
26667 (lfiwax): Likewise.
26668 (floatunssi<mode>2_lfiwzx): Likewise.
26669 (lfiwzx): Likewise.
26670 (fix_trunc<mode>_stfiwx): Likewise.
26671 (fixuns_trunc<mode>_stfiwx): Likewise.
26672 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
26673 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
26674 (parity<mode>2_cmpb): Set length/type attr.
26675 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
26676 for 'mr.' to fast_compare.
26677 (bpermd_<mode>): Change type attr to popcnt.
26678 (p8_fmrgow_<mode>): New insns for power8 direct move support.
26679 (p8_mtvsrwz_1): Likewise.
26680 (p8_mtvsrwz_2): Likewise.
26681 (reload_fpr_from_gpr<mode>): Likewise.
26682 (p8_mtvsrd_1): Likewise.
26683 (p8_mtvsrd_2): Likewise.
26684 (p8_xxpermdi_<mode>): Likewise.
26685 (reload_vsx_from_gpr<mode>): Likewise.
26686 (reload_vsx_from_gprsf): Likewise.
26687 (p8_mfvsrd_3_<mode>): LIkewise.
26688 (reload_gpr_from_vsx<mode>): Likewise.
26689 (reload_gpr_from_vsxsf): Likewise.
26690 (p8_mfvsrd_4_disf): Likewise.
26691 (multi-word GPR splits): Do not split direct moves or quad memory
26692 operations.
26693
26694 2013-06-10 David Malcolm <dmalcolm@redhat.com>
26695
26696 * tree-into-ssa.c (interesting_blocks): Make static.
26697
26698 2013-06-10 Jakub Jelinek <jakub@redhat.com>
26699
26700 PR target/56564
26701 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
26702 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
26703 Use DATA_ABI_ALIGNMENT for that case instead if defined.
26704 (get_variable_align): New function.
26705 (get_variable_section, emit_bss, emit_common,
26706 assemble_variable_contents, place_block_symbol): Use
26707 get_variable_align instead of DECL_ALIGN.
26708 (assemble_noswitch_variable): Add align argument, use it
26709 instead of DECL_ALIGN.
26710 (assemble_variable): Adjust caller. Use get_variable_align
26711 instead of DECL_ALIGN.
26712 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
26713 caller.
26714 (DATA_ABI_ALIGNMENT): Define.
26715 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
26716 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
26717 opt is false, only return the psABI mandated alignment increase.
26718 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
26719 (DATA_ABI_ALIGNMENT): ... this.
26720 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
26721 (DATA_ABI_ALIGNMENT): ... this.
26722 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
26723 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
26724 (DATA_ABI_ALIGNMENT): ... this.
26725 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
26726 * doc/tm.texi: Regenerated.
26727
26728 2013-06-10 Uros Bizjak <ubizjak@gmail.com>
26729
26730 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
26731 cmp_code to construct REG_EQUAL note.
26732
26733 2013-06-09 Jakub Jelinek <jakub@redhat.com>
26734
26735 PR target/57568
26736 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
26737 that operands[2] doesn't overlap with operands[0].
26738
26739 2013-06-09 David Edelsohn <dje.gcc@gmail.com>
26740 Jan Hubicka <jh@suse.cz>
26741
26742 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
26743 hack to mark symbols as used.
26744
26745 2013-06-08 Vladimir Makarov <vmakarov@redhat.com>
26746
26747 PR rtl-optimization/57559
26748 * lra-constraints.c (process_alt_operands): Don't discourage
26749 memory with known offset for offsetable memory constraint.
26750 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
26751
26752 2013-06-08 Eric Botcazou <ebotcazou@adacore.com>
26753
26754 * varasm.c (struct oc_local_state): Reorder fields.
26755 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
26756 and adjust accordingly.
26757 (output_constructor): Reorder initialization code and adjust call to
26758 output_constructor_bitfield.
26759
26760 2013-06-07 Jan Hubicka <jh@suse.cz>
26761
26762 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
26763
26764 2013-06-07 David Malcolm <dmalcolm@redhat.com>
26765
26766 * tree-object-size.c (unknown): Make const.
26767
26768 2013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26769
26770 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
26771 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
26772 for last alternative in the cpu_facility attribute.
26773
26774 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26775
26776 PR target/56315
26777 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
26778 (xordi3): Change operand 2 constraint to arm_xordi_operand.
26779 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
26780 * config/arm/constraints.md (Dg): New constraint.
26781 * config/arm/neon.md (xordi3_neon): Remove.
26782 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
26783 * config/arm/predicates.md (arm_xordi_operand): New predicate.
26784
26785 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26786
26787 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
26788 Clean up alternatives.
26789
26790 2013-06-07 Alan Modra <amodra@gmail.com>
26791
26792 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
26793 va_list_gpr_size.
26794
26795 2013-06-07 Alan Modra <amodra@gmail.com>
26796
26797 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
26798
26799 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26800
26801 * config/arm/constraints.md (Df): New constraint.
26802 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
26803 Correct length attribute for last two alternatives.
26804
26805 2013-06-07 Alan Modra <amodra@gmail.com>
26806
26807 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
26808 override user -mfp-in-toc.
26809 (offsettable_ok_by_alignment): Consider just the current access
26810 rather than the whole object, unless BLKmode. Handle
26811 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
26812 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
26813 for -mcmodel=medium.
26814 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
26815 override user -mfp-in-toc or -msum-in-toc. Default to
26816 -mno-fp-in-toc for -mcmodel=medium.
26817
26818 2013-06-06 DJ Delorie <dj@redhat.com>
26819
26820 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
26821 TARGET_VALID_POINTER_MODE.
26822
26823 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
26824 Pat Haugen <pthaugen@us.ibm.com>
26825 Peter Bergner <bergner@vnet.ibm.com>
26826
26827 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
26828 Document new power8 builtins.
26829
26830 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
26831 condition code register, to allow 128-bit logical operations to be
26832 done in the VSX or GPR registers.
26833 (nor<mode>3): Use the canonical form for nor.
26834 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
26835 vclz*, and vpopcnt* vector instructions.
26836 (nand<mode>3): Likewise.
26837 (orc<mode>3): Likewise.
26838 (clz<mode>2): LIkewise.
26839 (popcount<mode>2): Likewise.
26840
26841 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
26842 that only the GPRs are recognized.
26843
26844 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26845 support for new power8 builtins.
26846
26847 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
26848 builtin functions.
26849 (xscvdpspn): Likewise.
26850 (vclz): Likewise.
26851 (vclzb): Likewise.
26852 (vclzh): Likewise.
26853 (vclzw): Likewise.
26854 (vclzd): Likewise.
26855 (vpopcnt): Likewise.
26856 (vpopcntb): Likewise.
26857 (vpopcnth): Likewise.
26858 (vpopcntw): Likewise.
26859 (vpopcntd): Likewise.
26860 (vgbbd): Likewise.
26861 (vmrgew): Likewise.
26862 (vmrgow): Likewise.
26863 (eqv): Likewise.
26864 (eqv_v16qi3): Likewise.
26865 (eqv_v8hi3): Likewise.
26866 (eqv_v4si3): Likewise.
26867 (eqv_v2di3): Likewise.
26868 (eqv_v4sf3): Likewise.
26869 (eqv_v2df3): Likewise.
26870 (nand): Likewise.
26871 (nand_v16qi3): Likewise.
26872 (nand_v8hi3): Likewise.
26873 (nand_v4si3): Likewise.
26874 (nand_v2di3): Likewise.
26875 (nand_v4sf3): Likewise.
26876 (nand_v2df3): Likewise.
26877 (orc): Likewise.
26878 (orc_v16qi3): Likewise.
26879 (orc_v8hi3): Likewise.
26880 (orc_v4si3): Likewise.
26881 (orc_v2di3): Likewise.
26882 (orc_v4sf3): Likewise.
26883 (orc_v2df3): Likewise.
26884
26885 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
26886 allow power8 quad mode in 64-bit.
26887 (rs6000_builtin_vectorized_function): Add support to vectorize
26888 ISA 2.07 count leading zeros, population count builtins.
26889 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
26890 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
26891 (builtin_function_type): Add vgbbd builtin function which takes an
26892 unsigned argument.
26893 (altivec_expand_vec_perm_const): Add support for new power8 merge
26894 instructions.
26895
26896 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
26897 that does not include TImdoe for use with 32-bit.
26898 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
26899 instructions.
26900 (UNSPEC_VSX_CVDPSPN): Likewise.
26901 (vsx_xscvdpspn): Likewise.
26902 (vsx_xscvspdpn): Likewise.
26903 (vsx_xscvdpspn_scalar): Likewise.
26904 (vsx_xscvspdpn_directmove): Likewise.
26905 (vsx_and<mode>3): Split logical operations into 32-bit and
26906 64-bit. Add support to do logical operations on TImode as well as
26907 VSX vector types. Allow logical operations to be done in either
26908 VSX registers or in general purpose registers in 64-bit mode. Add
26909 splitters if GPRs were used. For AND, add clobber of CCmode to
26910 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
26911 encoding.
26912 (vsx_and<mode>3_32bit): Likewise.
26913 (vsx_and<mode>3_64bit): Likewise.
26914 (vsx_ior<mode>3): Likewise.
26915 (vsx_ior<mode>3_32bit): Likewise.
26916 (vsx_ior<mode>3_64bit): Likewise.
26917 (vsx_xor<mode>3): Likewise.
26918 (vsx_xor<mode>3_32bit): Likewise.
26919 (vsx_xor<mode>3_64bit): Likewise.
26920 (vsx_one_cmpl<mode>2): Likewise.
26921 (vsx_one_cmpl<mode>2_32bit): Likewise.
26922 (vsx_one_cmpl<mode>2_64bit): Likewise.
26923 (vsx_nor<mode>3): Likewise.
26924 (vsx_nor<mode>3_32bit): Likewise.
26925 (vsx_nor<mode>3_64bit): Likewise.
26926 (vsx_andc<mode>3): Likewise.
26927 (vsx_andc<mode>3_32bit): Likewise.
26928 (vsx_andc<mode>3_64bit): Likewise.
26929 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
26930 and xxlorc instructions.
26931 (vsx_eqv<mode>3_64bit): Likewise.
26932 (vsx_nand<mode>3_32bit): Likewise.
26933 (vsx_nand<mode>3_64bit): Likewise.
26934 (vsx_orc<mode>3_32bit): Likewise.
26935 (vsx_orc<mode>3_64bit): Likewise.
26936
26937 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
26938
26939 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
26940 instruction.
26941 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
26942 (p8_vmrgow): Likewise.
26943 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
26944 GPRs to be split under VSX.
26945 (p8v_clz<mode>2): Add power8 count leading zero support.
26946 (p8v_popcount<mode>2): Add power8 population count support.
26947 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
26948 support.
26949
26950 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
26951 instruction.
26952
26953 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
26954 builtin functions.
26955 (vec_nand): Likewise.
26956 (vec_vclz): Likewise.
26957 (vec_vclzb): Likewise.
26958 (vec_vclzd): Likewise.
26959 (vec_vclzh): Likewise.
26960 (vec_vclzw): Likewise.
26961 (vec_vgbbd): Likewise.
26962 (vec_vmrgew): Likewise.
26963 (vec_vmrgow): Likewise.
26964 (vec_vpopcnt): Likewise.
26965 (vec_vpopcntb): Likewise.
26966 (vec_vpopcntd): Likewise.
26967 (vec_vpopcnth): Likewise.
26968 (vec_vpopcntw): Likewise.
26969
26970 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
26971
26972 PR rtl-optimization/57468
26973 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
26974 spilled pseudos.
26975
26976 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
26977
26978 PR rtl-optimization/57459
26979 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
26980 type when setting live regs.
26981
26982 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
26983
26984 * config/s390/s390.opt (mlra): New option.
26985 * config/s390/s390.c (s390_decompose_address): Check displacement
26986 for all registers for LRA.
26987 (s390_secondary_reload): Don't used secondary reloads for LRA.
26988 (s390_lra_p): New function.
26989 (TARGET_LRA_P): Define.
26990 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
26991 of attribute cpu_facility to zarch for the last alternative.
26992 (*cmpmem_short): Ditto.
26993
26994 2013-06-06 Eric Botcazou <ebotcazou@adacore.com>
26995
26996 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
26997 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
26998 (arm_expand_prologue): Likewise.
26999
27000 2013-06-06 Teresa Johnson <tejohnson@google.com>
27001
27002 PR c++/53743
27003 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
27004 as this is now done by redirect_edge_and_branch_force.
27005 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
27006 barriers, and fix interaction with splitting.
27007 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
27008 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
27009 reflect changes made in the routine.
27010 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
27011 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
27012 since this is called in cfglayout mode, and replace partition fixup
27013 with assert as that is now done by force_nonfallthru_and_redirect.
27014 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
27015 already be marked with region crossing note.
27016 (insert_section_boundary_note): Make non-static, gate on flag
27017 has_bb_partition, rewrite to also check for multiple partitions.
27018 (rest_of_handle_reorder_blocks): Remove call to
27019 insert_section_boundary_note, now done later during free_cfg.
27020 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
27021 * bb-reorder.h (insert_section_boundary_note): Declare.
27022 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
27023 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
27024 invoke insert_section_boundary_note.
27025 (try_redirect_by_replacing_jump): Remove unnecessary
27026 check for region crossing note.
27027 (fixup_partition_crossing): New function.
27028 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
27029 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
27030 in non-cfglayout mode.
27031 (force_nonfallthru_and_redirect): Fixup partition boundaries,
27032 remove old code that tried to do this. Emit barrier correctly
27033 when we are in cfglayout mode.
27034 (last_bb_in_partition): New function.
27035 (rtl_split_edge): Correctly fixup partition boundaries.
27036 (commit_one_edge_insertion): Remove old code that tried to
27037 fixup region crossing edge since this is now handled in
27038 split_block, and set up insertion point correctly since
27039 block may now end in a jump.
27040 (verify_hot_cold_block_grouping): Guard against checking when not in
27041 linearized RTL mode.
27042 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
27043 notes.
27044 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
27045 rtl_verify_flow_info, so not called in cfglayout mode.
27046 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
27047 (fixup_reorder_chain): Remove old code that attempted to fixup region
27048 crossing note as this is now handled in force_nonfallthru_and_redirect.
27049 (duplicate_insn_chain): Don't duplicate switch section notes.
27050 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
27051 note.
27052 * basic-block.h (emit_barrier_after_bb): Declare.
27053
27054 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27055
27056 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
27057 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
27058 arm_usatsihi): Adjust alternatives for arm_restrict_it.
27059
27060 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27061
27062 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
27063 where appropriate.
27064 * config/arm/ldmstm.md: Regenerate.
27065
27066 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27067
27068 * config/arm/sync.md (atomic_loaddi_1):
27069 Disable predication for arm_restrict_it.
27070 (arm_load_exclusive<mode>): Likewise.
27071 (arm_load_exclusivesi): Likewise.
27072 (arm_load_exclusivedi): Likewise.
27073 (arm_load_acquire_exclusive<mode>): Likewise.
27074 (arm_load_acquire_exclusivesi): Likewise.
27075 (arm_load_acquire_exclusivedi): Likewise.
27076 (arm_store_exclusive<mode>): Likewise.
27077 (arm_store_exclusive<mode>): Likewise.
27078 (arm_store_release_exclusivedi): Likewise.
27079 (arm_store_release_exclusive<mode>): Likewise.
27080
27081 2013-06-06 Richard Biener <rguenther@suse.de>
27082
27083 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
27084 after LTO_null.
27085 (lto_tag_is_tree_code_p): Adjust.
27086 (lto_tag_is_gimple_code_p): Likewise.
27087 (lto_gimple_code_to_tag): Likewise.
27088 (lto_tag_to_gimple_code): Likewise.
27089 (lto_tree_code_to_tag): Likewise.
27090 (lto_tag_to_tree_code): Likewise.
27091 * data-streamer.h (streamer_write_hwi_in_range): Use
27092 uhwi streaming to stream the normalized range.
27093 (streamer_read_hwi_in_range): Likewise.
27094
27095 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27096
27097 * config/arm/arm.md (enabled_for_depr_it): New attribute.
27098 (predicable_short_it): Likewise.
27099 (predicated): Likewise.
27100 (enabled): Handle above.
27101 (define_cond_exec): Set predicated attribute to yes.
27102
27103 2013-06-05 Mike Stump <mikestump@comcast.net>
27104
27105 * gdbinit.in (__FUNCTION__): Add.
27106
27107 2013-06-05 Uros Bizjak <ubizjak@gmail.com>
27108
27109 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
27110 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
27111
27112 2013-06-05 Jan Hubicka <jh@suse.cz>
27113
27114 * varasm.c (mark_decl_referenced): Revert the removal until targets
27115 are fixed.
27116
27117 2013-06-05 David Edelsohn <dje.gcc@gmail.com>
27118
27119 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
27120 instead of mark_decl_referenced.
27121
27122 2013-06-05 Jan Hubicka <jh@suse.cz>
27123
27124 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
27125 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
27126 and symtab_used_from_object_file_p.
27127 (cgraph_make_node_local_1): Clear forced_by_abi.
27128 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
27129 * cgraph.h (symtab_node_base): Add forced_by_abi.
27130 (decide_is_variable_needed): Remove.
27131 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
27132 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
27133 (decide_is_symbol_needed): ... this one; handle symbols in general;
27134 always analyze virtuals; honnor forced_by_abi.
27135 (cgraph_finalize_function): Update.
27136 (varpool_finalize_decl): Update.
27137 (symbol_defined_and_needed): Remove.
27138 (analyze_functions): Update.
27139 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
27140 output_refs, input_overwrite_node): Handle forced_by_abi.
27141 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
27142 (address_taken_from_non_vtable_p): ... this one.
27143 (comdat_can_be_unshared_p_1): New function.
27144 (cgraph_comdat_can_be_unshared_p): Rename to ...
27145 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
27146 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
27147 (function_and_variable_visibility): Clear forced_by_abi as needed.
27148 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
27149 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
27150 * symtab.c (dump_symtab_base): Dump forced_by_abi.
27151 * varpool.c (decide_is_variable_needed): Remove.
27152
27153 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27154
27155 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
27156 (arm_option_override): Override arm_restrict_it where appropriate.
27157 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
27158 * config/arm/arm.opt (mrestrict-it): New command-line option.
27159 * doc/invoke.texi: Document -mrestrict-it.
27160
27161 2013-06-05 David Malcolm <dmalcolm@redhat.com>
27162
27163 * tsan.c (tsan_atomic_table): Make const.
27164
27165 2013-06-05 Richard Biener <rguenther@suse.de>
27166
27167 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
27168 index associated with the tree we are supposed to replace.
27169 * tree-streamer-out.c (pack_ts_base_value_fields): Output
27170 TREE_ASM_WRITTEN as zero for everything but SSA names.
27171
27172 2013-06-05 David Malcolm <dmalcolm@redhat.com>
27173
27174 * tree-ssa-structalias.c (call_stmt_vars): Make static.
27175
27176 2013-06-04 Jan Hubicka <jh@suse.cz>
27177
27178 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
27179 (input_node, input_varpool_node): Handle correctly external same
27180 body aliases.
27181 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
27182 nodes at ltrans stage.
27183
27184 2013-06-04 Jan Hubicka <jh@suse.cz>
27185
27186 * ipa-inline.c (update_caller_keys): Fix availability test.
27187 (update_callee_keys): Likewise.
27188 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
27189 to follow ELF standard.
27190
27191 2013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
27192
27193 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
27194 (mips64r5900el-*-elf*): New configurations.
27195 * config/mips/mips-cpus.def (r5900): New processor.
27196 * config/mips/mips-tables.opt: Regenerate.
27197 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
27198 (mips_issue_rate): Handle PROCESSOR_R5900.
27199 (mips_reorg_process_insns): Force reorder mode for the R5900.
27200 * config/mips/mips.h (TARGET_MIPS5900): Define.
27201 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
27202 TARGET_MIPS5900.
27203 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
27204 TARGET_MIPS5900.
27205 * config/mips/mips.md (processor): Add r5900.
27206 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
27207
27208 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27209
27210 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
27211 into function to generate MOVI instruction.
27212 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
27213 (aarch64_preferred_simd_mode): Turn into wrapper.
27214 (aarch64_output_scalar_simd_mov_immediate): New function.
27215 * config/aarch64/aarch64-protos.h: Add prototype for above.
27216
27217 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27218
27219 * config/aarch64/aarch64.c (simd_immediate_info): Remove
27220 element_char member.
27221 (sizetochar): Return signed char.
27222 (aarch64_simd_valid_immediate): Remove elchar and other
27223 unnecessary variables.
27224 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
27225 Calculate element_char as required.
27226 * config/aarch64/aarch64-protos.h: Update and move prototype
27227 for aarch64_output_simd_mov_immediate.
27228 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
27229 Update arguments.
27230
27231 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27232
27233 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
27234 information completed by aarch64_simd_valid_immediate.
27235 (aarch64_legitimate_constant_p): Update arguments.
27236 (aarch64_simd_valid_immediate): Work with struct rather than many
27237 pointers.
27238 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
27239 (aarch64_simd_make_constant): Update arguments.
27240 (aarch64_output_simd_mov_immediate): Work with struct rather than
27241 many pointers. Output immediate directly rather than as operand.
27242 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
27243 Update prototype.
27244 * config/aarch64/constraints.md (Dn): Update arguments.
27245
27246 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27247
27248 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
27249 longer static.
27250 (aarch64_simd_immediate_valid_for_move): Remove.
27251 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
27252 (aarch64_simd_make_constant): Update call.
27253 (aarch64_output_simd_mov_immediate): Update call.
27254 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
27255 Add prototype.
27256 * config/aarch64/constraints.md (Dn): Update call.
27257
27258 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27259
27260 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
27261 return type to bool for prototype.
27262 (aarch64_legitimate_constant_p): Check for true instead of not -1.
27263 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
27264 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
27265
27266 2013-06-04 Catherine Moore <clm@codesourcery.com>
27267
27268 * config/mips/mips.opt (meva): New.
27269 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
27270 (ASM_SPEC): Handle -meva.
27271 * doc/invoke.texi (meva): Document.
27272
27273 2013-06-04 Alan Modra <amodra@gmail.com>
27274
27275 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
27276 constant output.
27277
27278 2013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27279
27280 * rtl.def: Add extra fourth optional field to define_cond_exec.
27281 * gensupport.c (process_one_cond_exec): Process attributes from
27282 define_cond_exec.
27283 * doc/md.texi: Document fourth field in define_cond_exec.
27284
27285 2013-06-04 Eric Botcazou <ebotcazou@adacore.com>
27286
27287 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
27288 out the processing order as in store_bit_field_1.
27289
27290 2013-06-04 Jan Hubicka <jh@suse.cz>
27291
27292 PR middle-end/57500
27293 * cgraphunit.c (cgraph_process_same_body_aliases): Create
27294 non-VAR_DECL node if it does not exist yet.
27295
27296 2013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
27297
27298 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
27299 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
27300 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
27301 target_cpu_default setting.
27302
27303 2013-06-03 Teresa Johnson <tejohnson@google.com>
27304
27305 * dumpfile.c (opt_info_switch_p): Change -fopt-info
27306 default to -fopt-info=optimized instead of all.
27307 * doc/invoke.texi: Ditto.
27308 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
27309 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
27310 (execute_vect_slp): Emit BB vectorization success under
27311 MSG_OPTIMIZED_LOCATIONS.
27312 * tree-vect-slp.c (vect_slp_transform_bb): Change
27313 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
27314 * tree-vect-loop.c (vect_transform_loop): Ditto.
27315
27316 2013-06-03 Jason Merrill <jason@redhat.com>
27317
27318 PR c++/57415
27319 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
27320 Use TARGET_EXPR for C++.
27321
27322 2013-06-03 Jakub Jelinek <jakub@redhat.com>
27323
27324 PR rtl-optimization/57268
27325 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
27326 if DEBUG_INSN_P (insn).
27327
27328 Reapply
27329 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
27330
27331 PR rtl-optimization/57268
27332 * sched-deps.c (sched_analyze_2): Flush dependence lists if
27333 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
27334
27335 2013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
27336
27337 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
27338 (ix86_avoid_lea_for_addr): Likewise.
27339 (exact_dependency_1): Likewise.
27340 (ix86_adjust_cost): Likewise.
27341 (swap_top_of_ready_list): Fix formatting and !reload_completed check
27342 removed.
27343 (do_reorder_for_imul): Fix typo, formatting and
27344 !reload_completed check removed.
27345 (ix86_sched_reorder): Fix typo and formatting.
27346 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
27347 list.
27348
27349 2013-06-03 Sofiane Naci <sofiane.naci@arm.com>
27350
27351 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
27352
27353 2013-06-03 Eric Botcazou <ebotcazou@adacore.com>
27354
27355 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
27356 <STRING_CST>: Likewise.
27357 <VECTOR_CST>: Likewise.
27358
27359 2013-06-01 Janus Weil <janus@gcc.gnu.org>
27360 Mikael Morin <mikael@gcc.gnu.org>
27361
27362 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
27363 * config.in: Regenerated.
27364 * configure: Regenerated.
27365
27366 2013-06-01 Jan Hubicka <jh@suse.cz>
27367
27368 PR middle-end/57366
27369 * cgraphunit.c (compile): When weakref is not supported,
27370 set up transparent aliases before final output pass.
27371 * varasm.c (assemble_alias): Do not try to do it here.
27372
27373 2013-06-01 Jan Hubicka <jh@suse.cz>
27374
27375 PR middle-end/57467
27376 * passes.c (for_per_function): Skip unanalyzed functions.
27377
27378 2013-06-01 Jan Hubicka <jh@suse.cz>
27379
27380 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
27381 (lto_symtab_merge_symbols_1): ... this one.
27382 (lto_symtab_merge_cgraph_nodes): Rename to ...
27383 (lto_symtab_merge_symbols): ... this one; simplify.
27384 * cgraph.c (same_body_aliases_done): Rename to ...
27385 (cpp_implicit_aliases_done): ... this one.
27386 (cgraph_create_function_alias): Update.
27387 (cgraph_same_body_alias): Update.
27388 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
27389 (verify_edge_corresponds_to_fndecl): Simplify.
27390 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
27391 (cgraph_node): Remove same_body_alias.
27392 (varpool_node): Remove alias_of and extra_name_alias.
27393 (same_body_aliases_done): Rename to ..
27394 (cpp_implicit_aliases_done): ... this one.
27395 (symtab_alias_ultimate_target): Add default parameter.
27396 (symtab_resolve_alias): New function.
27397 (fixup_same_cpp_alias_visibility): Declare.
27398 (cgraph_function_node): Add default parameter.
27399 (cgraph_node_asm_name): Likewise.
27400 (cgraph_function_or_thunk_node): Add default parameter; do
27401 not ICE when it is NULL.
27402 (varpool_variable_node): Likewise.
27403 * tree-emutls.c (create_emultls_var): Update.
27404 (ipa_lower_emutls): Update.
27405 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
27406 (cgraph_reset_node): Reset alias info.
27407 (cgraph_finalize_function): Update.
27408 (fixup_same_cpp_alias_visibility): Move to symtab.c.
27409 (analyze_function): Simplify.
27410 (cgraph_process_same_body_aliases): Simplify.
27411 (analyze_functions): Fixup same body aliases.
27412 (handle_alias_pairs): Simplify.
27413 (assemble_thunk): Update.
27414 (assemble_thunks_and_aliases): Update.
27415 (output_weakrefs): Rewrite.
27416 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
27417 (lto_output_varpool_node): Likewise.
27418 (compute_ltrans_boundary): Remve assert.
27419 (get_alias_symbol): New functoin.
27420 (input_node): Rewrite alias handling.
27421 (input_varpool_node): Likewise.
27422 * ipa-pure-const.c (propagate_pure_const): Fix formating.
27423 * ipa.c (process_references): Handle weakrefs correctly.
27424 (symtab_remove_unreachable_nodes): Likewise.
27425 * trans-mem.c (get_cg_data): Update.
27426 (ipa_tm_create_version_alias): Update.
27427 (ipa_tm_execute): Update.
27428 * symtab.c (dump_symtab_base): Dump aliases.
27429 (verify_symtab_base): Verify aliases.
27430 (symtab_node_availability): New function.
27431 (symtab_alias_ultimate_target): Simplify.
27432 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
27433 handle all the fixup cases.
27434 (symtab_resolve_alias): New function.
27435 * passes.c (ipa_write_summaries): Handle weakrefs.
27436 * varpool.c (varpool_analyze_node): Simplify.
27437 (assemble_aliases): Update.
27438 (varpool_create_variable_alias): Simplify.
27439 (varpool_extra_name_alias): Simplify.
27440 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
27441 (lto_symtab_merge_symbols): ... this one.
27442
27443 2013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
27444
27445 Revert
27446 PR rtl-optimization/57268
27447 * sched-deps.c (sched_analyze_2): Flush dependence lists if
27448 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
27449
27450 2013-06-01 Tobias Burnus <burnus@net-b.de>
27451
27452 Partially reverted:
27453 2013-05-31 Tobias Burnus <burnus@net-b.de>
27454
27455 PR middle-end/57073
27456 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
27457 further up.
27458
27459 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
27460
27461 PR rtl-optimization/57268
27462 * sched-deps.c (sched_analyze_2): Flush dependence lists if
27463 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
27464
27465 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
27466
27467 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
27468 unordered comparison operators when -fno-trapping-math is in effect
27469 on the e500.
27470 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
27471 and implement unordered comparison operators properly on the e500.
27472
27473 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
27474
27475 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
27476 for constant scalar integers.
27477 (simplify_relational_operation_1): Likewise.
27478
27479 2013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
27480
27481 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
27482 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
27483 Fix comment.
27484
27485 2013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
27486 Igor Zamyatin <igor.zamyatin@intel.com>
27487
27488 Silvermont (SLM) architecture performance tuning.
27489 * config/i386/i386.h (enum ix86_tune_indices): Add
27490 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
27491 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
27492
27493 * config/i386/i386.c (initial_ix86_tune_features)
27494 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
27495 (ix86_lea_outperforms): Handle Silvermont tuning.
27496 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
27497 call.
27498 (ix86_use_lea_for_mov): Likewise.
27499 (ix86_avoid_lea_for_addr): Likewise.
27500 (ix86_lea_for_add_ok): Likewise.
27501 (exact_dependency_1): New function.
27502 (exact_store_load_dependency): Likewise.
27503 (ix86_adjust_cost): Handle Silvermont tuning.
27504 (do_reoder_for_imul): Likewise.
27505 (swap_top_of_ready_list): New function.
27506 (ix86_sched_reorder): Changed to handle Silvermont tuning.
27507
27508 * config/i386/i386.md (peepholes that split memory operand in fp
27509 converts): New.
27510
27511 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
27512
27513 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
27514 Remove un-necessary braces.
27515
27516 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
27517
27518 * config/aarch64/aarch64.c (aarch64_classify_symbol):
27519 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
27520
27521 2013-05-31 Tobias Burnus <burnus@net-b.de>
27522
27523 PR middle-end/57073
27524 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
27525
27526 2013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27527
27528 PR target/56315
27529 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
27530 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
27531 * config/arm/neon.md (iordi3_neon): Remove.
27532 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
27533 * config/arm/predicates.md (imm_for_neon_logic_operand):
27534 Move to earlier in the file.
27535 (neon_logic_op2): Likewise.
27536 (arm_iordi_operand_neon): New predicate.
27537
27538 2013-05-31 Richard Biener <rguenther@suse.de>
27539
27540 PR tree-optimization/57478
27541 PR tree-optimization/57453
27542 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
27543 are life as well.
27544
27545 2013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
27546
27547 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
27548 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
27549
27550 2013-05-30 Tobias Burnus <burnus@net-b.de>
27551 Thomas Koenig <tkoenig@gcc.gnu.org>
27552
27553 PR middle-end/57073
27554 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
27555 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
27556
27557 2013-05-30 Steven Bosscher <steven@gcc.gnu.org>
27558
27559 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
27560
27561 2013-05-30 Vladimir Makarov <vmakarov@redhat.com>
27562
27563 * target.def (register_usage_leveling_p): New hook.
27564 * targhooks.c (default_register_usage_leveling_p): New.
27565 * targhooks.h (default_register_usage_leveling_p): New prototype.
27566 * lra-assigns.c (register_usage_leveling_p): Use the hook.
27567 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
27568 * doc/tm.texi: Update.
27569 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
27570
27571 2013-05-30 Ian Bolton <ian.bolton@arm.com>
27572
27573 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
27574 (*insv_reg<mode>): New define_insn.
27575
27576 2013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
27577
27578 PR rtl-optimization/57439
27579 * postreload.c (move2add_valid_value_p): Check that we have
27580 a zero subreg_regno_offset when accessing the register in
27581 the requested mode.
27582
27583 2013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
27584 Igor Zamyatin <igor.zamyatin@intel.com>
27585
27586 Silvermont (SLM) architecture pipeline model, tuning and
27587 insn selection.
27588 * config.gcc: Add slm config options and target.
27589
27590 * config/i386/slm.md: New.
27591
27592 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
27593
27594 * config/i386/i386-c.c (ix86_target_macros_internal): New case
27595 PROCESSOR_SLM.
27596 (ix86_target_macros_internal): Likewise.
27597
27598 * config/i386/i386.c (slm_cost): New cost.
27599 (m_SLM): New macro flag.
27600 (initial_ix86_tune_features): Set m_SLM.
27601 (x86_accumulate_outgoing_args): Likewise.
27602 (x86_arch_always_fancy_math_387): Likewise.
27603 (processor_target_table): Add slm cost.
27604 (cpu_names): Add slm cpu name.
27605 (x86_option_override_internal): Set SLM ISA.
27606 (ix86_issue_rate): New case PROCESSOR_SLM.
27607 (ia32_multipass_dfa_lookahead): Likewise.
27608 (fold_builtin_cpu): Add slm.
27609
27610 * config/i386/i386.h (TARGET_SLM): New target macro.
27611 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
27612 (processor_type): Add PROCESSOR_SLM.
27613
27614 * config/i386/i386.md (cpu): Add new value "slm".
27615 (slm.md): Include slm.md.
27616
27617 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
27618 Zhenqiang Chen <zhenqiang.chen@linaro.org>
27619
27620 * config/arm/arm-protos.h: Add and update function protos.
27621 * config/arm/arm.c (use_simple_return_p): New added.
27622 (thumb2_expand_return): Check simple_return flag.
27623 * config/arm/arm.md: Add simple_return and conditional simple_return.
27624 * config/arm/iterators.md: Add iterator for return and simple_return.
27625
27626 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
27627
27628 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
27629 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
27630 (arm_emit_vfp_multi_reg_pop): Likewise.
27631 (thumb2_emit_ldrd_pop): Likewise.
27632 (arm_expand_epilogue): Add misc REG_CFA notes.
27633 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
27634
27635 2013-05-29 Lawrence Crowl <crowl@google.com>
27636
27637 * config/arm/t-arm: Update for below.
27638
27639 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
27640 Change type to hash_table. Update dependent calls and types.
27641
27642 * config/i386/t-cygming: Update for below.
27643
27644 * config/i386/t-interix: Update for below.
27645
27646 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
27647 Change type to hash_table. Update dependent calls and types.
27648 (i386_find_on_wrapper_list::wrappers): Likewise.
27649
27650 * config/ia64/t-ia64: Update for below.
27651
27652 * config/ia64/ia64.c (bundle_state_table):
27653 Change type to hash_table. Update dependent calls and types.
27654
27655 * config/mips/mips.c (mips_reorg_process_insns::htab):
27656 Change type to hash_table. Update dependent calls and types.
27657
27658 * config/sol2.c (solaris_comdat_htab):
27659 Change type to hash_table. Update dependent calls and types.
27660
27661 * config/t-sol2: Update for above.
27662
27663 2013-05-29 Teresa Johnson <tejohnson@google.com>
27664
27665 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
27666 functions are not yet marked as defined.
27667
27668 2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
27669 Pat Haugen <pthaugen@us.ibm.com>
27670 Peter Bergner <bergner@vnet.ibm.com>
27671
27672 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
27673 instructions.
27674 (VEC_A): Likewise.
27675 (VEC_C): Likewise.
27676 (vrotl<mode>3): Likewise.
27677 (vashl<mode>3): Likewise.
27678 (vlshr<mode>3): Likewise.
27679 (vashr<mode>3): Likewise.
27680
27681 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
27682 support for power8 V2DI builtins.
27683
27684 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
27685 power8 V2DI builtins.
27686 (vupkhsw): Likewise.
27687 (vupklsw): Likewise.
27688 (vaddudm): Likewise.
27689 (vminsd): Likewise.
27690 (vmaxsd): Likewise.
27691 (vminud): Likewise.
27692 (vmaxud): Likewise.
27693 (vpkudum): Likewise.
27694 (vpksdss): Likewise.
27695 (vpkudus): Likewise.
27696 (vpksdus): Likewise.
27697 (vrld): Likewise.
27698 (vsld): Likewise.
27699 (vsrd): Likewise.
27700 (vsrad): Likewise.
27701 (vsubudm): Likewise.
27702 (vcmpequd): Likewise.
27703 (vcmpgtsd): Likewise.
27704 (vcmpgtud): Likewise.
27705 (vcmpequd_p): Likewise.
27706 (vcmpgtsd_p): Likewise.
27707 (vcmpgtud_p): Likewise.
27708 (vupkhsw): Likewise.
27709 (vupklsw): Likewise.
27710 (vaddudm): Likewise.
27711 (vmaxsd): Likewise.
27712 (vmaxud): Likewise.
27713 (vminsd): Likewise.
27714 (vminud): Likewise.
27715 (vpksdss): Likewise.
27716 (vpksdus): Likewise.
27717 (vpkudum): Likewise.
27718 (vpkudus): Likewise.
27719 (vrld): Likewise.
27720 (vsld): Likewise.
27721 (vsrad): Likewise.
27722 (vsrd): Likewise.
27723 (vsubudm): Likewise.
27724
27725 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
27726 support for power8 V2DI instructions.
27727
27728 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
27729 power8 V2DI instructions. Combine pack and unpack insns to use an
27730 iterator for each mode. Check whether a particular mode supports
27731 Altivec instructions instead of just checking TARGET_ALTIVEC.
27732 (UNSPEC_VPKUWUM): Likewise.
27733 (UNSPEC_VPKSHSS): Likewise.
27734 (UNSPEC_VPKSWSS): Likewise.
27735 (UNSPEC_VPKUHUS): Likewise.
27736 (UNSPEC_VPKSHUS): Likewise.
27737 (UNSPEC_VPKUWUS): Likewise.
27738 (UNSPEC_VPKSWUS): Likewise.
27739 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
27740 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
27741 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
27742 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
27743 (UNSPEC_VUPKHSB): Likewise.
27744 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
27745 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
27746 (UNSPEC_VUPKHSH): Likewise.
27747 (UNSPEC_VUPKLSB): Likewise.
27748 (UNSPEC_VUPKLSH): Likewise.
27749 (VI2): Likewise.
27750 (VI_char): Likewise.
27751 (VI_scalar): Likewise.
27752 (VI_unit): Likewise.
27753 (VP): Likewise.
27754 (VP_small): Likewise.
27755 (VP_small_lc): Likewise.
27756 (VU_char): Likewise.
27757 (add<mode>3): Likewise.
27758 (altivec_vaddcuw): Likewise.
27759 (altivec_vaddu<VI_char>s): Likewise.
27760 (altivec_vadds<VI_char>s): Likewise.
27761 (sub<mode>3): Likewise.
27762 (altivec_vsubcuw): Likewise.
27763 (altivec_vsubu<VI_char>s): Likewise.
27764 (altivec_vsubs<VI_char>s): Likewise.
27765 (altivec_vavgs<VI_char>): Likewise.
27766 (altivec_vcmpbfp): Likewise.
27767 (altivec_eq<mode>): Likewise.
27768 (altivec_gt<mode>): Likewise.
27769 (altivec_gtu<mode>): Likewise.
27770 (umax<mode>3): Likewise.
27771 (smax<mode>3): Likewise.
27772 (umin<mode>3): Likewise.
27773 (smin<mode>3): Likewise.
27774 (altivec_vpkuhum): Likewise.
27775 (altivec_vpkuwum): Likewise.
27776 (altivec_vpkshss): Likewise.
27777 (altivec_vpkswss): Likewise.
27778 (altivec_vpkuhus): Likewise.
27779 (altivec_vpkshus): Likewise.
27780 (altivec_vpkuwus): Likewise.
27781 (altivec_vpkswus): Likewise.
27782 (altivec_vpks<VI_char>ss): Likewise.
27783 (altivec_vpks<VI_char>us): Likewise.
27784 (altivec_vpku<VI_char>us): Likewise.
27785 (altivec_vpku<VI_char>um): Likewise.
27786 (altivec_vrl<VI_char>): Likewise.
27787 (altivec_vsl<VI_char>): Likewise.
27788 (altivec_vsr<VI_char>): Likewise.
27789 (altivec_vsra<VI_char>): Likewise.
27790 (altivec_vsldoi_<mode>): Likewise.
27791 (altivec_vupkhsb): Likewise.
27792 (altivec_vupkhs<VU_char>): Likewise.
27793 (altivec_vupkls<VU_char>): Likewise.
27794 (altivec_vupkhsh): Likewise.
27795 (altivec_vupklsb): Likewise.
27796 (altivec_vupklsh): Likewise.
27797 (altivec_vcmpequ<VI_char>_p): Likewise.
27798 (altivec_vcmpgts<VI_char>_p): Likewise.
27799 (altivec_vcmpgtu<VI_char>_p): Likewise.
27800 (abs<mode>2): Likewise.
27801 (vec_unpacks_hi_v16qi): Likewise.
27802 (vec_unpacks_hi_v8hi): Likewise.
27803 (vec_unpacks_lo_v16qi): Likewise.
27804 (vec_unpacks_hi_<VP_small_lc>): Likewise.
27805 (vec_unpacks_lo_v8hi): Likewise.
27806 (vec_unpacks_lo_<VP_small_lc>): Likewise.
27807 (vec_pack_trunc_v8h): Likewise.
27808 (vec_pack_trunc_v4si): Likewise.
27809 (vec_pack_trunc_<mode>): Likewise.
27810
27811 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
27812 V2DI builtins.
27813 (vec_vmaxsd): Likewise.
27814 (vec_vmaxud): Likewise.
27815 (vec_vminsd): Likewise.
27816 (vec_vminud): Likewise.
27817 (vec_vpksdss): Likewise.
27818 (vec_vpksdus): Likewise.
27819 (vec_vpkudum): Likewise.
27820 (vec_vpkudus): Likewise.
27821 (vec_vrld): Likewise.
27822 (vec_vsld): Likewise.
27823 (vec_vsrad): Likewise.
27824 (vec_vsrd): Likewise.
27825 (vec_vsubudm): Likewise.
27826 (vec_vupkhsw): Likewise.
27827 (vec_vupklsw): Likewise.
27828
27829 2013-05-29 Jan Hubicka <jh@suse.cz>
27830
27831 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
27832 flags; reorder rest of fields in more consistent way.
27833 (varpool_node): Remove analyzed, finalized and alias.
27834 (cgraph_ndoe): Likewise.
27835 (symtab_alias_ultimate_target): New function.
27836 (cgraph_function_node): Move offline.
27837 (cgraph_reset_node): Declare.
27838 (cgraph_comdat_can_be_unshared_p): Remove.
27839 (varpool_remove_initializer): Declare.
27840 (varpool_first_defined_variable, varpool_next_defined_variable
27841 cgraph_first_defined_function, cgraph_next_defined_function): Update.
27842 (cgraph_function_with_gimple_body_p): Update.
27843 (varpool_all_refs_explicit_p): Update.
27844 (symtab_alias_target): New function.
27845 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
27846 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
27847 (cgraph_function_or_thunk_node): Simplify using
27848 symtab_alias_ultimate_target.
27849 (varpool_variable_node): Likewise.
27850 * cgraph.c (cgraph_create_function_alias): Update.
27851 (cgraph_add_thunk): Update.
27852 (cgraph_remove_node): Update.
27853 (dump_cgraph_node): Do not dump removed flags.
27854 (cgraph_function_body_availability): Update.
27855 (cgraph_propagate_frequency): Update.
27856 (verify_cgraph_node): Check sanity of local flag.
27857 (cgraph_function_node): Move here from cgraph.h; revamp for
27858 cgraph_function_or_thunk_node.
27859 * lto-symtab.c (lto_varpool_replace_node): Update.
27860 (lto_symtab_resolve_can_prevail_p): Update.
27861 (lto_symtab_merge_cgraph_nodes): Update.
27862 * ipa-cp.c (determine_versionability, initialize_node_lattices,
27863 propagate_constants_accross_call, devirtualization_time_bonus,
27864 ipcp_propagate_stage): Update.
27865 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
27866 * ipa-inline-transform.c (clone_inlined_nodes,
27867 preserve_function_body_p): Update.
27868 * ipa-reference.c (propagate): Update.
27869 (write_node_summary_p): Update.
27870 * toplev.c (wrapup_global_declaration_2): Update.
27871 * cgraphunit.c (cgraph_analyze_function): Rename to ...
27872 (analyze_function) ... this one.
27873 (cgraph_process_new_functions): Update.
27874 (cgraph_reset_node): Export.
27875 (cgraph_finalize_function): Update.
27876 (cgraph_add_new_function): Update.
27877 (process_function_and_variable_attributes): Update.
27878 (varpool_finalize_decl): Update.
27879 (symbol_finalized): Remove.
27880 (symbol_finalized_and_needed): Rename to ...
27881 (symbol_defined_and_needed): ... update.
27882 (cgraph_analyze_functions): Update.
27883 (handle_alias_pairs): Update.
27884 (mark_functions_to_output): Update.
27885 (assemble_thunk): Update.
27886 (output_in_order): Update.
27887 (output_weakrefs): Update.
27888 (finalize_compilation_unit): Update.
27889 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
27890 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
27891 input_node, input_varpool_node): Update.
27892 * dbxout.c (dbxout_expand_expr): Update.
27893 * cgraphclones.c (cgraph_clone_node): Update.
27894 (cgraph_copy_node_for_versioning): Update.
27895 (cgraph_materialize_clone): Update.
27896 (cgraph_materialize_all_clones): Update.
27897 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
27898 propagate_pure_const, propagate_nothrow): Update.
27899 * lto-streamer-out.c (lto_output, write_symbol): Update.
27900 * ipa-utils.c (ipa_reverse_postorder): Update.
27901 * ipa-inline.c (can_inline_edge_p): Update.
27902 (update_caller_keys, ipa_inline): Update.
27903 * dwarf2out.c (reference_to_unused,
27904 premark_types_used_by_global_vars_helper): Update.
27905 * tree-eh.c (tree_could_trap_p): Update.
27906 * ipa-split.c (consider_split, execute_split_functions): Update.
27907 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
27908 has_addr_references_p): Update; move ahead in file for better
27909 readability.
27910 (process_references): Simplify.
27911 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
27912 bodies are removed.
27913 (cgraph_comdat_can_be_unshared_p): Make static.
27914 (cgraph_externally_visible_p): Update.
27915 (varpool_externally_visible_p): Update.
27916 (function_and_variable_visibility): Update.
27917 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
27918 ipa_tm_mark_force_output_node): Update.
27919 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
27920 estimate_edge_devirt_benefit, inline_generate_summary,
27921 inline_write_summary): Update.
27922 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
27923 * ipa-prop.c (ipa_compute_jump_functions): Update.
27924 (ipa_print_node_params, ipa_prop_read_section,
27925 ipa_update_after_lto_read, read_replacements_section): Update.
27926 * varasm.c (mark_decl_referenced): Update.
27927 (assemble_alias, dump_tm_clone_pairs): Update.
27928 * tree-inline.c (copy_bb): Update.
27929 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
27930 Update.
27931 * symtab.c (dump_symtab_base): Print new flags.
27932 (verify_symtab_base): Verify new flags.
27933 (symtab_alias_ultimate_target): New function.
27934 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
27935 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
27936 Update.
27937 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
27938 Update.
27939 * i386.c (ix86_get_function_versions_dispatcher,
27940 ix86_generate_version_dispatcher_body): Update.
27941 (fold_builtin_cpu): Use varpool_add_new_variable.
27942 * varpool.c (varpool_remove_initializer): Break out from ...
27943 (varpool_remove_node): ... this one.
27944 (dump_varpool_node, varpool_node_for_asm,
27945 cgraph_variable_initializer_availability, varpool_analyze_node,
27946 varpool_assemble_decl, varpool_remove_unreferenced_decls,
27947 varpool_finalize_named_section_flags, varpool_create_variable_alias):
27948 Update.
27949
27950 2013-05-29 Jan Hubicka <jh@suse.cz>
27951
27952 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
27953
27954 2013-05-29 Easwaran Raman <eraman@google.com>
27955
27956 PR tree-optimization/57442
27957 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
27958 when control exits the main loop.
27959
27960 2013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
27961
27962 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
27963 and RX600.
27964 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
27965 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
27966 * rx/t-rx: Add rx100 under multi library matches option for nofpu
27967 option.
27968
27969 2013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27970
27971 PR tree-optimization/57441
27972 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
27973 Don't limit size of incr_vec to number of candidates.
27974
27975 2013-05-29 Steve Ellcey <sellcey@imgtec.com>
27976
27977 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
27978 and mips16 directories.
27979 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
27980 (MULTILIB_DIRNAMES): Ditto.
27981 (MULTILIB_EXCEPTIONS): Add new exceptions.
27982 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
27983 (MULTILIB_DIRNAMES): Ditto.
27984 (MULTILIB_EXCEPTIONS): Add new exceptions.
27985
27986 2012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
27987 Marcus Shawcroft <marcus.shawcroft@arm.com>
27988
27989 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
27990 SYMBOL_TINY_ABSOLUTE.
27991 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
27992 SYMBOL_TINY_ABSOLUTE.
27993 (aarch64_expand_mov_immediate): Likewise.
27994 (aarch64_classify_symbol): Likewise.
27995 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
27996 Permit SYMBOL_TINY_ABSOLUTE.
27997 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
27998
27999 2013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
28000 Marcus Shawcroft <marcus.shawcroft@arm.com>
28001
28002 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
28003 Refactor if/switch. Replace gcc_assert with if.
28004
28005 2013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
28006
28007 * config/i386/i386.c (initial_ix86_tune_features): Enable
28008 FP Reassociation for AMD bdver1 and bdver2.
28009
28010 2013-05-29 Martin Jambor <mjambor@suse.cz>
28011
28012 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
28013 and IMAGPART_EXPR do not occur within other handled_components.
28014
28015 2013-05-29 Richard Biener <rguenther@suse.de>
28016
28017 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
28018 access on whether the use is in the BB we currently try to
28019 vectorize.
28020 (vect_bb_vectorization_profitable_p): Pass the BB we currently
28021 vectorize to vect_bb_slp_scalar_cost.
28022
28023 2013-05-29 Richard Biener <rguenther@suse.de>
28024
28025 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
28026 computing scalar cost offsetted by stmts that are kept live
28027 by scalar uses.
28028 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
28029 for computation of scalar cost.
28030
28031 2013-05-28 Steve Ellcey <sellcey@mips.com>
28032
28033 * config/mips/mips-cpus.def (mips32r2): Change processor type.
28034
28035 2013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
28036
28037 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
28038 array notation built-in reduction functions.
28039 * doc/passes.texi (Passes): Added documentation about changes done
28040 for Cilk Plus.
28041 * doc/invoke.texi (C Dialect Options): Added documentation about
28042 the -fcilkplus flag.
28043 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
28044 (BUILTINS_DEF): Depend on cilkplus.def.
28045 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
28046 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
28047 * cilkplus.def: New file.
28048
28049 2013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
28050
28051 PR rtl-optimization/57439
28052 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
28053
28054 2013-05-28 Easwaran Raman <eraman@google.com>
28055
28056 PR tree-optimization/57337
28057 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
28058 (find_insert_point): Correctly identify the insertion point
28059 when two statements with the same UID is compared.
28060
28061 2013-05-28 Richard Biener <rguenther@suse.de>
28062
28063 PR tree-optimization/56787
28064 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
28065 from the list of data references.
28066 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
28067 clobbers.
28068 (vect_analyze_loop_operations): Likewise.
28069 (vect_transform_loop): Remove clobbers.
28070
28071 2013-05-28 Martin Jambor <mjambor@suse.cz>
28072
28073 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
28074 and REALPART_EXPRs have scalar type.
28075
28076 2013-05-28 Richard Biener <rguenther@suse.de>
28077
28078 PR tree-optimization/57411
28079 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
28080 virtual operands.
28081 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
28082 virtual operand propagation.
28083
28084 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
28085
28086 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
28087 destination register for bmasksi_vis.
28088 (vector_init_bshuffle): Likewise.
28089 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
28090
28091 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
28092
28093 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
28094 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
28095 mode if the instruction isn't available in the original mode.
28096 * config/sparc/sparc.opt (mfix-ut699): New option.
28097 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
28098 (divdf3): Turn into expander.
28099 (divdf3_nofix): New insn.
28100 (divdf3_fix): Likewise.
28101 (divsf3): Disable if -mfix-ut699.
28102 (sqrtdf2): Turn into expander.
28103 (sqrtdf2_nofix): New insn.
28104 (sqrtdf2_fix): Likewise.
28105 (sqrtsf2): Disable if -mfix-ut699.
28106
28107 2013-05-27 Richard Biener <rguenther@suse.de>
28108
28109 PR middle-end/57412
28110 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
28111 block for the new loop.
28112
28113 2013-05-27 Richard Biener <rguenther@suse.de>
28114
28115 PR tree-optimization/57343
28116 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
28117 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
28118 (number_of_iterations_cond): Do not build the folded tree.
28119
28120 2013-05-27 Richard Biener <rguenther@suse.de>
28121
28122 Revert
28123 PR middle-end/57381
28124 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
28125 OEP_CONSTANT_ADDRESS_OF retained.
28126
28127 PR tree-optimization/57417
28128 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
28129 for unchanged base.
28130 (set_ssa_val_to): Compare addresses using
28131 get_addr_base_and_unit_offset.
28132
28133 2013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
28134
28135 PR rtl-optimization/56833
28136 * postreload.c (move2add_record_mode): New function.
28137 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
28138 (move2add_use_add2_insn): Use move2add_record_sym_value.
28139 (move2add_use_add3_insn): Likewise.
28140 (reload_cse_move2add): Use move2add_valid_value_p and
28141 move2add_record_mode. Invalidate call-clobbered and REG_INC
28142 affected regs by setting reg_mode to VOIDmode.
28143 (move2add_note_store): Don't pretend the inside of a SUBREG is
28144 the actual destination. Invalidate single/leading registers by
28145 setting reg_mode to VOIDmode.
28146 Use move2add_record_sym_value, move2add_valid_value_p and
28147 move2add_record_mode.
28148
28149 2013-05-27 Richard Biener <rguenther@suse.de>
28150
28151 PR tree-optimization/57396
28152 * tree-affine.c (double_int_constant_multiple_p): Properly
28153 return false for val == 0 and div != 0.
28154
28155 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
28156
28157 * config/mips/mips.h: Use #elif in preprocessor conditions.
28158
28159 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
28160
28161 PR target/53916
28162 * config/mips/constraints.md (kl): New constraint.
28163 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
28164 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
28165 constraint for operand 0. Split after CSE for MIPS16. Emit a move
28166 from LO for MIPS16.
28167 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
28168
28169 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
28170
28171 PR target/55777
28172 * config/mips/mips.c (mips_can_inline_p): New function.
28173 (TARGET_CAN_INLINE_P): Define.
28174
28175 2013-05-25 Steven Bosscher <steven@gcc.gnu.org>
28176
28177 * sched-int.h (ds_t, dw_t): Make unsigned int.
28178 Fix documentation that describes how all the ds_t bits are used.
28179 Reserve the last bit for delayed-branch scheduling.
28180 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
28181 (BITS_PER_DEP_WEAK): Fix definition and documentation.
28182 (gen_dep_weak_1): Remove prototype.
28183 * sched-deps.c (get_dep_weak_1): Make static.
28184 * target.def (speculate_insn, needs_block_p, gen_spec_check,
28185 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
28186 * doc/tm.texi: Regenerate.
28187 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
28188
28189 2013-05-24 Steven Bosscher <steven@gcc.gnu.org>
28190
28191 PR debug/56950
28192 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
28193
28194 2013-05-24 Nathan Sidwell <nathan@codesourcery.com>
28195 Sandra Loosemore <sandra@codesourcery.com>
28196
28197 * config.gcc (powerpc-*): Allow native for with-cpu.
28198
28199 2013-05-24 Jeff Law <law@redhat.com>
28200
28201 PR tree-optimization/57124
28202 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
28203 conversion feeding a condition if the range has an overflow
28204 if -fstrict-overflow. Add warnings for when we do make the
28205 transformation.
28206
28207 2013-05-24 Dehao Chen <dehao@google.com>
28208
28209 * tree-cfg.c (locus_discrim_map): Fix the typo.
28210 (locus_discrim_hasher): Likewise.
28211 (locus_discrim_hasher::hash): Likewise.
28212 (locus_discrim_hasher::equal): Likewise.
28213
28214 2013-05-24 Martin Jambor <mjambor@suse.cz>
28215
28216 PR tree-optimization/57294
28217 * cgraph.h (ipa_record_stmt_references): Declare.
28218 * cgraphbuild.c (ipa_record_stmt_references): New function.
28219 (build_cgraph_edges): Use ipa_record_stmt_references.
28220 (rebuild_cgraph_edges): Likewise.
28221 (cgraph_rebuild_references): Likewise.
28222 * ipa-prop.c (ipa_modify_call_arguments): Discard references
28223 associated with the old statement and build references from the
28224 newly built statements.
28225 * ipa-ref.c (ipa_remove_stmt_references): New function.
28226 * ipa-ref.h (ipa_remove_stmt_references): Declare.
28227
28228 2013-05-24 Vladimir Makarov <vmakarov@redhat.com>
28229
28230 * lra-constraints.c (emit_spill_move): Use smaller mode for
28231 mem-mem moves.
28232 (check_and_process_move): Consider mem-reg moves for secondary
28233 too.
28234 (curr_insn_transform): Don't lose insns emitted before for
28235 secondary memory moves.
28236 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
28237 reg set up in the current insn.
28238
28239 2013-05-24 Dehao Chen <dehao@google.com>
28240
28241 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
28242 hash function.
28243 (locus_descrim_hasher::equal): Likewise.
28244 (build_gimple_cfg): New discriminator assignment algorithm.
28245 (make_edges): Likewise.
28246 (next_discriminator_for_locus): Likewise.
28247 (same_line_p): Likewise.
28248 (assign_discriminators): Likewise.
28249 (make_cond_expr_edges): Likewise.
28250 (make_gimple_switch_edges): Likewise.
28251 (make_goto_expr_edges): Likewise.
28252 (make_gimple_asm_edges): Likewise.
28253
28254 2013-05-24 Ian Bolton <ian.bolton@arm.com>
28255
28256 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
28257 X format specifier to only display bottom 16 bits.
28258 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
28259 immediate to match for operand 2, since it will be masked.
28260
28261 2013-05-24 Richard Biener <rguenther@suse.de>
28262
28263 PR tree-optimization/57287
28264 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
28265 all SSA names that occur in abnormal PHIs.
28266
28267 2013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
28268
28269 PR tree-ssa/57385
28270 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
28271 that index is not negative.
28272
28273 2013-05-24 Eric Botcazou <ebotcazou@adacore.com>
28274
28275 PR rtl-optimization/55177
28276 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
28277 (simplify_byte_swapping_operation): New.
28278 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
28279 (simplify_relational_operation_1): Deal with BSWAP.
28280
28281 2013-05-23 Richard Henderson <rth@redhat.com>
28282
28283 PR target/56742
28284 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
28285 (ix86_reorg): Call it.
28286
28287 2013-05-23 Uros Bizjak <ubizjak@gmail.com>
28288
28289 PR target/57379
28290 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
28291 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
28292 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
28293
28294 2013-05-23 Christian Bruel <christian.bruel@st.com>
28295
28296 PR debug/57351
28297 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
28298
28299 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
28300 Marcus Shawcroft <marcus.shawcroft@arm.com>
28301
28302 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
28303 * config/aarch64/constraints.md (Usa): Remove.
28304 * doc/md.texi (AArch64 Usa): Remove.
28305
28306 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
28307 Marcus Shawcroft <marcus.shawcroft@arm.com>
28308
28309 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
28310 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
28311 * config/aarch64/predicates.md (aarch64_const_address): Remove.
28312 (aarch64_mov_operand): Use aarch64_mov_operand_p.
28313
28314 2013-05-23 Vidya Praveen <vidyapraveen@arm.com>
28315
28316 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
28317 instruction (AdvSIMD).
28318 * config/aarch64/aarch64-builtins.c
28319 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
28320 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
28321
28322 2013-05-23 Martin Jambor <mjambor@suse.cz>
28323
28324 PR middle-end/57347
28325 * tree.h (contains_bitfld_component_ref_p): Declare.
28326 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
28327 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
28328 caller.
28329 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
28330 not access a bit-field. Assert all final offsets are byte-aligned.
28331
28332 2013-05-23 Richard Biener <rguenther@suse.de>
28333
28334 PR tree-optimization/57380
28335 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
28336 least one invariant or re-used load.
28337 * passes.c (init_optimization_passes): Move pass_phiprop before
28338 pass_forwprop.
28339
28340 2013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
28341
28342 * config/aarch64/aarch64-simd.md
28343 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
28344
28345 2013-05-23 Richard Biener <rguenther@suse.de>
28346
28347 PR middle-end/57381
28348 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
28349 OEP_CONSTANT_ADDRESS_OF retained.
28350
28351 2013-05-23 Jakub Jelinek <jakub@redhat.com>
28352
28353 PR middle-end/57344
28354 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
28355 don't lower unit. Handle unit not being always BITS_PER_WORD.
28356
28357 2013-05-23 Richard Biener <rguenther@suse.de>
28358
28359 PR rtl-optimization/57341
28360 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
28361 instead of true_dependence.
28362
28363 2013-05-22 David Malcolm <dmalcolm@redhat.com>
28364
28365 * bb-reorder.c (branch_threshold): Make const.
28366 (exec_threshold): Ditto.
28367
28368 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
28369 Pat Haugen <pthaugen@us.ibm.com>
28370 Peter Bergner <bergner@vnet.ibm.com>
28371
28372 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
28373 documentation for the power8 crypto builtins.
28374
28375 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
28376
28377 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
28378 macros for defining power8 builtin functions.
28379 (BU_P8V_AV_2): Likewise.
28380 (BU_P8V_AV_P): Likewise.
28381 (BU_P8V_VSX_1): Likewise.
28382 (BU_P8V_OVERLOAD_1): Likewise.
28383 (BU_P8V_OVERLOAD_2): Likewise.
28384 (BU_CRYPTO_1): Likewise.
28385 (BU_CRYPTO_2): Likewise.
28386 (BU_CRYPTO_3): Likewise.
28387 (BU_CRYPTO_OVERLOAD_1): Likewise.
28388 (BU_CRYPTO_OVERLOAD_2): Likewise.
28389 (XSCVSPDP): Fix typo, point to the correct instruction.
28390 (VCIPHER): Add power8 crypto builtins.
28391 (VCIPHERLAST): Likewise.
28392 (VNCIPHER): Likewise.
28393 (VNCIPHERLAST): Likewise.
28394 (VPMSUMB): Likewise.
28395 (VPMSUMH): Likewise.
28396 (VPMSUMW): Likewise.
28397 (VPERMXOR_V2DI): Likewise.
28398 (VPERMXOR_V4SI: Likewise.
28399 (VPERMXOR_V8HI: Likewise.
28400 (VPERMXOR_V16QI: Likewise.
28401 (VSHASIGMAW): Likewise.
28402 (VSHASIGMAD): Likewise.
28403 (VPMSUM): Likewise.
28404 (VPERMXOR): Likewise.
28405 (VSHASIGMA): Likewise.
28406
28407 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
28408 __CRYPTO__ if the crypto instructions are available.
28409 (altivec_overloaded_builtins): Add support for overloaded power8
28410 builtins.
28411
28412 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
28413 support for power8 crypto builtins.
28414 (builtin_function_type): Likewise.
28415 (altivec_init_builtins): Add support for builtins that take vector
28416 long long (V2DI) arguments.
28417
28418 * config/rs6000/crypto.md: New file, define power8 crypto
28419 instructions.
28420
28421 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
28422 Pat Haugen <pthaugen@us.ibm.com>
28423 Peter Bergner <bergner@vnet.ibm.com>
28424
28425 * doc/invoke.texi (Option Summary): Add power8 options.
28426 (RS/6000 and PowerPC Options): Likewise.
28427
28428 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
28429 constraints.md instead of rs6000.h. Reorder w* constraints. Add
28430 wm, wn, wr documentation.
28431
28432 * config/rs6000/constraints.md (wm): New constraint for VSX
28433 registers if direct move instructions are enabled.
28434 (wn): New constraint for no registers.
28435 (wq): New constraint for quad word even GPR registers.
28436 (wr): New constraint if 64-bit instructions are enabled.
28437 (wv): New constraint if power8 vector instructions are enabled.
28438 (wQ): New constraint for quad word memory locations.
28439
28440 * config/rs6000/predicates.md (const_0_to_15_operand): New
28441 constraint for 0..15 for crypto instructions.
28442 (gpc_reg_operand): If VSX allow registers in VSX registers as well
28443 as GPR and floating point registers.
28444 (int_reg_operand): New predicate to match only GPR registers.
28445 (base_reg_operand): New predicate to match base registers.
28446 (quad_int_reg_operand): New predicate to match even GPR registers
28447 for quad memory operations.
28448 (vsx_reg_or_cint_operand): New predicate to allow vector logical
28449 operations in both GPR and VSX registers.
28450 (quad_memory_operand): New predicate for quad memory operations.
28451 (reg_or_indexed_operand): New predicate for direct move support.
28452
28453 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
28454 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
28455 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
28456 (POWERPC_MASKS): Add power8 options.
28457 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
28458 various options.
28459
28460 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
28461 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
28462
28463 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
28464 (-mpower8-fusion): New power8 options.
28465 (-mpower8-fusion-sign): Likewise.
28466 (-mpower8-vector): Likewise.
28467 (-mcrypto): Likewise.
28468 (-mdirect-move): Likewise.
28469 (-mquad-memory): Likewise.
28470
28471 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
28472 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
28473 registers.
28474 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
28475 (rs6000_debug_vector_unit): Add p8_vector.
28476 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
28477 definitions. Also print fusion state.
28478 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
28479 (rs6000_builtin_mask_calculate): Add power8 builtin support.
28480 (rs6000_option_override_internal): Add support for power8.
28481 (rs6000_common_init_builtins): Add debugging for skipped builtins
28482 if -mdebug=builtin.
28483 (rs6000_adjust_cost): Add power8 support.
28484 (rs6000_issue_rate): Likewise.
28485 (insn_must_be_first_in_group): Likewise.
28486 (insn_must_be_last_in_group): Likewise.
28487 (force_new_group): Likewise.
28488 (rs6000_register_move_cost): Likewise.
28489 (rs6000_opt_masks): Likewise.
28490
28491 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
28492 power8 capable assembler, default to power7 options.
28493 (TARGET_DIRECT_MOVE): Likewise.
28494 (TARGET_CRYPTO): Likewise.
28495 (TARGET_P8_VECTOR): Likewise.
28496 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
28497 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
28498 (VECTOR_MEM_P8_VECTOR_P): Likewise.
28499 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
28500 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
28501 (TARGET_XSCVDPSPN): Likewise.
28502 (TARGET_XSCVSPDPN): Likewsie.
28503 (TARGET_SYNC_HI_QI): Likewise.
28504 (TARGET_SYNC_TI): Likewise.
28505 (MASK_CRYPTO): Likewise.
28506 (MASK_DIRECT_MOVE): Likewise.
28507 (MASK_P8_FUSION): Likewise.
28508 (MASK_P8_VECTOR): Likewise.
28509 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
28510 temporary used by some of the direct move instructions to get two FP
28511 temporary registers does not force creation of a stack frame.
28512 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
28513 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
28514 that any VSX registers are tieable, even if they are also an
28515 Altivec vector mode.
28516 (r6000_reg_class_enum): Add wm, wr, wv constraints.
28517 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
28518 (RS6000_BTM_CRYPTO): Likewise.
28519 (RS6000_BTM_COMMON): Likewise.
28520
28521 * config/rs6000/rs6000.md (cpu attribute): Add power8.
28522 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
28523 (enum rs6000_vector): Add power8 vector support.
28524
28525 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28526
28527 PR target/19599
28528 PR target/57340
28529 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
28530 (any_sibcall_could_use_r3): this and handle indirect calls.
28531 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
28532
28533 2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28534
28535 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
28536
28537 2013-05-22 Richard Biener <rguenther@suse.de>
28538
28539 PR middle-end/57349
28540 * profile.c (branch_prob): Do not split blocks that are
28541 abnormally receiving from ECF_RETURNS_TWICE functions.
28542
28543 2013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
28544
28545 * recog.c (offsettable_address_addr_space_p): Fix calculation of
28546 address mode. Move pointer mode initialization to the same place.
28547
28548 2013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28549
28550 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
28551 while it has any effect.
28552
28553 2013-05-21 Easwaran Raman <eraman@google.com>
28554
28555 PR tree-optimization/57322
28556 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
28557 UID of the statement added to the BB to be 1.
28558
28559 2013-05-21 Jakub Jelinek <jakub@redhat.com>
28560
28561 PR tree-optimization/57331
28562 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
28563 of conversion from pointer type to integral type with integer.
28564
28565 2013-05-21 Martin Jambor <mjambor@suse.cz>
28566
28567 PR lto/57289
28568 * ipa-prop.c (ipa_read_node_info): Process param_used and
28569 controlled_uses in the same order as when writing.
28570
28571 2013-05-21 Magnus Granberg <baldrick@free.fr>
28572
28573 PR plugins/56754
28574 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
28575
28576 2013-05-21 Richard Biener <rguenther@suse.de>
28577
28578 PR tree-optimization/57318
28579 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
28580 estimate stmts with side-effects as likely eliminated.
28581
28582 2013-05-21 Richard Biener <rguenther@suse.de>
28583
28584 PR tree-optimization/57330
28585 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
28586 preserve the call stmts fntype.
28587
28588 2013-05-21 Richard Biener <rguenther@suse.de>
28589
28590 PR tree-optimization/57303
28591 * tree-ssa-sink.c (statement_sink_location): Improve killing
28592 stmt detection and properly handle self-assignments.
28593
28594 2013-05-21 Christian Bruel <christian.bruel@st.com>
28595
28596 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
28597 spanning registers. LEAF_REG_REMAP is supported only for contiguous
28598 registers. Set register size out of the PARALLEL loop.
28599
28600 2013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
28601
28602 PR target/56547
28603 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
28604 (*fmasf4, *fmasf4_media): New insns.
28605
28606 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
28607
28608 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
28609 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
28610 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
28611 (mips_idiv_insns): Update the comments to say that the returned
28612 instruction counts are in units of BASE_INSN_LENGTH.
28613 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
28614 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
28615 using 2 rather than 4 as the length of indirect MIPS16 and
28616 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
28617 length of a NOP. Don't divide MIPS16 lengths by 2.
28618 (mips16_split_long_branches): Assume a branch is long if the
28619 length is greater than 4 rather than 8.
28620 * config/mips/mips.md (length): Give MIPS16 lengths directly,
28621 rather than multiplying them by 2. Multiply instruction counts
28622 by BASE_INSN_LENGTH rather than 4.
28623 (*jump_mips16, tls_get_tp_mips16_<mode>)
28624 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
28625
28626 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
28627
28628 * config/mips/mips.md (extended_mips16): Remove branch case.
28629 (length): Remove duplicated extended_mips16 test.
28630
28631 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
28632
28633 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
28634
28635 2013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
28636
28637 * recog.h (Recog_data): Rename to...
28638 (recog_data_d): ...this.
28639 (recog_data): Update accordingly.
28640 * recog.c (recog_data): Likewise.
28641 * reload.c (save_recog_data): Likewise.
28642 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
28643 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
28644
28645 2013-05-17 Julian Brown <julian@codesourcery.com>
28646
28647 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
28648 found in a REG_EQUAL note, invalidate it.
28649
28650 2013-05-17 Easwaran Raman <eraman@google.com>
28651
28652 * tree-ssa-reassoc.c (find_insert_point): New function.
28653 (insert_stmt_after): Likewise.
28654 (get_def_stmt): Likewise.
28655 (ensure_ops_are_available): Likewise.
28656 (not_dominated_by): Likewise.
28657 (rewrite_expr_tree): Do not move statements beyond what is
28658 necessary. Remove call to swap_ops_for_binary_stmt...
28659 (reassociate_bb): ... and move it here.
28660 (build_and_add_sum): Assign UIDs for new statements.
28661 (linearize_expr): Likewise.
28662 (do_reassoc): Renumber gimple statement UIDs.
28663
28664 2013-05-17 Jan Hubicka <jh@suse.cz>
28665
28666 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
28667 weakrefs.
28668 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
28669 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
28670 weakrefs.
28671 (output_weakrefs): Update.
28672
28673 2013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
28674 Martin Jambor <mjambor@suse.cz>
28675
28676 PR middle-end/57276
28677 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
28678 value that corresponds to the given aggval is found in values vector.
28679
28680 2013-05-17 Uros Bizjak <ubizjak@gmail.com>
28681
28682 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
28683 sse, sse2, sse3, ssse3 and sse4a flags to options.
28684
28685 2013-05-17 David Malcolm <dmalcolm@redhat.com>
28686
28687 * gengtype-state.c: (s_expr_writer): New class, to handle
28688 prettifying of output layout of s-expressions.
28689 (state_writer): New class, to write out gtype.state.
28690 (state_written_type_count): Move this variable into member data of
28691 state_writer.
28692 (s_expr_writer::s_expr_writer): New code: constructor for new class
28693 (state_writer::state_writer(): ditto
28694 (s_expr_writer::write_new_line): New function
28695 (s_expr_writer::write_any_indent): ditto
28696 (s_expr_writer::begin_s_expr): ditto
28697 (s_expr_writer::end_s_expr): ditto
28698 (write_state_fileloc): convert to method of state_writer...
28699 (state_writer:: write_state_fileloc): ...and use methods of
28700 s_expr_writer to write indentation into the gtype.state output file
28701 to visually represent the hierarchical structure of the list
28702 structures
28703 (write_state_fields): ditto, renaming to...
28704 (state_writer::write_state_fields)
28705 (write_state_a_string): ditto, renaming to...
28706 (state_writer::write_state_a_string)
28707 (write_state_string_option): ditto, renaming to...
28708 (state_writer::write_state_string_option)
28709 (write_state_type_option): ditto, renaming to...
28710 (state_writer::write_state_type_option)
28711 (write_state_nested_option): ditto, renaming to...
28712 (state_writer::write_state_nested_option)
28713 (write_state_option): ditto, renaming to...
28714 (state_writer::write_state_option)
28715 (write_state_options): ditto, renaming to...
28716 (state_writer::write_state_options)
28717 (write_state_lang_bitmap): ditto, renaming to...
28718 (state_writer::write_state_lang_bitmap)
28719 (write_state_version): ditto, renaming to...
28720 (state_writer::write_state_version)
28721 (write_state_scalar_type): ditto, renaming to...
28722 (state_writer::write_state_scalar_type)
28723 (write_state_string_type): ditto, renaming to...
28724 (state_writer::write_state_string_type)
28725 (write_state_undefined_type): ditto, renaming to...
28726 (state_writer::write_state_undefined_type)
28727 (write_state_struct_union_type): ditto, renaming to...
28728 (state_writer::write_state_struct_union_type)
28729 (write_state_struct_type): ditto, renaming to...
28730 (state_writer::write_state_struct_type)
28731 (write_state_user_struct_type): ditto, renaming to...
28732 (state_writer::write_state_user_struct_type)
28733 (write_state_lang_struct_type): ditto, renaming to...
28734 (state_writer::write_state_lang_struct_type)
28735 (write_state_param_struct_type): ditto, renaming to...
28736 (state_writer::write_state_param_struct_type)
28737 (write_state_pointer_type): ditto, renaming to...
28738 (state_writer::write_state_pointer_type)
28739 (write_state_array_type): ditto, renaming to...
28740 (state_writer::write_state_array_type)
28741 (write_state_gc_used): ditto, renaming to...
28742 (state_writer::write_state_gc_used)
28743 (write_state_common_type_content): ditto, renaming to...
28744 (state_writer::write_state_common_type_content)
28745 (write_state_type): ditto, renaming to...
28746 (state_writer::write_state_type)
28747 (write_state_pair_list): ditto, renaming to...
28748 (state_writer::write_state_pair_list)
28749 (write_state_pair): ditto, renaming to...
28750 (state_writer::write_state_pair)
28751 (write_state_typedefs): ditto, renaming to...
28752 (state_writer::write_state_typedefs)
28753 (write_state_structures): ditto, renaming to...
28754 (state_writer::write_state_structures)
28755 (write_state_param_structs): ditto, renaming to...
28756 (state_writer::write_state_param_structs)
28757 (write_state_variables): ditto, renaming to...
28758 (state_writer::write_state_variables)
28759 (write_state_srcdir): ditto, renaming to...
28760 (state_writer::write_state_srcdir)
28761 (write_state_files_list): ditto, renaming to...
28762 (state_writer::write_state_files_list)
28763 (write_state_languages): ditto, renaming to...
28764 (state_writer::write_state_languages)
28765 (write_state): create a state_writer instance and use it when
28766 writing out the state file
28767
28768 2013-05-17 Mike Stump <mikestump@comcast.net>
28769
28770 PR rtl-optimization/57304
28771 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
28772 accessing DF_REF_REAL_LOC.
28773
28774 2013-05-17 Jakub Jelinek <jakub@redhat.com>
28775
28776 PR rtl-optimization/57281
28777 PR rtl-optimization/57300
28778 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
28779 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
28780 what the other splitter did if the registers are dead.
28781
28782 2013-05-17 Richard Biener <rguenther@suse.de>
28783
28784 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
28785 MEM_REF offsets.
28786
28787 2013-05-17 Jakub Jelinek <jakub@redhat.com>
28788
28789 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
28790 linking.
28791
28792 2013-05-17 Marek Polacek <polacek@redhat.com>
28793
28794 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
28795 length when doing non-zero store of storing '\0' to '\0'.
28796
28797 2013-05-17 Jakub Jelinek <jakub@redhat.com>
28798
28799 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
28800 vect_external_def oprnd1 with loop_vinfo, try to emit
28801 optional cast, negation and and stmts on the loop preheader
28802 edge instead of into the pattern def seq.
28803
28804 PR tree-optimization/57051
28805 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
28806 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
28807
28808 2013-05-16 Nick Clifton <nickc@redhat.com>
28809
28810 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
28811 (rl78_is_naked_func): New function.
28812 (rl78_expand_prologue): Skip prologue generation for naked functions.
28813 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
28814 * doc/extend.texi (naked): Add RL78 to the list of processors
28815 that supports this attribute.
28816
28817 2013-05-16 Jeff Law <law@redhat.com>
28818
28819 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
28820
28821 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
28822
28823 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
28824 cache parameters using detect_caches_amd also for CYRIX,
28825 NSC and TM2 signatures.
28826
28827 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
28828 Dzianis Kahanovich <mahatma@eu.by>
28829
28830 PR target/45359
28831 PR target/46396
28832 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
28833 VIA/Centaur processors and determine their cache parameters
28834 using detect_caches_amd.
28835
28836 2013-05-16 Teresa Johnson <tejohnson@google.com>
28837
28838 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
28839 (rtl_verify_edges): New function.
28840 (rtl_verify_bb_insns): Ditto.
28841 (rtl_verify_bb_pointers): Ditto.
28842 (rtl_verify_bb_insn_chain): Ditto.
28843 (rtl_verify_fallthru): Ditto.
28844 (rtl_verify_bb_layout): Ditto.
28845 (rtl_verify_flow_info_1): Outline checks into new functions.
28846 (rtl_verify_flow_info): Ditto.
28847
28848 2013-05-16 Steve Ellcey <sellcey@imgtec.com>
28849
28850 * cfghooks.c (copy_bbs): Add update_dominance argument.
28851 * cfghooks.h (copy_bbs): Update prototype.
28852 * tree-cfg.c (gimple_duplicate_sese_region):
28853 Add update_dominance argument.
28854 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
28855 * tree-ssa-loop-ch.c (copy_loop_headers): Update
28856 gimple_duplicate_sese_region call.
28857 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
28858 Update copy_bbs call.
28859 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
28860 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
28861
28862 2013-05-16 Jakub Jelinek <jakub@redhat.com>
28863
28864 * tree-vectorizer.h (NUM_PATTERNS): Increment.
28865 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
28866 vect_recog_rotate_pattern.
28867 (vect_recog_rotate_pattern): New function.
28868
28869 2013-05-16 Jason Merrill <jason@redhat.com>
28870
28871 * Makefile.in (LLINKER): New variable.
28872 (mostlyclean): Remove link mutex.
28873 * configure.ac: Handle --enable-link-mutex.
28874 * lock-and-run.sh: New script.
28875
28876 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28877
28878 PR target/19599
28879 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
28880 for NULL decl.
28881
28882 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28883
28884 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
28885
28886 2013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
28887
28888 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
28889 * config/arm/arm.c (next_consecutive_mem): New function.
28890 (gen_movmem_ldrd_strd): Likewise.
28891 * config/arm/arm.md (movmemqi): Update condition and code.
28892 (unaligned_loaddi, unaligned_storedi): New patterns.
28893
28894 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28895
28896 * config.gcc: Obsolete *-*-solaris2.9*.
28897 * doc/install.texi (Specific, *-*-solaris2*): Document it.
28898
28899 2013-05-16 Richard Biener <rguenther@suse.de>
28900
28901 * passes.c (init_optimization_passes): Move pass_parallelize_loops
28902 earlier, after GRAPHITE transforms and IV canonicalization.
28903
28904 2013-05-16 Jakub Jelinek <jakub@redhat.com>
28905
28906 * omp-low.c (extract_omp_for_data): For collapsed loops,
28907 if at least one of the loops is known at compile time to
28908 iterate zero times, set count to 0.
28909 (expand_omp_regimplify_p): New function.
28910 (expand_omp_for_generic): For collapsed loops, if at least
28911 one of the loops isn't known to iterate at least once,
28912 add runtime check with setting count to 0.
28913 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
28914 For unsigned types if it isn't known at compile time that
28915 the loop will iterate at least once, add runtime check to bypass
28916 the whole loop if initial condition isn't true.
28917
28918 2013-05-16 Nathan Sidwell <nathan@codesourcery.com>
28919
28920 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
28921
28922 2013-05-16 Marc Glisse <marc.glisse@inria.fr>
28923
28924 PR middle-end/57286
28925 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
28926 transformations to avoid an infinite loop.
28927
28928 2013-05-16 Marek Polacek <polacek@redhat.com>
28929
28930 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
28931
28932 2013-05-15 Leif Ekblad <leif@rdos.net>
28933
28934 * config/i386/i386.c (ix86_decompose_address): Use
28935 DEFAULT_TLS_SEG_REG to access TLS segment register.
28936 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
28937 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
28938 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
28939
28940 2013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
28941
28942 PR target/57260
28943 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
28944 sibling calls to functions that would normally be lazily bound,
28945 unless $gp is call-clobbered.
28946
28947 2013-05-15 Uros Bizjak <ubizjak@gmail.com>
28948
28949 * config/i386/i386.c (ix86_option_override_internal): Update
28950 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
28951 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
28952 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
28953 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
28954 of TARGET_3DNOW.
28955 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
28956
28957 2013-05-15 Andreas Schwab <schwab@suse.de>
28958
28959 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
28960 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
28961 third operand.
28962
28963 2013-05-15 Teresa Johnson <tejohnson@google.com>
28964
28965 * loop-unroll.c (report_unroll_peel): Check decision before
28966 emitting unroll/peel message.
28967
28968 2013-05-15 Teresa Johnson <tejohnson@google.com>
28969
28970 * function.h (has_bb_partition): New rtl_data flag.
28971 (bb_reorder_complete): Ditto.
28972 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
28973 instead of flag_reorder_blocks_and_partition.
28974 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
28975 with some enhancements.
28976 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
28977 * bb-reorder.c (connect_traces): Check for has_bb_partition
28978 instead of flag_reorder_blocks_and_partition.
28979 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
28980 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
28981 verify_hot_cold_block_grouping.
28982 (partition_hot_cold_basic_blocks): Set has_bb_partition.
28983
28984 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28985
28986 PR target/19599
28987 * config/arm/predicates.md (call_insn_operand): New predicate.
28988 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
28989 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
28990 if insn is not a tail call.
28991 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
28992 registers.
28993 * config/arm/arm.h (enum reg_class): New caller save register class.
28994 (REG_CLASS_NAMES): Likewise.
28995 (REG_CLASS_CONTENTS): Likewise.
28996 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
28997 without decls.
28998
28999 2013-05-15 Richard Biener <rguenther@suse.de>
29000
29001 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
29002 of MSG_OPTIMIZED_LOCATIONS.
29003 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
29004 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
29005 message.
29006 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
29007 of MSG_OPTIMIZED_LOCATIONS.
29008 (execute_vect_slp): Likewise.
29009 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
29010 (vect_create_cond_for_alias_checks): Likewise.
29011 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
29012 (vect_recog_widen_mult_pattern): Likewise.
29013 (vect_recog_widen_sum_pattern): Likewise.
29014 (vect_recog_over_widening_pattern): Likewise.
29015 (vect_recog_widen_shift_pattern): Likewise.
29016 (vect_recog_vector_vector_shift_pattern): Likewise.
29017 (vect_recog_divmod_pattern): Likewise.
29018 (vect_recog_mixed_size_cond_pattern): Likewise.
29019 (vect_recog_bool_pattern): Likewise.
29020 (vect_pattern_recog_1): Likewise.
29021
29022 2013-05-15 Martin Jambor <mjambor@suse.cz>
29023
29024 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
29025 non-functions to builtin_unreachable.
29026 * ipa-inline-transform.c (inline_call): Do not assert estimates were
29027 correct when new direct edges were discovered.
29028
29029 2013-05-15 Martin Jambor <mjambor@suse.cz>
29030
29031 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
29032 header, print symbol order instead of node uid, print more information
29033 about indirect edge targets.
29034 (ipa_make_edge_direct_to_target): Print symbol order instead of node
29035 uids.
29036 (ipa_make_edge_direct_to_target): Likewise.
29037 (remove_described_reference): Likewise.
29038 (propagate_controlled_uses): Likewise.
29039 (ipa_print_node_params): Also print symbol order.
29040 (ipcp_transform_function): Print symbol order instead of node uids.
29041 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
29042 (cgraph_get_create_real_symbol_node): Likewise.
29043 * ipa-cp.c (print_lattice): Likewise.
29044 (print_all_lattices): Likewise.
29045 (determine_versionability): Likewise.
29046 (initialize_node_lattices): Likewise.
29047 (estimate_local_effects): Likewise.
29048 (update_profiling_info): Likewise.
29049 (create_specialized_node): Likewise.
29050 (perhaps_add_new_callers): Likewise.
29051 (decide_about_value): Likewise.
29052 (decide_whether_version_node): Likewise.
29053 (identify_dead_nodes): Likewise.
29054 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
29055 (dump_inline_summary): Likewise.
29056 (estimate_node_size_and_time): Likewise.
29057 (inline_analyze_function): Likewise.
29058 * ipa-inline.c (report_inline_failed_reason): Likewise.
29059 (want_early_inline_function_p): Likewise.
29060 (edge_badness): Likewise.
29061 (update_edge_key): Likewise.
29062 (inline_small_functions): Likewise. Add dumping of order to two other
29063 dumps.
29064 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
29065 instead of node uids.
29066 (propagate_pure_const): Likewise.
29067 (propagate_pure_const): Likewise.
29068 * ipa-utils.c (dump_cgraph_node_set): Likewise.
29069 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
29070 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
29071 of node uids.
29072 * tree-pretty-print.c (dump_function_header): Likewise.
29073 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
29074 Print symbol order instead of node uids.
29075
29076 2013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29077
29078 * config/s390/s390.c (s390_register_move_cost): Don't impose the
29079 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
29080
29081 2013-05-15 Richard Biener <rguenther@suse.de>
29082
29083 PR tree-optimization/57275
29084 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
29085 return value for fail to do runtime alias checks for gather loads.
29086
29087 2013-05-15 Jan Hubicka <jh@suse.cz>
29088
29089 PR lto/57038
29090 PR lto/47375
29091 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
29092 weakrefs are not external.
29093 (lto_symtab_merge_decls): Fix thinko when dealing with
29094 non-lto_symtab decls.
29095 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
29096 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
29097 * varpool.c (dump_varpool_node): Dump more flags.
29098
29099 2013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
29100
29101 * config/i386/i386.c (processor_alias_table): Add instruction
29102 FSGSBASE for AMD bdver3 architecture.
29103
29104 2013-05-14 Jakub Jelinek <jakub@redhat.com>
29105
29106 * tree.c (warn_deprecated_use): Print file:line using locus color.
29107 * diagnostic.c (diagnostic_report_current_module): Print file:line
29108 and file:line:column using locus color.
29109
29110 2013-05-14 Mike Stump <mikestump@comcast.net>
29111
29112 * gdbinit.in: Add __null.
29113
29114 2013-05-14 Mike Stump <mikestump@comcast.net>
29115
29116 * recog.h: Rename struct recog_data to Recog_data.
29117 * recog.c: Likewise.
29118 * reload.c (can_reload_into): Likewise.
29119 * config/picochip/picochip.c: Likewise.
29120
29121 2013-05-14 Mike Stump <mikestump@comcast.net>
29122
29123 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
29124
29125 2013-05-14 Steven Bosscher <steven@gcc.gnu.org>
29126
29127 * resource.h (struct resources): Remove unch_memory member.
29128 (CLEAR_RESOURCE): Don't clear unch_memory.
29129 * resource.c (mark_referenced_resources): Don't set it.
29130 (mark_set_resources): Likewise.
29131 (mark_target_live_regs): Don't clear it.
29132 (init_resource_info): Likewise.
29133 * reorg.c (resource_conflicts_p): Don't compare it.
29134 (redundant_insn): Don't set it.
29135
29136 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
29137 Remove prototypes.
29138 * emit-rtl.c (next_label): Remove unused function.
29139 (skip_consecutive_labels, link_cc0_insns): Move to ...
29140 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
29141 only place where these functions are used, and make them static.
29142
29143 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
29144
29145 * fold-const.c (fold_negate_expr): Handle vectors.
29146 (fold_truth_not_expr): Make it static.
29147 (fold_invert_truthvalue): New static function.
29148 (invert_truthvalue_loc): Handle vectors. Do not call
29149 fold_truth_not_expr directly.
29150 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
29151 <TRUTH_NOT_EXPR>: Do not cast to boolean.
29152 (fold_comparison): Handle vector constants.
29153 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
29154 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
29155 * tree.h (fold_truth_not_expr): Remove declaration.
29156
29157 2013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
29158
29159 * config/aarch64/aarch64-simd.md
29160 (aarch64_vcond_internal<mode>): Rename to...
29161 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
29162 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
29163 float modes. Clarify all iterator modes.
29164 (vcond<mode><mode>): Use new name for vcond expanders.
29165 (vcond<v_cmp_result><mode>): Likewise.
29166 (vcondu<mode><mode>: Likewise.
29167 * config/aarch64/iterators.md (VDQF_COND): New.
29168
29169 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
29170
29171 PR bootstrap/57266
29172 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
29173 variable for the shift amount. Check that we shift by non-negative
29174 amounts.
29175
29176 2013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
29177
29178 PR target/42017
29179 * config/arm/arm.h (EPILOGUE_USES): Only return true
29180 for LR_REGNUM after epilogue_completed.
29181
29182 2013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
29183
29184 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
29185 is error_mark_node.
29186
29187 2013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29188
29189 PR target/57261
29190 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
29191 and Solaris 11+/x86 with gld.
29192 * configure: Regenerate.
29193
29194 2013-05-14 Jakub Jelinek <jakub@redhat.com>
29195
29196 * expmed.c (expand_shift_1): Canonicalize rotates by
29197 constant bitsize / 2 to bitsize - 1.
29198 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
29199 case ROTATERT>: Likewise.
29200
29201 Revert:
29202 2013-05-10 Jakub Jelinek <jakub@redhat.com>
29203
29204 * config/i386/i386.md (rotateinv): New code attr.
29205 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
29206 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
29207 roll $31, %eax, etc.
29208
29209 2013-05-14 Richard Biener <rguenther@suse.de>
29210
29211 PR middle-end/57235
29212 * tree-eh.c (sink_clobbers): Give up for successors with
29213 multiple predecessors and no virtual uses.
29214
29215 2013-05-14 Eric Botcazou <ebotcazou@adacore.com>
29216
29217 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
29218 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
29219
29220 2013-05-14 Jakub Jelinek <jakub@redhat.com>
29221
29222 PR middle-end/57251
29223 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
29224 the case when both op0 and op1 have VOIDmode.
29225
29226 2013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
29227
29228 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
29229 in multiply-accumulate mode.
29230
29231 2013-05-13 Guozhi Wei <carrot@google.com>
29232
29233 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
29234
29235 2013-05-13 Kai Tietz <ktietz@redhat.com>
29236
29237 PR target/56975
29238 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
29239 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
29240 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
29241 * config/i386/i386.c (ix86_option_override_internal): Likewise.
29242 (ix86_expand_prologue): Likewise.
29243 (ix86_expand_split_stack_prologue): Likewise.
29244 (legitimate_pic_address_disp_p): Likewise.
29245 (legitimize_pic_address): Likewise.
29246 (legitimize_tls_address): Likewise.
29247 (legitimize_pe_coff_symbol): Likewise.
29248 (output_pic_addr_const): Likewise.
29249 (construct_plt_address): Likewise.
29250 (ix86_expand_call): Likewise.
29251 (x86_output_mi_thunk): Likewise.
29252 (x86_function_profiler): Likewise.
29253
29254 2013-05-13 Sofiane Naci <sofiane.naci@arm.com>
29255
29256 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
29257 similar switch cases.
29258 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
29259 (aarch64_simd_mov_to_<mode>low): Delete.
29260 (aarch64_simd_mov_to_<mode>high): Delete.
29261 (move_lo_quad_<mode>): Add w<-r alternative.
29262 (aarch64_simd_move_hi_quad_<mode>): Likewise.
29263 (aarch64_simd_mov_from_*): Update type attribute.
29264 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
29265 statement.
29266
29267 2013-05-13 Jan Hubicka <jh@suse.cz>
29268
29269 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
29270 * config/i386/i386.c (ix86_compute_frame_layout,
29271 ix86_expand_epilogue, emit_i387_cw_initialization,
29272 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
29273 ix86_local_alignment): Fix use of size/speed predicates.
29274
29275 2013-05-13 Jakub Jelinek <jakub@redhat.com>
29276
29277 PR tree-optimization/45216
29278 PR tree-optimization/57157
29279 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
29280 the (-Y) & (B - 1) variant if OP is |.
29281 * expmed.c (expand_shift_1): For rotations by const0_rtx just
29282 return shifted. Use (-op1) & (prec - 1) as other_amount
29283 instead of prec - op1.
29284
29285 2013-05-13 Martin Jambor <mjambor@suse.cz>
29286
29287 PR middle-end/42371
29288 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
29289 (ipa_constant_data): New type.
29290 (ipa_jump_func): Use ipa_constant_data to hold information about
29291 constant jump functions.
29292 (ipa_get_jf_constant): Adjust to jump function type changes.
29293 (ipa_get_jf_constant_rdesc): New function.
29294 (ipa_param_descriptor): New field controlled_uses.
29295 (ipa_get_controlled_uses): New function.
29296 (ipa_set_controlled_uses): Likewise.
29297 * ipa-ref.h (ipa_find_reference): Declare.
29298 * ipa-prop.c (ipa_cst_ref_desc): New type.
29299 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
29300 changes.
29301 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
29302 New parameter cs. Adjust all callers.
29303 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
29304 (remove_described_reference): New function.
29305 (jfunc_rdesc_usable): Likewise.
29306 (try_make_edge_direct_simple_call): Decrement controlled use count,
29307 attempt to remove reference if it hits zero.
29308 (combine_controlled_uses_counters): New function.
29309 (propagate_controlled_uses): Likewise.
29310 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
29311 (ipa_edge_duplication_hook): Duplicate reference descriptions.
29312 (ipa_print_node_params): Print described use counter.
29313 (ipa_write_jump_function): Adjust to jump function type changes.
29314 (ipa_read_jump_function): New parameter CS, pass it to
29315 ipa_set_jf_constant. Adjust caller.
29316 (ipa_write_node_info): Stream controlled use count
29317 (ipa_read_node_info): Likewise.
29318 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
29319 asserting.
29320 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
29321 count. Remove cloning-added reference if it reaches zero.
29322 * ipa-ref.c (ipa_find_reference): New function.
29323
29324 2013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
29325
29326 * config/i386/i386.c (processor_target_table): Modified default
29327 alignment values for AMD BD and BT architectures.
29328
29329 2013-05-13 Marc Glisse <marc.glisse@inria.fr>
29330
29331 * tree-vect-generic.c (uniform_vector_p): Move ...
29332 * tree.c (uniform_vector_p): ... here.
29333 * tree.h (uniform_vector_p): Declare it.
29334 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
29335 into a scalar.
29336
29337 2013-05-13 Jakub Jelinek <jakub@redhat.com>
29338
29339 PR tree-optimization/57230
29340 * tree-ssa-strlen.c (handle_char_store): Record length for
29341 array store from STRING_CST.
29342
29343 PR tree-optimization/57230
29344 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
29345 check.
29346
29347 2013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
29348
29349 * config/epiphany/epiphany.c (epiphany_init): Check size of
29350 NUM_MODES_FOR_MODE_SWITCHING.
29351 (epiphany_expand_prologue):
29352 Remove CONFIG_REGNUM initial value handling code.
29353 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
29354 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
29355 (emit_set_fp_mode, epiphany_mode_after): Likewise.
29356 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
29357 Don't return 1 for FP_MODE_NONE.
29358 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
29359 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
29360 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
29361 * config/epiphany/epiphany.md (save_config): New pattern.
29362
29363 2013-05-12 Uros Bizjak <ubizjak@gmail.com>
29364
29365 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
29366
29367 2013-05-10 Uros Bizjak <ubizjak@gmail.com>
29368
29369 * config/i386/i386.md (memory): Handle sseishft1.
29370 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
29371 (*vec_extractv2di_1): Ditto.
29372
29373 2013-05-10 Vladimir Makarov <vmakarov@redhat.com>
29374
29375 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
29376 saved registers.
29377
29378 2013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
29379
29380 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
29381 Add mthumb/march=armv7-a multilib.
29382 Add mthumb/march=armv7-r multilib.
29383 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
29384
29385 2013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
29386
29387 * config/v850/t-rtems: Add more multilibs.
29388
29389 2013-05-10 Richard Biener <rguenther@suse.de>
29390
29391 PR tree-optimization/57214
29392 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
29393 not propagate from SSA names that occur in abnormal PHI nodes.
29394
29395 2013-05-10 Marc Glisse <marc.glisse@inria.fr>
29396
29397 * stor-layout.c (element_precision): New function.
29398 * machmode.h (element_precision): Declare it.
29399 * tree.c (build_minus_one_cst): New function.
29400 (element_precision): Likewise.
29401 * tree.h (build_minus_one_cst): Declare new function.
29402 (element_precision): Likewise.
29403 * fold-const.c (operand_equal_p): Use element_precision.
29404 (fold_binary_loc): Handle vector types.
29405 * convert.c (convert_to_integer): Use element_precision.
29406 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
29407 separately.
29408
29409 2013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
29410
29411 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
29412 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
29413 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
29414 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
29415 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
29416 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
29417 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
29418 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
29419 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
29420 (Uuw8): New constraints.
29421 (Usb4): Move into alphabetical order.
29422 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
29423 (sd8_operand, ub8_operand, uw8_operand): New predicates.
29424 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
29425 previously unnamed patterns.
29426 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
29427 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
29428 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
29429 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
29430 of set_attr_alternative/if_then_else. Use extended_mips16 instead
29431 of specific lengths.
29432
29433 2013-05-10 Jakub Jelinek <jakub@redhat.com>
29434
29435 * config/i386/i386.md (rotateinv): New code attr.
29436 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
29437 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
29438 roll $31, %eax, etc.
29439
29440 PR tree-optimization/45216
29441 PR tree-optimization/57157
29442 * tree-ssa-forwprop.c (simplify_rotate): New function.
29443 (ssa_forward_propagate_and_combine): Call it.
29444
29445 2013-05-10 Richard Biener <rguenther@suse.de>
29446
29447 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
29448 disable peeling when we version for aliasing.
29449 (vector_alignment_reachable_p): Honor explicit user alignment.
29450 (vect_supportable_dr_alignment): Likewise.
29451 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
29452 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
29453 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
29454 then peeling to arrange for the cost-model check to come first.
29455
29456 2013-05-10 Alan Modra <amodra@gmail.com>
29457
29458 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
29459 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
29460 * configure: Regenerate.
29461
29462 2013-05-10 Alan Modra <amodra@gmail.com>
29463
29464 PR target/55033
29465 * varasm.c (default_elf_select_section): Move !DECL_P check..
29466 (get_named_section): ..to here before calling get_section_name.
29467 Adjust assertion.
29468 (default_section_type_flags): Add DECL_P check.
29469 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
29470 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
29471
29472 2013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
29473
29474 * config/epiphany/epiphany.c (epiphany_expand_prologue):
29475 When using gen_stack_adjust_str with a register offset, add a
29476 REG_FRAME_RELATED_EXPR note.
29477
29478 2013-05-09 Uros Bizjak <ubizjak@gmail.com>
29479
29480 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
29481 (*vec_extractv4si_zext_mem): Ditto.
29482 (*vec_extractv2di): Add 0->x and x->x alternatives.
29483 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
29484 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
29485
29486 2013-05-09 Jason Merrill <jason@redhat.com>
29487
29488 N3639 C++1y VLA support
29489 * gimplify.c (gimplify_vla_decl): Don't touch an existing
29490 DECL_VALUE_EXPR.
29491
29492 * tree.c (build_constructor_va): New.
29493 * tree.h: Declare it.
29494
29495 2013-05-09 Martin Jambor <mjambor@suse.cz>
29496
29497 PR lto/57084
29498 * gimple-fold.c (canonicalize_constructor_val): Call
29499 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
29500
29501 2013-05-09 Jan Hubicka <jh@suse.cz>
29502 Richard Biener <rguenther@suse.de>
29503
29504 PR lto/54095
29505 * symtab.c (symtab_make_decl_local): Do not add private names.
29506
29507 2013-05-09 Jan Hubicka <jh@suse.cz>
29508
29509 PR lto/54095
29510 * symtab.c (insert_to_assembler_name_hash): Handle clones.
29511 (unlink_from_assembler_name_hash): Likewise.
29512 (symtab_prevail_in_asm_name_hash, symtab_register_node,
29513 symtab_unregister_node, symtab_initialize_asm_name_hash,
29514 change_decl_assembler_name): Update.
29515
29516 2013-05-09 Sofiane Naci <sofiane.naci@arm.com>
29517
29518 * config/aarch64/aarch64.md: New movtf split.
29519 (*movtf_aarch64): Update.
29520 (aarch64_movdi_tilow): Handle TF modes and rename to
29521 aarch64_movdi_<mode>low.
29522 (aarch64_movdi_tihigh): Handle TF modes and rename to
29523 aarch64_movdi_<mode>high
29524 (aarch64_movtihigh_di): Handle TF modes and rename to
29525 aarch64_mov<mode>high_di
29526 (aarch64_movtilow_di): Handle TF modes and rename to
29527 aarch64_mov<mode>low_di
29528 (aarch64_movtilow_tilow): Remove spurious whitespace.
29529 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
29530 splits.
29531 (aarch64_print_operand): Update.
29532
29533 2013-05-09 Alan Modra <amodra@gmail.com>
29534
29535 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
29536 powerpc64le.
29537 * configure: Regenerate.
29538
29539 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
29540
29541 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
29542 splitter preparation statements.
29543 * config/i386/sse.md (*vec_extract* splitters): Ditto.
29544 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
29545 adjust_address_nv.
29546
29547 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29548
29549 * gimple-ssa-strength-reduction.c (count_candidates): Change
29550 return value to int.
29551 (analyze_candidates_and_replace): Change type of length to int.
29552
29553 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
29554
29555 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
29556 (*vec_extract<mode>): Use VI12_128 mode iterator.
29557 (*vec_extract<mode>_mem): Ditto.
29558 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
29559 attribute.
29560
29561 2013-05-08 Diego Novillo <dnovillo@google.com>
29562
29563 PR bootstrap/54659
29564
29565 Revert:
29566 2012-08-17 Diego Novillo <dnovillo@google.com>
29567
29568 PR bootstrap/54281
29569 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
29570 * config.in: Regenerate.
29571 * configure: Regenerate.
29572 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
29573
29574 2013-05-08 Jan Hubicka <jh@suse.cz>
29575
29576 PR lto/54095
29577 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
29578 * cgraph.h (symtab_node_base): Add unique_name.
29579 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
29580 input_overwrite_node, input_varpool_node): Stream unique_name.
29581 * cgraphclones.c (cgraph_create_virtual_clone,
29582 cgraph_function_versioning): Set unique_name.
29583 * ipa.c (function_and_variable_visibility): Set unique_name.
29584
29585 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29586
29587 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
29588 (alloc_cand_and_find_basis): Restrict conditional candidate
29589 processing to CAND_MULTs.
29590
29591 2013-05-08 Jan Hubicka <jh@suse.cz>
29592
29593 PR lto/54095
29594 lto-symtab.c (lto_symtab_symbol_p): New function.
29595 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
29596 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
29597 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
29598 Skip static symbols.
29599
29600 2013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
29601
29602 PR tree-optimization/57200
29603 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
29604 Only call inform if the preceding warning_at returns true.
29605
29606 2013-05-07 Han Shen <shenhan@google.com>
29607
29608 * cfgexpand.c (record_or_union_type_has_array_p): New function.
29609 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
29610 * common.opt (fstack-protector-strong): New option.
29611 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
29612 * doc/invoke.texi (Optimization Options): Document
29613 "-fstack-protector-strong".
29614 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
29615
29616 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
29617
29618 * config/mips/mips.c (mips_machine_reorg2): Return 0.
29619
29620 2013-05-07 Vladimir Makarov <vmakarov@redhat.com>
29621
29622 * ira.c (update_equiv_regs): Add insn having equiv memory even if
29623 it is not lhs of the insn.
29624 (setup_reg_equiv): Remove insn having equiv memory which it is not
29625 lhs of the insn.
29626 * lra-constraints.c (process_address): Try to improve generation
29627 code for address base + disp.
29628 (lra_constraints): Make correct the code for checking insn setting
29629 up backward equivalence. Remove insn only if it is in the init
29630 insn list.
29631 * lra-eliminations.c (update_reg_eliminate): Change return value.
29632 (lra_eliminate): Use the result.
29633
29634 2013-05-07 Uros Bizjak <ubizjak@gmail.com>
29635
29636 * config/i386/sse.md (ssescalarnummask): New mode attribute.
29637 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
29638 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
29639 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
29640 register target operands.
29641 (*vec_extractv8hi_sse2): New pattern.
29642 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
29643 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
29644 (*vec_extract<mode>_mem): New insn and split pattern.
29645
29646 2013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
29647
29648 * config/arm/arm.c (arm_asan_shadow_offset): New function.
29649 (TARGET_ASAN_SHADOW_OFFSET): Define.
29650 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
29651 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
29652
29653 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29654
29655 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
29656 (incr_vec_index): Return -1 if increment not found.
29657 (create_add_on_incoming_edge): Assert if increment not found.
29658 (record_increment): Limit number of increments recorded.
29659 (all_phi_incrs_profitable): Return false if an increment not found.
29660 (replace_profitable_candidates): Don't process increments that were
29661 not recorded.
29662 (analyze_candidates_and_replace): Limit size of incr_vec.
29663
29664 2013-05-07 Richard Biener <rguenther@suse.de>
29665
29666 * calls.c (special_function_p): setjmp-like functions are leaf.
29667 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
29668 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
29669
29670 2013-05-07 Sofiane Naci <sofiane.naci@arm.com>
29671
29672 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
29673 (aarch64_simd_mov<mode>): New expander.
29674 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
29675 (aarch64_simd_mov_to_<mode>high): Likewise.
29676 (aarch64_simd_mov_from_<mode>low): Likewise.
29677 (aarch64_simd_mov_from_<mode>high): Likewise.
29678 (aarch64_dup_lane<mode>): Update.
29679 (aarch64_dup_lanedi): New instruction pattern.
29680 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
29681 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
29682
29683 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29684
29685 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
29686 (replace_mult_candidate): Remove unnecessary argument; remove
29687 unnecessary parameter from call to introduce_cast_before_cand.
29688 (replace_unconditional_candidate): Remove unnecessary parameter
29689 from call to replace_mult_candidate.
29690 (replace_conditional_candidate): Likewise.
29691 (insert_initializers): Use make_temp_ssa_name.
29692 (introduce_cast_before_cand): Remove unnecessary argument; use
29693 make_temp_ssa_name.
29694 (replace_one_candidate): Remove unnecessary argument; remove
29695 unnecessary parameter from calls to introduce_cast_before_cand.
29696 (replace_profitable_candidates): Remove unnecessary parameters
29697 from calls to replace_one_candidate.
29698
29699 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29700
29701 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
29702 phi def as possibly hiding a basis for a CAND_ADD whose operands
29703 have been commuted in the analysis.
29704 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
29705
29706 2013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
29707
29708 * config/aarch64/aarch64.md
29709 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
29710 shift value between 0-4.
29711
29712 2013-05-07 Richard Biener <rguenther@suse.de>
29713
29714 * double-int.h (rshift): New overload.
29715 * double-int.c (rshift): New function.
29716 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
29717 (create_reference_ops_from_ref): Remove.
29718 (vn_reference_insert): Use shared ops for constructing the
29719 reference and copy it.
29720
29721 2013-05-07 Richard Biener <rguenther@suse.de>
29722
29723 PR middle-end/57190
29724 * tree-eh.c (sink_clobbers): Properly propagate
29725 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
29726
29727 2013-05-07 Jakub Jelinek <jakub@redhat.com>
29728
29729 PR tree-optimization/57149
29730 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
29731 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
29732 collect_phi_def_edges, execute_late_warn_uninitialized): Use
29733 uninit_undefined_value_p instead of ssa_undefined_value_p.
29734
29735 PR debug/57184
29736 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
29737 for modifier == EXPAND_INITIALIZER.
29738
29739 2013-05-07 Anton Blanchard <anton@samba.org>
29740
29741 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
29742 for powerpc64 little endian.
29743 * configure: Regenerate.
29744
29745 2013-05-06 Graham Stott <grahams@btinternet.com>
29746
29747 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
29748 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
29749 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
29750 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
29751
29752 2013-05-06 Graham Stott <grahams@btinternet.com>
29753
29754 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
29755 codes which allow non-lvalues.
29756
29757 2013-05-06 Marc Glisse <marc.glisse@inria.fr>
29758
29759 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
29760 components are all 1s.
29761 (integer_minus_onep): New function.
29762 * tree.h (integer_minus_onep): Declare it.
29763 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
29764 integer_minus_onep instead of integer_all_onesp.
29765
29766 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
29767
29768 PR target/52933
29769 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
29770 variations of these patterns.
29771
29772 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
29773
29774 * config/i386/i386.md (isa): Add x64_sse4 member.
29775 (enabled): Handle x64_sse4.
29776 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
29777 instruction for 64bit SSE4_1 targets. Update insn attributes.
29778 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
29779 instruction for SSE4_1 targets. Update insn attributes.
29780 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
29781 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
29782 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
29783 const_1 selector.
29784 (*vec_extractv4si): Rename from *sse4_1_pextrd.
29785 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
29786 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
29787
29788 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
29789
29790 PR target/57108
29791 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
29792
29793 2013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
29794
29795 * final.c (do_assembler_dialects): Don't handle curly braces and
29796 vertical bar escaped by % as dialect delimiters.
29797 (output_asm_insn): Print curly braces and vertical bar if escaped
29798 by % and ASSEMBLER_DIALECT defined.
29799 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
29800 * doc/tm.texi: Regenerated.
29801
29802 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
29803
29804 * config/mips/mips.c: Include tree-pass.h.
29805 (mips_reorg): Split in pre- and post-dbr_schedule parts.
29806 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
29807 (pass_mips_machine_reorg2): New machine specific pass.
29808 (insert_pass_mips_machine_reorg2): New pass plugin definition.
29809 (mips_option_override): Register the new pass.
29810 * rtl.h (cleanup_barriers): Remove prototype.
29811 (dbr_schedule): Likewise.
29812 * jump.c (cleanup_barriers): Make static.
29813 * reorg.c (dbr_schedule): Likewise.
29814
29815 2013-05-06 Richard Biener <rguenther@suse.de>
29816
29817 PR tree-optimization/57185
29818 * tree-parloops.c (add_field_for_reduction): Handle anonymous
29819 SSA names properly.
29820
29821 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
29822
29823 PR target/57106
29824 * config/i386/i386.c (add_parameter_dependencies): Add dependence
29825 between "first_arg" and "insn", not "last" and "insn".
29826
29827 2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29828
29829 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
29830 (find_candidates_in_block): Re-enable slsr_process_phi.
29831 (create_phi_basis): Fix double counting of candidate adjustment.
29832
29833 2013-05-06 Richard Biener <rguenther@suse.de>
29834
29835 PR middle-end/57147
29836 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
29837 the edge is also fallthru, preserve it and just clear the
29838 abnormal flag.
29839 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
29840 also complex, preserve that and just clear the fallthru flag.
29841 * tree-inline.c (update_ssa_across_abnormal_edges): Also
29842 update virtual operands.
29843
29844 2013-05-06 Alan Modra <amodra@gmail.com>
29845
29846 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
29847 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
29848 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
29849 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
29850 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
29851 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
29852
29853 2013-05-06 Alan Modra <amodra@gmail.com>
29854
29855 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
29856 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
29857 (DEFAULT_ASM_ENDIAN): Define.
29858 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
29859 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
29860 Update -K PIC clause from sysv4.h.
29861 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
29862 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
29863
29864 2013-05-06 Alan Modra <amodra@gmail.com>
29865
29866 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
29867 twice for little-endian.
29868 (ashrdi3_no_power, ashrdi3): Support little-endian.
29869
29870 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
29871
29872 PR target/55303
29873 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
29874 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
29875 related expanders.
29876 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
29877 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
29878 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
29879 New predicates.
29880
29881 2013-05-05 Steven Bosscher <steven@gcc.gnu.org>
29882 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29883
29884 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
29885 * config/pa/pa.opt: Make mbig-switch a no-op.
29886 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
29887 (CASE_VECTOR_MODE): Always return SImode.
29888 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
29889 for the !TARGET_BIG_SWITCH case.
29890 * config/pa/pa-linux.h: Likewise.
29891 * config/pa/pa-openbsd.h: Likewise.
29892 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
29893 * config/pa/pa.md (short_jump): Remove define_insn.
29894 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
29895 (casesi0): Remove define_insn.
29896 (type): Remove btable_branch.
29897 (pa_combine_type): Likewise.
29898 (in_nullified_branch_delay): Likewise.
29899 (in_call_delay): Likewise.
29900 (define_delay): Likewise.
29901 (define_insn_reservation "Z3"): Likewise.
29902 (define_insn_reservation "Z4"): Likewise.
29903 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
29904 (pa_adjust_insn_length): Remove adjustment for btable branches.
29905 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
29906 and mno-big-switch
29907
29908 2013-05-05 Uros Bizjak <ubizjak@gmail.com>
29909
29910 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
29911 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
29912 Add m->r,x alternatives.
29913 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
29914 splitters using SWI48x mode iterator.
29915 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
29916 TARGET_64BIT. Add m->x alternative.
29917 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
29918 Add o->x alternative. Enable for TARGET_SSE.
29919 (sse_storeq): Remove expander.
29920 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
29921 with memory input operand.
29922 (*vec_extractv2di_1 splitter): New.
29923 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
29924 * config/i386/i386.md (ssevecmodelower): New mode attribute.
29925
29926 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
29927
29928 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
29929 (INT_LOWPART): Delete.
29930 (extract_MB): Adjust.
29931 (extract_ME): Adjust.
29932 (print_operand): Adjust.
29933
29934 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
29935
29936 * config/rs6000/predicates.md (reg_or_add_cint_operand,
29937 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
29938 (reg_or_logical_cint_operand, easy_fp_constant,
29939 logical_const_operand): Delete "CONST_DOUBLE" case.
29940 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
29941 "HOST_BITS_PER_WIDE_INT == 64" test.
29942 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
29943 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
29944 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
29945 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
29946 test.
29947 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
29948 CONST_DOUBLE DImode/VOIDmode case.
29949 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
29950 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
29951 CONST_DOUBLE VOIDmode case.
29952 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
29953 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
29954 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
29955 Delete CONST_DOUBLE case.
29956 (splitters for mov FMOVE64 const_double): Delete
29957 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
29958 "HOST_BITS_PER_WIDE_INT >= 64" test.
29959 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
29960 case.
29961 (mov DI const_double): Delete.
29962
29963 2013-05-04 Jakub Jelinek <jakub@redhat.com>
29964
29965 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
29966 on op shows all bits zero in mode of a lowpart subreg, return zero.
29967
29968 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
29969
29970 PR target/57150
29971 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
29972 to save TFmode registers and DImode to save TImode registers for
29973 caller save operations.
29974 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
29975 mark being partially clobbered since they only use the first
29976 double word.
29977
29978 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
29979 and TDmode only use the upper 64-bits of each VSX register.
29980
29981 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29982
29983 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
29984 (find_candidates_in_block): Disable slsr_process_phi.
29985
29986 2013-05-03 Guozhi Wei <carrot@google.com>
29987
29988 * coverage.c (coverage_obj_init): Move the construction of gcov
29989 constructor to ...
29990 (build_init_ctor): ... here.
29991
29992 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29993
29994 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
29995 (slsr_cand_d): Redefine def_phi.
29996 (stride_status, phi_adjust_status, count_phis_status): New enums.
29997 (find_phi_def): New.
29998 (find_basis_for_base_expr): New.
29999 (find_basis_for_candidate): Handle hidden bases.
30000 (alloc_cand_and_find_basis): Handle phi candidates.
30001 (slsr_process_phi): New.
30002 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
30003 (create_mul_imm_cand): Likewise.
30004 (create_add_ssa_cand): Exclude phi base candidates.
30005 (create_add_imm_cand): Likewise.
30006 (slsr_process_cast): Likewise.
30007 (slsr_process_copy): Likewise.
30008 (find_candidates_in_block): Handle phi candidates.
30009 (dump_candidate): Likewise.
30010 (unconditional_cands): Delete.
30011 (unconditional_cands_with_known_stride_p): Delete.
30012 (phi_dependent_cand_p): New.
30013 (cand_increment): Handle phi-dependent candidates.
30014 (replace_dependent): Delete.
30015 (replace_mult_candidate): New.
30016 (replace_unconditional_candidate): New.
30017 (incr_vec_index): Move to avoid forward reference.
30018 (create_add_on_incoming_edge): New.
30019 (create_phi_basis): New.
30020 (replace_dependents): Delete.
30021 (replace_conditional_candidate): New.
30022 (phi_add_costs): New.
30023 (replace_uncond_cands_and_profitable_phis): New.
30024 (record_increment): Handle phi adjustments.
30025 (record_phi_increments): New.
30026 (record_increments): Handle phi adjustments.
30027 (phi_incr_cost): New.
30028 (lowest_cost_path): Handle phis.
30029 (total_savings): Likewise.
30030 (analyze_increments): Likewise.
30031 (ncd_with_phi): New.
30032 (ncd_of_cand_and_phis): New.
30033 (nearest_common_dominator_for_cands): Handle phi increments.
30034 (all_phi_incrs_profitable): New.
30035 (replace_profitable_candidates): Handle phi-dependent candidates.
30036 (analyze_candidates_and_replace): Likewise.
30037
30038 2013-05-03 Teresa Johnson <tejohnson@google.com>
30039
30040 PR bootstrap/57154
30041 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
30042 do not exceed REG_BR_PROB_BASE.
30043
30044 2013-05-03 Jeff Law <law@redhat.com>
30045
30046 PR tree-optimization/57144
30047 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
30048 operand of the condition will bit into the new type when eliminating
30049 a cast feeding a condition.
30050
30051 2013-05-03 Jakub Jelinek <jakub@redhat.com>
30052
30053 PR rtl-optimization/57130
30054 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
30055 of COMPARE as in_code to the recursive call if needed.
30056
30057 2013-05-03 Uros Bizjak <ubizjak@gmail.com>
30058
30059 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
30060 (enabled): Handle new members.
30061 * config/i386/sse.md (*vec_concatv2si): Merge from
30062 *vec_concatv2si_sse2 and vec_concatv2si_sse.
30063 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
30064
30065 2013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
30066
30067 PR tree-optimization/57027
30068 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
30069 for fnms opportunity, check we got the prerequisite kind
30070 of tree / gimple before using accessor functions.
30071
30072 2013-05-03 Richard Biener <rguenther@suse.de>
30073
30074 * double-int.h (lshift): New overload without precision
30075 and arith argument.
30076 (operator *=, operator +=, operator -=): Move ...
30077 * double-int.c (operator *=, operator +=, operator -=): ... here
30078 and implement more efficiently.
30079 (mul_double_with_sign): Remove.
30080 (lshift_double): Adjust to take unsinged shift argument, push
30081 dispatching code to callers.
30082 (mul_double_wide_with_sign): Add early out for callers that
30083 are not interested in high parts or overflow.
30084 (lshift): New function.
30085 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
30086 dispatch code here.
30087 (lrotate, rrotate): Use logical shifts.
30088 * expr.c (get_inner_reference): Use lshift.
30089 * fixed-value.c (do_fixed_divide): Likewise.
30090 * tree-dfa.c (get_ref_base_and_extent): Likewise.
30091 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
30092 (indirect_refs_may_alias_p): Likewise.
30093 (stmt_kills_ref_p_1): Likewise.
30094
30095 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
30096
30097 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
30098
30099 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
30100
30101 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
30102 scalar form of FABD instruction.
30103
30104 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
30105
30106 * lra-constraints.c (process_alt_operands): Add checking alt
30107 number to choose the best alternative.
30108
30109 2013-05-02 Richard Biener <rguenther@suse.de>
30110
30111 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
30112 bitmap and its handling.
30113 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
30114
30115 2013-05-02 Richard Biener <rguenther@suse.de>
30116
30117 PR middle-end/57140
30118 * tree-inline.c (copy_loops): Properly handle removed loops.
30119 (copy_cfg_body): Mark destination loops for fixup if source
30120 loops needed fixup.
30121
30122 2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
30123
30124 PR target/56732
30125 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
30126 generating simple_return for naked functions.
30127
30128 2013-05-02 Martin Jambor <mjambor@suse.cz>
30129
30130 PR middle-end/56988
30131 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
30132 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
30133 flags match.
30134 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
30135 ipa_agg_replacement_value structures.
30136 (known_aggs_to_agg_replacement_list): Likewise.
30137 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
30138 (read_agg_replacement_chain): Likewise.
30139 (ipcp_transform_function): Also check that by_ref flags match.
30140
30141 2013-05-02 Richard Biener <rguenther@suse.de>
30142
30143 * graphds.h (struct graph): Add obstack member.
30144 * graphds.c (new_graph): Initialize obstack and allocate
30145 vertices from it.
30146 (add_edge): Allocate edge from the obstack.
30147 (free_graph): Free the obstack instead of all edges and vertices.
30148
30149 2013-05-02 Teresa Johnson <tejohnson@google.com>
30150
30151 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
30152 divides.
30153 * cfg.c (update_bb_profile_for_threading): Ditto.
30154 * tree-inline.c (copy_bb): Ditto.
30155 (copy_edges_for_bb): Ditto.
30156 (initialize_cfun): Ditto.
30157 (copy_cfg_body): Ditto.
30158 (expand_call_inline): Ditto.
30159 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
30160 (estimate_node_size_and_time): Ditto.
30161 (inline_merge_summary): Ditto.
30162 * cgraphclones.c (cgraph_clone_edge): Ditto.
30163 (cgraph_clone_node): Ditto.
30164 * sched-rgn.c (compute_dom_prob_ps): Ditto.
30165 (compute_trg_info): Ditto.
30166
30167 2013-05-02 Ian Bolton <ian.bolton@arm.com>
30168
30169 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
30170 S reg when fp attribute set.
30171 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
30172
30173 2013-05-02 Ian Bolton <ian.bolton@arm.com>
30174
30175 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
30176 New pattern.
30177 (*and_one_cmplsi3_compare0_uxtw): Likewise.
30178 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
30179 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
30180
30181 2013-05-02 Richard Biener <rguenther@suse.de>
30182
30183 * tree-scalar-evolution.c (scev_info_hasher): Remove.
30184 (struct instantiate_cache_entry): New type.
30185 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
30186 (struct instantiate_cache_type): New type.
30187 (set_instantiated_value, get_instantiated_value): Remove.
30188 (get_instantiated_value_entry): New function.
30189 (instantiate_scev_name): Use the new cache and adjust.
30190 (instantiate_scev_poly): Adjust.
30191 (instantiate_scev_binary): Likewise.
30192 (instantiate_array_ref): Likewise.
30193 (instantiate_scev_convert): Likewise.
30194 (instantiate_scev_not): Likewise.
30195 (instantiate_scev_3): Likewise.
30196 (instantiate_scev_2): Likewise.
30197 (instantiate_scev_r): Likewise.
30198 (instantiate_scev): Likewise.
30199 (resolve_mixers): Likewise.
30200
30201 2013-05-01 Vladimir Makarov <vmakarov@redhat.com>
30202
30203 PR target/57091
30204 * lra-constraints.c (best_small_class_operands_num): Remove.
30205 (process_alt_operands): Remove small_class_operands_num. Take
30206 small classes operands into losers and only if the operand is not
30207 matched. Modify debugging output.
30208 (curr_insn_transform): Remove best_small_class_operands_num.
30209 Print insn name.
30210
30211 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30212
30213 * config/aarch64/aarch64-builtins.c
30214 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
30215 * config/aarch64/aarch64-simd-builtins.def
30216 (reduc_splus_): Add new modes.
30217 (reduc_uplus_): New.
30218 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
30219 (reduc_uplus_v4sf): Likewise.
30220 (reduc_splus_v4sf): Likewise.
30221 (aarch64_addv<mode>): Likewise.
30222 (reduc_uplus_<mode>): Likewise.
30223 (reduc_splus_<mode>): Likewise.
30224 (aarch64_addvv2di): Likewise.
30225 (reduc_uplus_v2di): Likewise.
30226 (reduc_splus_v2di): Likewise.
30227 (aarch64_addvv2si): Likewise.
30228 (reduc_uplus_v2si): Likewise.
30229 (reduc_splus_v2si): Likewise.
30230 (reduc_<sur>plus_<mode>): New.
30231 (reduc_<sur>plus_v2di): Likewise.
30232 (reduc_<sur>plus_v2si): Likewise.
30233 (reduc_<sur>plus_v4sf): Likewise.
30234 (aarch64_addpv4sf): Likewise.
30235 * config/aarch64/arm_neon.h
30236 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
30237 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
30238 add UNSPEC_SADDV, UNSPEC_UADDV.
30239 (SUADDV): New.
30240 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
30241
30242 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30243
30244 * config/aarch64/arm_neon.h
30245 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
30246
30247 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30248
30249 * config/aarch64/aarch64-builtins
30250 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
30251
30252 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30253
30254 * config/aarch64/aarch64-simd-builtins.def
30255 (reduc_smax_): New.
30256 (reduc_smin_): Likewise.
30257 (reduc_umax_): Likewise.
30258 (reduc_umin_): Likewise.
30259 (reduc_smax_nan_): Likewise.
30260 (reduc_smin_nan_): Likewise.
30261 (fmax): Remove.
30262 (fmin): Likewise.
30263 (smax): Update for V2SF, V4SF and V2DF modes.
30264 (smin): Likewise.
30265 (smax_nan): New.
30266 (smin_nan): Likewise.
30267 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
30268 (<su><maxmin><mode>3): ...This, refactor.
30269 (s<maxmin><mode>3): New.
30270 (<maxmin_uns><mode>3): Likewise.
30271 (reduc_<maxmin_uns>_<mode>): Refactor.
30272 (reduc_<maxmin_uns>_v4sf): Likewise.
30273 (reduc_<maxmin_uns>_v2si): Likewise.
30274 (aarch64_<fmaxmin><mode>: Remove.
30275 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
30276 new builtin names.
30277 (vmin<q>_f<32,64>): Likewise.
30278 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
30279 (FMAXMIN): New.
30280 (su): Add mappings for smax, smin, umax, umin.
30281 (maxmin): New.
30282 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
30283 (FMAXMIN): Rename as...
30284 (FMAXMIN_UNS): ...This.
30285 (maxminv): Remove.
30286 (fmaxminv): Likewise.
30287 (fmaxmin): Likewise.
30288 (maxmin_uns): New.
30289 (maxmin_uns_op): Likewise.
30290
30291 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30292
30293 * config/aarch64/arm_neon.h
30294 (vac<ge, gt><sd>_f<32, 64>): Rename to...
30295 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
30296 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
30297
30298 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30299
30300 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
30301 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
30302
30303 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30304
30305 * config/aarch64/aarch64-simd.md
30306 (vcond<mode>_internal): Handle special cases for constant masks.
30307 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
30308 (vcondu<mode><mode>): Likewise.
30309 (vcond<v_cmp_result><mode>): New.
30310
30311 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30312
30313 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
30314 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
30315 * config/aarch64/aarch64-simd-builtins.def
30316 (cmeq): Update to BUILTIN_VALLDI.
30317 (cmgt): Likewise.
30318 (cmge): Likewise.
30319 (cmle): Likewise.
30320 (cmlt): Likewise.
30321 * config/aarch64/arm_neon.h
30322 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
30323 to builtins or C as appropriate.
30324
30325 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30326
30327 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
30328 (cmgeu): ...This.
30329 (cmhi): Rename to...
30330 (cmgtu): ...This.
30331 * config/aarch64/aarch64-simd.md
30332 (simd_mode): Add SF.
30333 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
30334 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
30335 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
30336 (cstore<mode>_neg): ...This.
30337 * config/aarch64/iterators.md
30338 (VALLF): new.
30339 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
30340 (COMPARISONS): New.
30341 (UCOMPARISONS): Likewise.
30342 (optab): Add missing comparisons.
30343 (n_optab): New.
30344 (cmp_1): Likewise.
30345 (cmp_2): Likewise.
30346 (CMP): Likewise.
30347 (cmp): Remove.
30348 (VCMP_S): Likewise.
30349 (VCMP_U): Likewise.
30350 (V_cmp_result): Add DF, SF modes.
30351 (v_cmp_result): Likewise.
30352 (v): Likewise.
30353 (vmtype): Likewise.
30354 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
30355
30356 2013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
30357
30358 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
30359 define_insn to define_insn_and_split.
30360 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
30361 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
30362 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
30363 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
30364 (thumb2_negscc): Likewise.
30365
30366 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
30367
30368 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
30369
30370 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
30371
30372 * config/arm/thumb2.md: Remove trailing whitespaces.
30373
30374 2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
30375
30376 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
30377 Use gen_int_mode rather than GEN_INT.
30378
30379 2013-04-30 H.J. Lu <hongjiu.lu@intel.com>
30380
30381 * value-prof.c (stream_in_histogram_value): Remove the strayed
30382 debug_gimple_stmt.
30383
30384 2013-04-30 Richard Biener <rguenther@suse.de>
30385
30386 PR middle-end/57122
30387 * cfghooks.c (split_edge): Properly check for the loop latch edge.
30388
30389 2013-04-30 Richard Biener <rguenther@suse.de>
30390
30391 PR middle-end/57107
30392 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
30393
30394 2013-04-30 Andrey Belevantsev <abel@ispras.ru>
30395
30396 PR rtl-optimization/56957
30397 PR rtl-optimization/57105
30398 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
30399 variable. Use just INSN_UID for determining whether an insn
30400 should be only disconnected from the insn stream.
30401 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
30402
30403 2013-04-30 Jakub Jelinek <jakub@redhat.com>
30404
30405 PR tree-optimization/57104
30406 * tsan.c (instrument_expr): Don't instrument accesses to
30407 DECL_HARD_REGISTER VAR_DECLs.
30408
30409 2013-04-30 Richard Biener <rguenther@suse.de>
30410
30411 * function.h (loops_for_fn): New inline function.
30412 (set_loops_for_fn): Likewise.
30413 * cfgloop.h (place_new_loop): Add struct function parameter.
30414 (get_loop): Likewise.
30415 (get_loops): Likewise.
30416 (number_of_loops): Likewise.
30417 (fel_next): Adjust.
30418 (fel_init): Likewise.
30419 * cfg.c (get_loop_copy): Adjust.
30420 * cfgloop.c (flow_loops_dump): Likewise.
30421 (record_loop_exits): Likewise.
30422 (verify_loop_structure): Likewise.
30423 * cfgloopanal.c (mark_irreducible_loops): Likewise.
30424 (estimate_reg_pressure_cost): Likewise.
30425 (mark_loop_exit_edges): Likewise.
30426 * cfgloopmanip.c (place_new_loop): Likewise.
30427 (add_loop): Likewise.
30428 (duplicate_loop): Likewise.
30429 * graph.c (draw_cfg_nodes): Likewise.
30430 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
30431 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
30432 (extract_affine_chrec): Likewise.
30433 (build_scop_iteration_domain): Likewise.
30434 * graphite.c (graphite_initialize): Likewise.
30435 * ira-build.c (create_loop_tree_nodes): Likewise.
30436 (more_one_region_p): Likewise.
30437 (rebuild_regno_allocno_maps): Likewise.
30438 (mark_loops_for_removal): Likewise.
30439 (mark_all_loops_for_removal): Likewise.
30440 (remove_unnecessary_regions): Likewise.
30441 (ira_build): Likewise.
30442 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
30443 * loop-init.c (fix_loop_structure): Likewise.
30444 (gate_rtl_move_loop_invariants): Likewise.
30445 (gate_rtl_unswitch): Likewise.
30446 (gate_rtl_unroll_and_peel_loops): Likewise.
30447 (rtl_doloop): Likewise.
30448 * lto-streamer-in.c (input_cfg): Likewise.
30449 * lto-streamer-out.c (output_cfg): Likewise.
30450 * modulo-sched.c (sms_schedule): Likewise.
30451 * predict.c (tree_estimate_probability): Likewise.
30452 (tree_estimate_probability_driver): Likewise.
30453 (estimate_loops): Likewise.
30454 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
30455 (move_sese_region_to_fn): Likewise.
30456 (debug_loop_num): Likewise.
30457 * tree-chrec.c (chrec_evaluate): Likewise.
30458 (hide_evolution_in_other_loops_than_loop): Likewise.
30459 (chrec_component_in_loop_num): Likewise.
30460 (reset_evolution_in_loop): Likewise.
30461 (evolution_function_is_invariant_rec_p): Likewise.
30462 * tree-if-conv.c (main_tree_if_conversion): Likewise.
30463 * tree-inline.c (copy_loops): Likewise.
30464 (copy_cfg_body): Likewise.
30465 (tree_function_versioning): Likewise.
30466 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
30467 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
30468 Likewise.
30469 (add_to_evolution_1): Likewise.
30470 (scev_const_prop): Likewise.
30471 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
30472 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
30473 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
30474 (tree_ssa_lim_initialize): Likewise.
30475 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
30476 (verify_loop_closed_ssa): Likewise.
30477 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
30478 (tree_ssa_loop_im): Likewise.
30479 (tree_ssa_loop_unswitch): Likewise.
30480 (tree_vectorize): Likewise.
30481 (check_data_deps): Likewise.
30482 (tree_ssa_loop_ivcanon): Likewise.
30483 (tree_ssa_loop_bounds): Likewise.
30484 (tree_complete_unroll): Likewise.
30485 (tree_complete_unroll_inner): Likewise.
30486 (tree_parallelize_loops): Likewise.
30487 (tree_ssa_loop_prefetch): Likewise.
30488 (tree_ssa_loop_ivopts): Likewise.
30489 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
30490 * tree-vectorizer.c (vectorize_loops): Likewise.
30491
30492 2013-04-29 Mike Frysinger <vapier@gentoo.org>
30493
30494 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
30495 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
30496 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
30497 with EABI_LINK_SPEC.
30498
30499 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
30500
30501 PR target/44578
30502 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
30503 alternative.
30504
30505 2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
30506
30507 PR target/57097
30508 * lra-constraints.c (process_alt_operands): Discourage a bit more
30509 using memory for pseudos. Print cost dump for alternatives.
30510 Modify cost values for conflicts with early clobbers.
30511 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
30512
30513 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
30514
30515 PR target/57098
30516 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
30517
30518 2013-04-29 Ian Bolton <ian.bolton@arm.com>
30519
30520 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
30521 from/to S register.
30522 (movdi_aarch64): Support LDR/STR from/to D register.
30523
30524 2013-04-29 Ian Bolton <ian.bolton@arm.com>
30525
30526 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
30527 or higher by default.
30528
30529 2013-04-29 Richard Biener <rguenther@suse.de>
30530
30531 PR middle-end/57075
30532 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
30533 even if not adding abnormal edges for calls that can make
30534 abnormal gotos.
30535
30536 2013-04-29 Richard Biener <rguenther@suse.de>
30537
30538 PR middle-end/57103
30539 * tree-cfg.c (move_stmt_op): Fix condition under which to update
30540 TREE_BLOCK.
30541 (move_stmt_r): Remove redundant checking.
30542
30543 2013-04-29 Teresa Johnson <tejohnson@google.com>
30544
30545 PR bootstrap/57077
30546 * basic-block.h (apply_scale): New function.
30547 (apply_probability): Use apply_scale.
30548 * gimple-streamer-in.c (input_bb): Ditto.
30549 * lto-streamer-in.c (input_cfg): Ditto.
30550 * lto-cgraph.c (merge_profile_summaries): Ditto.
30551 * tree-optimize.c (execute_fixup_cfg): Ditto.
30552 * tree-inline.c (copy_bb): Update comment to use apply_scale.
30553 (copy_edges_for_bb): Ditto.
30554 (copy_cfg_body): Ditto.
30555
30556 2013-04-29 Tom de Vries <tom@codesourcery.com>
30557
30558 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
30559 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
30560 (tail_merge_optimize): Handle current_loops == NULL.
30561
30562 2013-04-26 Jeff Law <law@redhat.com>
30563
30564 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
30565 (simplify_cond_using_ranges): Generalize code to simplify
30566 COND_EXPRs where one argument is a constant and the other
30567 is an SSA_NAME created by an integral type conversion.
30568
30569 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30570
30571 * config/arm/arm.md (store_minmaxsi): Use only when
30572 optimize_insn_for_size_p.
30573
30574 2013-04-29 Christian Bruel <christian.bruel@st.com>
30575
30576 PR target/57108
30577 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
30578
30579 2013-04-29 Richard Biener <rguenther@suse.de>
30580
30581 PR middle-end/57089
30582 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
30583 loop tree make sure to schedule a fixup for the child as well.
30584 (expand_omp_for_generic): Properly add loops.
30585 (expand_omp_for_static_nochunk): Likewise.
30586 (expand_omp_for_static_chunk): Likewise.
30587 (expand_omp_for): For the degenerate case fixup loops.
30588 (expand_omp_sections): Fix default bb placement in loops.
30589 (expand_omp_atomic_pipeline): Properly add loops.
30590
30591 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30592
30593 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
30594
30595 2013-04-29 Tom de Vries <tom@codesourcery.com>
30596
30597 * tree-ssa-tail-merge.c: Update header comment.
30598
30599 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
30600
30601 * config/aarch64/arm_neon.h
30602 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
30603 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
30604 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
30605 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
30606 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
30607 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
30608 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
30609 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
30610
30611 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
30612
30613 * config/aarch64/aarch64-simd.md
30614 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
30615 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
30616 fix_trunc, fixuns_trunc.
30617 (ftrunc<VDQF:mode>2): New.
30618 * config/aarch64/iterators.md (optab): Add fix, fixuns.
30619 (fix_trunc_optab): New.
30620
30621 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
30622
30623 * config/aarch64/aarch64-builtins.c
30624 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
30625 iceilf, lround, iroundf.
30626
30627 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
30628
30629 PR target/54349
30630 * config/i386/i386.h (enum ix86_tune_indices)
30631 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
30632 New, split from X86_TUNE_INTER_UNIT_MOVES.
30633 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
30634 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
30635 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
30636 (TARGET_INTER_UNIT_MOVES): Remove.
30637 * config/i386/i386.c (initial_ix86_tune_features): Update.
30638 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
30639 (ix86_expand_convert_uns_didf_sse): Use
30640 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
30641 (ix86_expand_vector_init_one_nonzero): Ditto.
30642 (ix86_expand_vector_init_interleave): Ditto.
30643 (inline_secondary_memory_needed): Return true for moves from SSE class
30644 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
30645 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
30646 * config/i386/constraints.md (Yi, Ym): Depend on
30647 TARGET_INTER_UNIT_MOVES_TO_VEC.
30648 (Yj, Yn): New constraints.
30649 * config/i386/i386.md (*movdi_internal): Change constraints of
30650 operand 1 from Yi to Yj and from Ym to Yn.
30651 (*movsi_internal): Ditto.
30652 (*movdf_internal): Ditto.
30653 (*movsf_internal): Ditto.
30654 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
30655 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
30656 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
30657 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
30658 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
30659 * config/i386/sse.md (movdi_to_sse): Ditto.
30660 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
30661 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
30662 TARGET_INTER_UNIT_MOVES.
30663 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
30664 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
30665 instead of TARGET_INTER_UNIT_MOVES.
30666 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
30667 operand 1 from Yi to Yj and from Ym to Yn.
30668
30669 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
30670
30671 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
30672 (float_truncate_hi_): Likewise.
30673 (float_extend_lo_): Likewise.
30674 (float_truncate_lo_): Likewise.
30675 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
30676 (aarch64_float_extend_lo_v2df): Likewise.
30677 (vec_unpacks_hi_v4sf): Likewise.
30678 (aarch64_float_truncate_lo_v2sf): Likewise.
30679 (aarch64_float_truncate_hi_v4sf): Likewise.
30680 (vec_pack_trunc_v2df): Likewise.
30681 (vec_pack_trunc_df): Likewise.
30682
30683 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
30684
30685 * config/aarch64/aarch64-builtins.c
30686 (aarch64_fold_builtin): Fold float conversions.
30687 * config/aarch64/aarch64-simd-builtins.def
30688 (floatv2si, floatv4si, floatv2di): New.
30689 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
30690 * config/aarch64/aarch64-simd.md
30691 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
30692 * config/aarch64/iterators.md (FLOATUORS): New.
30693 (optab): Add float, floatuns.
30694 (su_optab): Likewise.
30695
30696 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
30697
30698 * config/aarch64/aarch64-builtins.c
30699 (aarch64_builtin_vectorized_function): Use new names for
30700 fcvt builtins.
30701 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
30702 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
30703 (fcvtzu): Split as...
30704 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
30705 (fcvtas): Split as...
30706 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
30707 (fcvtau): Split as...
30708 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
30709 (fcvtps): Split as...
30710 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
30711 (fcvtpu): Split as...
30712 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
30713 (fcvtms): Split as...
30714 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
30715 (fcvtmu): Split as...
30716 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
30717 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
30718 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
30719 (lfrintnusf, lfrintnudf): Likewise.
30720 * config/aarch64/aarch64-simd.md
30721 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
30722 define_insn.
30723 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
30724 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
30725 (fcvt_pattern): Likewise.
30726
30727 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
30728
30729 * config/aarch64/aarch64-simd.md
30730 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
30731 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
30732
30733 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
30734
30735 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
30736 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
30737 (vrnd<a,m,n,p>_f32): Implement using builtins.
30738 (vrnd<i,x><q>_f<32, 64>): New.
30739
30740 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
30741
30742 * config/aarch64/aarch64-builtins.c
30743 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
30744 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
30745 (frintz): Rename to...
30746 (btrunc): ...this.
30747 (frintp): Rename to...
30748 (ceil): ...this.
30749 (frintm): Rename to...
30750 (floor): ...this.
30751 (frinti): Rename to...
30752 (nearbyint): ...this.
30753 (frintx): Rename to...
30754 (rint): ...this.
30755 (frinta): Rename to...
30756 (round): ...this.
30757 * config/aarch64/aarch64-simd.md
30758 (aarch64_frint<frint_suffix><mode>): Delete.
30759 (<frint_pattern><mode>2): Convert to insn.
30760 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
30761 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
30762 (frint_pattern): Likewise.
30763 (frint_suffix): Likewise.
30764
30765 2013-04-29 Richard Biener <rguenther@suse.de>
30766
30767 PR tree-optimization/57081
30768 * loop-init.c: Include tree-flow.h.
30769 (loop_optimizer_finalize): Free number of iteration estimates.
30770 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
30771
30772 2013-04-29 Jakub Jelinek <jakub@redhat.com>
30773
30774 PR tree-optimization/57083
30775 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
30776 non-singleton shift count range, zero extend low_bound for uns case.
30777
30778 * config/i386/predicates.md (general_vector_operand): New predicate.
30779 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
30780 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
30781 if they aren't nonimmediate operands. If their original values
30782 satisfy const_vector_equal_evenodd_p, don't shift them.
30783 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
30784 predicates. For the SSE4.1 case force operands[{1,2}] into registers
30785 if not nonimmediate_operand.
30786 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
30787 instead of register_operand.
30788 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
30789
30790 2013-04-28 Eric Botcazou <ebotcazou@adacore.com>
30791
30792 * stor-layout.c (finalize_size_functions): Allocate a structure and
30793 reset cfun before dumping the functions.
30794
30795 2013-04-27 Jakub Jelinek <jakub@redhat.com>
30796
30797 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
30798
30799 PR target/56866
30800 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
30801 use xop_pmacsdqh if uns_p.
30802 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
30803 the immediate rotate count.
30804
30805 2013-04-26 Vladimir Makarov <vmakarov@redhat.com>
30806
30807 * rtl.h (struct rtx_def): Add comment for field jump.
30808 (LRA_SUBREG_P): New macro.
30809 * recog.c (register_operand): Check LRA_SUBREG_P.
30810 * lra.c (lra): Add note at the end of RTL code. Align non-empty
30811 stack frame.
30812 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
30813 (lra_final_code_change): Skip subreg change for operators.
30814 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
30815 if there are no operand changes.
30816 * lra-constraints.c (curr_insn_set): New.
30817 (match_reload): Set LRA_SUBREG_P.
30818 (emit_spill_move): Ditto.
30819 (check_and_process_move): Use curr_insn_set. Process only single
30820 set insns. Don't initialize sec_mem_p and change_p.
30821 (simplify_operand_subreg): Use LRA_SUBREG_P.
30822 (reg_in_class_p): New function.
30823 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
30824 of #ifdef. Add code to remove cycling.
30825 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
30826 non-null disp. Reload inner instead of disp when base and index
30827 are null. Try to put lo_sum into register.
30828 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
30829 (check_and_process_move): Move code for move cost check to
30830 simple_move_p. Remove equiv_substitution.
30831 (simple_move_p): New function.
30832 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
30833 curr_insn_set. Call check_and_process_move only for single set
30834 insns. Use the new function. Move call of check_and_process_move
30835 after operand equiv substitution and address process.
30836
30837 2013-04-26 Jakub Jelinek <jakub@redhat.com>
30838
30839 PR go/57045
30840 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
30841 with nonlocal goto receivers or returns twice calls, ignore
30842 unininitialized values from abnormal edges to nl goto receiver
30843 or returns twice call.
30844
30845 2013-04-26 Jakub Jelinek <jakub@redhat.com>
30846
30847 PR tree-optimization/57051
30848 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
30849 and VEC_RSHIFT_EXPR if shift count is a multiple of element
30850 bitsize.
30851
30852 2013-04-26 Richard Biener <rguenther@suse.de>
30853
30854 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
30855 (expand_omp_taskreg): Likewise. Mark loops for fixup.
30856 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
30857 (fixup_loop_arrays_after_move): New function.
30858 (move_sese_region_to_fn): Properly outline the loop tree parts
30859 of the SESE region.
30860
30861 2013-04-26 Uros Bizjak <ubizjak@gmail.com>
30862
30863 * config/i386/i386.md (type, unit): Fix long lines.
30864
30865 2013-04-26 Richard Biener <rguenther@suse.de>
30866
30867 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
30868 (lto-streamer-out.o): Likewise.
30869 * cfgloop.c (init_loops_structure): Export, add struct function
30870 argument and adjust.
30871 (flow_loops_find): Adjust.
30872 * cfgloop.h (enum loop_estimation): Add EST_LAST.
30873 (init_loops_structure): Declare.
30874 * lto-streamer-in.c: Include cfgloop.h.
30875 (input_cfg): Input the loop tree.
30876 * lto-streamer-out.c: Include cfgloop.h.
30877 (output_cfg): Output the loop tree.
30878 (output_struct_function_base): Do not drop PROP_loops.
30879
30880 2013-03-26 Richard Biener <rguenther@suse.de>
30881
30882 * tree-cfg.c (execute_build_cfg): Build the loop tree.
30883 (pass_build_cfg): Provide PROP_loops.
30884 (move_sese_region_to_fn): Remove loops that are outlined into fn
30885 for now.
30886 * tree-inline.c: Include cfgloop.h.
30887 (initialize_cfun): Do not drop PROP_loops.
30888 (copy_loops): New function.
30889 (copy_cfg_body): Copy loop structure.
30890 (tree_function_versioning): Initialize destination loop tree.
30891 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
30892 (pass_parallelize_loops): Do IL verification.
30893 * loop-init.c (loop_optimizer_init): Fixup loops if required.
30894 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
30895 the CFG make sure we fixup loops as well.
30896 * tree-ssa-tail-merge.c: Include cfgloop.h.
30897 (replace_block_by): When merging loop latches mark loops for fixup.
30898 * lto-streamer-out.c (output_struct_function_base): Drop
30899 PROP_loops for now.
30900 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
30901 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
30902 * ipa-split.c: Include cfgloop.h.
30903 (split_function): Add the new return block to the loop tree root.
30904 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
30905 whether we have removed the forwarder block.
30906 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
30907 * cfgloop.h (place_new_loop): Declare.
30908 * cfgloopmanip.c (place_new_loop): Export.
30909 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
30910 (tree-switch-conversion.o): Likewise.
30911 (tree-complex.o): Likewise.
30912 (tree-inline.o): Likewise.
30913 (tree-ssa-tailmerge.o): Likewise.
30914 (ipa-split.o): Likewise.
30915 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
30916 (tree-ssa-copy.o): Likewise.
30917 * tree-switch-conversion.c: Include cfgloop.h
30918 (process_switch): If we emit a bit-test cascade, schedule loops
30919 for fixup.
30920 * tree-complex.c: Include cfgloop.h.
30921 (expand_complex_div_wide): Properly add new basic-blocks to loops.
30922 * asan.c: Include cfgloop.h.
30923 (create_cond_insert_point): Properly add new basic-blocks to
30924 loops, schedule loop fixup.
30925 * cfgloop.c (verify_loop_structure): Check that looks are not
30926 marked for fixup.
30927 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
30928 to loops.
30929 (expand_omp_for_generic): Likewise.
30930 (expand_omp_sections): Likewise.
30931 (expand_omp_atomic_pipeline): Schedule loops for fixup.
30932 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
30933 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
30934 is initialized, not when loops are present.
30935 * tree-parloops.c (parallelize_loops): Remove checking here.
30936 * passes.c (init_optimization_passes): Schedule a copy-propagation
30937 pass before complete unrolling of inner loops.
30938
30939 2013-04-26 Jakub Jelinek <jakub@redhat.com>
30940
30941 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
30942 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
30943 (colorize_init): Add argument to _WIN32 version.
30944 * toplev.c: Include diagnostic-color.h.
30945 (process_options): Default to -fdiagnostics-color=auto if
30946 GCC_COLORS env var is in the environment.
30947 * common.opt (fdiagnostics-color=): Add Var and Init.
30948 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
30949 env var is in the environment, the default is auto rather than never.
30950
30951 * diagnostic.h (file_name_as_prefix): Add context argument.
30952 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
30953 the string as locus.
30954 * langhooks.c (lhd_print_error_function): Adjust caller.
30955
30956 2013-04-25 Lawrence Crowl <crowl@google.com>
30957
30958 * var-tracking.c (shared_hash_def::htab):
30959 Change type to hash_table. Update dependent calls and types.
30960
30961 2013-04-25 Lawrence Crowl <crowl@google.com>
30962
30963 * Makefile.in: Update as needed below.
30964
30965 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
30966 Move declaration to after the type's method definitons.
30967
30968 * attribs.c (htab_t scoped_attributes::attribute_hash):
30969 Change type to hash_table. Update dependent calls and types.
30970
30971 * bitmap.c (htab_t bitmap_desc_hash):
30972 Change type to hash_table. Update dependent calls and types.
30973
30974 * cselib.c (htab_t cselib_hash_table):
30975 Change type to hash_table. Update dependent calls and types.
30976
30977 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
30978 (hash_string_slot_node): Move implementation into lto-streamer.h
30979 struct string_slot_hasher.
30980 (eq_string_slot_node): Likewise.
30981
30982 * data-streamer-out.c: Update output_block::string_hash_table
30983 dependent calls and types.
30984
30985 * dwarf2cfi.c (htab_t trace_index):
30986 Change type to hash_table. Update dependent calls and types.
30987
30988 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
30989 Change type to hash_table. Update dependent calls and types.
30990 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
30991 (htab_t optimize_external_refs::map): Likewise.
30992 (htab_t output_comp_unit::extern_map): Likewise.
30993 (htab_t output_comdat_type_unit::extern_map): Likewise.
30994 (htab_t output_macinfo::macinfo_htab): Likewise.
30995 (htab_t optimize_location_lists::htab): Likewise.
30996 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
30997
30998 * except.c (htab_t ehspec_hash_type):
30999 Change type to hash_table. Update dependent calls and types.
31000 (assign_filter_values::ttypes): Likewise.
31001 (assign_filter_values::ehspec): Likewise.
31002 (sjlj_assign_call_site_values::ar_hash): Likewise.
31003 (convert_to_eh_region_ranges::ar_hash): Likewise.
31004
31005 * gcse.c (htab_t pre_ldst_table):
31006 Change type to hash_table. Update dependent calls and types.
31007
31008 * ggc-common.c (htab_t saving_htab):
31009 Change type to hash_table. Update dependent calls and types.
31010 (htab_t loc_hash): Likewise.
31011 (htab_t ptr_hash): Likewise.
31012 (call_count): Rename ggc_call_count.
31013 (call_alloc): Rename ggc_call_alloc.
31014 (loc_descriptor): Rename make_loc_descriptor.
31015 (add_statistics): Rename ggc_add_statistics.
31016
31017 * ggc-common.c (saving_htab):
31018 Change type to hash_table. Update dependent calls and types.
31019
31020 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
31021 (push_gimplify_context): Likewise.
31022 (pop_gimplify_context): Likewise.
31023 (struct gimple_temp_hash_elt): Added.
31024 (struct gimplify_hasher): Likewise.
31025 (struct gimplify_ctx.temp_htab):
31026 Change type to hash_table. Update dependent calls and types.
31027
31028 * gimple-fold.c: Include gimplify-ctx.h.
31029
31030 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
31031 Change type to hash_table. Update dependent calls and types.
31032 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
31033 avoid potential global name collision.
31034
31035 * gimplify.c: Include gimplify-ctx.h.
31036 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
31037 (htab_t gimplify_ctx::temp_htab):
31038 Update dependent calls and types for new type hash_table.
31039 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
31040 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
31041
31042 * gimplify-ctx.h: New.
31043 (struct gimple_temp_hash_elt): Move from gimplify.c.
31044 (class gimplify_hasher): New.
31045 (struct gimplify_ctx): Move from gimple.h.
31046 (htab_t gimplify_ctx::temp_htab):
31047 Change type to hash_table. Update dependent calls and types.
31048
31049 * graphite-clast-to-gimple.c: Include graphite-htab.h.
31050 (htab_t ivs_params::newivs_index):
31051 Change type to hash_table. Update dependent calls and types.
31052 (htab_t ivs_params::params_index): Likewise.
31053 (htab_t print_generated_program::params_index): Likewise.
31054 (htab_t gloog::newivs_index): Likewise.
31055 (htab_t gloog::params_index): Likewise.
31056
31057 * graphite.c: Include graphite-htab.h.
31058 4htab_t graphite_transform_loops::bb_pbb_mapping):
31059 Change type to hash_table. Update dependent calls and types.
31060
31061 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
31062 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
31063 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
31064
31065 * graphite-dependences.c: Include graphite-htab.h.
31066 (loop_is_parallel_p): Change hash table type of parameter.
31067
31068 * graphite-htab.h: New.
31069 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
31070 (extern find_pbb_via_hash): Move from graphite-poly.h.
31071 (extern loop_is_parallel_p): Move from graphite-poly.h.
31072 (extern get_loop_body_pbbs): Move from graphite-poly.h.
31073
31074 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
31075 (extern loop_is_parallel_p): Move to graphite-htab.h.
31076 (extern get_loop_body_pbbs): Move to graphite-htab.h.
31077
31078 * haifa-sched.c (htab_t delay_htab):
31079 Change type to hash_table. Update dependent calls and types.
31080 (htab_t delay_htab_i2): Likewise.
31081
31082 * ira-color.c (htab_t allocno_hard_regs_htab):
31083 Change type to hash_table. Update dependent calls and types.
31084
31085 * ira-costs.c (htab_t cost_classes_htab):
31086 Change type to hash_table. Update dependent calls and types.
31087
31088 * loop-invariant.c (htab_t merge_identical_invariants::eq):
31089 Change type to hash_table. Update dependent calls and types.
31090
31091 * loop-iv.c (htab_t bivs):
31092 Change type to hash_table. Update dependent calls and types.
31093
31094 * loop-unroll.c (htab_t opt_info::insns_to_split):
31095 Change type to hash_table. Update dependent calls and types.
31096 (htab_t opt_info::insns_with_var_to_expand): Likewise.
31097
31098 * lto-streamer.h (struct string_slot): Move from data-streamer.h
31099 (struct string_slot_hasher): New.
31100 (htab_t output_block::string_hash_table):
31101 Change type to hash_table. Update dependent calls and types.
31102
31103 * lto-streamer-in.c (freeing_string_slot_hasher): New.
31104 (htab_t file_name_hash_table):
31105 Change type to hash_table. Update dependent calls and types.
31106
31107 * lto-streamer-out.c: Update output_block::string_hash_table dependent
31108 calls and types.
31109
31110 * lto-streamer.c (htab_t tree_htab):
31111 Change type to hash_table. Update dependent calls and types.
31112
31113 * omp-low.c: Include gimplify-ctx.h.
31114
31115 * passes.c (htab_t name_to_pass_map):
31116 Change type to hash_table. Update dependent calls and types.
31117 (pass_traverse): Rename to passes_pass_traverse.
31118
31119 * plugin.c (htab_t event_tab):
31120 Change type to hash_table. Update dependent calls and types.
31121
31122 * postreload-gcse.c (htab_t expr_table):
31123 Change type to hash_table. Update dependent calls and types.
31124 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
31125
31126 * sese.c (debug_rename_map_1): Make extern.
31127 (htab_t copy_bb_and_scalar_dependences::rename_map):
31128 Change type to hash_table. Update dependent calls and types.
31129
31130 * sese.h (extern debug_rename_map): Move to .c file.
31131
31132 * store-motion.c (htab_t store_motion_mems_table):
31133 Change type to hash_table. Update dependent calls and types.
31134
31135 * trans-mem.c (htab_t tm_new_mem_hash):
31136 Change type to hash_table. Update dependent calls and types.
31137
31138 * tree-browser.c (htab_t TB_up_ht):
31139 Change type to hash_table. Update dependent calls and types.
31140
31141 * tree-cfg.c (htab_t discriminator_per_locus):
31142 Change type to hash_table. Update dependent calls and types.
31143
31144 * tree-complex.c: Include tree-hasher.h
31145 (htab_t complex_variable_components):
31146 Change type to hash_table. Update dependent calls and types.
31147
31148 * tree-eh.c (htab_t finally_tree):
31149 Change type to hash_table. Update dependent calls and types.
31150
31151 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
31152 struct int_tree_hasher.
31153 (extern int_tree_map_eq): Likewise.
31154 (uid_decl_map_hash): Removed.
31155 (extern decl_tree_map_eq): Likewise.
31156
31157 * tree-hasher.h: New.
31158 (struct int_tree_hasher): New.
31159 (typedef int_tree_htab_type): New.
31160
31161 * tree-inline.c: Include gimplify-ctx.h.
31162
31163 * tree-mudflap.c: Include gimplify-ctx.h.
31164
31165 * tree-parloops.c: Include tree-hasher.h.
31166 (htab_t eliminate_local_variables_stmt::decl_address):
31167 Change type to hash_table. Update dependent calls and types.
31168 (htab_t separate_decls_in_region::decl_copies): Likewise.
31169
31170 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
31171 Change type to hash_table. Update dependent calls and types.
31172
31173 * tree-sra.c (candidates):
31174 Change type to hash_table. Update dependent calls and types.
31175
31176 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
31177 in tree-flow.h.
31178 (int_tree_map_hash): Likewise.
31179
31180 * tree-ssa-dom.c (htab_t avail_exprs):
31181 Change type to hash_table. Update dependent calls and types.
31182
31183 * tree-ssa-live.c (var_map_base_init::tree_to_index):
31184 Change type to hash_table. Update dependent calls and types.
31185
31186 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
31187 Change type to hash_table. Update dependent calls and types.
31188
31189 * tree-ssa-phiopt.c (seen_ssa_names):
31190 Change type to hash_table. Update dependent calls and types.
31191
31192 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
31193 Change type to hash_table. Update dependent calls and types.
31194
31195 * tree-ssa-uncprop.c (equiv):
31196 Change type to hash_table. Update dependent calls and types.
31197
31198 2013-04-25 Jakub Jelinek <jakub@redhat.com>
31199
31200 PR rtl-optimization/57003
31201 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
31202 call note_stores with kill_clobbered_value callback again after
31203 killing regs_invalidated_by_call.
31204
31205 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31206
31207 * config/aarch64/aarch64-simd.md
31208 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
31209 (aarch64_simd_bsl<mode>): Likewise.
31210 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
31211
31212 2013-04-25 Marek Polacek <polacek@redhat.com>
31213
31214 PR tree-optimization/57066
31215 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
31216
31217 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31218
31219 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
31220
31221 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31222
31223 * config/aarch64/aarch64-builtins.c
31224 (aarch64_fold_builtin): New.
31225 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
31226 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
31227 * config/aarch64/aarch64-simd-builtins.def (abs): New.
31228 * config/aarch64/arm_neon.h
31229 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
31230
31231 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31232 Tejas Belagod <tejas.belagod@arm.com>
31233
31234 * config/aarch64/aarch64-builtins.c
31235 (aarch64_gimple_fold_builtin): New.
31236 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
31237 * config/aarch64/aarch64-simd-builtins.def (addv): New.
31238 * config/aarch64/aarch64-simd.md (addpv4sf): New.
31239 (addvv4sf): Update.
31240 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
31241
31242 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
31243
31244 * config/aarch64/aarch64.md
31245 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
31246
31247 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
31248
31249 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
31250 (*ngcsi_uxtw): New pattern.
31251
31252 2013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31253 Julian Brown <julian@codesourcery.com>
31254
31255 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
31256 (TB_DREG): Add T_V4HF.
31257 (v4hf_UP): New macro.
31258 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
31259 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
31260 Handle initialisation of V4HF. Adjust initialisation of reinterpret
31261 built-ins.
31262 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
31263 (arm_vector_mode_supported_p): Handle V4HF.
31264 (arm_mangle_map): Handle V4HFmode.
31265 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
31266 * config/arm/arm_neon_builtins.def: Add entries for
31267 vcvtv4hfv4sf, vcvtv4sfv4hf.
31268 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
31269 (neon_vcvtv4hfv4sf): Likewise.
31270 * config/arm/neon-gen.ml: Handle half-precision floating point
31271 features.
31272 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
31273 * config/arm/arm_neon.h: Regenerate.
31274 * config/arm/neon.ml (type elts): Add F16.
31275 (type vectype): Add T_float16x4, T_floatHF.
31276 (type vecmode): Add V4HF.
31277 (type features): Add Requires_FP_bit feature.
31278 (elt_width): Handle F16.
31279 (elt_class): Likewise.
31280 (elt_of_class_width): Likewise.
31281 (mode_of_elt): Refactor.
31282 (type_for_elt): Handle F16, fix error messages.
31283 (vectype_size): Handle T_float16x4.
31284 (vcvt_sh): New function.
31285 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
31286 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
31287 (string_of_mode): Handle V4HF.
31288 * doc/arm-neon-intrinsics.texi: Regenerate.
31289
31290 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31291
31292 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
31293 format specifier in 'X' case.
31294
31295 2013-04-25 Alan Modra <amodra@gmail.com>
31296
31297 PR target/57052
31298 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
31299 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
31300 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
31301 Repeat for many other rotate/shift and mask patterns using subregs.
31302 Name lshiftrt insns.
31303 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
31304 on WORDS_BIG_ENDIAN.
31305
31306 2013-04-25 Alan Modra <amodra@gmail.com>
31307
31308 * config.gcc: Support little-endian powerpc-linux targets.
31309 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
31310 (LINK_OS_LINUX_SPEC): Define.
31311 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
31312 Preserve MASK_LITTLE_ENDIAN.
31313 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
31314 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
31315 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
31316 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
31317 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
31318 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
31319 Correct fp word order for little-endian. Don't shift toc entries
31320 smaller than a word for little-endian.
31321 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
31322 (bswapdi2 splits): Correct low-part subreg for little-endian.
31323 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
31324 low/high where such is correct only for be.
31325 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
31326 little-endian for -mcall-aixdesc.
31327
31328 2013-04-25 Alan Modra <amodra@gmail.com>
31329
31330 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
31331 replace_equiv_address_nv.
31332
31333 2013-04-25 Alan Modra <amodra@gmail.com>
31334
31335 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
31336
31337 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
31338
31339 Revert:
31340 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
31341 * rtl.h (struct rtx_def): ...
31342
31343 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
31344
31345 PR rtl-optimizations/57046
31346 * lra-constraints (split_reg): Set up lra_risky_transformations_p
31347 for multi-reg splits.
31348
31349 2013-04-24 H.J. Lu <hongjiu.lu@intel.com>
31350
31351 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
31352
31353 2013-04-24 Sterling Augustine <saugustine@google.com>
31354
31355 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
31356 (comp_dir_string, debug_str_dwo_section): New.
31357 (DEBUG_STR_DWO_SECTION): Rename to ...
31358 (DEBUG_DWO_STR_SECTION): ... this.
31359 (DEBUG_NORM_STR_SECTION): Delete.
31360 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
31361 (DEBUG_STR_DWO_SECTION_FLAGS): New.
31362 (find_AT_string): Move most logic to ...
31363 (find_AT_string_in_table): ... here. New.
31364 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
31365 add_skeleton_AT_string. Delete logic.
31366 (output_skeleton_debug_sections): Remove call to
31367 add_top_level_skeleton_die_attrs.
31368 (add_comp_dir_attribute): Move logic to comp_dir_string.
31369 (dwarf2out_init): Initialize debug_str_dwo_section.
31370 (output_indirect_string): Call find_string_form.
31371 (output_indirect_strings): Rewrite.
31372 (prune_unused_types): Empty skeleton_debug_str_hash.
31373 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
31374 (dwarf2out_finish): Call output_indirect_strings.
31375
31376 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
31377
31378 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
31379
31380 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
31381
31382 * rtl.h (struct rtx_def): Add comment for field jump.
31383 (LRA_SUBREG_P): New macro.
31384 * recog.c (register_operand): Check LRA_SUBREG_P.
31385 * lra.c (lra): Add note at the end of RTL code. Align non-empty
31386 stack frame.
31387 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
31388 (lra_final_code_change): Skip subreg change for operators.
31389 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
31390 if there are no operand changes.
31391 * lra-constraints.c (curr_insn_set): New.
31392 (match_reload): Set LRA_SUBREG_P.
31393 (emit_spill_move): Ditto.
31394 (check_and_process_move): Use curr_insn_set. Process only single
31395 set insns. Don't initialize sec_mem_p and change_p.
31396 (simplify_operand_subreg): Use LRA_SUBREG_P.
31397 (reg_in_class_p): New function.
31398 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
31399 of #ifdef. Add code to remove cycling.
31400 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
31401 non-null disp. Reload inner instead of disp when base and index
31402 are null. Try to put lo_sum into register.
31403 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
31404 (check_and_process_move): Move code for move cost check to
31405 simple_move_p. Remove equiv_substitution.
31406 (simple_move_p): New function.
31407 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
31408 curr_insn_set. Call check_and_process_move only for single set
31409 insns. Use the new function. Move call of check_and_process_move
31410 after operand equiv substitution and address process.
31411
31412 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
31413
31414 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
31415 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
31416 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
31417
31418 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
31419
31420 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
31421
31422 2013-04-24 Marek Polacek <polacek@redhat.com>
31423
31424 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
31425 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
31426 (select_loops_exit_conditions): Likewise.
31427 (number_of_iterations_for_all_loops): Likewise.
31428 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
31429 (scev_analysis): Likewise.
31430
31431 2013-04-02 Catherine Moore <clm@codesourcery.com>
31432 Chao-ying Fu <fu@mips.com>
31433
31434 * config/mips/micromips.md (jraddiusp): New pattern.
31435 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
31436 instruction if possible.
31437
31438 2013-04-24 Alan Modra <amodra@gmail.com>
31439
31440 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
31441
31442 2013-04-24 Julian Brown <julian@codesourcery.com>
31443 Chung-Lin Tang <cltang@codesourcery.com>
31444
31445 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
31446 dependency behavior in enumeration type DIE generation. Add TODO note
31447 to comments about future DW_FORM_sdata/udata re-work of related code.
31448
31449 2013-04-23 Lawrence Crowl <crowl@google.com>
31450
31451 * Makefile.in: Update as needed below.
31452
31453 * hash-table.h (class hash_table):
31454 Correct many methods with parameter types compare_type to the correct
31455 value_type. (Correct code was unlikely to notice the change.)
31456 (hash_table::elements_with_deleted) New.
31457 (class hashtable::iterator): New.
31458 (hashtable::begin()): New.
31459 (hashtable::end()): New.
31460 (FOR_EACH_HASH_TABLE_ELEMENT): New.
31461
31462 * statistics.c (statistics_hashes):
31463 Change type to hash_table. Update dependent calls and types.
31464
31465 * tree-into-ssa.c (var_infos):
31466 Change type to hash_table. Update dependent calls and types.
31467
31468 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
31469 Change type to hash_table. Update dependent calls and types.
31470
31471 * tree-ssa-loop-im.c (struct mem_ref.refs):
31472 Change type to hash_table. Update dependent calls and types.
31473
31474 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
31475 Change type to hash_table. Update dependent calls and types.
31476
31477 * tree-ssa-sccvn.c (vn_tables_s::nary):
31478 Change type to hash_table. Update dependent calls and types.
31479 (vn_tables_s::phis): Likewise.
31480 (vn_tables_s::references): Likewise.
31481
31482 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
31483 (vn_reference_eq): Update parameter and return types.
31484
31485 * tree-ssa-structalias.c (pointer_equiv_class_table):
31486 Change type to hash_table. Update dependent calls and types.
31487 (location_equiv_class_table): Likewise.
31488
31489 * tree-vect-data-refs.c: Consequential changes for making
31490 peeling a hash_table.
31491
31492 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
31493 (destroy_loop_vec_info): Dependent hash_table update.
31494
31495 * tree-vectorizer.h (peeling_htab):
31496 Change type to hash_table. Update dependent calls and types.
31497
31498 2013-04-23 Shiva Chen <shiva0217@gmail.com>
31499
31500 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
31501 to check the register content is equal or not.
31502 * lra-constraints.c (match_reload): Use lra_assign_reg_val
31503 to assign register content record.
31504 * lra-eliminations.c (update_reg_eliminate): Use
31505 lra_update_reg_val_offset to update register content offset.
31506 * lra-int.h (struct lra_reg): Add offset member.
31507 (lra_reg_val_equal_p): New static inline function.
31508 (lra_update_reg_val_offset): New static inline function.
31509 (lra_assign_reg_val): New static inline function.
31510 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
31511 to assign register content record.
31512 (initialize_lra_reg_info_element): Initial offset to zero.
31513
31514 2013-04-23 Catherine Moore <clm@codesourcery.com>
31515
31516 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
31517 operands. Record compression.
31518
31519 2013-04-23 Xinliang David Li <davidxl@google.com>
31520
31521 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
31522
31523 2013-04-23 Richard Biener <rguenther@suse.de>
31524
31525 PR middle-end/57036
31526 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
31527 parameter, only add abnormal goto edges from the copied body
31528 if the call could perform abnormal gotos.
31529 (copy_cfg_body): Adjust.
31530
31531 2013-04-23 Sofiane Naci <sofiane.naci@arm.com>
31532
31533 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
31534
31535 2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
31536
31537 * coretypes.h (gimple_stmt_iterator): Add struct to make
31538 compatible with C.
31539
31540 2013-04-23 Richard Biener <rguenther@suse.de>
31541
31542 PR tree-optimization/57026
31543 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
31544 from SSA names occuring in abnormal PHI nodes.
31545
31546 2013-04-22 Andi Kleen <ak@linux.intel.com>
31547
31548 * lto/lto.c (print_lto_report_1): Fix LTO report names.
31549
31550 2013-04-22 Andi Kleen <ak@linux.intel.com>
31551
31552 * lto/lto.c (print_lto_report_1): Declare early.
31553 (read_cgraph_and_symbols): Call print_lto_report_1 early.
31554
31555 2013-04-22 Andi Kleen <ak@linux.intel.com>
31556
31557 * common.opt (-flto-report-wpa): Add.
31558 * doc/invoke.texi (-flto-report-wpa): Add.
31559 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
31560 (lto_main): dito.
31561
31562 2013-04-22 Xinliang David Li <davidxl@google.com>
31563
31564 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
31565 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
31566 * Makefile.in: New dependency
31567
31568 David Daney <ddaney.cavm@gmail.com>
31569
31570 * configure.ac (gcc_cv_as_micromips_support): Use the
31571 --fatal-warnings option.
31572 * configure: Regenerate.
31573
31574 2013-04-22 Marek Polacek <polacek@redhat.com>
31575
31576 PR sanitizer/56990
31577 * tsan.c (instrument_expr): Don't instrument expression
31578 in case its size is zero.
31579
31580 2013-04-22 Uros Bizjak <ubizjak@gmail.com>
31581
31582 PR target/57032
31583 Revert:
31584 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
31585
31586 * config/alpha/alpha.c (TARGET_LRA_P): New define.
31587
31588 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
31589
31590 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
31591 (gimple_stmt_iterator): New typedef.
31592 * gimple.h (gimple_stmt_iterator): Rename to...
31593 (gimple_stmt_iterator_d): ... This.
31594 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
31595 trees be valid for GIMPLE and GENERIC.
31596 (TARGET_GIMPLE_FOLD_BUILTIN): New.
31597 * gimple-fold.c (gimple_fold_call): Call target hook
31598 gimple_fold_builtin.
31599 * hooks.c (hook_bool_gsiptr_false): New.
31600 * hooks.h (hook_bool_gsiptr_false): New.
31601 * target.def (fold_stmt): New.
31602 * doc/tm.texi: Regenerate.
31603
31604 2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
31605
31606 PR target/57018
31607 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
31608 a set sp if no stack realignment.
31609
31610 2013-04-22 Nick Clifton <nickc@redhat.com>
31611
31612 * config.gcc (tilegx-linux): Extend extra_objs rather than
31613 overwriting it.
31614 (tilepro-linux): Likewise.
31615
31616 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
31617
31618 * config/aarch64/aarch64-builtins.c
31619 (CF): Remove.
31620 (CF0, CF1, CF2, CF3, CF4, CF10): New.
31621 (VAR<1-12>): Add MAP parameter.
31622 (BUILTIN_*): Likewise.
31623 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
31624 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
31625 (aarch64_ushl_n<mode>): Likewise.
31626 (aarch64_sshr_n<mode>): Likewise.
31627 (aarch64_ushr_n<mode>): Likewise.
31628 (aarch64_<maxmin><mode>): Likewise.
31629 (aarch64_sqrt<mode>): Likewise.
31630 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
31631 (vshr<q>_n_*): Likewise.
31632
31633 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
31634
31635 * config/aarch64/aarch64-builtins.c
31636 (aarch64_simd_builtin_type_mode): Handle SF types.
31637 (sf_UP): Define.
31638 (BUILTIN_GPF): Define.
31639 (aarch64_init_simd_builtins): Handle SF types.
31640 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
31641 (frecps): Likewise.
31642 (frecpx): Likewise.
31643 * config/aarch64/aarch64-simd.md
31644 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
31645 (aarch64_frecpe<mode>): New.
31646 (aarch64_frecps<mode>): Likewise.
31647 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
31648 (v8type): Add frecp<esx>.
31649 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
31650 (aarch64_frecps<mode>): Likewise.
31651 * config/aarch64/iterators.md (FRECP): New.
31652 (frecp_suffix): Likewise.
31653 * config/aarch64/arm_neon.h
31654 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
31655
31656 2013-04-22 Christian Bruel <christian.bruel@st.com>
31657
31658 PR target/56995
31659 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
31660 (REG_CLASS_NAMES): Idem.
31661 (REG_CLASS_CONTENTS): Idem.
31662 (REGCLASS_HAS_FP_REG): Idem.
31663 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
31664 (sh_conditional_register_usage): Idem.
31665
31666 2013-04-21 Jeff Law <law@redhat.com>
31667
31668 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
31669 (ssa_forward_propagate_and_combine): Use it.
31670
31671 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
31672
31673 * lra.c: Update the flow chart diagram.
31674
31675 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
31676
31677 PR rtl-optimization/56847
31678 * lra-constraints.c (process_alt_operands): Discourage alternative
31679 with non-matche doffsettable memory constraint fro memory with
31680 known offset.
31681
31682 2013-04-19 Richard Biener <rguenther@suse.de>
31683
31684 PR tree-optimization/56982
31685 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
31686 function.
31687 * gimplify.c (gimplify_call_expr): Notice special calls.
31688 (gimplify_modify_expr): Likewise.
31689 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
31690 abnormal control flow receivers.
31691 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
31692 in the same way as cfun->has_nonlocal_labels.
31693 (gimple_purge_dead_abnormal_call_edges): Likewise.
31694 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
31695 receivers start a basic-block.
31696
31697 2013-04-19 Richard Biener <rguenther@suse.de>
31698
31699 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
31700 member ...
31701 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
31702 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
31703 (SLP_TREE_LOAD_PERMUTATION): Add.
31704 (vect_transform_slp_perm_load): Adjust prototype.
31705 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
31706 (vect_free_slp_instance): Likewise.
31707 (vect_create_new_slp_node): Likewise.
31708 (vect_supported_slp_permutation_p): Remove.
31709 (vect_slp_rearrange_stmts): Adjust.
31710 (vect_supported_load_permutation_p): Likewise. Inline
31711 vect_supported_slp_permutation_p here.
31712 (vect_analyze_slp_instance): Compute load permutations per
31713 slp node instead of per instance.
31714 (vect_get_slp_defs): Adjust.
31715 (vect_transform_slp_perm_load): Likewise.
31716 (vect_schedule_slp_instance): Remove redundant code.
31717 (vect_schedule_slp): Remove hack for PR56270, add it ...
31718 * tree-vect-stmts.c (vectorizable_load): ... here, do not
31719 CSE loads for SLP. Adjust.
31720
31721 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
31722
31723 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
31724 spelling in two comments.
31725
31726 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
31727
31728 PR target/56797
31729 * config/arm/arm.c (load_multiple_sequence): Require SP
31730 as base register for loads if SP is in the register list.
31731
31732 2013-04-19 Martin Jambor <mjambor@suse.cz>
31733
31734 PR tree-optimization/56718
31735 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
31736 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
31737 and made public. Adjusted all callers.
31738 (ipa_intraprocedural_devirtualization): New function.
31739 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
31740 (ipa_intraprocedural_devirtualization): Likewise.
31741 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
31742
31743 2013-04-19 Richard Biener <rguenther@suse.de>
31744
31745 PR tree-optimization/57000
31746 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
31747
31748 2013-04-19 Terry Guo <terry.guo@arm.com>
31749
31750 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
31751 Replace with ...
31752 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
31753 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
31754 (cortex_m4_fmacs): Use new reservations.
31755 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
31756
31757 2013-04-18 Vladimir Makarov <vmakarov@redhat.com>
31758
31759 PR rtl-optimization/56999
31760 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
31761 related code.
31762 (lra_coalesce): Remove split_origin_bitmap and related code.
31763 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
31764 ranges if necessary.
31765
31766 2013-04-18 Uros Bizjak <ubizjak@gmail.com>
31767
31768 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
31769 New array.
31770 (ix86_expand_call): Remove clobbered_registers array and use
31771 x86_64_ms_sysv_extra_clobbered_registers instead.
31772 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
31773 Declare here.
31774 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
31775 predicate.
31776 * config/i386/i386.md (*call_rex64_ms_sysv): Use
31777 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
31778 (*call_value_rex64_ms_sysv): Ditto.
31779
31780 2013-04-18 Cary Coutant <ccoutant@google.com>
31781
31782 * dwarf2out.c (output_pubnames): Check die_perennial_p of
31783 parent instead of die_mark.
31784
31785 2013-04-18 Diego Novillo <dnovillo@google.com>
31786
31787 * gimple.c (create_gimple_tmp): New.
31788 (get_expr_type): New.
31789 (build_assign): New.
31790 (build_type_cast): New.
31791 * gimple.h (enum ssa_mode): Define.
31792 (gimple_seq_set_location): New.
31793 * asan.c (build_check_stmt): Change some gimple_build_* calls
31794 to use build_assign and build_type_cast.
31795
31796 2013-04-18 Richard Biener <rguenther@suse.de>
31797
31798 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
31799 handle negative step. Remove redundant checks.
31800 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
31801 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
31802 for negative step and grouped loads fail to vectorize.
31803
31804 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
31805
31806 * emit-rtl.c (reset_insn_used_flags): New function.
31807 (reset_all_used_flags): Use it.
31808 (verify_insn_sharing): New function.
31809 (verify_rtl_sharing): Fix verification for SEQUENCEs.
31810
31811 2013-04-18 Jakub Jelinek <jakub@redhat.com>
31812
31813 PR tree-optimization/56984
31814 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
31815 and (x >> M) >= N don't register any assertion if N << M is the
31816 minimum value.
31817
31818 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
31819
31820 * lower-subreg.c (resolve_simple_move): If called self-recursive,
31821 do not delete_insn insns that have not yet been emitted, only
31822 unlink them with remove_insn.
31823 * df-scan.c (df_insn_delete): Revert r197492.
31824
31825 2013-04-17 Steven Bosscher <steven@gcc.gnu.org>
31826
31827 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
31828 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
31829
31830 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
31831
31832 * config/arm/arm.md (movsicc_insn): Convert define_insn into
31833 define_insn_and_split.
31834 (and_scc,ior_scc,negscc): Likewise.
31835 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
31836
31837 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
31838
31839 * config/arm/arm.c (use_return_insn): Return 0 for targets that
31840 can benefit from using a sequence of LDRD instructions in epilogue
31841 instead of a single LDM instruction.
31842
31843 2013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
31844
31845 PR 45688
31846 * doc/extend.texi: Fix typo.
31847
31848 2013-04-17 Richard Biener <rguenther@suse.de>
31849
31850 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
31851 (vect_build_slp_tree): ... here.
31852 (vect_build_slp_tree_1): Compute which stmts of the SLP group
31853 match. Remove special-casing of mismatched complex loads.
31854 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
31855 re-try the match with swapped commutative operands.
31856 (vect_supported_load_permutation_p): Remove special-casing of
31857 mismatched complex loads.
31858 (vect_analyze_slp_instance): Adjust.
31859
31860 2013-04-17 Richard Biener <rguenther@suse.de>
31861
31862 PR rtl-optimization/56921
31863 * cfgloop.h (struct loop): Add simple_loop_desc member.
31864 (struct niter_desc): Mark with GTY(()).
31865 (simple_loop_desc): Do not use aux field but simple_loop_desc.
31866 * loop-iv.c (get_simple_loop_desc): Likewise.
31867 (free_simple_loop_desc): Likewise.
31868
31869 Revert
31870 2013-04-16 Richard Biener <rguenther@suse.de>
31871
31872 PR rtl-optimization/56921
31873 * loop-init.c (pass_rtl_move_loop_invariants): Add
31874 TODO_do_not_ggc_collect to todo_flags_finish.
31875 (pass_rtl_unswitch): Same.
31876 (pass_rtl_unroll_and_peel_loops): Same.
31877 (pass_rtl_doloop): Same.
31878
31879 2013-04-17 Eric Botcazou <ebotcazou@adacore.com>
31880
31881 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
31882 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
31883 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
31884 references.
31885 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
31886 * tree-streamer.c (record_common_node): Adjust reference in comment.
31887
31888 2013-04-17 Terry Guo <terry.guo@arm.com>
31889
31890 * config/arm/cortex-m4.md: Add a new bypass.
31891
31892 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
31893
31894 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
31895 New pattern.
31896 (*subs_<optab><mode>_multp2): New pattern.
31897 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
31898 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
31899
31900 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
31901
31902 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
31903 (*subs_mul_imm_<mode>): New pattern.
31904
31905 2013-04-16 David Edelsohn <dje.gcc@gmail.com>
31906
31907 PR target/56948
31908 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
31909 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
31910 (vsx_movti_32bit): Change j->wa to O->wa.
31911
31912 2013-04-16 Richard Biener <rguenther@suse.de>
31913
31914 PR rtl-optimization/56921
31915 * loop-init.c (pass_rtl_move_loop_invariants): Add
31916 TODO_do_not_ggc_collect to todo_flags_finish.
31917 (pass_rtl_unswitch): Same.
31918 (pass_rtl_unroll_and_peel_loops): Same.
31919 (pass_rtl_doloop): Same.
31920
31921 2013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
31922
31923 * config/arm/arm.c (emit_multi_reg_push): New declaration
31924 for an existing function.
31925 (arm_emit_strd_push): New function.
31926 (arm_expand_prologue): Used here.
31927 (arm_emit_ldrd_pop): New function.
31928 (arm_expand_epilogue): Used here.
31929 (arm_get_frame_offsets): Update condition.
31930 (arm_emit_multi_reg_pop): Add a special case for load of a single
31931 register with writeback.
31932
31933 2013-04-16 Uros Bizjak <ubizjak@gmail.com>
31934
31935 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
31936 description.
31937
31938 2013-04-16 Richard Biener <rguenther@suse.de>
31939
31940 PR tree-optimization/56756
31941 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
31942 (first_mem_ref_loc): New.
31943 (execute_sm): Place the load temporarily before a previous
31944 access instead of in the latch edge to ensure its SSA dependencies
31945 are defined at points dominating the load.
31946
31947 2013-04-16 Steven Bosscher <steven@gcc.gnu.org>
31948
31949 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
31950 correct fix by moving header and footer insn to the footer of
31951 the merged basic block. Clear BB_END of the merged-away block.
31952
31953 PR middle-end/43631
31954 * emit-rtl.c (make_note_raw): New function.
31955 (link_insn_into_chain): New static inline function.
31956 (add_insn): Use it.
31957 (add_insn_before, add_insn_after): Factor insn chain linking code...
31958 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
31959 using link_insn_into_chain.
31960 (note_outside_basic_block_p): New helper function for emit_note_after
31961 and emit_note_before.
31962 (emit_note_after): Use nobb variant of add_insn_after if the note
31963 should not be contained in a basic block.
31964 (emit_note_before): Use nobb variant of add_insn_before if the note
31965 should not be contained in a basic block.
31966 (emit_note_copy): Use make_note_raw.
31967 (emit_note): Likewise.
31968 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
31969 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
31970 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
31971 the moved barrier the tail of the basic block it follows.
31972 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
31973
31974 2013-04-15 Jakub Jelinek <jakub@redhat.com>
31975
31976 PR tree-optimization/56962
31977 * gimple-ssa-strength-reduction.c (record_increment): Only set
31978 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
31979 either rhs1 or rhs2 is equal to c->base_expr.
31980
31981 2013-04-15 Richard Biener <rguenther@suse.de>
31982
31983 PR tree-optimization/56933
31984 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
31985 member.
31986 (GROUP_READ_WRITE_DEPENDENCE): Remove.
31987 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
31988 * tree-vect-data-refs.c (vect_analyze_group_access): Move
31989 dependence check ...
31990 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
31991 ... here.
31992 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
31993 GROUP_READ_WRITE_DEPENDENCE.
31994
31995 2013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31996
31997 * emit-rtl.c (reset_all_used_flags): New function.
31998 (verify_rtl_sharing): Call reset_all_used_flags before and after
31999 performing the checks.
32000
32001 2013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32002
32003 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
32004 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
32005 * config/arm/constraints.md (De): New constraint.
32006 * config/arm/neon.md (anddi3_neon): Delete.
32007 (neon_vand<mode>): Expand to standard anddi3 pattern.
32008 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
32009 Move earlier in the file.
32010 (neon_inv_logic_op2): Likewise.
32011 (arm_anddi_operand_neon): New predicate.
32012
32013 2013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32014
32015 * configure.ac (gcc_cv_ld_as_needed): Set
32016 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
32017 Use -z ignore, -z record on *-*-solaris2*.
32018 (HAVE_LD_AS_NEEDED): Update comment.
32019 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
32020 * configure: Regenerate.
32021 * config.in: Regenerate.
32022 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
32023 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
32024 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
32025 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
32026 equivalents. Fix markup.
32027 * doc/tm.texi: Regenerate.
32028
32029 2013-04-15 Andrew Hsieh <andrewhsieh.google.com>
32030
32031 * config/i386/i386.opt: New option mstack-protector-guard=.
32032 * config/i386/i386-opts.h: Add enum stack_protector_guard.
32033 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
32034 TARGET_SSP_TLS_GUARD.
32035 * config/i386/i386.c (ix86_option_override_internal): Set
32036 ix86_stack_protector_guard.
32037 * config/i386/i386.md (stack_protect_set): Enable for
32038 TARGET_SSP_TLS_GUARD only.
32039 (stack_protect_set_<mode>): Ditto.
32040 (stack_protect_test): Ditto.
32041 (stack_protect_test_<mode>): Ditto.
32042 * doc/invoke.texi (i386 Option): Document.
32043
32044 2013-04-15 Eric Botcazou <ebotcazou@adacore.com>
32045
32046 PR target/56890
32047 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
32048 (S_MODES): Set H_MODE bit.
32049 (SF_MODES): Set only S_MODE and SF_MODE bits.
32050 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
32051 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
32052 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
32053 <MODE_FLOAT>: Likewise.
32054
32055 2013-04-15 Joey Ye <joey.ye@arm.com>
32056
32057 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
32058
32059 2013-04-15 Joey Ye <joey.ye@arm.com>
32060
32061 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
32062 for real far jump.
32063 (thumb_far_jump_used_p): Count instruction size and set
32064 far_jump_used.
32065
32066 2013-04-14 Eric Botcazou <ebotcazou@adacore.com>
32067
32068 * reorg.c (fill_simple_delay_slots): Reindent block of code.
32069 * resource.c (mark_target_live_regs): Reformat conditional block.
32070
32071 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
32072
32073 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
32074 notes, they are emitted only just before final.
32075 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
32076
32077 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
32078
32079 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
32080 * cfgrtl.c (delete_insn): Call it here instead.
32081 * lra-spills.c (lra_final_code_change): Use delete_insn.
32082 * haifa-sched.c (sched_remove_insn): Likewise.
32083 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
32084 returning to the nop pool.
32085 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
32086 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
32087
32088 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
32089
32090 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
32091 * doc/tm.texi: Regenerated.
32092
32093 2013-04-12 Uros Bizjak <ubizjak@gmail.com>
32094
32095 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
32096 QImode checks.
32097
32098 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
32099
32100 * df-core.c (df_find_def): Compare register numbers.
32101 (df_find_use): Likewise.
32102
32103 2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
32104
32105 PR target/56903
32106 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
32107 lra_in_progress for return.
32108
32109 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
32110
32111 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
32112 define_insn into define_insn_and_split and emit movsicc patterns.
32113
32114 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
32115
32116 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
32117
32118 2013-04-12 Richard Biener <rguenther@suse.de>
32119
32120 * tree-pass.h (TODO_do_not_ggc_collect): New.
32121 * passes.c (execute_one_ipa_transform_pass): Honor
32122 TODO_do_not_ggc_collect.
32123 (execute_one_pass): Likewise.
32124
32125 Revert
32126 2013-04-10 Richard Biener <rguenther@suse.de>
32127
32128 * passes.c (init_optimization_passes): Remove reload pass.
32129 * ira.c (do_reload): Merge into ...
32130 (ira): ... this.
32131 (rest_of_handle_reload): Remove.
32132 (pass_reload): Likewise.
32133 * config/i386/i386.c (ix86_option_override): Refer to ira instead
32134 of reload for vzeroupper pass placement.
32135
32136 2013-04-12 Jakub Jelinek <jakub@redhat.com>
32137
32138 PR tree-optimization/56918
32139 PR tree-optimization/56920
32140 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
32141 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
32142 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
32143 use wide_mul_with_sign method.
32144
32145 2013-04-12 Richard Biener <rguenther@suse.de>
32146
32147 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
32148 not be considered a gimple constant.
32149
32150 2013-04-12 Marc Glisse <marc.glisse@inria.fr>
32151
32152 * fold-const.c (const_binop): Handle vector shifts by a scalar.
32153 (fold_binary_loc): Call const_binop also for mixed vector-scalar
32154 operations.
32155
32156 2013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
32157 Jakub Jelinek <jakub@redhat.com>
32158
32159 * opts.c: Include diagnostic-color.h.
32160 (common_handle_option): Handle OPT_fdiagnostics_color_.
32161 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
32162 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
32163 (diagnostic-color.o): New.
32164 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
32165 (diagnostic_color_rule): New enum.
32166 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
32167 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
32168 the location string.
32169 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
32170 either NULL, or color kind.
32171 * diagnostic-color.c: New file.
32172 * diagnostic-color.h: New file.
32173 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
32174 arguments.
32175 * doc/invoke.texi (-fdiagnostics-color): Document.
32176 * pretty-print.h (pp_show_color): Define.
32177 (struct pretty_print_info): Add show_color field.
32178 * diagnostic.c: Include diagnostic-color.h.
32179 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
32180 macros. Colorize error:, warning: etc. strings and also the location
32181 string.
32182 (diagnostic_show_locus): Colorize the caret line.
32183 * pretty-print.c: Include diagnostic-color.h.
32184 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
32185 inside of %< %> quotes or quoted through q format modifier.
32186
32187 2013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32188
32189 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
32190
32191 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
32192
32193 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
32194 code in CC_NZ mode.
32195 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
32196 pattern.
32197
32198 2013-04-11 Marek Polacek <polacek@redhat.com>
32199
32200 PR tree-optimization/48184
32201 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
32202
32203 2013-04-11 Eric Botcazou <ebotcazou@adacore.com>
32204
32205 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
32206 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
32207 (skip_simple_arithmetic): Tidy up.
32208 * tree.h (skip_simple_constant_arithmetic): Declare.
32209
32210 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
32211
32212 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
32213
32214 2013-04-11 Richard Biener <rguenther@suse.de>
32215
32216 * tree-vect-loop.c (get_initial_def_for_induction): Properly
32217 generate vector constants.
32218
32219 2013-04-11 Richard Biener <rguenther@suse.de>
32220
32221 PR tree-optimization/56878
32222 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
32223 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
32224 New function.
32225 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
32226 Prefer to align the DR with the most invariant base address.
32227
32228 2013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
32229
32230 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
32231 comment.
32232
32233 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
32234
32235 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
32236 floating-point vector comparisons against 0.
32237
32238 2013-04-11 Jakub Jelinek <jakub@redhat.com>
32239
32240 PR tree-optimization/56899
32241 * fold-const.c (extract_muldiv_1): Apply distributive law
32242 only if TYPE_OVERFLOW_WRAPS (ctype).
32243
32244 2013-04-11 Bin Cheng <bin.cheng@arm.com>
32245
32246 PR target/56124
32247 * ira-costs.c (scan_one_insn): Check whether the source rtx of
32248 loading has side effect.
32249
32250 2013-04-10 Steven Bosscher <steven@gcc.gnu.org>
32251
32252 * config/sparc/sparc.c: Include tree-pass.h.
32253 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
32254 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
32255 head of file. Change return type. Split off gate function.
32256 (sparc_gate_work_around_errata): New function.
32257 (pass_work_around_errata): New pass definition.
32258 (insert_pass_work_around_errata) New pass insert definition to
32259 insert pass_work_around_errata just after delayed-branch scheduling.
32260 (sparc_option_override): Insert the pass.
32261 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
32262
32263 2013-04-10 David S. Miller <davem@davemloft.net>
32264
32265 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
32266 or -mcpu=hypersparc.
32267
32268 * target.def (cstore_mode): New hook.
32269 * target.h: Include insn-codes.h
32270 * targhooks.c: Likewise.
32271 (default_cstore_mode): New function.
32272 * targhooks.h: Declare it.
32273 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
32274 * doc/tm.texi: Rebuild.
32275 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
32276 target hook, rather than inspecting the insn_data.
32277 * config/sparc/sparc.c (sparc_cstore_mode): New function.
32278 (TARGET_CSTORE_MODE): Redefine.
32279 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
32280 result patterns.
32281 * config/sparc/predicates.md (cstore_result_operand): New special
32282 predicate.
32283 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
32284 Use it for operand 0.
32285 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
32286 (*snesi_special): Likewise.
32287 (*snesi_zero): Likewise.
32288 (*seqsi_zero): Likewise.
32289 (*sltu_insn): Likewise.
32290 (*sgeu_insn): Likewise.
32291 (*seqdi_special): Make operand 0 and comparison operation be of
32292 DImode.
32293 (*snedi_special): Likewise.
32294 (*snedi_special_vis3): Likewise.
32295 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
32296 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
32297 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
32298 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
32299 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
32300 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
32301 (*sltu_extend_sp64): Likewise.
32302 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
32303 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
32304 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
32305 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
32306 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
32307
32308 2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
32309
32310 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
32311 (aarch64_start_file): Use the new function.
32312
32313 2013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
32314 Jason Merrill <jason@redhat.com>
32315
32316 * common.opt: Add -gdwarf.
32317 * opts.c (common_handle_option): Handle it.
32318 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
32319
32320 2013-04-10 Richard Biener <rguenther@suse.de>
32321
32322 * passes.c (execute_todo): Do not call ggc_collect conditional here.
32323 (execute_one_ipa_transform_pass): But unconditionally here.
32324 (execute_one_pass): And here.
32325 (init_optimization_passes): Remove reload pass.
32326 * tree-pass.h (TODO_ggc_collect): Remove.
32327 (pass_reload): Likewise.
32328 * ira.c (do_reload): Merge into ...
32329 (ira): ... this.
32330 (rest_of_handle_reload): Remove.
32331 (pass_reload): Likewise.
32332 * config/i386/i386.c (ix86_option_override): Refer to ira instead
32333 of reload for vzeroupper pass placement.
32334 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
32335 and todo_flags_finish of all passes.
32336
32337 2013-04-10 Richard Biener <rguenther@suse.de>
32338
32339 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
32340 first_const_oprnd field, rename first_def_type to first_op_type.
32341 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
32342 (vect_get_and_check_slp_defs): Always use the type of the
32343 operand. Allow mixed vect_external_def, vect_constant_def types.
32344 (vect_get_constant_vectors): Handle mixed vect_external_def,
32345 vect_constant_def types.
32346
32347 2013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
32348
32349 PR tree-optimization/55524
32350 * tree-ssa-math-opts.c
32351 (convert_mult_to_fma): Don't use an fms construct
32352 when we don't have an fms operation, but fnma, and it looks
32353 likely that we'll be able to use the latter.
32354
32355 2013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
32356
32357 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
32358 function.
32359 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
32360 inline fail caused by overwritable functions.
32361
32362 2013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
32363
32364 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
32365 unnecessary bits in the constant power of two case.
32366
32367 2013-04-10 Richard Biener <rguenther@suse.de>
32368
32369 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
32370 broken code swapping operands.
32371 (vect_build_slp_tree): Do not compute load permutations here.
32372 (vect_analyze_slp_instance): Compute load permutations here,
32373 after building the SLP tree.
32374
32375 2013-04-09 Christian Bruel <christian.bruel@st.com>
32376
32377 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
32378 of next/prev_real_insn.
32379
32380 2013-04-09 Jan Hubicka <jh@suse.cz>
32381
32382 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
32383 Drop aliased parameter.
32384 (function_and_variable_visibility): Do not handle alias pairs.
32385 * cgraph.c (varpool_externally_visible_p): Update prototype.
32386 * varpool.c (varpool_add_new_variable): Update.
32387
32388 2013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32389
32390 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
32391
32392 2013-04-09 Steven Bosscher <steven@gcc.gnu.org>
32393
32394 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
32395
32396 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
32397
32398 2013-04-09 Marek Polacek <polacek@redhat.com>
32399
32400 PR tree-optimization/48762
32401 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
32402
32403 2013-04-09 Richard Biener <rguenther@suse.de>
32404
32405 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
32406 dealing with cost.
32407 (vect_build_slp_tree): Likewise.
32408 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
32409 calculating the cost of a SLP instance.
32410 (vect_analyze_slp_instance): Use it from here, after building
32411 the SLP tree.
32412
32413 2013-04-09 Jakub Jelinek <jakub@redhat.com>
32414
32415 PR middle-end/56883
32416 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
32417 expand_omp_for_static_chunk): Use simple_p = true in
32418 force_gimple_operand_gsi calls when assigning to addressable decls.
32419
32420 2013-04-09 Jeff Law <law@redhat.com>
32421
32422 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
32423 when the boolean was created by converting a wider object which
32424 had a boolean range.
32425
32426 2013-04-09 Richard Biener <rguenther@suse.de>
32427
32428 * tree-vectorizer.h (slp_void_p): Remove.
32429 (slp_tree): Typedef before _slp_tree declaration.
32430 (struct _slp_tree): Use a vector of slp_tree as children.
32431 (vect_get_place_in_interleaving_chain): Remove.
32432 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
32433 Move ...
32434 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
32435 and make static.
32436 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
32437 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
32438 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
32439 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
32440 Use slp_node instead of slp_void_p and adjust.
32441
32442 2013-04-09 Richard Biener <rguenther@suse.de>
32443
32444 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
32445 work that is not necessary.
32446
32447 2013-04-09 Jakub Jelinek <jakub@redhat.com>
32448
32449 PR tree-optimization/56854
32450 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
32451 forward into clobber stmts if it would change MEM_REF lhs into
32452 non-MEM_REF.
32453
32454 2013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
32455
32456 * tree.c (type_hash_lookup, type_hash_add): Make static.
32457 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
32458
32459 2013-04-09 Richard Biener <rguenther@suse.de>
32460
32461 * tree.h (unsave_expr_now): Remove.
32462 * tree-inline.c (mark_local_for_remap_r): Remove.
32463 (unsave_expr_1): Likewise.
32464 (unsave_r): Likewise.
32465 (unsave_expr_now): Likewise.
32466 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
32467 (propagate_tree_value): Likewise.
32468
32469 2013-04-08 Steven Bosscher <steven@gcc.gnu.org>
32470
32471 * doc/rtl.texi (sequence): Rewrite documentation to match the
32472 current use of SEQUENCE rtl objects.
32473 * rtl.def (SEQUENCE): Likewise.
32474
32475 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
32476 Update documentation.
32477 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
32478 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
32479
32480 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
32481
32482 2013-04-08 Teresa Johnson <tejohnson@google.com>
32483
32484 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
32485 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
32486 methods.
32487 (estimate_edge_size_and_time): Add comment to suggest using rounding
32488 methods.
32489 (estimate_node_size_and_time): Ditto.
32490 (remap_edge_change_prob): Use helper rounding divide methods.
32491 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
32492 (gimple_mod_pow2_value_transform): Ditto.
32493 (gimple_mod_subtract_transform): Ditto.
32494 (gimple_ic_transform): Ditto.
32495 (gimple_stringops_transform): Ditto.
32496 * stmt.c (conditional_probability): Ditto.
32497 (emit_case_dispatch_table): Ditto.
32498 * lto-cgraph.c (merge_profile_summaries): Ditto.
32499 * tree-optimize.c (execute_fixup_cfg): Ditto.
32500 * cfgcleanup.c (try_forward_edges): Ditto.
32501 * cfgloopmanip.c (scale_loop_profile): Ditto.
32502 (loopify): Ditto.
32503 (duplicate_loop_to_header_edge): Ditto.
32504 (lv_adjust_loop_entry_edge): Ditto.
32505 * tree-vect-loop.c (vect_transform_loop): Ditto.
32506 * profile.c (compute_branch_probabilities): Ditto.
32507 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
32508 * lto-streamer-in.c (input_cfg): Ditto.
32509 * gimple-streamer-in.c (input_bb): Ditto.
32510 * ipa-cp.c (update_profiling_info): Ditto.
32511 (update_specialized_profile): Ditto.
32512 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
32513 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
32514 rounding methods.
32515 * sched-rgn.c (compute_dom_prob_ps): Ditto.
32516 (compute_trg_info): Ditto.
32517 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
32518 (purge_dead_edges): Ditto.
32519 * loop-unswitch.c (unswitch_loop): Ditto.
32520 * cgraphclones.c (cgraph_clone_edge): Ditto.
32521 (cgraph_clone_node): Ditto.
32522 * tree-inline.c (copy_bb): Ditto.
32523 (copy_edges_for_bb): Ditto.
32524 (initialize_cfun): Ditto.
32525 (copy_cfg_body): Ditto.
32526 (expand_call_inline): Ditto.
32527
32528 2013-04-08 Kai Tietz <ktietz@redhat.com>
32529
32530 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
32531 TARGET_CYGWIN64 by TARGET_64BIT.
32532
32533 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
32534
32535 * config/epiphany/epiphany.md (GPR_1): New constant.
32536 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
32537 * config/epiphany/epiphany.c (gen_compare_reg):
32538 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
32539 is already in place.
32540 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
32541 Don't require being called during rtl expansion; If y operlaps r0,
32542 return 0.
32543 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
32544 (epiphany_expand_epilogue): Likewise.
32545
32546 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
32547 Don't use CC_FPmode for ORDERED / UNORDERED.
32548 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
32549
32550 * config/epiphany/constraints.md (CnL): New constraint.
32551 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
32552 * config/epiphany/predicates.md (add_operand): Allow 1024.
32553
32554 * config/epiphany/epiphany.md (logical_op): New code iterator.
32555 (op_mnc): New code attribute.
32556 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
32557 (mov_f+1, mov_f+2): New peephole2 patterns.
32558
32559 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
32560 (cstoresi4): Also allow re-use of zero result when doing a NE
32561 comparison to a non-zero operand.
32562 Use (clobber (scratch)) for first insn if the gpr output is not needed.
32563
32564 * config/epiphany/epiphany.md (<insn_opname>v2si3):
32565 Use gen_addsi3_i / gen_subsi3_i.
32566
32567 2013-04-08 Jakub Jelinek <jakub@redhat.com>
32568
32569 PR c++/34949
32570 PR c++/50243
32571 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
32572 contain anything but clobbers, at most one __builtin_stack_restore,
32573 optionally debug stmts and final resx, and if it has at least one
32574 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
32575 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
32576 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
32577 which isn't defaut definition, remove them.
32578 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
32579 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
32580 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
32581 with MEM_REF LHS with SSA_NAME address.
32582
32583 2013-04-08 Jeff Law <law@redhat.com>
32584
32585 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
32586
32587 2013-04-08 Richard Biener <rguenther@suse.de>
32588
32589 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
32590 extra newline.
32591 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
32592 determined vector type.
32593 (vect_analyze_data_refs): Likewise.
32594 (vect_get_new_vect_var): Adjust.
32595 (vect_create_destination_var): Preserve SSA name versions.
32596 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
32597 not dump anything here.
32598
32599 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
32600
32601 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
32602 Add member lr_slot_known.
32603 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
32604 if necessary.
32605 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
32606 Remove code that sets lr_slot_offset according to what a previous
32607 version of epiphany_emit_save_restore used to do.
32608 (epiphany_emit_save_restore): When doing an lr save or restore,
32609 set/verify lr_slot_known and lr_slot_offset.
32610
32611 2013-04-08 Xinyu Qi <xyqi@marvell.com>
32612
32613 PR target/54338
32614 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
32615 in ALL_REGS.
32616
32617 2013-04-08 Richard Biener <rguenther@suse.de>
32618
32619 * alias.c (find_base_term): Fix thinko in previous change.
32620
32621 2013-04-08 Jakub Jelinek <jakub@redhat.com>
32622
32623 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
32624 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
32625 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
32626 if possible to compute val.
32627 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
32628 For QImode integers don't require anything about precision. Use
32629 const_with_all_bytes_same to find out if the constant doesn't have
32630 repeated bytes in it.
32631
32632 2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32633
32634 * config/s390/s390.c (s390_expand_insv): Only accept insertions
32635 within mode size.
32636
32637 2013-04-08 Marek Polacek <polacek@redhat.com>
32638
32639 PR rtl-optimization/48182
32640 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
32641 value to 1.
32642
32643 2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32644
32645 PR target/55487
32646 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
32647 nuses, make sure we have a label.
32648
32649 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32650
32651 PR target/56843
32652 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
32653 (rs6000_emit_swdiv_low_precision): Remove.
32654 (rs6000_emit_swdiv): Rewrite to handle between one and four
32655 iterations of Newton-Raphson generally; modify required number of
32656 iterations for some cases.
32657 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
32658
32659 2013-04-05 Steven Bosscher <steven@gcc.gnu.org>
32660
32661 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
32662 set-but-unused variable.
32663
32664 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
32665 basic blocks of released function bodies garbage-collectable.
32666
32667 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
32668 (struct rtl_opt_pass): Add TODO_df_finish.
32669
32670 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
32671
32672 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32673
32674 * config/arm/constraints.md (q): New constraint.
32675 * config/arm/ldrdstrd.md: New file.
32676 * config/arm/arm.md (ldrdstrd.md) New include.
32677 (arm_movdi): Use "q" instead of "r" constraint
32678 for double-word memory access.
32679 (movdf_soft_insn): Likewise.
32680 * config/arm/vfp.md (movdi_vfp): Likewise.
32681 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
32682 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
32683 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
32684 (mem_ok_for_ldrd_strd): Likewise.
32685 (output_move_double): Update assertion.
32686
32687 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32688
32689 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
32690
32691 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32692
32693 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
32694 define_insn_and_split.
32695 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
32696
32697 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32698
32699 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
32700 define_insn_and_split.
32701 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
32702 (shiftsi3_compare): New pattern.
32703 (rrx): New pattern.
32704 * config/arm/unspecs.md (UNSPEC_RRX): New.
32705
32706 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32707
32708 * config/arm/arm.md (negdi_extendsidi): New pattern.
32709 (negdi_zero_extendsidi): Likewise.
32710
32711 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32712
32713 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
32714 define_insn_and_split.
32715 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
32716 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
32717
32718 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32719
32720 * config/arm/arm.md (arm_subdi3): Convert define_insn into
32721 define_insn_and_split.
32722 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
32723 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
32724
32725 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32726
32727 * config/arm/arm.md (subsi3_carryin): New pattern.
32728 (subsi3_carryin_const): Likewise.
32729 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
32730 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
32731
32732 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32733
32734 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
32735
32736 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
32737
32738 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
32739 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
32740
32741 2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32742
32743 * config/arm/arm.c (arm_expand_builtin): Change fcode
32744 type to unsigned int.
32745
32746 2013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32747
32748 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
32749
32750 2013-04-04 Ian Lance Taylor <iant@google.com>
32751
32752 * doc/standards.texi (Standards): The Go frontend supports the Go 1
32753 language standard.
32754
32755 2013-04-04 Steven Bosscher <steven@gcc.gnu.org>
32756
32757 PR middle-end/56729
32758 * df-scan.c (df_insn_delete): Disable failing assert.
32759
32760 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32761
32762 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
32763 New function prototype.
32764 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
32765 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
32766 (arm_builtin_vectorized_function): New function.
32767
32768 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32769
32770 * config/arm/arm_neon_builtins.def: New file.
32771 * config/arm/arm.c (neon_builtin_data): Move contents to
32772 arm_neon_builtins.def.
32773 (enum arm_builtins): Include neon builtin definitions.
32774 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
32775 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
32776
32777 2013-04-04 Marek Polacek <polacek@redhat.com>
32778
32779 PR tree-optimization/48186
32780 * predict.c (maybe_hot_frequency_p): Return false if
32781 HOT_BB_FREQUENCY_FRACTION is 0.
32782 (cgraph_maybe_hot_edge_p): Likewise.
32783
32784 2013-04-04 Richard Biener <rguenther@suse.de>
32785
32786 PR tree-optimization/56826
32787 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
32788 more accurately.
32789
32790 2013-04-04 Richard Biener <rguenther@suse.de>
32791
32792 PR tree-optimization/56213
32793 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
32794 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
32795
32796 2013-04-04 Richard Biener <rguenther@suse.de>
32797
32798 PR tree-optimization/56837
32799 * tree-loop-distribution.c (classify_partition): For non-zero
32800 values require that the value has the same precision as its
32801 mode to be useful as memset value.
32802
32803 2013-04-03 Nick Clifton <nickc@redhat.com>
32804
32805 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
32806 (fmssf4): Use fmsf.s on E3V5 architectures.
32807 (fnmasf4): Use fnmaf.s on E3V5 architectures.
32808 (fnmssf4): Use fnmsf.s on E3V5 architectures.
32809
32810 2013-04-03 Jeff Law <law@redhat.com>
32811
32812 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
32813 (lra-eliminations.o): Likewise.
32814
32815 2013-04-03 Teresa Johnson <tejohnson@google.com>
32816
32817 * gcov-io.c (compute_working_sets): Moved most of body of old
32818 compute_working_sets here from profile.c.
32819 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
32820 (gcov_working_set_t): Moved typedef here from basic-block.h
32821 (compute_working_set): Declare.
32822 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
32823 (get_working_sets): Renamed from compute_working_set,
32824 replace most of body with call to new compute_working_sets.
32825 (get_exec_counts): Replace call to compute_working_sets
32826 to get_working_sets.
32827 * profile.h (get_working_sets): Renamed from compute_working_set.
32828 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
32829 to get_working_sets.
32830 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
32831 * gcov-dump.c (dump_working_sets): New function.
32832
32833 2013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
32834
32835 * hwint.c (sext_hwi, zext_hwi): New functions.
32836 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
32837 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
32838 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
32839 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
32840 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
32841 (sext_hwi, zext_hwi): New functions.
32842
32843 2013-04-03 Jeff Law <law@redhat.com>
32844
32845 PR tree-optimization/56799
32846 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
32847 back test for widening conversion erroneously dropped in prior change.
32848
32849 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32850
32851 PR target/56809
32852 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
32853 instead of next_real_insn.
32854
32855 2013-04-03 Marek Polacek <polacek@redhat.com>
32856
32857 PR sanitizer/55702
32858 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
32859
32860 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32861
32862 PR target/56809
32863 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
32864 next_real_insn.
32865 (thumb1_output_casesi): Likewise.
32866 (thumb2_output_casesi): Likewise.
32867
32868 2013-04-03 Richard Biener <rguenther@suse.de>
32869
32870 PR tree-optimization/56817
32871 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
32872 Split out ...
32873 (tree_unroll_loops_completely_1): ... new function to manually
32874 walk the loop tree, properly defering outer loops of unrolled
32875 loops to later iterations.
32876
32877 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
32878
32879 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
32880 (vectorizable_load): Likewise.
32881 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
32882 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
32883
32884 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
32885
32886 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
32887 BIT_FIELD_REF.
32888
32889 2013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
32890
32891 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
32892
32893 2013-04-03 Bin Cheng <bin.cheng@arm.com>
32894
32895 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
32896
32897 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
32898
32899 PR tree-optimization/56790
32900 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
32901 folding.
32902
32903 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
32904
32905 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
32906 Handle VEC_MERGE.
32907 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
32908 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
32909 equal arguments.
32910
32911 2013-04-03 Jakub Jelinek <jakub@redhat.com>
32912
32913 PR c/19449
32914 * tree.h (force_folding_builtin_constant_p): New decl.
32915 * builtins.c (force_folding_builtin_constant_p): New variable.
32916 (fold_builtin_constant_p): Fold immediately also if
32917 force_folding_builtin_constant_p.
32918
32919 2013-04-03 Richard Biener <rguenther@suse.de>
32920
32921 PR tree-optimization/56812
32922 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
32923 DRs of the same interleaving chain are independent.
32924
32925 2013-04-02 Jason Merrill <jason@redhat.com>
32926
32927 * gdbinit.in (pbb): Use debug fn.
32928
32929 2013-04-02 Lawrence Crowl <crowl@google.com>
32930
32931 * sese.h (struct ivtype_map_elt_s): Remove unused.
32932 (extern debug_ivtype_map): Remove unused.
32933 (extern eq_ivtype_map_elts): Remove unused.
32934 * sese.c (debug_ivtype_map): Removed unused.
32935 (debug_ivtype_map_1): Removed unused.
32936 (debug_ivtype_elt): Remove unused.
32937 (eq_ivtype_map_elts): Remove unused.
32938
32939 2013-04-02 Kai Tietz <ktietz@redhat.com>
32940
32941 PR target/52790
32942 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
32943 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
32944 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
32945 function.
32946 (legitimize_pe_coff_symbol): Likewise.
32947 (is_imported_p): New helper-function.
32948 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
32949 for Windows x64 targets.
32950 (ix86_expand_prologue): Optimize for pe-coff targets.
32951 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
32952 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
32953 medium/large code-model.
32954 (legitimize_pic_address): Likewise.
32955 (legitimize_tls_address): Likewise.
32956 (ix86_expand_call): Likewise.
32957 (x86_output_mi_thunk): Likewise.
32958 (get_dllimport_decl): Add new beimport argument.
32959 (construct_plt_address): Don't assert for x64 pe-coff targets.
32960 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
32961 targets.
32962 (SYMBOL_FLAG_STUBVAR): New macro.
32963 (SYMBOL_REF_STUBVAR_P): Likewise.
32964 * config/i386/winnt.c (stub_list): New structure.
32965 (stub_head): New local variable.
32966 (i386_pe_record_stub): New function.
32967 (i386_pe_file_end): Emit refptr-stubs.
32968
32969 2013-04-02 Jakub Jelinek <jakub@redhat.com>
32970
32971 PR rtl-optimization/56745
32972 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
32973 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
32974
32975 PR c++/34949
32976 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
32977 and both of them are MEM_REFs, just compare first argument for
32978 equality and attempt to deal even with differing offsets.
32979
32980 PR c++/34949
32981 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
32982 of gimple_clobber_p to be MEM_REF.
32983 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
32984 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
32985 after gimplification.
32986 * asan.c (get_mem_ref_of_assignment): Don't instrument
32987 gimple_clobber_p stmts.
32988 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
32989 gimple_clobber_p stmt if they have MEM_REF lhs and
32990 are dead because of another gimple_clobber_p stmt.
32991 * tree-ssa-live.c (clear_unused_block_pointer): Treat
32992 gimple_clobber_p stmts like debug stmts.
32993 (remove_unused_locals): Remove clobbers with MEM_REF lhs
32994 that refer to unused VAR_DECLs or uninitialized values.
32995 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
32996 gimple_clobber_p stmts if they refer to removed parameters.
32997 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
32998 formatting.
32999
33000 2013-04-02 Uros Bizjak <ubizjak@gmail.com>
33001
33002 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
33003 using SWI48 mode attribute.
33004
33005 2013-04-02 Wei Mi <wmi@google.com>
33006
33007 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
33008 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
33009 *<rotate_insn><mode>3_mask in i386.md.
33010
33011 2013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
33012
33013 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
33014
33015 2013-04-02 Richard Biener <rguenther@suse.de>
33016
33017 PR tree-optimization/56778
33018 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33019 Runtime alias tests are not supported for gather loads.
33020 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
33021 stmts referenced from SSA operands before updating SSA form.
33022
33023 2013-04-02 Ian Caulfield <ian.caulfield@arm.com>
33024 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33025
33026 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
33027 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
33028 * config/arm/cortex-a53.md: New file.
33029 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
33030 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
33031 * config/arm/arm.c (arm_issue_rate): Likewise.
33032 * config/arm/arm-tune.md: Regenerate
33033 * config/arm/arm-tables.opt: Regenerate.
33034 * config/arm/arm-cores.def: Add cortex-a53.
33035
33036 2013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
33037
33038 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
33039 non-static link.
33040
33041 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
33042
33043 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
33044 scalar load/store operations using B/H registers.
33045 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
33046
33047 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
33048
33049 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
33050 scalar move.
33051 * config/aarch64/aarch64.c
33052 (aarch64_simd_scalar_immediate_valid_for_move): New.
33053 * config/aarch64/aarch64-protos.h
33054 (aarch64_simd_scalar_immediate_valid_for_move): New.
33055 * config/aarch64/constraints.md (Dh, Dq): New.
33056 * config/aarch64/iterators.md (hq): New.
33057
33058 2013-04-02 Eric Botcazou <ebotcazou@adacore.com>
33059
33060 * reorg.c (get_branch_condition): Deal with conditional returns.
33061 (fill_simple_delay_slots): Remove dead code dealing with jumps.
33062
33063 2013-04-01 Wei Mi <wmi@google.com>
33064
33065 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
33066 Truncate operand 2 using %b asm operand modifier.
33067 (*<shift_insn><mode>3_mask): Ditto.
33068 (*<rotate_insn><mode>3_mask): Ditto.
33069
33070 2013-04-01 Steven Bosscher <steven@gcc.gnu.org>
33071
33072 PR middle-end/56798
33073 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
33074
33075 2013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
33076
33077 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
33078 of next_real_insn.
33079 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
33080
33081 2013-03-30 Lawrence Crowl <crowl@google.com>
33082
33083 * dse.c (clear_alias_sets): Remove never set.
33084 (disqualified_clear_alias_sets): Remove never set.
33085 (clear_alias_mode_pool): Remove never set.
33086 (dse_step0): Remove condition that is never true.
33087 (canon_address): Remove condition that is never true.
33088 (dse_step7): Remove condition that is never true.
33089 (rest_of_handle_dse): Remove condition that is never true.
33090 (rest_of_handle_dse::did_global): Remove never read from above.
33091 (dse_step2_spill): Remove never called from above.
33092 (dse_step5_spill): Remove never called from above.
33093
33094 2013-03-30 Steven Bosscher <steven@gcc.gnu.org>
33095
33096 * doc/md.texi (Standard Names) <casesi>: Update documentation for
33097 JUMP_TABLE_DATA changes.
33098 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
33099 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
33100 (Insns) <jump_table_data>: New entry.
33101 * doc/tm.texi: Regenerate.
33102
33103 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
33104
33105 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
33106 for table jump at the end of a basic block using tablejump_p.
33107 * targhooks.c (default_invalid_within_doloop): Likewise.
33108 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
33109 target hook implementation that is identical to the default hook.
33110 (rs6000_invalid_within_doloop): Remove.
33111
33112 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
33113 unused variable from tablejump_p call.
33114
33115 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
33116 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
33117 (INSN_DELETED_P): Likewise.
33118 (emit_jump_table_data): New prototype.
33119 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
33120 after 4th as unused.
33121 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
33122 * sched-vis.c (print_insn): Likewise.
33123 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
33124 insn for compatibility with back ends that use next_active_insn to
33125 identify jump table data.
33126 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
33127 (remove_insn): Likewise.
33128 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
33129 to be emitted.
33130 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
33131 (emit_jump_table_data): New function.
33132
33133 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
33134 basic block, a JUMP_TABLE_DATA never is.
33135 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
33136 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
33137 off from code handling real insns.
33138 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
33139 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
33140 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
33141 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
33142 is not a NONDEBUG_INSN_P.
33143 * ira-costs.c (scan_one_insn): Likewise.
33144 * jump.c (mark_all_labels): Likewise.
33145 (mark_jump_label_1): Likewise.
33146 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
33147 * lra.c (get_insn_freq): Expect all insns reaching here to be in
33148 a basic block.
33149 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
33150 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
33151 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
33152 JUMP_TABLE_DATA_P insns.
33153 (calculate_elim_costs_all_insns): Likewise.
33154 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
33155 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
33156 (delete_output_reload): Code style fixups.
33157 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
33158 insn flags on this non-insn.
33159 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
33160 as scheduling barriers, for pre-change compatibility.
33161 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
33162 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
33163
33164 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
33165 redundant JUMP_TABLE_DATA_P test.
33166 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
33167 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
33168 (frv_for_each_packet): Likewise.
33169 * config/i386/i386.c (min_insn_size): Likewise.
33170 (ix86_avoid_jump_mispredicts): Likewise.
33171 * config/m32r/m32r.c (m32r_is_insn): Likewise.
33172 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
33173 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
33174 (mips16_insn_length): Robustify.
33175 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
33176 (mips16_split_long_branches): Likewise.
33177 * config/pa/pa.c (pa_combine_instructions): Likewise.
33178 * config/rs6000/rs6000.c (get_next_active_insn): Treat
33179 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
33180 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
33181 as contributing to pool range lengths.
33182 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
33183 Remove redundant JUMP_TABLE_DATA_P test.
33184 (sh_loop_align): Likewise.
33185 (split_branches): Likewise.
33186 (sh_insn_length_adjustment): Likewise.
33187 * config/spu/spu.c (get_branch_target): Likewise.
33188
33189 2013-03-29 Jan Hubicka <jh@suse.cz>
33190
33191 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
33192 gcov streaming; stream hot bb threshold to ltrans.
33193 * predict.c (get_hot_bb_threshold): Break out from ....
33194 (maybe_hot_count_p): ... here.
33195 (set_hot_bb_threshold): New function.
33196 * lto-section-in.c (lto_section_name): Add profile.
33197 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
33198 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
33199 and data-streamer.h
33200 (histogram_entry): New structure.
33201 (histogram, histogram_pool): New global vars.
33202 (histogram_hash): New structure.
33203 (histogram_hash::hash): New method.
33204 (histogram_hash::equal): Likewise.
33205 (account_time_size): New function.
33206 (cmp_counts): New function.
33207 (dump_histogram): New function.
33208 (ipa_profile_generate_summary): New function.
33209 (ipa_profile_write_summary): New function.
33210 (ipa_profile_read_summary): New function.
33211 (ipa_profile): Decide on threshold.
33212 (pass_ipa_profile): Add ipa_profile_write_summary and
33213 ipa_profile_read_summary.
33214 * Makefile.in (ipa.o): Update dependencies.
33215 * lto-streamer.h (LTO_section_ipa_profile): New section.
33216
33217 2013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
33218
33219 * tree.h (VAR_P): New.
33220
33221 2013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
33222
33223 PR lto/56777
33224 * doc/invoke.texi ([-fwhole-program]): Fix typo.
33225
33226 2013-03-29 Steven Bosscher <steven@gcc.gnu.org>
33227
33228 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
33229 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
33230 (control_flow_insn_p): Likewise.
33231 * cfgrtl.c (duplicate_insn_chain): Likewise.
33232 * final.c (get_attr_length_1): Likewise.
33233 (shorten_branches): Likewise.
33234 (final_scan_insn): Likewise.
33235 * function.c (instantiate_virtual_regs): Likewise.
33236 * gcse.c (insert_insn_end_basic_block): Likewise.
33237 * ira-costs.c (scan_one_insn): Likewise.
33238 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
33239 * lra.c (check_rtl): Likewise.
33240 * reload1.c (elimination_costs_in_insn): Likewise.
33241 * reorg.c (follow_jumps): Likewise.
33242
33243 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
33244 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
33245 (thumb_far_jump_used_p): Likewise.
33246 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
33247 (workaround_speculation): Likewise.
33248 (add_sched_insns_for_speculation): Likewise.
33249 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
33250 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
33251 (frv_for_each_packet): Likewise.
33252 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
33253 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
33254 (final_emit_insn_group_barriers): Likewise.
33255 * config/m32r/m32r.c (m32r_is_insn): Likewise.
33256 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
33257 (mips16_insn_length): Likewise.
33258 * config/pa/pa.c (pa_reorg): Likewise.
33259 (pa_combine_instructions): Likewise.
33260 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
33261 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
33262 (sh_reorg): Likewise.
33263 (split_branches): Likewise.
33264 * config/spu/spu.c (get_branch_target): Likewise.
33265
33266 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
33267 JUMP_TABLE_DATA_P.
33268
33269 2013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
33270
33271 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
33272 Fix declaration name.
33273
33274 2013-03-28 Lawrence Crowl <crowl@google.com>
33275
33276 * graphds.h (struct graph.indicies): Remove unused.
33277 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
33278 (SCOP_ORIGINAL_PDDRS): Remove unused.
33279 * sese.h (extern insert_loop_close_phis): Removed unused.
33280 (extern insert_guard_phis): Removed unused.
33281 (extern ivtype_map_elt_info): Removed unused.
33282 (new_ivtype_map_elt): Removed unused.
33283 * sese.c (ivtype_map_elt_info): Removed unused.
33284
33285 2013-03-28 Lawrence Crowl <crowl@google.com>
33286
33287 * Makefile.in: Add several missing include dependences.
33288 (DUMPFILE_H): New.
33289 (test-dump.o): New. This object is not added to any executable,
33290 but is present for ad-hoc testing.
33291 * bitmap.c
33292 (debug (const bitmap_head_def &)): New.
33293 (debug (const bitmap_head_def *)): New.
33294 * bitmap.h
33295 (extern debug (const bitmap_head_def &)): New.
33296 (extern debug (const bitmap_head_def *)): New.
33297 * cfg.c
33298 (debug (edge_def &)): New.
33299 (debug (edge_def *)): New.
33300 * cfghooks.c
33301 (debug (basic_block_def &)): New.
33302 (debug (basic_block_def *)): New.
33303 * dumpfile.h
33304 (dump_node (const_tree, int, FILE *)): Correct source file.
33305 * dwarf2out.c
33306 (debug (die_struct &)): New.
33307 (debug (die_struct *)): New.
33308 * dwarf2out.h
33309 (extern debug (die_struct &)): New.
33310 (extern debug (die_struct *)): New.
33311 * gimple-pretty-print.c
33312 (debug (gimple_statement_d &)): New.
33313 (debug (gimple_statement_d *)): New.
33314 * gimple-pretty-print.h
33315 (extern debug (gimple_statement_d &)): New.
33316 (extern debug (gimple_statement_d *)): New.
33317 * ira-build.c
33318 (debug (ira_allocno_copy &)): New.
33319 (debug (ira_allocno_copy *)): New.
33320 (debug (ira_allocno &)): New.
33321 (debug (ira_allocno *)): New.
33322 * ira-int.h
33323 (extern debug (ira_allocno_copy &)): New.
33324 (extern debug (ira_allocno_copy *)): New.
33325 (extern debug (ira_allocno &)): New.
33326 (extern debug (ira_allocno *)): New.
33327 * ira-lives.c
33328 (debug (live_range &)): New.
33329 (debug (live_range *)): New.
33330 * lra-int.h
33331 (debug (lra_live_range &)): New.
33332 (debug (lra_live_range *)): New.
33333 * lra-lives.c
33334 (debug (lra_live_range &)): New.
33335 (debug (lra_live_range *)): New.
33336 * omega.c
33337 (debug (omega_pb_d &)): New.
33338 (debug (omega_pb_d *)): New.
33339 * omega.h
33340 (extern debug (omega_pb_d &)): New.
33341 (extern debug (omega_pb_d *)): New.
33342 * print-rtl.c
33343 (debug (const rtx_def &)): New.
33344 (debug (const rtx_def *)): New.
33345 * print-tree.c
33346 (debug_tree (tree): Move within file.
33347 (debug_raw (const tree_node &)): New.
33348 (debug_raw (const tree_node *)): New.
33349 (dump_tree_via_hooks (const tree_node *, int)): New.
33350 (debug (const tree_node &)): New.
33351 (debug (const tree_node *)): New.
33352 (debug_verbose (const tree_node &)): New.
33353 (debug_verbose (const tree_node *)): New.
33354 (debug_head (const tree_node &)): New.
33355 (debug_head (const tree_node *)): New.
33356 (debug_body (const tree_node &)): New.
33357 (debug_body (const tree_node *)): New.
33358 (debug_vec_tree (tree): Move and reimplement in terms of dump.
33359 (debug (vec<tree, va_gc> &)): New.
33360 (debug (vec<tree, va_gc> *)): New.
33361 * rtl.h
33362 (extern debug (const rtx_def &)): New.
33363 (extern debug (const rtx_def *)): New.
33364 * sbitmap.c
33365 (debug_raw (simple_bitmap_def &)): New.
33366 (debug_raw (simple_bitmap_def *)): New.
33367 (debug (simple_bitmap_def &)): New.
33368 (debug (simple_bitmap_def *)): New.
33369 * sbitmap.h
33370 (extern debug (simple_bitmap_def &)): New.
33371 (extern debug (simple_bitmap_def *)): New.
33372 (extern debug_raw (simple_bitmap_def &)): New.
33373 (extern debug_raw (simple_bitmap_def *)): New.
33374 * sel-sched-dump.c
33375 (debug (vinsn_def &)): New.
33376 (debug (vinsn_def *)): New.
33377 (debug_verbose (vinsn_def &)): New.
33378 (debug_verbose (vinsn_def *)): New.
33379 (debug (expr_def &)): New.
33380 (debug (expr_def *)): New.
33381 (debug_verbose (expr_def &)): New.
33382 (debug_verbose (expr_def *)): New.
33383 (debug (vec<rtx> &)): New.
33384 (debug (vec<rtx> *)): New.
33385 * sel-sched-dump.h
33386 (extern debug (vinsn_def &)): New.
33387 (extern debug (vinsn_def *)): New.
33388 (extern debug_verbose (vinsn_def &)): New.
33389 (extern debug_verbose (vinsn_def *)): New.
33390 (extern debug (expr_def &)): New.
33391 (extern debug (expr_def *)): New.
33392 (extern debug_verbose (expr_def &)): New.
33393 (extern debug_verbose (expr_def *)): New.
33394 (extern debug (vec<rtx> &)): New.
33395 (extern debug (vec<rtx> *)): New.
33396 * sel-sched-ir.h
33397 (_list_iter_cond_expr): Make inline instead of static.
33398 * sreal.c
33399 (debug (sreal &)): New.
33400 (debug (sreal *)): New.
33401 * sreal.h
33402 (extern debug (sreal &)): New.
33403 (extern debug (sreal *)): New.
33404 * tree.h
33405 (extern debug_raw (const tree_node &)): New.
33406 (extern debug_raw (const tree_node *)): New.
33407 (extern debug (const tree_node &)): New.
33408 (extern debug (const tree_node *)): New.
33409 (extern debug_verbose (const tree_node &)): New.
33410 (extern debug_verbose (const tree_node *)): New.
33411 (extern debug_head (const tree_node &)): New.
33412 (extern debug_head (const tree_node *)): New.
33413 (extern debug_body (const tree_node &)): New.
33414 (extern debug_body (const tree_node *)): New.
33415 (extern debug (vec<tree, va_gc> &)): New.
33416 (extern debug (vec<tree, va_gc> *)): New.
33417 * tree-cfg.c
33418 (debug (struct loop &)): New.
33419 (debug (struct loop *)): New.
33420 (debug_verbose (struct loop &)): New.
33421 (debug_verbose (struct loop *)): New.
33422 * tree-dump.c: Add header dependence.
33423 * tree-flow.h
33424 (extern debug (struct loop &)): New.
33425 (extern debug (struct loop *)): New.
33426 (extern debug_verbose (struct loop &)): New.
33427 (extern debug_verbose (struct loop *)): New.
33428 * tree-data-ref.c
33429 (debug (data_reference &)): New.
33430 (debug (data_reference *)): New.
33431 (debug (vec<data_reference_p> &)): New.
33432 (debug (vec<data_reference_p> *)): New.
33433 (debug (vec<ddr_p> &)): New.
33434 (debug (vec<ddr_p> *)): New.
33435 * tree-data-ref.h
33436 (extern debug (data_reference &)): New.
33437 (extern debug (data_reference *)): New.
33438 (extern debug (vec<data_reference_p> &)): New.
33439 (extern debug (vec<data_reference_p> *)): New.
33440 (extern debug (vec<ddr_p> &)): New.
33441 (extern debug (vec<ddr_p> *)): New.
33442 * tree-ssa-alias.c
33443 (debug (pt_solution &)): New.
33444 (debug (pt_solution *)): New.
33445 * tree-ssa-alias.h
33446 (extern debug (pt_solution &)): New.
33447 (extern debug (pt_solution *)): New.
33448 * tree-ssa-alias.c
33449 (debug (_var_map &)): New.
33450 (debug (_var_map *)): New.
33451 (debug (tree_live_info_d &)): New.
33452 (debug (tree_live_info_d *)): New.
33453 * tree-ssa-alias.h
33454 (extern debug (_var_map &)): New.
33455 (extern debug (_var_map *)): New.
33456 (extern debug (tree_live_info_d &)): New.
33457 (extern debug (tree_live_info_d *)): New.
33458
33459 2013-03-28 Jan Hubicka <jh@suse.cz>
33460
33461 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
33462
33463 2013-03-28 Ian Bolton <ian.bolton@arm.com>
33464
33465 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
33466 record only when desired or required.
33467
33468 2013-03-28 Uros Bizjak <ubizjak@gmail.com>
33469
33470 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
33471 *vec_extractv2di_1_rex64. Use x64 isa attribute.
33472
33473 2013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
33474
33475 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
33476 (*andsi3_compare0_uxtw): New pattern.
33477 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
33478 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
33479
33480 2013-03-28 Jan Hubicka <jh@suse.cz>
33481
33482 * data-streamer-in.c (streamer_read_gcov_count): New function.
33483 * gimple-streamer-out.c: Include value-prof.h.
33484 (output_gimple_stmt): Output histogram.
33485 (output_bb): Use streamer_write_gcov_count.
33486 * value-prof.c: Include data-streamer.h
33487 (dump_histogram_value): Add HIST_TYPE_MAX.
33488 (stream_out_histogram_value): New function.
33489 (stream_in_histogram_value): New function.
33490 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
33491 (stream_out_histogram_value, stream_in_histogram_value): Declare.
33492 * data-streamer-out.c (streamer_write_gcov_count): New function.
33493 (streamer_write_gcov_count_stream): New function.
33494 * lto-cgraph.c (lto_output_edge): Update counter streaming.
33495 (lto_output_node): Likewise.
33496 (input_node, input_edge): Likewise.
33497 * lto-streamer-out.c (output_cfg): Update streaming.
33498 * lto-streamer-in.c (input_cfg): Likewise.
33499 * data-streamer.h (streamer_write_gcov_count,
33500 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
33501 * gimple-streamer-in.c: Include value-prof.h
33502 (input_gimple_stmt): Input histograms.
33503 (input_bb): Update profile streaming.
33504
33505 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
33506
33507 * genmodes.c (emit_max_int): New function.
33508 (emit_insn_modes_h): Added call to emit_max_function.
33509 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
33510 Added doc.
33511 * machmode.def: Fixed comment.
33512
33513 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
33514
33515 * combine.c (try_combine): Removed useless assert.
33516 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
33517
33518 2013-03-28 Marek Polacek <polacek@redhat.com>
33519 Richard Biener <rguenther@suse.de>
33520
33521 PR tree-optimization/56695
33522 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
33523 build signed result of a vector comparison.
33524 * tree-cfg.c (verify_gimple_comparison): Check that a result
33525 of a vector comparison has signed type.
33526
33527 2013-03-28 Richard Biener <rguenther@suse.de>
33528
33529 PR tree-optimization/37021
33530 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
33531 do not restrict gaps between groups.
33532 * tree-vect-stmts.c (vectorizable_load): Properly account for
33533 a gap between groups.
33534
33535 2013-03-28 Eric Botcazou <ebotcazou@adacore.com>
33536
33537 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
33538 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
33539 is not enabled.
33540
33541 2013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
33542
33543 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
33544 * doc/extend.texi (Named Address Spaces): Ditto.
33545 (Variable Attributes): Ditto.
33546
33547 2013-03-27 Kai Tietz <ktietz@redhat.com>
33548
33549 * config.build: Add support for cygwin x64 target.
33550 * config.gcc: Likewise.
33551 * config.host: Likewise.
33552 * configure.ac: Likewise
33553 * configure: Regenerated.
33554
33555 2013-03-27 Kai Tietz <ktietz@redhat.com>
33556
33557 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
33558 * config/i386/t-cygwin-w64: New file.
33559 * config/i386/cygwin-w64.h: New file.
33560 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
33561 and add support for x64-cygwin target.
33562 (CPP_SPEC): Likewise.
33563 (CXX_WRAP_SPEC_LIST): Undefine before define.
33564 (LIBGCJ_SONAME): Use 15 as version.
33565
33566 2013-03-27 Richard Biener <rguenther@suse.de>
33567
33568 PR tree-optimization/56716
33569 * tree-ssa-structalias.c (perform_var_substitution): Adjust
33570 dumping for ref nodes.
33571
33572 2013-03-27 Martin Jambor <mjambor@suse.cz>
33573
33574 PR tree-optimization/55334
33575 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
33576 restricted pointers to arrays.
33577
33578 2013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
33579
33580 * Makefile.in (.SUFFIXES): Add .cc.
33581 (.c.o): Apply same recipe for implicit rule .cc.o.
33582
33583 2013-03-27 Richard Biener <rguenther@suse.de>
33584
33585 PR tree-optimization/37021
33586 * tree-vect-data-refs.c (vect_check_strided_load): Allow
33587 REALPART/IMAGPART_EXPRs around the supported refs.
33588 * tree-ssa-structalias.c (find_func_aliases): Assume that
33589 floating-point values are not used to transfer pointers.
33590
33591 2013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
33592
33593 * target.def (TARGET_HAS_IFUNC_P): New target hook.
33594 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
33595 * doc/tm.texi: Regenerate.
33596 * targhooks.h (default_has_ifunc_p): New.
33597 * targhooks.c (default_has_ifunc_p): Ditto.
33598 * config/linux-protos.h: New file.
33599 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
33600 hook for linux which disables support of indirect functions in android.
33601 * config/linux-android.c: New file.
33602 * config/t-linux-android.c: Ditto.
33603 * config.gcc: Added new object file linux-android.o.
33604 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
33605 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
33606 * varasm.c (do_assemble_alias): Likewise.
33607 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
33608 doesn't support indirect functions.
33609 * configure: Regenerate.
33610
33611 2013-03-27 Bin Cheng <bin.cheng@arm.com>
33612
33613 PR target/56102
33614 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
33615 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
33616 mult-word mode.
33617
33618 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33619
33620 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
33621
33622 2013-03-27 Terry Guo <terry.guo@arm.com>
33623
33624 * config/arm/arm-cores.def: Added core cortex-r7.
33625 * config/arm/arm-tune.md: Regenerated.
33626 * config/arm/arm-tables.opt: Regenerated.
33627 * doc/invoke.texi: Added entry for core cortex-r7.
33628
33629 2013-03-27 Walter Lee <walt@tilera.com>
33630
33631 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
33632 double-decrement of next_scratch_regno.
33633
33634 2013-03-27 Walter Lee <walt@tilera.com>
33635
33636 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
33637 input operands.
33638 (insn_v1mulus): Ditto.
33639 (insn_v2muls): Ditto.
33640
33641 2013-03-27 Walter Lee <walt@tilera.com>
33642
33643 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
33644 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
33645
33646 2013-03-27 Walter Lee <walt@tilera.com>
33647
33648 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
33649 (*sibcall_value): Ditto.
33650
33651 2013-03-27 Walter Lee <walt@tilera.com>
33652
33653 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
33654 (insn_mnz_v8qi): ... this ...
33655 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
33656 vector equivalent.
33657 (insn_v<n>mnz): Replaced by ...
33658 (insn_v1mnz): ... this ...
33659 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
33660 equivalent.
33661 (insn_mz_<mode>): Replaced by ...
33662 (insn_mz_v8qi): ... this ...
33663 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
33664 vector equivalent.
33665 (insn_v<n>mz): Replaced by ...
33666 (insn_v1mz): ... this ...
33667 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
33668 equivalent.
33669
33670 2013-03-26 Eric Botcazou <ebotcazou@adacore.com>
33671
33672 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
33673
33674 2013-03-26 Roland McGrath <mcgrathr@google.com>
33675
33676 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
33677 than fprintf with a non-constant, non-format string.
33678
33679 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
33680
33681 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
33682 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
33683 operand 0 predicate.
33684 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
33685 attribute. Use general_x64nomem_operand as operand 1 predicate.
33686 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
33687 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
33688 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
33689 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
33690 (mov<mode>_insv_1): Remove expander. Merge insn with
33691 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
33692 Use general_x64nomem_operand as operand 1 predicate.
33693 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
33694 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
33695 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
33696 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
33697 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
33698 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
33699 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
33700 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
33701 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
33702 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
33703 (general_x64nomem_operand): Ditto.
33704
33705 2013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
33706
33707 * config/rtems.opt: Add -pthread option.
33708
33709 2013-03-26 Richard Biener <rguenther@suse.de>
33710
33711 * alias.c (find_base_term): Avoid redundant and not used recursion.
33712 (base_alias_check): Get the initial base term from the caller.
33713 (true_dependence_1): Compute and pass base terms to base_alias_check.
33714 (write_dependence_p): Likewise.
33715 (may_alias_p): Likewise.
33716
33717 2013-03-26 Sofiane Naci <sofiane.naci@arm.com>
33718
33719 * config/aarch64/aarch64.c (aarch64_classify_address): Support
33720 PC-relative load in SI modes and above only.
33721
33722 2013-03-26 Xinyu Qi <xyqi@marvell.com>
33723
33724 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33725 * config/arm/iwmmxt.md (WCGR0): Update.
33726 (WCGR1, WCGR2, WCGR3): Likewise.
33727
33728 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
33729
33730 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
33731 Use x64 and nox64 isa attributes.
33732
33733 2013-03-26 Richard Biener <rguenther@suse.de>
33734
33735 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
33736 alignment computations and rely on get_object_alignment_1
33737 for the !TYPE_P case.
33738 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
33739
33740 2013-03-26 Walter Lee <walt@tilera.com>
33741
33742 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
33743 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
33744
33745 2013-03-25 Jeff Law <law@redhat.com>
33746
33747 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
33748 check for INTEGRAL_TYPE_P that was missing due to checking in
33749 wrong version of prior patch.
33750
33751 2013-03-25 Walter Lee <walt@tilera.com>
33752
33753 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
33754 TILEGX_INSN_SHUFFLEBYTES1.
33755 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
33756 shufflebytes1.
33757 (tilegx_builtins): Ditto.
33758 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
33759
33760 2013-03-25 Walter Lee <walt@tilera.com>
33761
33762 * config/tilegx/tilegx.md (floatsisf2): New pattern.
33763 (floatunssisf2): New pattern.
33764 (floatsidf2): New pattern.
33765 (floatunssidf2): New pattern.
33766
33767 2013-03-25 Walter Lee <walt@tilera.com>
33768
33769 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
33770 tests for constraint J, K, N, P.
33771
33772 2013-03-25 Walter Lee <walt@tilera.com>
33773
33774 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
33775 Use indirect/pcrel encoding.
33776 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
33777 Ditto.
33778
33779 2013-03-25 Steve Ellcey <sellcey@mips.com>
33780
33781 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
33782 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
33783 * config/mips/mips.c (mips_option_override): Set IMADD default.
33784 * config/mips/mips.h (PTF_AVOID_IMADD): New.
33785 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
33786 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
33787 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
33788 * doc/invoke.texi (-mimadd/-mno-imadd): New.
33789
33790 2013-03-25 Jeff Law <law@redhat.com>
33791
33792 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
33793 slightly to avoid creating and folding useless trees. Simplify
33794 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
33795
33796 2013-03-25 Uros Bizjak <ubizjak@gmail.com>
33797
33798 * config/i386/i386.md (*zero_extendsidi2): Merge with
33799 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
33800 * config/i386/predicates.md (x86_64_zext_operand): Rename from
33801 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
33802 targets. Clarify comment.
33803
33804 2013-03-25 Martin Jambor <mjambor@suse.cz>
33805
33806 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
33807 pass-through jump functions differently.
33808 (ipa_read_jump_function): Likewise. Also use setter functions to set
33809 up jump functions.
33810
33811 2013-03-25 Martin Jambor <mjambor@suse.cz>
33812
33813 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
33814 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
33815 process it.
33816 (ipa_get_indirect_edge_target): New function.
33817 (devirtualization_time_bonus): New parameter known_aggs, pass it to
33818 ipa_get_indirect_edge_target. Update all callers.
33819 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
33820 ipa_get_indirect_edge_target_1 instead of calling
33821 ipa_get_indirect_edge_target.
33822 (create_specialized_node): Pass aggvlas to
33823 ipcp_discover_new_direct_edges.
33824
33825 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33826
33827 * config/arm/arm.md (f_sels, f_seld): New types.
33828 (*cmov<mode>): New pattern.
33829 * config/arm/predicates.md (arm_vsel_comparison_operator): New
33830 predicate.
33831
33832 2013-03-25 Kai Tietz <ktietz@redhat.com>
33833
33834 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
33835 POSIX-printf for mingw-hosted builds.
33836
33837 2013-03-25 Richard Biener <rguenther@suse.de>
33838
33839 PR middle-end/56694
33840 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
33841 must-not-throw stmt location.
33842
33843 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33844
33845 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
33846 Emit load-acquire versions when acq is true.
33847 (arm_emit_store_exclusive): Add rel parameter.
33848 Emit store-release versions when rel is true.
33849 (arm_split_compare_and_swap): Use acquire-release instructions
33850 instead.
33851 of barriers when appropriate.
33852 (arm_split_atomic_op): Likewise.
33853 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
33854 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
33855 (VUNSPEC_SLX): Likewise.
33856 (VUNSPEC_LDA): Likewise.
33857 (VUNSPEC_STL): Likewise.
33858 * config/arm/sync.md (atomic_load<mode>): New pattern.
33859 (atomic_store<mode>): Likewise.
33860 (arm_load_acquire_exclusive<mode>): Likewise.
33861 (arm_load_acquire_exclusivesi): Likewise.
33862 (arm_load_acquire_exclusivedi): Likewise.
33863 (arm_store_release_exclusive<mode>): Likewise.
33864
33865 2013-03-25 Catherine Moore <clm@codesourcery.com>
33866
33867 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
33868 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
33869 * config/mip/predicates.md (lwsp_swsp_operand,
33870 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
33871 sb16_operand, db4_operand, db7_operand, ib3_operand,
33872 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
33873 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
33874 andi16_operand): New predicates.
33875 * config/mips/mips.md (compression): New attribute.
33876 (enabled): New attribute.
33877 (length): Consider compression in computing length.
33878 (shift_compression): New code attribute.
33879 (*add<mode>3): New operands. Record compression.
33880 (sub<mode>3): Likewise.
33881 (one_cmpl<mode>2): Likewise.
33882 (*and<mode>3): Likewise.
33883 (*ior<mode>3): Likewise.
33884 (unnamed pattern for xor): Likewise.
33885 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
33886 (*<optab><mode>3): Likewise.
33887 (*mov<mode>_internal: Likewise.
33888 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
33889 (mips_unsigned_immediate_p): New.
33890 (umips_lwsp_swsp_address_p): New.
33891 (m16_based_address_p): New.
33892 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
33893 (mips_unsigned_immediate_p): New prototype.
33894 (lwsp_swsp_address_p): New prototype.
33895 (m16_based_address_p): New prototype.
33896 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
33897 (mips_signed_immediate_p): New function.
33898 (m16_based_address_p): New function.
33899 (lwsp_swsp_address_p): New function.
33900 (mips_print_operand_punctuation): Recognize short delay slot insns
33901 for microMIPS.add<mode>3"
33902
33903 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33904
33905 PR target/56720
33906 * config/arm/iterators.md (v_cmp_result): New mode attribute.
33907 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
33908
33909 2013-03-25 Richard Biener <rguenther@suse.de>
33910
33911 PR tree-optimization/56689
33912 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
33913 any edge.
33914
33915 2013-03-25 Richard Biener <rguenther@suse.de>
33916
33917 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
33918 of bitmap.
33919 (memory_references): Likewise.
33920 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
33921 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
33922 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
33923 (gather_mem_refs_in_loops): Fold into ...
33924 (analyze_memory_references): ... this. Move initialization
33925 to tree_ssa_lim_initialize.
33926 (fill_always_executed_in): Rename to ...
33927 (fill_always_executed_in_1): ... this.
33928 (fill_always_executed_in): Move contains_call computation to
33929 this new function from ...
33930 (tree_ssa_lim_initialize): ... here.
33931 (tree_ssa_lim): Call fill_always_executed_in.
33932
33933 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
33934
33935 * postreload.c (reload_combine): Fix code detecting returns.
33936
33937 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
33938
33939 * function.c (emit_use_return_register_into_block): On cc0 targets,
33940 do not emit the sequence between cc0 setter and user.
33941
33942 2013-03-25 Kai Tietz <ktietz@redhat.com>
33943
33944 * config/i386/predicates.md (local_symbolic_operand): Interpret
33945 dll-imported symbols as none-local.
33946
33947 2013-03-25 Richard Biener <rguenther@suse.de>
33948
33949 * tree-ssa-loop-im.c (struct depend): Remove.
33950 (struct lim_aux_data): Make depends a vec of gimples.
33951 (free_lim_aux_data): Adjust.
33952 (add_dependency): Likewise.
33953 (set_level): Likewise.
33954
33955 2013-03-25 Richard Biener <rguenther@suse.de>
33956
33957 PR middle-end/56434
33958 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
33959 the pointer returned by calls with ECF_MALLOC set.
33960
33961 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
33962
33963 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
33964
33965 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
33966
33967 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
33968 using MMXMODE mode iterator.
33969 (*move<mode>_internal): Merge with *movv2sf_internal and
33970 *movv2sf_internal_rex64 using MMXMODE mode iterator.
33971
33972 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
33973
33974 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
33975 (record_last_mem_set_info): Likewise.
33976
33977 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
33978 of XNEWVEC followed by memset.
33979 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
33980
33981 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
33982
33983 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
33984 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
33985 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
33986 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
33987 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
33988 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
33989 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
33990 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
33991 BARRIER_P instead of GET_CODE.
33992
33993 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
33994
33995 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
33996 inaccuracy in the probing code.
33997
33998 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
33999 (ctrapdi4): Likewise.
34000
34001 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
34002
34003 * calls.c (expand_call): Add missing guard to code handling return
34004 of non-BLKmode structures in MSB.
34005 * function.c (expand_function_end): Likewise.
34006
34007 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
34008
34009 * combine.c (try_combine): Adjust comment. Do not add the set of
34010 insn #0 if the destination indirectly is set or dies in insn #2.
34011 Tidy up code to distribute a new note.
34012
34013 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
34014
34015 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
34016 also for alternatives 16 and 17.
34017
34018 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
34019
34020 * config/i386/sse.md (*mov<mode>_internal): Merge with
34021 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
34022 Emit insn template depending on type attribute. Use
34023 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
34024 movd instead of movq mnemonic for interunit moves. Rewrite mode
34025 attribute calculation. Remove unit attribute calculation.
34026 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
34027 Set prefix_data16 attribute for DImode ssemov types.
34028 Use Ym instead of y for SSE-MMX conversion alternatives.
34029 Reorder operand constraints.
34030
34031 2013-03-22 Steven Bosscher <steven@gcc.gnu.org>
34032
34033 * df.h (df_insn_delete): Adjust prototype.
34034 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
34035 and let it decide whether mark the basic block dirty.
34036 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
34037 * df-scan.c (df_insn_info_delete): New helper function, split
34038 off from df_insn_delete.
34039 (df_scan_free_bb_info): Use it.
34040 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
34041 Likewise.
34042 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
34043 that the insn is actually an insn and it has a non-NULL basic block.
34044 Do not mark basic block dirty if only deleting a DEBUG_INSN.
34045
34046 2013-03-22 Richard Biener <rguenther@suse.de>
34047
34048 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
34049 dep_ref members.
34050 (mem_ref_alloc): Do not allocate them.
34051 (refs_independent_p): Do not query or maintain a cache.
34052
34053 2013-03-22 Richard Biener <rguenther@suse.de>
34054
34055 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
34056 (gather_mem_refs_in_loops): Do not compute it.
34057 (analyze_memory_references): Do not allocate it.
34058 (tree_ssa_lim_finalize): Do not free it.
34059 (for_all_locs_in_loop): Do not query all_refs_in_loop.
34060
34061 2013-03-22 Richard Biener <rguenther@suse.de>
34062
34063 * is-a.h (as_a): Use gcc_checking_assert.
34064
34065 2013-03-22 Ian Bolton <ian.bolton@arm.com>
34066
34067 * config/aarch64/aarch64.c (aarch64_print_operand): New
34068 format specifier for printing a constant in hex.
34069 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
34070 format specifier for printing second operand.
34071
34072 2013-03-22 Richard Biener <rguenther@suse.de>
34073
34074 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
34075 bitmaps.
34076 (gather_mem_refs_in_loops): Perform store accumulation here.
34077 (create_vop_ref_mapping_loop): Remove.
34078 (create_vop_ref_mapping): Likewise.
34079 (analyze_memory_references): Initialize refs_stored_in_loop.
34080 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
34081 (record_indep_loop): Remove.
34082 (record_dep_loop): New function.
34083 (ref_indep_loop_p_1): Adjust to only walk over references
34084 in the loop, not its subloops.
34085 (ref_indep_loop_p): Rename to ...
34086 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
34087 maintaining a more fine-grained cache.
34088 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
34089 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
34090
34091 2013-03-22 Richard Biener <rguenther@suse.de>
34092
34093 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
34094 (struct mem_ref): Make accesses_in_loop a vec of a vec of
34095 aggregate mem_ref_loc.
34096 (free_mem_ref_locs): Inline into ...
34097 (memref_free): ... this and adjust.
34098 (mem_ref_alloc): Adjust.
34099 (mem_ref_locs_alloc): Remove.
34100 (record_mem_ref_loc): Adjust.
34101 (get_all_locs_in_loop): Rewrite into ...
34102 (for_all_locs_in_loop): ... this iterator.
34103 (rewrite_mem_ref_loc): New functor.
34104 (rewrite_mem_refs): Use for_all_locs_in_loop.
34105 (sm_set_flag_if_changed): New functor.
34106 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
34107 (ref_always_accessed): New functor.
34108 (ref_always_accessed_p): Use for_all_locs_in_loop.
34109
34110 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
34111
34112 * tree-pass.h (PROP_gimple_lvec): New.
34113 * passes.c (dump_properties): Handle PROP_gimple_lvec.
34114 (init_optimization_passes): Move pass_lower_vector.
34115 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
34116 PROP_gimple_lvec.
34117 (pass_lower_vector): Provide PROP_gimple_lvec.
34118 (pass_lower_vector_ssa): Likewise.
34119 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
34120
34121 2013-03-21 Mark Wielaard <mjw@redhat.com>
34122
34123 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
34124
34125 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
34126
34127 * config/i386/i386.md (*movdi_internal): Disparage slightly
34128 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
34129 conversion alternatives.
34130
34131 2013-03-21 Jakub Jelinek <jakub@redhat.com>
34132
34133 PR middle-end/48087
34134 * diagnostic.def (DK_WERROR): New kind.
34135 * diagnostic.h (werrorcount): Define.
34136 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
34137 promoted to DK_ERROR, increment DK_WERROR counter instead of
34138 DK_ERROR counter.
34139 * toplev.c (toplev_main): Call print_ignored_options even if
34140 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
34141 even if just werrorcount is non-zero.
34142
34143 PR debug/55608
34144 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
34145 on failure.
34146 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
34147 (string_cst_pool_decl): New function.
34148 (optimize_one_addr_into_implicit_ptr): New function.
34149 (resolve_addr_in_expr): Optimize DWARF location expression
34150 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
34151 which doesn't live in memory, but has DW_AT_location or
34152 DW_AT_const_value, or refers to a string literal, into
34153 DW_OP_GNU_implicit_pointer.
34154 (optimize_location_into_implicit_ptr): New function.
34155 (resolve_addr): If removing DW_AT_location of a variable because
34156 it was DW_OP_addr of address of the variable, but the variable doesn't
34157 live in memory, try to emit const value attribute for the initializer.
34158
34159 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
34160
34161 * tree.h (VECTOR_TYPE_P): New macro.
34162 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
34163 TYPE_MODE): Use it.
34164 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
34165 VEC_COND_EXPR cannot be lvalues.
34166 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
34167
34168 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
34169
34170 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
34171 Restrict the transformation to equal modes.
34172
34173 2013-03-21 Richard Biener <rguenther@suse.de>
34174
34175 PR tree-optimization/39326
34176 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
34177 (MEM_ANALYZABLE): Adjust.
34178 (record_mem_ref_loc): Move bitmap ops ...
34179 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
34180 unanalyzable refs, do not record locations for it.
34181 (analyze_memory_references): Allocate ref zero as shared
34182 unanalyzable ref.
34183 (refs_independent_p): Do not test for unanalyzed mems here.
34184 (ref_indep_loop_p_1): Special-case disambiguation against
34185 the unanalyzed ref.
34186 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
34187
34188 2013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
34189
34190 * config/arm/arm-protos.h (tune_params): Add
34191 prefer_neon_for_64bits field.
34192 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
34193 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
34194 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
34195 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
34196 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
34197 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
34198 (arm_option_override): Handle -mneon-for-64bits new option.
34199 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
34200 (prefer_neon_for_64bits): Declare new variable.
34201 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
34202 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
34203 (arch_enabled): Handle new arch types. Remove support for onlya8
34204 and nota8.
34205 (one_cmpldi2): Use new arch names.
34206 (zero_extend<mode>di2, extend<mode>di2): Ditto.
34207 * config/arm/arm.opt (mneon-for-64bits): Add option.
34208 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
34209 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
34210 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
34211 of onlya8.
34212 * doc/invoke.texi (-mneon-for-64bits): Document.
34213
34214 2013-03-21 Richard Biener <rguenther@suse.de>
34215
34216 PR tree-optimization/39326
34217 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
34218 (sort_bbs_in_loop_postorder_cmp): New function.
34219 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
34220
34221 2013-03-21 Richard Biener <rguenther@suse.de>
34222
34223 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
34224 (vect_insert_into_interleaving_chain): Likewise.
34225 (vect_drs_dependent_in_basic_block): Inline ...
34226 (vect_slp_analyze_data_ref_dependence): ... here. New function,
34227 split out from ...
34228 (vect_analyze_data_ref_dependence): ... here. Simplify.
34229 (vect_check_interleaving): Simplify.
34230 (vect_analyze_data_ref_dependences): Likewise. Split out ...
34231 (vect_slp_analyze_data_ref_dependences): ... this new function.
34232 (dr_group_sort_cmp): New function.
34233 (vect_analyze_data_ref_accesses): Compute data-reference groups
34234 here instead of in vect_analyze_data_ref_dependence. Use
34235 a more efficient algorithm.
34236 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
34237 vect_slp_analyze_data_ref_dependences. Call
34238 vect_analyze_data_ref_accesses earlier.
34239 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
34240 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
34241 (vect_slp_analyze_data_ref_dependences): New prototype.
34242
34243 2013-03-21 Richard Biener <rguenther@suse.de>
34244
34245 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
34246 ref is stored in the loop.
34247 (find_refs_for_sm): Walk only over all stores.
34248 (store_motion_loop): Allocate from lim_bitmap_obstack.
34249 (store_motion): Likewise.
34250
34251 2013-03-21 Richard Biener <rguenther@suse.de>
34252
34253 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
34254 Update virtual SSA form.
34255
34256 2013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34257
34258 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
34259 * configure: Regenerate.
34260 * config.in: Regenerate.
34261 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
34262 if !HAVE_LD_EH_FRAME_CIEV3.
34263
34264 2013-03-21 Richard Biener <rguenther@suse.de>
34265
34266 * tree-cfg.c (verify_expr_no_block): New function.
34267 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
34268 nor DECL_VALUE_EXPR have locations with associated blocks.
34269 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
34270 (clear_unused_block_pointer): Remove code dealing with
34271 blocks in DECL_DEBUG_EXPR locations.
34272
34273 2013-03-21 Richard Biener <rguenther@suse.de>
34274
34275 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
34276 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
34277 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
34278 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
34279 instead of DECL_DEBUG_EXPR_IS_FROM.
34280 * gimplify.c (gimplify_modify_expr): Likewise.
34281 * tree-cfg.c (verify_expr_location_1): Likewise.
34282 * tree-complex.c (create_one_component_var): Likewise.
34283 * tree-sra.c (create_access_replacement): Likewise.
34284 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
34285 (clear_unused_block_pointer): Likewise.
34286 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
34287 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
34288 * var-tracking.c (var_debug_decl): Likewise.
34289 (track_expr_p): Likewise.
34290 * tree-inline.c (add_local_variables): Likewise. Set
34291 DECL_HAS_DEBUG_EXPR_P after copying it.
34292 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
34293 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
34294
34295 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
34296
34297 PR bootstrap/56656
34298 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
34299 * configure: Regenerate.
34300 * config.in: Regenerate.
34301 * config/i386/i386.md (*movdf_internal): Use
34302 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
34303 movd instead of movq mnemonic for interunit moves.
34304 (*movdi_internal): Ditto.
34305
34306 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
34307
34308 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
34309 (abd<mode>_3): New pattern.
34310 (aba<mode>_3): New pattern.
34311 (fabd<mode>_3): New pattern.
34312
34313 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
34314
34315 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
34316 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
34317 occurrence of REGISTER_PREFIX as its empty string.
34318
34319 2013-03-20 Jeff Law <law@redhat.com>
34320
34321 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
34322 addititional equivalences for equality comparisons between an SSA_NAME
34323 and a constant where the SSA_NAME was set from a widening conversion.
34324
34325 2013-03-20 Walter Lee <walt@tilera.com>
34326
34327 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
34328
34329 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
34330
34331 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
34332 depending on type attribute.
34333 (*movti_internal): Ditto.
34334 (*movtf_internal): Ditto.
34335 (*movxf_internal): Ditto.
34336 (*movdf_internal): Ditto.
34337 (*movsf_internal): Ditto.
34338
34339 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
34340
34341 * config/i386/i386.md (*movti_internal): Set prefix attribute to
34342 maybe_vex for sselog1 and ssemov types.
34343 (*movdi_internal): Reorder operand constraints.
34344 (*movsi_internal): Ditto. Set prefix attribute to
34345 maybe_vex for sselog1 and ssemov types.
34346 (*movtf_internal): Set prefix attribute to maybe_vex
34347 for sselog1 and ssemov types.
34348 (*movdf_internal): Ditto. Set prefix_data16 attribute for
34349 DImode ssemov types. Reorder operand constraints.
34350 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
34351 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
34352 attribute for SImode ssemov types. Reorder operand constraints.
34353
34354 2013-03-20 Martin Jambor <mjambor@suse.cz>
34355
34356 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
34357 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
34358
34359 2013-03-20 Pat Haugen <pthaugen@us.ibm.com>
34360
34361 * config/rs6000/predicates.md (indexed_address, update_address_mem
34362 update_indexed_address_mem): New predicates.
34363 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
34364 attribute for load/store instructions.
34365 * config/rs6000/dfp.md (movsd_store): Likewise.
34366 (movsd_load): Likewise.
34367 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
34368 (unnamed HI->DI extend define_insn): Likewise.
34369 (unnamed SI->DI extend define_insn): Likewise.
34370 (unnamed QI->SI extend define_insn): Likewise.
34371 (unnamed QI->HI extend define_insn): Likewise.
34372 (unnamed HI->SI extend define_insn): Likewise.
34373 (unnamed HI->SI extend define_insn): Likewise.
34374 (extendsfdf2_fpr): Likewise.
34375 (movsi_internal1): Likewise.
34376 (movsi_internal1_single): Likewise.
34377 (movhi_internal): Likewise.
34378 (movqi_internal): Likewise.
34379 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
34380 attribute for load/store instructions.
34381 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
34382 instructions.
34383 (mov<mode>_softfloat): Likewise.
34384 (mov<mode>_hardfloat32): Likewise.
34385 (mov<mode>_hardfloat64): Likewise.
34386 (mov<mode>_softfloat64): Likewise.
34387 (movdi_internal32): Likewise.
34388 (movdi_internal64): Likewise.
34389 (probe_stack_<mode>): Likewise.
34390
34391 2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
34392
34393 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
34394 floating point, and decimal floating point to reload iterator.
34395
34396 * config/rs6000/constraints.md (wl constraint): New constraints to
34397 return FLOAT_REGS if certain options are used to reduce the number
34398 of separate patterns that exist in the file.
34399 (wx constraint): Likewise.
34400 (wz constraint): Likewise.
34401
34402 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
34403 -mdebug=reg, print wg, wl, wx, and wz constraints.
34404 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
34405 Initialize the reload functions for 64-bit binary/decimal floating
34406 point types.
34407 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
34408 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
34409 create the buffer on the stack to overcome not having a 32-bit
34410 load and store.
34411 (rs6000_emit_move): Likewise.
34412 (rs6000_secondary_memory_needed_rtx): Likewise.
34413 (rs6000_alloc_sdmode_stack_slot): Likewise.
34414 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
34415 via xxlxor, just like DFmode 0.0.
34416
34417 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
34418 define as 1 if we are running on a power7 or newer.
34419 (enum r6000_reg_class_enum): Add new constraints.
34420
34421 * config/rs6000/dfp.md (movsd): Delete, combine with binary
34422 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
34423 with other moves by using conditional constraits (wg). Use LFIWZX
34424 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
34425 (movsd splitter): Likewise.
34426 (movsd_hardfloat): Likewise.
34427 (movsd_softfloat): Likewise.
34428
34429 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
34430 binary and decimal floating point moves.
34431 (fmove_ok): New attributes to combine binary and decimal floating
34432 point moves, and to combine power6x (mfpgpr) moves along normal
34433 floating moves.
34434 (real_value_to_target): Likewise.
34435 (f32_lr): Likewise.
34436 (f32_lm): Likewise.
34437 (f32_li): Likewise.
34438 (f32_sr): Likewise.
34439 (f32_sm): Likewise.
34440 (f32_si): Likewise.
34441 (movsf): Combine binary and decimal floating point moves. Combine
34442 power6x (mfpgpr) moves with other moves by using conditional
34443 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
34444 (mov<mode> for SFmode/SDmode); Likewise.
34445 (SFmode/SDmode splitters): Likewise.
34446 (movsf_hardfloat): Likewise.
34447 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
34448 (movsf_softfloat): Likewise.
34449 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
34450
34451 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
34452 wx and wz constraints.
34453
34454 * config/rs6000/constraints.md (wg constraint): New constraint to
34455 return FLOAT_REGS if -mmfpgpr (power6x) was used.
34456
34457 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
34458 constraint.
34459
34460 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
34461 -mdebug=reg, print wg, wl, wx, and wz constraints.
34462 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
34463 Initialize the reload functions for 64-bit binary/decimal floating
34464 point types.
34465 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
34466 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
34467 create the buffer on the stack to overcome not having a 32-bit
34468 load and store.
34469 (rs6000_emit_move): Likewise.
34470 (rs6000_secondary_memory_needed_rtx): Likewise.
34471 (rs6000_alloc_sdmode_stack_slot): Likewise.
34472 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
34473 via xxlxor, just like DFmode 0.0.
34474
34475 * config/rs6000/dfp.md (movdd): Delete, combine with binary
34476 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
34477 with other moves by using conditional constraits (wg). Use LFIWZX
34478 and STFIWX for loading SDmode on power7.
34479 (movdd splitters): Likewise.
34480 (movdd_hardfloat32): Likewise.
34481 (movdd_softfloat32): Likewise.
34482 (movdd_hardfloat64_mfpgpr): Likewise.
34483 (movdd_hardfloat64): Likewise.
34484 (movdd_softfloat64): Likewise.
34485
34486 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
34487 64-bit binary and decimal floating point moves.
34488 (FMOVE64X): Likewise.
34489 (movdf): Combine 64-bit binary and decimal floating point moves.
34490 Combine power6x (mfpgpr) moves with other moves by using
34491 conditional constraits (wg).
34492 (mov<mode> for DFmode/DDmode): Likewise.
34493 (DFmode/DDmode splitters): Likewise.
34494 (movdf_hardfloat32): Likewise.
34495 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
34496 (movdf_softfloat32): Likewise.
34497 (movdf_hardfloat64_mfpgpr): Likewise.
34498 (movdf_hardfloat64): Likewise.
34499 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
34500 (movdf_softfloat64): Likewise.
34501 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
34502 (reload_<mode>_load): Move to later in the file so they aren't in
34503 the middle of the floating point move insns.
34504 (reload_<mode>_store): Likewise.
34505
34506 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
34507 constraint.
34508
34509 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
34510 constraint if -mdebug=reg.
34511 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
34512 Enable using dd reload support if needed.
34513
34514 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
34515 binary and decimal floating point moves in rs6000.md.
34516 (movtd_internal): Likewise.
34517
34518 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
34519 decimal floating point moves.
34520 (movtf): Likewise.
34521 (movtf_internal): Likewise.
34522 (mov<mode>_internal, TDmode/TFmode): Likewise.
34523 (movtf_softfloat): Likewise.
34524 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
34525
34526 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
34527 movdi_internal64, using wg constraint for move direct operations.
34528 (movdi_internal64): Likewise.
34529
34530 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
34531 MODES_TIEABLE_P for selected modes. Print the numerical value of
34532 the various virtual registers. Use GPR/FPR first/last values,
34533 instead of hard coding the register numbers. Print which modes
34534 have reload functions registered.
34535 (rs6000_option_override_internal): If -mdebug=reg, trace the options
34536 settings before/after setting cpu, target and subtarget settings.
34537 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
34538 and for secondary reload failures in rs6000_secondary_reload_inner.
34539 (rs6000_secondary_reload_fail): Likewise.
34540 (rs6000_secondary_reload_inner): Likewise.
34541
34542 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
34543 macros for first/last GPR and FPR registers.
34544 (LAST_GPR_REGNO): Likewise.
34545 (FIRST_FPR_REGNO): Likewise.
34546 (LAST_FPR_REGNO): Likewise.
34547
34548 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
34549 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
34550 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
34551 (vcond<mode><mode>): Likewise.
34552 (vcondu<mode><mode>): Likewise.
34553 (vector_gtu<mode>): Likewise.
34554 (vector_gte<mode>): Likewise.
34555 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
34556 to prevent the compiler from converting DImode operations to TImode.
34557 (ior<mode>3): Likewise.
34558 (and<mode>3): Likewise.
34559 (one_cmpl<mode>2): Likewise.
34560 (nor<mode>3): Likewise.
34561 (andc<mode>3): Likewise.
34562
34563 * config/rs6000/constraints.md (wt constraint): New constraint
34564 that returns VSX_REGS if TImode is allowed in VSX registers.
34565
34566 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
34567 constant under VSX.
34568
34569 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
34570 similar to TImode, but it is restricted to being in the GPRs.
34571
34572 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
34573 TImode to occupy a single VSX register.
34574
34575 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
34576 -mvsx-timode for power7/power8.
34577 (power7 cpu): Likewise.
34578 (power8 cpu): Likewise.
34579
34580 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
34581 sure that TFmode/TDmode take up two registers if they are ever
34582 allowed in the upper VSX registers.
34583 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
34584 registers.
34585 (rs6000_init_hard_regno_mode_ok): Likewise.
34586 (rs6000_debug_reg_global): Add debugging for PTImode and wt
34587 constraint. Print if LRA is turned on.
34588 (rs6000_option_override_internal): Give an error if -mvsx-timode
34589 and VSX is not enabled.
34590 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
34591 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
34592 to reg+offset addressing. Use PTImode when checking offset
34593 addresses for validity.
34594 (reg_offset_addressing_ok_p): Likewise.
34595 (rs6000_legitimate_offset_address_p): Likewise.
34596 (rs6000_legitimize_address): Likewise.
34597 (rs6000_legitimize_reload_address): Likewise.
34598 (rs6000_legitimate_address_p): Likewise.
34599 (rs6000_eliminate_indexed_memrefs): Likewise.
34600 (rs6000_emit_move): Likewise.
34601 (rs6000_secondary_reload): Likewise.
34602 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
34603 reloads to fpr registers to continue to use reg+offset addressing,
34604 but 64-bit reloads to altivec registers need reg+reg addressing.
34605 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
34606 it. Treat LO_SUM like a PLUS operation.
34607 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
34608 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
34609 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
34610 registers to share a register with a smaller sized type, since VSX
34611 puts scalars in the upper 64-bits.
34612 (print_operand): Add support for PTImode.
34613 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
34614 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
34615 registers, but don't have arithmetic support.
34616 (rs6000_memory_move_cost): Add test for VSX.
34617 (rs6000_opt_masks): Add -mvsx-timode.
34618
34619 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
34620 for TImode.
34621 (VSs): Likewise.
34622 (VSr): Use wt constraint for TImode.
34623 (VSv): Drop TImode support.
34624 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
34625 (vsx_movti_64bit): Likewise.
34626 (vsx_movti_32bit): Likewise.
34627 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
34628 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
34629 one '?' on the appropriate output constraint. Do not allow TImode
34630 logical operations on 32-bit systems.
34631 (vsx_ior<mode>3): Likewise.
34632 (vsx_xor<mode>3): Likewise.
34633 (vsx_one_cmpl<mode>2): Likewise.
34634 (vsx_nor<mode>3): Likewise.
34635 (vsx_andc<mode>3): Likewise.
34636 (vsx_concat_<mode>): Likewise.
34637 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
34638
34639 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
34640 OPTION_MASK_VSX_TIMODE.
34641 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
34642 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
34643
34644 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
34645 (TI2 iterator): New iterator for TImode, PTImode.
34646 (wd mode attribute): Add values for vector types.
34647 (movti_string): Replace TI move operations with operations for TImode
34648 and PTImode. Add support for TImode being allowed in VSX registers.
34649 (mov<mode>_string, TImode/PTImode): Likewise.
34650 (movti_ppc64): Likewise.
34651 (mov<mode>_ppc64, TImode/PTImode): Likewise.
34652 (TI mode splitters): Likewise.
34653
34654 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
34655 constraint.
34656
34657 2013-03-20 Marc Glisse <marc.glisse@inria.fr>
34658
34659 PR tree-optimization/56355
34660 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
34661 Also handle integers with undefined overflow.
34662
34663 2013-03-20 Catherine Moore <clm@codesourcery.com>
34664 Maciej W. Rozycki <macro@codesourcery.com>
34665 Tom de Vries <tom@codesourcery.com>
34666 Nathan Sidwell <nathan@codesourcery.com>
34667 Iain Sandoe <iain@codesourcery.com>
34668 Nathan Froyd <froydnj@codesourcery.com>
34669 Chao-ying Fu <fu@mips.com>
34670
34671 * doc/extend.texi: (micromips, nomicromips, nocompression):
34672 Document new function attributes.
34673 * doc/invoke.texi (minterlink-compressed, mmicromips,
34674 m14k, m14ke, m14kec): Document new options.
34675 (minterlink-mips16): Update documentation.
34676 * doc/md.texi (ZC, ZD): Document new constraints.
34677 * configure.ac (gcc_cv_as_micromips): Check if linker
34678 supports the .set micromips directive.
34679 * configure: Regenerate.
34680 * config.in: Regenerate.
34681 * config/mips/mips-tables.opt: Regenerate.
34682 * config/mips/micromips.md: New file.
34683 * constraints.md (ZC, ZD): New constraints.
34684 * config/mips/predicates.md (movep_src_register): New predicate.
34685 (movep_src_operand): New predicate.
34686 (non_volatile_mem_operand): New predicate.
34687 * config/mips/mips.md (multimem): New type.
34688 (length): Differentiate between 17-bit and 18-bit branch offsets.
34689 (MOVEP1, MOVEP2): New mode iterator.
34690 (mov_<load>l): Use ZC constraint.
34691 (mov_<load>r): Likewise.
34692 (mov_<store>l): Likewise.
34693 (mov_<store>r): Likewise.
34694 (*branch_equality<mode>_inverted): Add microMIPS support.
34695 (*branch_equality<mode>): Likewise.
34696 (*jump_absolute): Likewise.
34697 (indirect_jump_<mode>): Likewise.
34698 (tablejump_<mode>): Likewise.
34699 (<optab>_internal): Likewise.
34700 (sibcall_internal): Likewise.
34701 (sibcall_value_internal): Likewise.
34702 (prefetch): Use constraint ZD.
34703 * config/mips/mips.opt (minterlink-compressed): New option.
34704 (minterlink-mips16): Now an alias for minterlink-compressed.
34705 (mmicromips): New option.
34706 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
34707 (compare_and_swap_12): Likewise.
34708 (sync_add<mode>): Likewise.
34709 (sync_<optab>_12): Likewise.
34710 (sync_old_<optab>_12): Likewise.
34711 (sync_new_<optab>_12): Likewise.
34712 (sync_nand_12): Likewise.
34713 (sync_old_nand_12): Likewise.
34714 (sync_new_nand_12): Likewise.
34715 (sync_sub<mode>): Likewise.
34716 (sync_old_add<mode>): Likewise.
34717 (sync_old_sub<mode>): Likewise.
34718 (sync_new_add<mode>): Likewise.
34719 (sync_new_sub<mode>): Likewise.
34720 (sync_<optab><mode>): Likewise.
34721 (sync_old_<optab><mode>): Likewise.
34722 (sync_new_<optab><mode>): Likewise.
34723 (sync_nand<mode>): Likewise.
34724 (sync_old_nand<mode>): Likewise.
34725 (sync_new_nand<mode>): Likewise.
34726 (sync_lock_test_and_set<mode>): Likewise.
34727 (test_and_set_12): Likewise.
34728 (atomic_compare_and_swap<mode>): Likewise.
34729 (atomic_exchange<mode>_llsc): Likewise.
34730 (atomic_fetch_add<mode>_llsc): Likewise.
34731 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
34732 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
34733 (umips_save_restore_pattern_p): Likewise.
34734 (umips_load_store_pair_p): Likewise.
34735 (umips_output_load_store_pair): Likewise.
34736 (umips_movep_target_p): Likewise.
34737 (umips_12bit_offset_address_p): Likewise.
34738 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
34739 (mips_base_mips16): Rename this...
34740 (mips_base_compression_flags): ...to this. Update all uses.
34741 (mips_attribute_table): Add micromips, nomicromips and nocompression.
34742 (mips_mips16_decl_p): Delete.
34743 (mips_nomips16_decl_p): Delete.
34744 (mips_get_compress_on_flags): New function.
34745 (mips_get_compress_off_flags): New function.
34746 (mips_get_compress_mode): New function.
34747 (mips_get_compress_on_name): New function.
34748 (mips_get_compress_off_name): New function.
34749 (mips_insert_attributes): Support multiple compression types.
34750 (mips_merge_decl_attributes): Likewise.
34751 (umips_12bit_offset_address_p): New function.
34752 (mips_start_function_definition): Emit .set micromips directive.
34753 (mips_call_may_need_jalx_p): New function.
34754 (mips_function_ok_for_sibcall): Add microMIPS support.
34755 (mips_print_operand_punctuation): Support short delay slots and
34756 compact jumps.
34757 (umips_swm_mask, umips_swm_encoding): New.
34758 (umips_build_save_restore): New function.
34759 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
34760 (was_mips16_p): Remove.
34761 (old_compression_mode): New.
34762 (mips_set_compression_mode): New function.
34763 (mips_set_current_function): Add microMIPS support.
34764 (mips_option_override): Likewise.
34765 (umips_save_restore_pattern_p): New function.
34766 (umips_output_save_restore): New function.
34767 (umips_load_store_pair_p_1): New function.
34768 (umips_load_store_pair_p): New function.
34769 (umips_output_load_store_pair_1): New function.
34770 (umips_output_load_store_pair): New function.
34771 (umips_movep_target_p) New function.
34772 (mips_prepare_pch_save): Add microMIPS support.
34773 * config/mips/mips.h (TARGET_COMPRESSION): New.
34774 (TARGET_CPU_CPP_BUILTINS): Update macro
34775 to use new compression flags and to support microMIPS.
34776 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
34777 (MIPS_ARCH_FLOAT_SPEC): Likewise.
34778 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
34779 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
34780 (ASM_SPEC): Support mmicromips and mno-micromips.
34781 (M16STORE_REG_P): New macro.
34782 (MIPS_CALL): Support TARGET_MICROMIPS.
34783 (MICROMIPS_J): New macro.
34784 (mips_base_mips16): Rename this...
34785 (mips_base_compression_flags): ...to this.
34786 (UMIPS_12BIT_OFFSET_P): New macro.
34787 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
34788 (MULTILIB_DIRNAMES): Likewise.
34789 2013-03-20 Richard Biener <rguenther@suse.de>
34790
34791 PR tree-optimization/56661
34792 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
34793 the result does not have to be distinct.
34794
34795 2013-03-20 Richard Biener <rguenther@suse.de>
34796
34797 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
34798 remap_gimple_op_r.
34799
34800 2013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34801 Steven Bosscher <steven@gcc.gnu.org>
34802
34803 PR rtl-optimization/56605
34804 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
34805
34806 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
34807
34808 PR bootstrap/56656
34809 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
34810 that require movd instead of movq.
34811
34812 2013-03-20 Richard Biener <rguenther@suse.de>
34813
34814 * tree-ssa-structalias.c (struct variable_info): Add pointer
34815 to the first field of an aggregate with sub-vars. Make
34816 this and the pointer to the next subfield its ID.
34817 (vi_next): New function.
34818 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
34819 storedanything_id, integer_id): Increment by one.
34820 (new_var_info, get_call_vi, lookup_call_clobber_vi,
34821 get_call_clobber_vi): Adjust.
34822 (solution_set_expand): Simplify and speedup.
34823 (solution_set_add): Inline into ...
34824 (set_union_with_increment): ... this. Adjust accordingly.
34825 (do_sd_constraint): Likewise.
34826 (do_ds_constraint): Likewise.
34827 (do_complex_constraint): Simplify.
34828 (build_pred_graph): Adjust.
34829 (solve_graph): Likewise. Simplify and speedup.
34830 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
34831 get_constraint_for_component_ref, get_constraint_for_1,
34832 first_vi_for_offset, first_or_preceding_vi_for_offset,
34833 create_function_info_for, create_variable_info_for_1,
34834 create_variable_info_for, intra_create_variable_infos): Adjust.
34835 (init_base_vars): Push NULL for ID zero.
34836 (compute_points_to_sets): Adjust.
34837
34838 2013-03-20 Richard Biener <rguenther@suse.de>
34839
34840 * cfgloop.c (verify_loop_structure): Streamline and avoid
34841 ICEing on corrupt loop tree.
34842 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
34843 loop tree.
34844
34845 2013-03-20 Richard Biener <rguenther@suse.de>
34846
34847 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
34848 check whether an SSA update is needed.
34849
34850 2013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
34851
34852 * config/mips/constraints.md (T): Rename to...
34853 (Yf): ...this.
34854 (U): Rename to...
34855 (Yd): ...this.
34856 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
34857 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
34858
34859 2013-03-19 Ian Bolton <ian.bolton@arm.com>
34860
34861 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
34862 (*subsi3_carryin_uxtw): Likewise.
34863
34864 2013-03-19 Ian Bolton <ian.bolton@arm.com>
34865
34866 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
34867 (*rorsi3_insn_uxtw): Likewise.
34868
34869 2013-03-19 Ian Bolton <ian.bolton@arm.com>
34870
34871 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
34872 (*extrsi5_insn_uxtw): Likewise.
34873
34874 2013-03-19 Richard Biener <rguenther@suse.de>
34875
34876 PR tree-optimization/56273
34877 * passes.c (init_optimization_passes): Move second VRP after DOM.
34878
34879 2013-03-19 Uros Bizjak <ubizjak@gmail.com>
34880
34881 * config/i386/i386.md (*movti_internal): Merge from
34882 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
34883 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
34884 nox64 isa attributes.
34885
34886 2013-03-18 Richard Biener <rguenther@suse.de>
34887
34888 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
34889 (unite): Likewise.
34890 (merge_node_constraints): Likewise.
34891 (build_succ_graph): Likewise.
34892 (valid_graph_edge): Inline into single caller.
34893 (unify_nodes): Likewise. Use bitmap_set_bit return value
34894 and cache varinfo.
34895 (scc_visit): Fix formatting and variable use.
34896 (do_sd_constraint): Use gcc_checking_assert.
34897 (do_ds_constraint): Likewise.
34898 (do_complex_constraint): Likewise.
34899 (condense_visit): Likewise. Cleanup.
34900 (dump_pred_graph): New function.
34901 (perform_var_substitution): Dump the pred-graph before
34902 variable substitution.
34903 (find_equivalent_node): Use gcc_checking_assert.
34904 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
34905
34906 2013-03-18 Richard Biener <rguenther@suse.de>
34907
34908 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
34909 Remove cond_expr_stmt_list argument and do not gimplify the
34910 built expression.
34911 (vect_loop_versioning): Adjust.
34912 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
34913 Cleanup to use less temporaries.
34914 (vect_create_data_ref_ptr): Cleanup.
34915
34916 2013-03-18 Jakub Jelinek <jakub@redhat.com>
34917
34918 PR tree-optimization/56635
34919 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
34920 require types_compatible_p types.
34921
34922 2013-03-18 Nick Clifton <nickc@redhat.com>
34923
34924 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
34925 spurious backslash.
34926
34927 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
34928 Add missing line to comment describing function.
34929
34930 2013-03-18 Richard Biener <rguenther@suse.de>
34931
34932 PR tree-optimization/56210
34933 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
34934 Handle string / character search functions.
34935 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
34936
34937 2013-03-18 Richard Biener <rguenther@suse.de>
34938
34939 PR middle-end/56483
34940 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
34941 and implement properly.
34942 * gimple.h (gimple_cond_single_var_p): Remove.
34943
34944 2013-03-18 Richard Biener <rguenther@suse.de>
34945
34946 * tree-data-ref.h (find_data_references_in_loop): Declare.
34947 * tree-data-ref.c (get_references_in_stmt): Use a stack
34948 vector pre-allocated in the callers.
34949 (find_data_references_in_stmt): Adjust.
34950 (graphite_find_data_references_in_stmt): Likewise.
34951 (create_rdg_vertices): Likewise.
34952 (find_data_references_in_loop): Export.
34953 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
34954 Compute dependences here...
34955 (vect_analyze_data_refs): ...not here. When we encounter
34956 a non-vectorizable data reference in basic-block vectorization
34957 truncate the data reference vector. Do not bother to
34958 fixup data-dependence information for gather loads.
34959 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
34960 of data references, as reported.
34961
34962 2013-03-18 Richard Biener <rguenther@suse.de>
34963
34964 PR tree-optimization/3713
34965 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
34966 has_constants and expr.
34967 (stmt_has_constants): Properly valueize SSA names when deciding
34968 whether the stmt has constants.
34969
34970 2013-03-18 Richard Biener <rguenther@suse.de>
34971
34972 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
34973 whole function when there is nothing to do.
34974 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
34975 * tree-vectorizer.c (vectorize_loops): Update virtual and
34976 loop-closed SSA once.
34977 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
34978
34979 2013-03-18 Richard Biener <rguenther@suse.de>
34980
34981 PR middle-end/56113
34982 * domwalk.c (bb_postorder): New global static.
34983 (cmp_bb_postorder): New function.
34984 (walk_dominator_tree): Replace scheme imposing an order for
34985 visiting dominator sons by one sorting them at the time they
34986 are pushed on the stack.
34987
34988 2013-03-18 Richard Biener <rguenther@suse.de>
34989
34990 PR tree-optimization/39326
34991 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
34992 (struct mem_ref): Replace mem member with ao_ref typed member.
34993 (MEM_ANALYZABLE): Adjust.
34994 (memref_eq): Likewise.
34995 (mem_ref_alloc): Likewise.
34996 (gather_mem_refs_stmt): Likewise.
34997 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
34998 (execute_sm_if_changed_flag_set): Adjust.
34999 (execute_sm): Likewise.
35000 (ref_always_accessed_p): Likewise.
35001 (refs_independent_p): Likewise.
35002 (can_sm_ref_p): Likewise.
35003
35004 2013-03-18 Jakub Jelinek <jakub@redhat.com>
35005
35006 PR c/56566
35007 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
35008 return 1 even for !unsignedp.
35009
35010 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
35011
35012 * config/i386/i386.md (isa): Add x64 and nox64.
35013 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
35014 (*pushtf): Enable *roF alternative for x64 isa only.
35015 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
35016 mode attribute of integer alternatives to DImode for TARGET_64BIT.
35017 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
35018 (*movtf_internal): Merge from *movtf_internal_rex64 and
35019 *movtf_internal_sse. Use x64 and nox64 isa attributes.
35020 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
35021 nox64 isa attributes.
35022 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
35023 nox64 isa attributes.
35024 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
35025
35026 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
35027
35028 * config/alpha/alpha.c (TARGET_LRA_P): New define.
35029
35030 2013-03-17 Jakub Jelinek <jakub@redhat.com>
35031
35032 PR target/56640
35033 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
35034 class names. Remove trailing comma after "ALL_REGS".
35035
35036 2013-03-16 Jan Hubicka <jh@suse.cz>
35037
35038 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
35039 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
35040 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
35041 of cgraph_get_create_node.
35042 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
35043
35044 2013-03-16 Jason Merrill <jason@redhat.com>
35045
35046 PR debug/49090
35047 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
35048 with DW_AT_default_value.
35049
35050 2013-03-16 Jakub Jelinek <jakub@redhat.com>
35051
35052 * BASE-VER: Set to 4.9.0.
35053
35054 2013-03-14 Andi Kleen <ak@linux.intel.com>
35055
35056 PR target/56619
35057 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
35058 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
35059 Document _x* TSX intrinsics.
35060
35061 2013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
35062 David Holsgrove <david.holsgrove@xilinx.com>
35063
35064 * configure.ac: Add MicroBlaze TLS support detection.
35065 * configure: Regenerate.
35066 * config/microblaze/microblaze-protos.h
35067 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
35068 symbol_mentioned_p, label_mentioned_p): Add prototypes.
35069 * config/microblaze/microblaze.c (microblaze_address_type): Add
35070 ADDRESS_TLS and tls_reloc address types.
35071 (microblaze_address_info): Add tls_reloc.
35072 (TARGET_HAVE_TLS): Define.
35073 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
35074 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
35075 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
35076 load_tls_operand, microblaze_call_tls_get_addr,
35077 microblaze_legitimize_tls_address): New functions.
35078 (microblaze_classify_unspec): Handle UNSPEC_TLS.
35079 (get_base_reg): Use microblaze_tls_symbol_p.
35080 (microblaze_classify_address): Handle TLS.
35081 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
35082 label_mentioned_p and microblaze_tls_referenced_p.
35083 (microblaze_legitimize_address): Handle TLS.
35084 (microblaze_address_insns): Handle ADDRESS_TLS.
35085 (pic_address_needs_scratch): Handle TLS.
35086 (print_operand_address): Handle TLS.
35087 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
35088 (microblaze_expand_move): Handle TLS.
35089 (microblaze_legitimate_constant_p): Check
35090 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
35091 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
35092 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
35093 (PIC_OFFSET_TABLE_REGNUM): Set.
35094 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
35095 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
35096 (addsi3, movsi_internal2, movdf_internal): Update constraints
35097 * config/microblaze/predicates.md (arith_plus_operand): Define
35098 (move_operand): Redefine as move_src_operand,
35099 check microblaze_tls_referenced_p.
35100
35101 2013-03-14 Ian Bolton <ian.bolton@arm.com>
35102
35103 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
35104 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
35105
35106 2013-03-14 Ian Bolton <ian.bolton@arm.com>
35107
35108 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
35109 CC mode for AND.
35110
35111 2013-03-14 Jakub Jelinek <jakub@redhat.com>
35112
35113 PR tree-optimization/53265
35114 * common.opt (Waggressive-loop-optimizations): New option.
35115 * tree-ssa-loop-niter.c: Include tree-pass.h.
35116 (do_warn_aggressive_loop_optimizations): New function.
35117 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
35118 if number_of_latch_executions returned constant.
35119 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
35120 early. If number_of_latch_executions returned constant, set
35121 nb_iterations_upper_bound back to it.
35122 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
35123 field.
35124 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
35125 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
35126
35127 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
35128 (MULTILIB_OSDIRNAMES): Set.
35129 * genmultilib: If defaultosdirname doesn't start with :: , set
35130 defaultosdirname2 instead, clear it and emit two . multilib_raw
35131 entries instead of just one.
35132
35133 2013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
35134
35135 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
35136 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
35137 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
35138 (SUBTARGET_OVERRIDE_OPTIONS): New.
35139
35140 2013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
35141
35142 PR target/49880
35143 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
35144 (musermode): Convert to Var(TARGET_USERMODE).
35145 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
35146 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
35147 * config/sh/sh.c (sh_option_override): Use
35148 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
35149 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
35150 condition.
35151 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
35152 TARGET_SH4.
35153 (udivsi3_i4_single, divsi3_i4_single): Use
35154 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
35155
35156 2013-03-13 Dave Korn <dave.korn.cygwin@gmail.com>
35157
35158 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
35159 default setting.
35160
35161 2013-03-13 Richard Biener <rguenther@suse.de>
35162
35163 PR tree-optimization/56608
35164 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
35165 calls when vectorizing basic-blocks.
35166
35167 2013-03-13 Jakub Jelinek <jakub@redhat.com>
35168
35169 PR plugins/45078
35170 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
35171 tm_file.
35172
35173 2013-03-12 Jakub Jelinek <jakub@redhat.com>
35174
35175 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
35176
35177 2013-03-11 Jan Hubicka <jh@suse.cz>
35178
35179 PR lto/56557
35180 * lto-streamer-out.c (output_symbol_p): Skip references from
35181 constructors of external variables.
35182
35183 2013-03-11 Jan Hubicka <jh@suse.cz>
35184
35185 PR middle-end/56571
35186 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
35187 from pseudos.
35188 * emit-rtl.c (verify_rtx_sharing): Likewise.
35189 (copy_insn_1): Likewise.
35190 * rtl.c (copy_rtx): Likewise.
35191
35192 2013-03-11 Georg-Johann Lay <avr@gjlay.de>
35193
35194 PR target/56591
35195 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
35196 output_operand_lossage message.
35197
35198 2013-03-11 Richard Earnshaw <rearnsha@arm.com>
35199
35200 PR target/56470
35201 * arm.c (shift_op): Validate RTL pattern on the fly.
35202 (arm_print_operand, case 'S'): Don't use shift_operator to validate
35203 the RTL.
35204
35205 2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
35206
35207 PR target/56347
35208 * config/pa/pa.md (call_value): Check for calls to powf and direct to
35209 new call patterns that clobber %fr12.
35210 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
35211 split and postreload patterns.
35212 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
35213 registers %fr12 and %fr12R as call used.
35214
35215 2013-03-09 Steven Bosscher <steven@gcc.gnu.org>
35216
35217 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
35218 (canon_address, record_store, replace_read, check_mem_read_rtx,
35219 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
35220 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
35221 rest_of_handle_dse): Likewise.
35222
35223 2013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
35224
35225 PR middle-end/56524
35226 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
35227 Add base_optabs.
35228 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
35229 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
35230 (save_optabs_if_changed): Replace with...
35231 (init_tree_optimization_optabs): ...this.
35232 * optabs.c (save_optabs_if_changed): Rename to...
35233 (init_tree_optimization_optabs): ...this. Take the optimization node
35234 as argument. Do nothing if the base optabs are already correct.
35235 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
35236 to recompute optabs.
35237 * function.h (function): Remove optabs field.
35238 * function.c (invoke_set_current_function_hook): Call
35239 init_tree_optimization_optabs. Use the result to initialize
35240 this_fn_optabs.
35241
35242 2013-02-27 Aldy Hernandez <aldyh@redhat.com>
35243
35244 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
35245 if GTMA_HAS_NO_INSTRUMENTATION.
35246 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
35247 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
35248 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
35249 * gimple-pretty-print.c (dump_gimple_transaction): Handle
35250 GTMA_HAS_NO_INSTRUMENTATION.
35251
35252 2013-03-08 Jakub Jelinek <jakub@redhat.com>
35253
35254 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
35255 libasan_preinit.o.
35256
35257 2013-03-08 Marek Polacek <polacek@redhat.com>
35258 Jakub Jelinek <jakub@redhat.com>
35259
35260 PR tree-optimization/56478
35261 * predict.c (is_comparison_with_loop_invariant_p): Change the
35262 type of loop_step to tree.
35263 (predict_loops): Adjust.
35264 (predict_iv_comparison): Perform the computations on double_ints.
35265
35266 2013-03-08 Richard Biener <rguenther@suse.de>
35267
35268 PR tree-optimization/56570
35269 * tree-cfg.c (verify_expr_location_1): Verify locations for
35270 DECL_DEBUG_EXPR.
35271 * tree-sra.c (create_access_replacement): Strip locations
35272 from DECL_DEBUG_EXPRs.
35273
35274 2013-03-08 Richard Biener <rguenther@suse.de>
35275
35276 * tree-inline.c (expand_call_inline): Do not associate
35277 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
35278 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
35279
35280 2013-03-08 Richard Biener <rguenther@suse.de>
35281
35282 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
35283 or block changes with -Og. Fix for location / block encoding
35284 changes and PHI arguments with locations.
35285
35286 2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
35287
35288 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
35289 for all counters.
35290 (struct output_info): Likewise.
35291 (register_overhead): Remove bad gcc_assert.
35292 (bitmap_find_bit): If there is only a single bitmap element, do not
35293 count a miss as a search.
35294 (print_statistics): Update for counter type changes.
35295 (dump_bitmap_statistics): Likewise. Print headers such that they
35296 are properly lined up with the printed counters.
35297
35298 2013-03-07 Jakub Jelinek <jakub@redhat.com>
35299
35300 PR tree-optimization/56559
35301 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
35302 check that it has only a single use.
35303
35304 2013-03-07 Richard Biener <rguenther@suse.de>
35305
35306 * doc/invoke.texi (fwhole-program): Discourage use in combination
35307 with -flto.
35308
35309 2013-03-06 Jakub Jelinek <jakub@redhat.com>
35310
35311 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
35312
35313 PR tree-optimization/56539
35314 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
35315 instead of GSI_CONTINUE_LINKING as last argument to
35316 force_gimple_operand_gsi. Adjust function comment.
35317
35318 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
35319 aarch64-cores.def.
35320
35321 PR middle-end/56548
35322 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
35323 promoted mode, convert the result back to the original mode.
35324
35325 2013-03-06 Richard Biener <rguenther@suse.de>
35326
35327 PR middle-end/56294
35328 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
35329 (insert_updated_phi_nodes_compare_uids): New function.
35330 (update_ssa): Sort symbols_to_rename after UID before
35331 traversing it to insert PHI nodes.
35332
35333 2013-03-06 Richard Biener <rguenther@suse.de>
35334
35335 PR middle-end/50494
35336 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
35337 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
35338
35339 Revert
35340 2013-02-13 Richard Biener <rguenther@suse.de>
35341
35342 PR lto/50494
35343 * varasm.c (output_constant_def_1): Get the decl representing
35344 the constant as argument.
35345 (output_constant_def): Wrap output_constant_def_1.
35346 (make_decl_rtl): Use output_constant_def_1 with the decl
35347 representing the constant.
35348 (build_constant_desc): Optionally re-use a decl already
35349 representing the constant.
35350 (tree_output_constant_def): Adjust.
35351
35352 2013-03-06 Joey Ye <joey.ye@arm.com>
35353
35354 PR lto/50293
35355 * gcc.c (convert_white_space): New function.
35356 (main): Handles white space in function name.
35357
35358 2013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
35359
35360 PR target/56529
35361 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
35362 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
35363 to SH_DIV_CALL_TABLE for TARGET_SH2.
35364 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
35365 list.
35366 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
35367 call-table options.
35368
35369 2013-03-05 Sterling Augustine <saugustine@google.com>
35370 Cary Coutant <ccoutant@google.com>
35371
35372 PR debug/55364
35373 * dwarf2out.c (resolve_addr): Don't call
35374 remove_loc_list_addr_table_entries a second time for the same
35375 expression.
35376
35377 2013-03-05 Jakub Jelinek <jakub@redhat.com>
35378
35379 PR debug/56510
35380 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
35381 (avoid_complex_debug_insns): New function.
35382 (expand_debug_locations): Call it.
35383
35384 PR rtl-optimization/56484
35385 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
35386 lifetimes of hard registers on small register class machines.
35387
35388 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
35389
35390 * config/microblaze/microblaze-protos.h: Rename
35391 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
35392 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
35393 fast_interrupt.
35394 (microblaze_fast_interrupt_function_p): New function.
35395 (microblaze_is_interrupt_handler): Rename to
35396 microblaze_is_interrupt_variant and add fast_interrupt check.
35397 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
35398 (save_restore_insns): Likewise.
35399 (compute_frame_size): Likewise.
35400 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
35401 (microblaze_globalize_label): Likewise.
35402 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
35403 * config/microblaze/microblaze.md: Use wrapper
35404 microblaze_is_interrupt_variant.
35405
35406 2013-03-05 Kai Tietz <ktietz@redhat.com>
35407
35408 * sdbout.c (sdbout_one_type): Switch to current function's section
35409 supporting cold/hot.
35410
35411 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
35412
35413 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
35414 -mxl-reorder.
35415
35416 2013-03-05 Jakub Jelinek <jakub@redhat.com>
35417
35418 PR middle-end/56461
35419 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
35420 if VALGRIND_GET_VBITS is defined, temporarily make object
35421 memory all defined, and restore previous valgrind addressability
35422 and definability afterwards. Free this_object at the end.
35423
35424 PR middle-end/56461
35425 * lra.c (lra): Call lra_clear_live_ranges if live_p,
35426 right before calling lra_create_live_ranges, also call it
35427 when clearing live_p. Only call lra_clear_live_ranges
35428 at the end if live_p.
35429
35430 PR middle-end/56461
35431 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
35432
35433 2013-03-05 Richard Biener <rguenther@suse.de>
35434
35435 PR tree-optimization/56521
35436 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
35437 value-id.
35438
35439 2013-03-05 Steven Bosscher <steven@gcc.gnu.org>
35440
35441 PR c++/55135
35442 * except.h (remove_unreachable_eh_regions): New prototype.
35443 * except.c (remove_eh_handler_splicer): New function, split out
35444 of remove_eh_handler.
35445 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
35446 warning about running it on many EH regions one at a time.
35447 (remove_unreachable_eh_regions_worker): New function, walk the
35448 EH tree in depth-first order and remove non-marked regions.
35449 (remove_unreachable_eh_regions): New function.
35450 * tree-eh.c (mark_reachable_handlers): New function, split out
35451 from remove_unreachable_handlers.
35452 (remove_unreachable_handlers): Use mark_reachable_handlers and
35453 remove_unreachable_eh_regions.
35454 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
35455 and remove_unreachable_eh_regions.
35456
35457 2013-03-05 Richard Biener <rguenther@suse.de>
35458
35459 PR middle-end/56525
35460 * loop-init.c (fix_loop_structure): Remove loops in two stages,
35461 not freeing them until the end.
35462
35463 2013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35464
35465 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
35466
35467 2013-03-05 Richard Biener <rguenther@suse.de>
35468
35469 PR tree-optimization/56270
35470 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
35471 of loads after scheduling an SLP instance.
35472
35473 2013-03-05 Jakub Jelinek <jakub@redhat.com>
35474
35475 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
35476 tic6x.exp.
35477 (check_gcc_parallelize): Run guality.exp as a separate job from
35478 vect.exp with unsorted.exp and $(dg_target_exps) separately from
35479 struct-layout-1.exp with stackalign.exp.
35480
35481 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
35482
35483 PR middle-end/56461
35484 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
35485 load_index sbitmap even if some bit in it isn't set.
35486
35487 PR middle-end/56461
35488 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
35489 (discover_iteration_bound_by_body_walk): Change queues to
35490 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
35491 spelling in comment. Call safe_push on queues[bound_index] directly.
35492 Release queues[queue_index] in every iteration unconditionally.
35493 Release bounds vector.
35494
35495 PR middle-end/56461
35496 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
35497 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
35498 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
35499 inner_phis vector.
35500
35501 2013-03-05 Richard Biener <rguenther@suse.de>
35502
35503 PR lto/56515
35504 * tree-inline.c (remap_blocks_to_null): New function.
35505 (expand_call_inline): When expanding a call stmt without
35506 an associated block inline remap all callee blocks to NULL.
35507
35508 2013-03-05 Jakub Jelinek <jakub@redhat.com>
35509
35510 PR rtl-optimization/56494
35511 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
35512 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
35513 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
35514
35515 PR middle-end/56461
35516 * sel-sched-ir.c (free_sched_pools): Release
35517 succs_info_pool.stack[succs_info_pool.max_top] vectors too
35518 if succs_info_pool.max_top isn't -1.
35519
35520 PR bootstrap/56509
35521 * opts.c (opts_obstack, opts_concat): Moved to...
35522 * opts-common.c (opts_obstack, opts_concat): ... here.
35523
35524 2013-03-04 Jakub Jelinek <jakub@redhat.com>
35525
35526 PR middle-end/56461
35527 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
35528
35529 2013-03-04 Martin Jambor <mjambor@suse.cz>
35530
35531 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
35532 all appropriate places.
35533
35534 2013-01-04 Eric Botcazou <ebotcazou@adacore.com>
35535
35536 PR tree-optimization/56424
35537 * ipa-split.c (split_function): Do not set the RSO flag if result is
35538 not by reference and its type is a register type.
35539
35540 2013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
35541
35542 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
35543 (microblaze_legitimate_pic_operand): Likewise
35544 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
35545 new function microblaze_legitimate_pic_operand
35546 * config/microblaze/microblaze-protos.h
35547 (microblaze_legitimate_pic_operand): Declare.
35548
35549 2013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
35550
35551 * config/microblaze/predicates.md (call_insn_simple_operand):
35552 New predicate for supported rtx code types.
35553 * config/microblaze/microblaze.md (call_internal1): Use
35554 call_insn_simple_operand predicate.
35555
35556 2013-03-04 Jakub Jelinek <jakub@redhat.com>
35557
35558 PR middle-end/56461
35559 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
35560 partitions.ordered_remove.
35561
35562 PR middle-end/56461
35563 * tree-vect-stmts.c (vectorizable_conversion): Don't call
35564 vec_oprnds0.create (1) for modifier == NONE.
35565
35566 PR middle-end/56461
35567 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
35568 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
35569 vec_oprnds1 right before pushing anything to it for
35570 scalar_shift_arg.
35571
35572 PR middle-end/56461
35573 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
35574 set nbbs to 0 instead of having separate code path.
35575 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
35576 instead of false as last argument if returning NULL.
35577
35578 2013-03-03 Sandra Loosemore <sandra@codesourcery.com>
35579
35580 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
35581 the attribute is now called "target" instead of "option".
35582 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
35583 * doc/tm.texi.in (Target Attributes): Likewise document the correct
35584 attribute/pragma name for TARGET_OPTION_VALID_P and
35585 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
35586 * doc/tm.texi: Regenerated.
35587
35588 2013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
35589
35590 * config/microblaze/microblaze.c:
35591 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
35592 * config/microblaze/microblaze.h: Add -mxl-reorder to
35593 DRIVER_SELF_SPECS.
35594 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
35595 instructions emitted if TARGET_REORDER.
35596 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
35597 or 0 for -m/-mno case, but initialises as 2 to detect default use case
35598 separately.
35599
35600 2013-03-01 Xinliang David Li <davidxl@google.com>
35601
35602 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
35603 walk length.
35604
35605 2013-03-01 Jakub Jelinek <jakub@redhat.com>
35606
35607 PR middle-end/56461
35608 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
35609 vector even when returning true. Fix up function comment formatting.
35610
35611 PR middle-end/56461
35612 * ira-build.c (ira_loop_nodes_count): New variable.
35613 (create_loop_tree_nodes): Initialize it.
35614 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
35615
35616 PR middle-end/56461
35617 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
35618 method on dr_chain and result_chain.
35619 * tree-vect-stmts.c (vectorizable_store): Only call
35620 result_chain.create if j == 0.
35621
35622 PR middle-end/56461
35623 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
35624 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
35625 before overwriting it.
35626
35627 2013-03-01 Tobias Burnus <burnus@net-b.de>
35628
35629 * doc/extended.texi (C Extensions): Change order in @menu
35630 to match @node.
35631 (Other MIPS Built-in Functions): Move last MIPS entry before
35632 "picoChip Built-in Functions".
35633 (SH Built-in Functions): Move after RX Built-in Functions.
35634 * doc/gcc.texi (Introduction): Change order in @menu
35635 to match @node.
35636 * doc/md.texi (Constraints): Ditto.
35637 * gty.texi (Type Information): Ditto.
35638 (User-provided marking routines for template types): Make
35639 subsection.
35640 * doc/invoke.texi (AArch64 Options): Move before
35641 "Adapteva Epiphany Options".
35642
35643 2013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
35644 Jakub Jelinek <jakub@redhat.com>
35645
35646 PR sanitizer/56454
35647 * asan.c (gate_asan): Lookup no_sanitize_address instead of
35648 no_address_safety_analysis attribute.
35649 * doc/extend.texi (no_address_safety_attribute): Rename to
35650 no_sanitize_address attribute, mention no_address_safety_analysis
35651 attribute as deprecated alias.
35652
35653 2013-02-28 Jakub Jelinek <jakub@redhat.com>
35654
35655 PR middle-end/56461
35656 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
35657 type to vec<vec<tree> > *.
35658 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
35659 to be vec<tree> instead of vec<tree> *, set vec_defs
35660 to vNULL and call vec_defs.create (number_of_vects), adjust other
35661 uses of vec_defs.
35662 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
35663 vectorizable_condition): Adjust vect_get_slp_defs callers.
35664
35665 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
35666
35667 * config/aarch64/aarch64.c
35668 (aarch64_float_const_representable): Remove unused variable.
35669
35670 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
35671
35672 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
35673
35674 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
35675
35676 * config/aarch64/aarch64-builtins.c
35677 (aarch64_init_simd_builtins): Make static.
35678
35679 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
35680
35681 * config/aarch64/aarch64.c
35682 (aarch64_simd_make_constant): Make static.
35683
35684 2013-02-28 Martin Jambor <mjambor@suse.cz>
35685
35686 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
35687 with no initialization to the RHS of debug statements.
35688
35689 2013-02-28 Martin Jambor <mjambor@suse.cz>
35690
35691 PR tree-optimization/56294
35692 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
35693 Adjust dumping.
35694 (get_access_replacement): Do not call create_access_replacement.
35695 Assert a replacement exists.
35696 (get_repl_default_def_ssa_name): Create the replacement declaration
35697 itself.
35698
35699 2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35700
35701 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
35702 final_end_function.
35703
35704 2013-02-28 Marek Polacek <polacek@redhat.com>
35705
35706 PR rtl-optimization/56466
35707 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
35708 if we're changing a loop.
35709 (peel_loops_completely): Likewise.
35710
35711 2013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
35712
35713 PR c++/55813
35714 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
35715
35716 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
35717
35718 PR target/56445
35719 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
35720 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
35721 INTX_FTYPE_FX, FX_FTYPE_INTX.
35722 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
35723
35724 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
35725
35726 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
35727 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
35728 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
35729 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
35730 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
35731 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
35732 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
35733 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
35734 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
35735 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
35736 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
35737 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
35738 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
35739 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
35740 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
35741 (avrxmega6): Increase max flash segments from 5 to 6.
35742 * config/avr/t-multilib: Regenerate.
35743 * config/avr/avr-tables.opt: Regenerate.
35744 * doc/avr-mmcu.texi: Regenerate.
35745
35746 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
35747
35748 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
35749 (avr_device_to_arch): Rename to avr_device_to_ld.
35750 (avr_device_to_as): New prototype.
35751 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
35752 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
35753 * config/avr/driver-avr.c (avr_device_to_as): New.
35754 (avr_device_to_arch): Rename to avr_device_to_ld.
35755
35756 2013-02-27 Jakub Jelinek <jakub@redhat.com>
35757
35758 PR middle-end/56461
35759 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
35760 method on dr_chain and result_chain.
35761
35762 PR middle-end/56461
35763 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
35764 pointer_set_destroy on not_executed_last_iteration.
35765
35766 PR middle-end/56461
35767 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
35768
35769 PR middle-end/56461
35770 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
35771 FOR_EACH_DEFINED_FUNCTION when freeing state.
35772
35773 PR middle-end/56461
35774 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
35775 pool_free.
35776 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
35777 overwriting it.
35778
35779 PR middle-end/56461
35780 * ipa-cp.c (decide_whether_version_node): Call vec_free on
35781 known_aggs[i].items and release known_aggs vector.
35782
35783 PR middle-end/56461
35784 * ipa-reference.c (propagate): Free node_info even for alias nodes.
35785
35786 2013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
35787
35788 * config/microblaze/microblaze.c (microblaze_emit_compare):
35789 Use xor for EQ/NE comparisions.
35790 * config/microblaze/microblaze.md (cstoresf4): Add constraints
35791 (cbranchsf4): Adjust operator to comparison_operator.
35792
35793 2013-02-27 Jakub Jelinek <jakub@redhat.com>
35794
35795 PR middle-end/56461
35796 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
35797 vector.
35798 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
35799 vec_safe_push, always update *slot.
35800 (redirect_edge_var_map_clear): Use vec_free.
35801 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
35802 (free_var_map_entry): Use vec_free.
35803 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
35804 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
35805
35806 2013-02-27 Andrey Belevantsev <abel@ispras.ru>
35807
35808 PR middle-end/45472
35809 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
35810 when the may_trap_p bit of the exprs being merged differs.
35811 Reorder tests for speculativeness in the logical and operator.
35812
35813 2013-02-27 Jakub Jelinek <jakub@redhat.com>
35814
35815 * incpath.c (add_standard_paths): Use reconcat instead of concat
35816 where appropriate and avoid leaking memory.
35817
35818 * opts.h: Include obstack.h.
35819 (opts_concat): New prototype.
35820 (opts_obstack): New declaration.
35821 * opts.c (opts_concat): New function.
35822 (opts_obstack): New variable.
35823 (init_options_struct): Call gcc_init_obstack on opts_obstack.
35824 (finish_options): Use opts_concat instead of concat
35825 and XOBNEWVEC instead of XNEWVEC.
35826 * opts-common.c (generate_canonical_option, decode_cmdline_option,
35827 generate_option): Likewise.
35828 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
35829 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
35830
35831 PR target/56455
35832 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
35833 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
35834
35835 2013-02-26 Jakub Jelinek <jakub@redhat.com>
35836
35837 PR middle-end/56461
35838 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
35839
35840 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
35841
35842 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
35843 (arm_block_move_unaligned_straight): Likewise.
35844 (arm_adjust_block_mem): Likewise.
35845
35846 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
35847
35848 PR target/48901
35849 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
35850 temp, cond and label.
35851 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
35852
35853 PR target/52500
35854 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
35855 * config/c6x/c6x.h (dbx_register_map): Update declaration.
35856
35857 PR target/52501
35858 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
35859 of prologue/epilogue functions.
35860
35861 PR target/52550
35862 * config/tilegx/tilegx.c (tilegx_expand_prologue):
35863 Remove unused variable cfa_offset.
35864 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
35865
35866 PR target/54639
35867 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
35868 type promotion to unsigned.
35869
35870 PR target/54640
35871 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
35872 for HOST_WIDE_INT of 32 bit / same size as int.
35873 (arm_block_move_unaligned_straight): Likewise.
35874 (arm_adjust_block_mem): Likewise.
35875
35876 PR target/54662
35877 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
35878 ALL_CFLAGS.
35879
35880 2013-02-26 Marek Polacek <polacek@redhat.com>
35881
35882 PR tree-optimization/56426
35883 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
35884
35885 2013-02-26 Richard Biener <rguenther@suse.de>
35886
35887 PR target/56444
35888 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
35889 unused variable loops.
35890
35891 2013-02-26 Jakub Jelinek <jakub@redhat.com>
35892
35893 PR tree-optimization/56448
35894 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
35895 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
35896 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
35897 later operands of the references, or even first operand for
35898 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
35899
35900 PR tree-optimization/56443
35901 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
35902 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
35903 to type_for_mode langhook.
35904
35905 2013-02-25 Matt Turner <mattst88@gmail.com>
35906
35907 * doc/invoke.texi: Document r4700.
35908
35909 2013-02-25 Richard Biener <rguenther@suse.de>
35910
35911 PR tree-optimization/56175
35912 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
35913 split out from ...
35914 (simplify_bitwise_binary): ... here. Also guard the conversion
35915 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
35916
35917 2013-02-25 Catherine Moore <clm@codesourcery.com>
35918
35919 Revert:
35920 2013-02-24 Catherine Moore <clm@codesourcery.com>
35921 Maciej W. Rozycki <macro@codesourcery.com>
35922 Tom de Vries <tom@codesourcery.com>
35923 Nathan Sidwell <nathan@codesourcery.com>
35924 Iain Sandoe <iain@codesourcery.com>
35925 Nathan Froyd <froydnj@codesourcery.com>
35926 Chao-ying Fu <fu@mips.com>
35927
35928 * doc/extend.texi: (micromips, nomicromips, nocompression):
35929 Document new function attributes.
35930 * doc/invoke.texi (minterlink-compressed, mmicromips,
35931 m14k, m14ke, m14kec): Document new options.
35932 (minterlink-mips16): Update documentation.
35933 * doc/md.texi (ZC, ZD): Document new constraints.
35934 * configure.ac (gcc_cv_as_micromips): Check if linker
35935 supports the .set micromips directive.
35936 * configure: Regenerate.
35937 * config.in: Regenerate.
35938 * config/mips/mips-tables.opt: Regenerate.
35939 * config/mips/micromips.md: New file.
35940 * constraints.md (ZC, AD): New constraints.
35941 * config/mips/predicates.md (movep_src_register): New predicate.
35942 (movep_src_operand): New predicate.
35943 (non_volatile_mem_operand): New predicate.
35944 * config/mips/mips.md (multimem): New type.
35945 (length): Differentiate between 17-bit and 18-bit branch offsets.
35946 (MOVEP1, MOVEP2): New mode iterator.
35947 (mov_<load>l): Use ZC constraint.
35948 (mov_<load>r): Likewise.
35949 (mov_<store>l): Likewise.
35950 (mov_<store>r): Likewise.
35951 (*branch_equality<mode>_inverted): Add microMIPS support.
35952 (*branch_equality<mode>): Likewise.
35953 (*jump_absolute): Likewise.
35954 (indirect_jump_<mode>): Likewise.
35955 (tablejump_<mode>): Likewise.
35956 (<optab>_internal): Likewise.
35957 (sibcall_internal): Likewise.
35958 (sibcall_value_internal): Likewise.
35959 (prefetch): Use constraint ZD.
35960 * config/mips/mips.opt (minterlink-compressed): New option.
35961 (minterlink-mips16): Now an alias for minterlink-compressed.
35962 (mmicromips): New option.
35963 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
35964 (compare_and_swap_12): Likewise.
35965 (sync_add<mode>): Likewise.
35966 (sync_<optab>_12): Likewise.
35967 (sync_old_<optab>_12): Likewise.
35968 (sync_new_<optab>_12): Likewise.
35969 (sync_nand_12): Likewise.
35970 (sync_old_nand_12): Likewise.
35971 (sync_new_nand_12): Likewise.
35972 (sync_sub<mode>): Likewise.
35973 (sync_old_add<mode>): Likewise.
35974 (sync_old_sub<mode>): Likewise.
35975 (sync_new_add<mode>): Likewise.
35976 (sync_new_sub<mode>): Likewise.
35977 (sync_<optab><mode>): Likewise.
35978 (sync_old_<optab><mode>): Likewise.
35979 (sync_new_<optab><mode>): Likewise.
35980 (sync_nand<mode>): Likewise.
35981 (sync_old_nand<mode>): Likewise.
35982 (sync_new_nand<mode>): Likewise.
35983 (sync_lock_test_and_set<mode>): Likewise.
35984 (test_and_set_12): Likewise.
35985 (atomic_compare_and_swap<mode>): Likewise.
35986 (atomic_exchange<mode>_llsc): Likewise.
35987 (atomic_fetch_add<mode>_llsc): Likewise.
35988 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
35989 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
35990 (umips_save_restore_pattern_p): Likewise.
35991 (umips_load_store_pair_p): Likewise.
35992 (umips_output_load_store_pair): Likewise.
35993 (umips_movep_target_p): Likewise.
35994 (umips_12bit_offset_address_p): Likewise.
35995 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
35996 (mips_base_mips16): Rename this...
35997 (mips_base_compression_flags): ...to this. Update all uses.
35998 (mips_attribute_table): Add micromips, nomicromips and nocompression.
35999 (mips_mips16_decl_p): Delete.
36000 (mips_nomips16_decl_p): Delete.
36001 (mips_get_compress_on_flags): New function.
36002 (mips_get_compress_off_flags): New function.
36003 (mips_get_compress_mode): New function.
36004 (mips_get_compress_on_name): New function.
36005 (mips_get_compress_off_name): New function.
36006 (mips_insert_attributes): Support multiple compression types.
36007 (mips_merge_decl_attributes): Likewise.
36008 (umips_12bit_offset_address_p): New function.
36009 (mips_start_function_definition): Emit .set micromips directive.
36010 (mips_call_may_need_jalx_p): New function.
36011 (mips_function_ok_for_sibcall): Add microMIPS support.
36012 (mips_print_operand_punctuation): Support short delay slots and
36013 compact jumps.
36014 (umips_swm_mask, umips_swm_encoding): New.
36015 (umips_build_save_restore): New function.
36016 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
36017 (was_mips16_p): Remove.
36018 (old_compression_mode): New.
36019 (mips_set_compression_mode): New function.
36020 (mips_set_current_function): Add microMIPS support.
36021 (mips_option_override): Likewise.
36022 (umips_save_restore_pattern_p): New function.
36023 (umips_output_save_restore): New function.
36024 (umips_load_store_pair_p_1): New function.
36025 (umips_load_store_pair_p): New function.
36026 (umips_output_load_store_pair_1): New function.
36027 (umips_output_load_store_pair): New function.
36028 (umips_movep_target_p) New function.
36029 (mips_prepare_pch_save): Add microMIPS support.
36030 * config/mips/mips.h (TARGET_COMPRESSION): New.
36031 (TARGET_CPU_CPP_BUILTINS): Update macro
36032 to use new compression flags and to support microMIPS.
36033 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
36034 (MIPS_ARCH_FLOAT_SPEC): Likewise.
36035 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
36036 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
36037 (ASM_SPEC): Support mmicromips and mno-micromips.
36038 (M16STORE_REG_P): New macro.
36039 (MIPS_CALL): Support TARGET_MICROMIPS.
36040 (MICROMIPS_J): New macro.
36041 (mips_base_mips16): Rename this...
36042 (mips_base_compression_flags): ...to this.
36043 (UMIPS_12BIT_OFFSET_P): New macro.
36044 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
36045 (MULTILIB_DIRNAMES): Likewise.
36046
36047 2013-02-25 Tom de Vries <tom@codesourcery.com>
36048
36049 PR rtl-optimization/56131
36050 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
36051 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
36052 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
36053
36054 2013-02-25 Tobias Burnus <burnus@net-b.de>
36055
36056 * doc/invoke.texi (-fsanitize=): Move from optimization
36057 to debugging options.
36058
36059 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
36060
36061 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
36062
36063 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
36064 Alexander Monakov <amonakov@ispras.ru>
36065
36066 PR middle-end/56077
36067 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
36068 flush pending lists also on non-jumps. Adjust comment.
36069
36070 2013-02-24 Catherine Moore <clm@codesourcery.com>
36071 Maciej W. Rozycki <macro@codesourcery.com>
36072 Tom de Vries <tom@codesourcery.com>
36073 Nathan Sidwell <nathan@codesourcery.com>
36074 Iain Sandoe <iain@codesourcery.com>
36075 Nathan Froyd <froydnj@codesourcery.com>
36076 Chao-ying Fu <fu@mips.com>
36077
36078 * doc/extend.texi: (micromips, nomicromips, nocompression):
36079 Document new function attributes.
36080 * doc/invoke.texi (minterlink-compressed, mmicromips,
36081 m14k, m14ke, m14kec): Document new options.
36082 (minterlink-mips16): Update documentation.
36083 * doc/md.texi (ZC, ZD): Document new constraints.
36084 * configure.ac (gcc_cv_as_micromips): Check if linker
36085 supports the .set micromips directive.
36086 * configure: Regenerate.
36087 * config.in: Regenerate.
36088 * config/mips/mips-tables.opt: Regenerate.
36089 * config/mips/micromips.md: New file.
36090 * constraints.md (ZC, AD): New constraints.
36091 * config/mips/predicates.md (movep_src_register): New predicate.
36092 (movep_src_operand): New predicate.
36093 (non_volatile_mem_operand): New predicate.
36094 * config/mips/mips.md (multimem): New type.
36095 (length): Differentiate between 17-bit and 18-bit branch offsets.
36096 (MOVEP1, MOVEP2): New mode iterator.
36097 (mov_<load>l): Use ZC constraint.
36098 (mov_<load>r): Likewise.
36099 (mov_<store>l): Likewise.
36100 (mov_<store>r): Likewise.
36101 (*branch_equality<mode>_inverted): Add microMIPS support.
36102 (*branch_equality<mode>): Likewise.
36103 (*jump_absolute): Likewise.
36104 (indirect_jump_<mode>): Likewise.
36105 (tablejump_<mode>): Likewise.
36106 (<optab>_internal): Likewise.
36107 (sibcall_internal): Likewise.
36108 (sibcall_value_internal): Likewise.
36109 (prefetch): Use constraint ZD.
36110 * config/mips/mips.opt (minterlink-compressed): New option.
36111 (minterlink-mips16): Now an alias for minterlink-compressed.
36112 (mmicromips): New option.
36113 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
36114 (compare_and_swap_12): Likewise.
36115 (sync_add<mode>): Likewise.
36116 (sync_<optab>_12): Likewise.
36117 (sync_old_<optab>_12): Likewise.
36118 (sync_new_<optab>_12): Likewise.
36119 (sync_nand_12): Likewise.
36120 (sync_old_nand_12): Likewise.
36121 (sync_new_nand_12): Likewise.
36122 (sync_sub<mode>): Likewise.
36123 (sync_old_add<mode>): Likewise.
36124 (sync_old_sub<mode>): Likewise.
36125 (sync_new_add<mode>): Likewise.
36126 (sync_new_sub<mode>): Likewise.
36127 (sync_<optab><mode>): Likewise.
36128 (sync_old_<optab><mode>): Likewise.
36129 (sync_new_<optab><mode>): Likewise.
36130 (sync_nand<mode>): Likewise.
36131 (sync_old_nand<mode>): Likewise.
36132 (sync_new_nand<mode>): Likewise.
36133 (sync_lock_test_and_set<mode>): Likewise.
36134 (test_and_set_12): Likewise.
36135 (atomic_compare_and_swap<mode>): Likewise.
36136 (atomic_exchange<mode>_llsc): Likewise.
36137 (atomic_fetch_add<mode>_llsc): Likewise.
36138 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
36139 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
36140 (umips_save_restore_pattern_p): Likewise.
36141 (umips_load_store_pair_p): Likewise.
36142 (umips_output_load_store_pair): Likewise.
36143 (umips_movep_target_p): Likewise.
36144 (umips_12bit_offset_address_p): Likewise.
36145 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
36146 (mips_base_mips16): Rename this...
36147 (mips_base_compression_flags): ...to this. Update all uses.
36148 (mips_attribute_table): Add micromips, nomicromips and nocompression.
36149 (mips_mips16_decl_p): Delete.
36150 (mips_nomips16_decl_p): Delete.
36151 (mips_get_compress_on_flags): New function.
36152 (mips_get_compress_off_flags): New function.
36153 (mips_get_compress_mode): New function.
36154 (mips_get_compress_on_name): New function.
36155 (mips_get_compress_off_name): New function.
36156 (mips_insert_attributes): Support multiple compression types.
36157 (mips_merge_decl_attributes): Likewise.
36158 (umips_12bit_offset_address_p): New function.
36159 (mips_start_function_definition): Emit .set micromips directive.
36160 (mips_call_may_need_jalx_p): New function.
36161 (mips_function_ok_for_sibcall): Add microMIPS support.
36162 (mips_print_operand_punctuation): Support short delay slots and
36163 compact jumps.
36164 (umips_swm_mask, umips_swm_encoding): New.
36165 (umips_build_save_restore): New function.
36166 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
36167 (was_mips16_p): Remove.
36168 (old_compression_mode): New.
36169 (mips_set_compression_mode): New function.
36170 (mips_set_current_function): Add microMIPS support.
36171 (mips_option_override): Likewise.
36172 (umips_save_restore_pattern_p): New function.
36173 (umips_output_save_restore): New function.
36174 (umips_load_store_pair_p_1): New function.
36175 (umips_load_store_pair_p): New function.
36176 (umips_output_load_store_pair_1): New function.
36177 (umips_output_load_store_pair): New function.
36178 (umips_movep_target_p) New function.
36179 (mips_prepare_pch_save): Add microMIPS support.
36180 * config/mips/mips.h (TARGET_COMPRESSION): New.
36181 (TARGET_CPU_CPP_BUILTINS): Update macro
36182 to use new compression flags and to support microMIPS.
36183 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
36184 (MIPS_ARCH_FLOAT_SPEC): Likewise.
36185 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
36186 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
36187 (ASM_SPEC): Support mmicromips and mno-micromips.
36188 (M16STORE_REG_P): New macro.
36189 (MIPS_CALL): Support TARGET_MICROMIPS.
36190 (MICROMIPS_J): New macro.
36191 (mips_base_mips16): Rename this...
36192 (mips_base_compression_flags): ...to this.
36193 (UMIPS_12BIT_OFFSET_P): New macro.
36194 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
36195 (MULTILIB_DIRNAMES): Likewise.
36196
36197 2013-02-24 Jakub Jelinek <jakub@redhat.com>
36198
36199 PR target/52555
36200 * target-globals.c (save_target_globals): For init_reg_sets and
36201 target_reinit remporarily set this_fn_optabs to this_target_optabs.
36202
36203 2013-02-22 James Greenhalgh <james.greenhalgh@arm.com>
36204
36205 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
36206 * config/aarch64/t-aarch64
36207 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
36208
36209 2013-02-22 Vladimir Makarov <vmakarov@redhat.com>
36210
36211 PR inline-asm/56148
36212 * lra-constraints.c (process_alt_operands): Reload operand
36213 conflicting with earlier clobber only if no more other conflicting
36214 operands.
36215
36216 2013-02-22 Jakub Jelinek <jakub@redhat.com>
36217
36218 PR sanitizer/56393
36219 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
36220 if not linking a shared library.
36221
36222 2013-02-22 Seth LaForge <sethml@google.com>
36223
36224 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
36225
36226 2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
36227
36228 * config/arm/arm.md (split for extendsidi): Update condition.
36229 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
36230 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
36231 (qhs_zextenddi_cstr): Likewise.
36232
36233 2013-02-21 Jakub Jelinek <jakub@redhat.com>
36234
36235 PR middle-end/56420
36236 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
36237 avoid signed wrapping.
36238 (expand_mult): Handle properly multiplication by
36239 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
36240 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
36241 in the compiler if coeff is HOST_WIDE_INT_MIN.
36242 (expand_divmod): Don't make ext_op1 static, change it's type to
36243 uhwi. Avoid undefined behavior in -INTVAL (op1).
36244
36245 PR rtl-optimization/50339
36246 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
36247 field.
36248 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
36249 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
36250 into splitting_ashiftrt field.
36251 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
36252 ASHIFTRT.
36253 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
36254 choices.
36255
36256 2013-02-20 Aldy Hernandez <aldyh@redhat.com>
36257
36258 PR middle-end/56108
36259 * trans-mem.c (execute_tm_mark): Do not expand transactions that
36260 are sure to go irrevocable.
36261
36262 2013-02-21 Hans-Peter Nilsson <hp@axis.com>
36263
36264 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
36265 scalars are valid operands.
36266
36267 2013-02-21 Martin Jambor <mjambor@suse.cz>
36268
36269 PR tree-optimization/56310
36270 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
36271 only matching indices and non-negative final offsets.
36272 (intersect_aggregates_with_edge): Pass src_idx to
36273 agg_replacements_to_vector. Pass src_idx insstead of index to
36274 intersect_with_agg_replacements.
36275
36276 2013-02-21 Martin Jambor <mjambor@suse.cz>
36277
36278 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
36279 instead of hard-wired defaults.
36280
36281 2013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
36282
36283 * doc/invoke.texi (MIPS Options): Update documentation of the
36284 floating-point multiply-accumulate instruction restrictions.
36285
36286 2013-02-21 Kostya Serebryany <kcc@google.com>
36287
36288 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
36289 asan_shadow_offset on x86_64 linux.
36290
36291 2013-02-21 Richard Biener <rguenther@suse.de>
36292
36293 PR tree-optimization/56415
36294 Revert
36295 2013-02-11 Richard Biener <rguenther@suse.de>
36296
36297 PR tree-optimization/56273
36298 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
36299 first VRP run.
36300
36301 2013-02-21 Jakub Jelinek <jakub@redhat.com>
36302
36303 PR bootstrap/56258
36304 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
36305 instead of @itemx.
36306
36307 PR inline-asm/56405
36308 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
36309 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
36310
36311 2013-02-20 Jan Hubicka <jh@suse.cz>
36312
36313 PR tree-optimization/56265
36314 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
36315 when target is referenced for first time.
36316
36317 2013-02-20 Richard Biener <rguenther@suse.de>
36318
36319 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
36320 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
36321 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
36322 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
36323 not return anything.
36324 (rename_ssa_copies): Do not remove unused locals.
36325 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
36326 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
36327 * passes.c (execute_function_todo): Do not schedule unused locals
36328 removal if cleanup_tree_cfg did something.
36329 * tree-ssa-live.c (remove_unused_locals): Dump statistics
36330 about the number of removed locals.
36331
36332 2013-02-20 Richard Biener <rguenther@suse.de>
36333
36334 PR tree-optimization/56398
36335 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
36336
36337 2013-02-20 Martin Jambor <mjambor@suse.cz>
36338
36339 PR tree-optimization/55334
36340 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
36341 restricted pointers to arrays.
36342
36343 2013-02-20 Richard Biener <rguenther@suse.de>
36344 Jakub Jelinek <jakub@redhat.com>
36345
36346 PR tree-optimization/56396
36347 * tree-ssa-ccp.c (n_const_val): New static variable.
36348 (get_value): Return NULL for SSA names we don't have a lattice
36349 entry for.
36350 (ccp_initialize): Initialize n_const_val.
36351 * tree-ssa-copy.c (n_copy_of): New static variable.
36352 (init_copy_prop): Initialize n_copy_of.
36353 (get_value): Return NULL_TREE for SSA names we don't have a
36354 lattice entry for.
36355
36356 2013-02-20 Martin Jambor <mjambor@suse.cz>
36357
36358 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
36359
36360 2013-02-20 Richard Biener <rguenther@suse.de>
36361
36362 * genpreds.c (write_lookup_constraint): Do not compare first
36363 letter of the constraint again.
36364
36365 2013-02-20 Richard Biener <rguenther@suse.de>
36366
36367 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
36368 and ceil_log2.
36369 (get_use_iv_cost): Terminate hashtable walk when coming across
36370 an empty entry.
36371
36372 2013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
36373
36374 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
36375 reassociation for avx2 targets.
36376
36377 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
36378
36379 * config/microblaze/microblaze.c: microblaze_has_clz = 0
36380 Add version check for v8.10.a to enable microblaze_has_clz
36381 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
36382 version and TARGET_PATTERN_COMPARE check
36383 * config/microblaze/microblaze.md: New clzsi2 instruction
36384
36385 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
36386
36387 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
36388 function before branching.
36389
36390 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
36391
36392 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
36393 DUMP_INSN_RTX_UID.
36394 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
36395
36396 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
36397
36398 PR middle-end/55889
36399 * sel-sched.c: Include ira.h.
36400 (implicit_clobber_conflict_p): New function.
36401 (moveup_expr): Use it.
36402 * Makefile.in (sel-sched.o): Depend on ira.h.
36403
36404 2013-02-19 Richard Biener <rguenther@suse.de>
36405
36406 PR tree-optimization/56384
36407 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
36408 (vn_hash_type): Split out from ...
36409 (vn_hash_constant_with_type): ... here.
36410 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
36411 (vn_phi_eq): Compare types from vn_phi_s structure.
36412 (vn_phi_lookup): Populate vn_phi_s type.
36413 (vn_phi_insert): Likewise.
36414
36415 2013-02-19 Jakub Jelinek <jakub@redhat.com>
36416
36417 PR tree-optimization/56350
36418 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
36419 if haven't found reduction or nested cycle operand, rather than
36420 asserting we must find it.
36421
36422 PR tree-optimization/56381
36423 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
36424 to fold_build3.
36425
36426 2013-02-18 Aldy Hernandez <aldyh@redhat.com>
36427 Jakub Jelinek <jakub@redhat.com>
36428
36429 PR target/52555
36430 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
36431 (swap_optab_enable): Same.
36432 (init_all_optabs): Use argument instead of global.
36433 * tree.h (struct tree_optimization_option): New field target_optabs.
36434 * expr.h (init_all_optabs): Add argument to prototype.
36435 (TREE_OPTIMIZATION_OPTABS): New.
36436 (save_optabs_if_changed): Protoize.
36437 * optabs.h: Declare this_fn_optabs.
36438 * optabs.c (save_optabs_if_changed): New.
36439 Declare this_fn_optabs.
36440 (init_optabs): Add argument to init_all_optabs() call.
36441 * function.c (invoke_set_current_function_hook): Handle per
36442 function optabs.
36443 * function.h (struct function): New field optabs.
36444 * config/mips/mips.c (mips_set_mips16_mode): Handle when
36445 optimization_current_node has changed.
36446 * target-globals.h (save_target_globals_default_opts): Protoize.
36447 * target-globals.c (save_target_globals_default_opts): New.
36448
36449 2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
36450
36451 PR target/56347
36452 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
36453 registers %fr12 and %fr12R as call used.
36454
36455 PR target/56214
36456 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
36457 and HImode, require all displacements to be an integer multiple of
36458 their mode size.
36459 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
36460 only allow QImode and HImode when reload is in progress and strict is
36461 true. Likewise for symbolic addresses. Use base14_operand to check
36462 displacements in REG+BASE addresses.
36463
36464 2013-02-18 Richard Biener <rguenther@suse.de>
36465
36466 PR tree-optimization/56366
36467 * tree-vect-loop.c (get_initial_def_for_induction): Properly
36468 handle sign-conversion of outer-loop initial induction value.
36469
36470 2013-02-18 Richard Biener <rguenther@suse.de>
36471
36472 PR middle-end/56349
36473 * cfghooks.c (merge_blocks): If we merge a latch into another
36474 block adjust references to it.
36475 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
36476 (verify_loop_structure): Verify that a recorded latch is in fact
36477 a latch.
36478
36479 2013-02-18 Richard Biener <rguenther@suse.de>
36480
36481 PR tree-optimization/56321
36482 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
36483 order SSA name release and virtual operand unlinking.
36484
36485 2013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
36486
36487 * config/microblaze/microblaze.md (save_stack_block): Define.
36488 (restore_stack_block): Likewise.
36489
36490 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
36491
36492 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
36493 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
36494 * config/microblaze/microblaze.c (microblaze_option_override):
36495 Bail out early for PIC modes when target does not support PIC.
36496
36497 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
36498
36499 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
36500 Replace with a microblaze version.
36501 (microblaze_trampoline_init): Adapt for microblaze.
36502 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
36503 microblaze.
36504
36505 2013-02-16 Jakub Jelinek <jakub@redhat.com>
36506 Dodji Seketeli <dodji@redhat.com>
36507
36508 PR asan/56330
36509 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
36510 (instrument_mem_region_access): Do not forget to always put
36511 instrumentation of the of 'base' and 'base + len' in a "if (len !=
36512 0) statement, even for cases where either 'base' or 'base + len'
36513 are not instrumented -- because they have been previously
36514 instrumented. Simplify the logic by putting all the statements
36515 instrument 'base + len' inside a sequence, and then insert that
36516 sequence right before the current insertion point. Then, to
36517 instrument 'base + len', just get an iterator on that statement.
36518 And do not forget to update the pointer to iterator the function
36519 received as argument.
36520
36521 2013-02-15 Vladimir Makarov <vmakarov@redhat.com>
36522
36523 PR rtl-optimization/56348
36524 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
36525
36526 2013-02-15 Steven Bosscher <steven@gcc.gnu.org>
36527
36528 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
36529 (clean_graph_dump_file): Pass base to start_graph_dump.
36530
36531 2013-02-14 Richard Henderson <rth@redhat.com>
36532
36533 PR target/55941
36534 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
36535
36536 2013-02-14 Steven Bosscher <steven@gcc.gnu.org>
36537
36538 * collect2-aix.h: Define F_LOADONLY.
36539
36540 2013-02-14 Richard Biener <rguenther@suse.de>
36541
36542 PR lto/50494
36543 * varasm.c (output_constant_def_1): Get the decl representing
36544 the constant as argument.
36545 (output_constant_def): Wrap output_constant_def_1.
36546 (make_decl_rtl): Use output_constant_def_1 with the decl
36547 representing the constant.
36548 (build_constant_desc): Optionally re-use a decl already
36549 representing the constant.
36550 (tree_output_constant_def): Adjust.
36551
36552 2013-02-14 Dodji Seketeli <dodji@redhat.com>
36553
36554 Fix an asan crash
36555 * asan.c (instrument_builtin_call): Really put the length of the
36556 second source argument into src1_len.
36557
36558 2013-02-13 Jakub Jelinek <jakub@redhat.com>
36559
36560 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
36561 argument. If it is false, don't create edge from then_bb to
36562 fallthru_bb.
36563 (insert_if_then_before_iter): Pass true to it.
36564 (build_check_stmt): Pass false to it.
36565 (transform_statements): Flush hash table only on extended basic
36566 block boundaries, rather than at the beginning of every bb.
36567 Don't flush hash table on nonfreeing_call_p calls.
36568 * tree-flow.h (nonfreeing_call_p): New prototype.
36569 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
36570
36571 2013-02-13 David S. Miller <davem@davemloft.net>
36572
36573 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
36574
36575 2013-02-13 Vladimir Makarov <vmakarov@redhat.com>
36576
36577 PR target/56184
36578 * ira.c (max_regno_before_ira): Move from ...
36579 (ira): ... here.
36580 (fix_reg_equiv_init): Use max_regno_before_ira instead of
36581 vec_safe_length.
36582
36583 2013-02-13 Jakub Jelinek <jakub@redhat.com>
36584
36585 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
36586
36587 2013-02-13 Richard Biener <rguenther@suse.de>
36588
36589 PR lto/56295
36590 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
36591 globals in MEM_REFs.
36592
36593 2013-02-13 Richard Biener <rguenther@suse.de>
36594
36595 * loop-init.c (loop_optimizer_init): Clear loop state when
36596 re-initializing preserved loops.
36597 * loop-unswitch.c (unswitch_single_loop): Return whether
36598 we unswitched the loop. Do not verify loop state here.
36599 (unswitch_loops): When we unswitched a loop discover new loops.
36600
36601 2013-02-13 Kostya Serebryany <kcc@google.com>
36602
36603 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
36604 on x86_64 linux.
36605 * sanitizer.def: Rename __asan_init to __asan_init_v1.
36606
36607 2013-02-12 Dodji Seketeli <dodji@redhat.com>
36608
36609 Avoid instrumenting duplicated memory access in the same basic block
36610 * Makefile.in (asan.o): Add new dependency on hash-table.h
36611 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
36612 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
36613 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
36614 (free_mem_ref_resources, has_mem_ref_been_instrumented)
36615 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
36616 (get_mem_ref_of_assignment): New functions.
36617 (get_mem_refs_of_builtin_call): Extract from
36618 instrument_builtin_call and tweak a little bit to make it fit with
36619 the new signature.
36620 (instrument_builtin_call): Use the new
36621 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
36622 of is_gimple_builtin_call.
36623 (instrument_derefs, instrument_mem_region_access): Insert the
36624 instrumented memory reference into the hash table.
36625 (maybe_instrument_assignment): Renamed instrument_assignment into
36626 this, and change it to advance the iterator when instrumentation
36627 actually happened and return true in that case. This makes it
36628 homogeneous with maybe_instrument_assignment, and thus give a
36629 chance to callers to be more 'regular'.
36630 (transform_statements): Clear the memory reference hash table
36631 whenever we enter a new BB, when we cross a function call, or when
36632 we are done transforming statements. Use
36633 maybe_instrument_assignment instead of instrumentation. No more
36634 need to special case maybe_instrument_assignment and advance the
36635 iterator after calling it; it's now handled just like
36636 maybe_instrument_call. Update comment.
36637
36638 2013-02-13 Richard Biener <rguenther@suse.de>
36639
36640 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
36641 Fix loop discovery code.
36642
36643 2013-02-12 Vladimir Makarov <vmakarov@redhat.com>
36644
36645 PR inline-asm/56148
36646 * lra-constraints.c (process_alt_operands): Match early clobber
36647 operand with itself. Check conflicts with earlyclobber only if
36648 the operand is not reloaded. Prefer to reload conflicting operand
36649 if earlyclobber and matching operands are the same.
36650
36651 2013-02-12 Richard Biener <rguenther@suse.de>
36652
36653 PR lto/56297
36654 * lto-streamer-out.c (write_symbol): Do not output symbols
36655 for hard register variables.
36656
36657 2013-02-12 Georg-Johann Lay <avr@gjlay.de>
36658
36659 PR target/54222
36660 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
36661 (umulsidi3_insn, mulsidi3_insn): New insns.
36662
36663 2013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
36664
36665 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
36666 (struct tune_params): Add vec_costs field.
36667 * config/arm/arm.c (arm_builtin_vectorization_cost)
36668 (arm_add_stmt_cost): New functions.
36669 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
36670 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
36671 (arm_default_vec_cost): New struct of type cpu_vec_costs.
36672 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
36673 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
36674 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
36675 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
36676
36677 2013-02-12 Richard Biener <rguenther@suse.de>
36678
36679 PR lto/56295
36680 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
36681 decls again if possible.
36682
36683 2013-02-12 Richard Biener <rguenther@suse.de>
36684
36685 PR middle-end/56288
36686 * tree-ssa.c (verify_ssa_name): Fix check, move
36687 SSA_NAME_IN_FREE_LIST check up.
36688
36689 2013-02-12 Jakub Jelinek <jakub@redhat.com>
36690 Steven Bosscher <steven@gcc.gnu.org>
36691
36692 PR rtl-optimization/56151
36693 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
36694 equal to op0 or op1, and last_insn pattern is CODE operation
36695 with MEM dest and one of the operands matches that MEM.
36696
36697 2013-02-11 Sriraman Tallam <tmsriram@google.com>
36698
36699 * doc/extend.texi: Document Function Multiversioning and "default"
36700 parameter string to target attribute.
36701 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
36702 target attribute parameter is "default".
36703 (ix86_compare_version_priority): Remove checks for target attribute.
36704 (ix86_mangle_function_version_assembler_name): Change error to sorry.
36705 Remove check for target attribute equal to NULL. Add assert.
36706 (ix86_generate_version_dispatcher_body): Change error to sorry.
36707
36708 2013-02-11 Iain Sandoe <iain@codesourcery.com>
36709 Jack Howarth <howarth@bromo.med.uc.edu>
36710 Patrick Marlier <patrick.marlier@gmail.com>
36711
36712 PR libitm/55693
36713 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
36714 define ENDFILE_SPEC as TM_DESTRUCTOR.
36715 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
36716
36717 2013-02-11 Alexander Potapenko <glider@google.com>
36718 Jack Howarth <howarth@bromo.med.uc.edu>
36719 Jakub Jelinek <jakub@redhat.com>
36720
36721 PR sanitizer/55617
36722 * config/darwin.c (cdtor_record): Rename ctor_record.
36723 (sort_cdtor_records): Rename sort_ctor_records.
36724 (finalize_dtors): New routine to sort destructors by
36725 priority before use in assemble_integer.
36726 (machopic_asm_out_destructor): Use finalize_dtors if needed.
36727
36728 2013-02-11 Uros Bizjak <ubizjak@gmail.com>
36729
36730 PR rtl-optimization/56275
36731 * simplify-rtx.c (avoid_constant_pool_reference): Check that
36732 offset is non-negative and less than cmode size before
36733 calling simplify_subreg.
36734
36735 2013-02-11 Richard Biener <rguenther@suse.de>
36736
36737 PR tree-optimization/56264
36738 * cfgloop.h (fix_loop_structure): Adjust prototype.
36739 * loop-init.c (fix_loop_structure): Return the number of
36740 newly discovered loops.
36741 * tree-cfgcleanup.c (repair_loop_structures): When new loops
36742 are discovered, do a full loop-closed SSA rewrite.
36743
36744 2013-02-11 Richard Biener <rguenther@suse.de>
36745
36746 PR tree-optimization/56273
36747 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
36748 first VRP run.
36749 (check_array_ref): Fix missing newline in dumps.
36750 (search_for_addr_array): Likewise.
36751
36752 2013-02-09 David Edelsohn <dje.gcc@gmail.com>
36753
36754 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
36755
36756 2013-02-09 Jakub Jelinek <jakub@redhat.com>
36757
36758 PR target/56256
36759 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
36760
36761 2013-02-08 Vladimir Makarov <vmakarov@redhat.com>
36762
36763 PR rtl-optimization/56246
36764 * lra-constraints.c (simplify_operand_subreg): Try to reuse
36765 reload pseudo.
36766 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
36767 constraints are satisfied.
36768
36769 2013-02-08 Jeff Law <law@redhat.com>
36770
36771 PR debug/53948
36772 * emit-rtl.c (reg_is_parm_p): New function.
36773 * regs.h (reg_is_parm_p): New prototype.
36774 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
36775 callee-clobbered registers.
36776
36777 2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
36778
36779 PR target/56043
36780 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
36781 If there is no implicit builtin declaration, just return NULL.
36782
36783 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
36784
36785 * config/i386/sse.md (FMAMODEM): New mode iterator.
36786 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
36787 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
36788
36789 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
36790
36791 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
36792 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
36793 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
36794
36795 2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
36796
36797 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
36798 (microblaze*-*-elf): Likewise.
36799 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
36800 LINK_SPEC.
36801 * config/microblaze/microblaze-c.c: Add builtin defines for
36802 _LITTLE_ENDIAN and _BIG_ENDIAN.
36803 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
36804 add to TARGET_DEFAULT flags.
36805 Expand ASM_SPEC and LINK_SPEC.
36806 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
36807 * config/microblaze/microblaze.md: Update extendsidi2 and
36808 movdi_internal instructions to use low-order / high-order reg
36809 print_operands.
36810 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
36811 options and inversemask / mask of LITTLE_ENDIAN.
36812 * config/microblaze/t-microblaze: Expand multilib options to
36813 include mlittle-endian (le) and update exceptions patterns.
36814
36815 2013-02-08 Jakub Jelinek <jakub@redhat.com>
36816
36817 PR rtl-optimization/56195
36818 * lra-constraints.c (get_reload_reg): Don't reuse regs
36819 if they have smaller mode than requested, if they have
36820 wider mode than requested, try to return a SUBREG.
36821
36822 PR tree-optimization/56250
36823 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
36824 if type is unsigned and code isn't MULT_EXPR.
36825
36826 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
36827
36828 PR tree-optimization/56064
36829 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
36830 bits according to mode.
36831 * fixed-value.h (fixed_from_double_int)
36832 (const_fixed_from_double_int): Adjust comments.
36833
36834 2013-02-08 Richard Biener <rguenther@suse.de>
36835
36836 PR lto/56231
36837 * lto-streamer.h (struct data_in): Remove current_file, current_line
36838 and current_col members.
36839 * lto-streamer-out.c (lto_output_location): Stream changed bits
36840 en-block for efficiency.
36841 * lto-streamer-in.c (clear_line_info): Remove.
36842 (lto_input_location): Cache current file, line and column
36843 globally via local statics. Read changed bits en-block.
36844 (input_function): Do not call clear_line_info.
36845 (lto_read_body): Likewise.
36846 (lto_input_toplevel_asms): Likewise.
36847
36848 2013-02-08 Michael Matz <matz@suse.de>
36849
36850 PR tree-optimization/52448
36851 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
36852 (nt_call_phase): New static.
36853 (add_or_mark_expr): Only mark accesses with newer phase than any
36854 call seen.
36855 (nonfreeing_call_p): New.
36856 (nt_init_block): Update nt_call_phase, mark blocks as visited.
36857 (nt_fini_block): Keep blocks marked as visited.
36858 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
36859
36860 2013-02-08 Richard Biener <rguenther@suse.de>
36861
36862 * ira.c (ira): Free broken dominator information.
36863
36864 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
36865
36866 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
36867
36868 2013-02-08 Marek Polacek <polacek@redhat.com>
36869
36870 * cfgloop.c (verify_loop_structure): Add more checking of headers.
36871
36872 2013-02-08 Richard Biener <rguenther@suse.de>
36873
36874 PR middle-end/56181
36875 * cfgloop.h (flow_loops_find): Adjust.
36876 (bb_loop_header_p): Declare.
36877 * cfgloop.c (bb_loop_header_p): New function split out from ...
36878 (flow_loops_find): ... here. Adjust function signature,
36879 support incremental loop structure update.
36880 (verify_loop_structure): Cleanup. Verify a loop is a loop.
36881 * cfgloopmanip.c (fix_loop_structure): Move ...
36882 * loop-init.c (fix_loop_structure): ... here.
36883 (apply_loop_flags): Split out from ...
36884 (loop_optimizer_init): ... here.
36885 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
36886 in incremental mode, only remove dead loops here.
36887
36888 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
36889
36890 PR target/54222
36891 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
36892 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
36893 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
36894 (*round<mode>3.libgcc): New insns for fixed-modes.
36895 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
36896 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
36897 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
36898 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
36899 implementations. Define to __builtin_avr_absFX,
36900 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
36901 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
36902 __builtin_avr_countlsFX, respectively.
36903 * config/avr/avr-c.c (target.h): Include it.
36904 (enum avr_builtin_id): New enum.
36905 (avr_resolve_overloaded_builtin): New static function.
36906 (avr_register_target_pragmas): Use it to set
36907 targetm.resolve_overloaded_builtin.
36908 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
36909 tree nodes used by DEF_BUILTIN.
36910 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
36911 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
36912 <AVR_BUILTIN_xxBITS>: Same.
36913
36914 2013-02-08 Richard Biener <rguenther@suse.de>
36915
36916 * cfgloop.c (verify_loop_structure): Properly handle
36917 a loop exiting to another loop header.
36918 * ira-int.h (ira_loops): Remove.
36919 * ira.c (ira_loops): Remove.
36920 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
36921 (do_reload): Use loop_optimizer_finalize.
36922 * ira-build.c (create_loop_tree_nodes): Use get_loops and
36923 number_of_loops to access the loop tree.
36924 (more_one_region_p): Likewise.
36925 (finish_loop_tree_nodes): Likewise.
36926 (rebuild_regno_allocno_maps): Likewise.
36927 (mark_loops_for_removal): Likewise.
36928 (mark_all_loops_for_removal): Likewise.
36929 (remove_unnecessary_regions): Likewise.
36930 (ira_build): Likewise.
36931 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
36932
36933 2013-02-08 Richard Biener <rguenther@suse.de>
36934
36935 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
36936 * ipa-pure-const.c (analyze_function): Avoid calling
36937 mark_irreducible_loops twice.
36938 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
36939
36940 2013-02-07 David S. Miller <davem@davemloft.net>
36941
36942 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
36943 on 'reg'.
36944 * var-tracking.c (vt_add_function_parameter): Test the presence of
36945 HAVE_window_save properly and do not remap argument registers when
36946 we have a leaf function.
36947
36948 2013-02-07 Uros Bizjak <ubizjak@gmail.com>
36949
36950 PR bootstrap/56227
36951 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
36952 instead of "ll".
36953 * config/i386/i386.c (ix86_print_operand): Ditto.
36954
36955 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
36956
36957 * lra-constraints.c (process_alt_operands): Fix recently added comment.
36958
36959 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
36960
36961 PR rtl-optimization/56225
36962 * lra-constraints.c (process_alt_operands): Check that reload hard
36963 reg can hold value for strict_low_part.
36964
36965 2013-02-07 Jakub Jelinek <jakub@redhat.com>
36966
36967 PR debug/56154
36968 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
36969 dwarf2out_end_function.
36970 (in_first_function_p, maybe_at_text_label_p,
36971 first_loclabel_num_not_at_text_label): New variables.
36972 (dwarf2out_var_location): In the first function find out
36973 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
36974 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
36975 functions.
36976
36977 2013-02-07 Eric Botcazou <ebotcazou@adacore.com>
36978
36979 PR rtl-optimization/56178
36980 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
36981 SUBREG of a register. Tidy up related block of code.
36982 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
36983 note if the source is a register or a SUBREG of a register.
36984
36985 2013-02-07 Jakub Jelinek <jakub@redhat.com>
36986
36987 PR target/56228
36988 * config/rs6000/rs6000.md (ptrm): New mode attr.
36989 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
36990 call_value_indirect_aix<pttrsize>,
36991 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
36992 m in constraints.
36993
36994 2013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
36995
36996 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
36997 if -bnortl. Convert to strcmp and strncmp.
36998
36999 2013-02-07 Alan Modra <amodra@gmail.com>
37000
37001 PR target/54009
37002 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
37003 addresses won't wrap when offsetting.
37004 (rs6000_secondary_reload): Provide secondary reloads needed for
37005 wrapping LO_SUM addresses.
37006
37007 2013-02-06 Thomas Schwinge <thomas@codesourcery.com>
37008
37009 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
37010 MACH, just __MACH__.
37011
37012 2013-02-06 Richard Biener <rguenther@suse.de>
37013
37014 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
37015 instead of calling fix_loop_structure.
37016
37017 2013-02-06 Jakub Jelinek <jakub@redhat.com>
37018
37019 PR middle-end/56217
37020 * omp-low.c (use_pointer_for_field): Return false if
37021 lower_send_shared_vars doesn't generate any copy-out code.
37022
37023 2013-02-06 Tom de Vries <tom@codesourcery.com>
37024
37025 PR rtl-optimization/56131
37026 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
37027 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
37028 of the label is NULL. Add comment.
37029
37030 2013-02-05 Jakub Jelinek <jakub@redhat.com>
37031
37032 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
37033
37034 PR sanitizer/55374
37035 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
37036 (STATIC_LIBTSAN_LIBS): Likewise.
37037 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
37038 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
37039 is defined, don't add anything else beyond that.
37040 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
37041 (LINK_COMMAND_SPEC): Use them.
37042
37043 PR tree-optimization/56205
37044 * tree-stdarg.c (check_all_va_list_escapes): Return true if
37045 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
37046 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
37047
37048 2013-02-05 Richard Biener <rguenther@suse.de>
37049
37050 PR tree-optimization/53342
37051 PR tree-optimization/53185
37052 * tree-vectorizer.h (vect_check_strided_load): Remove.
37053 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
37054 not disallow peeling for vectorized strided loads.
37055 (vect_check_strided_load): Make static and simplify.
37056 (vect_analyze_data_refs): Adjust.
37057 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
37058 correctly when vectorizing strided loads.
37059
37060 2013-02-05 Richard Biener <rguenther@suse.de>
37061
37062 * doc/install.texi: Refer to ISL, not PPL.
37063
37064 2013-02-05 Jan Hubicka <jh@suse.cz>
37065
37066 PR tree-optimization/55789
37067 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
37068
37069 2013-02-05 Jan Hubicka <jh@suse.cz>
37070
37071 PR tree-optimization/55789
37072 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
37073 the dead call anyway.
37074
37075 2013-02-05 Eric Botcazou <ebotcazou@adacore.com>
37076
37077 PR sanitizer/55374
37078 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
37079
37080 2013-02-04 Alexander Potapenko <glider@google.com>
37081 Jack Howarth <howarth@bromo.med.uc.edu>
37082 Jakub Jelinek <jakub@redhat.com>
37083
37084 PR sanitizer/55617
37085 * config/darwin.c (sort_ctor_records): Stabilized qsort
37086 on constructor priority by using original position.
37087 (finalize_ctors): New routine to sort constructors by
37088 priority before use in assemble_integer.
37089 (machopic_asm_out_constructor): Use finalize_ctors if needed.
37090
37091 2013-02-04 Jakub Jelinek <jakub@redhat.com>
37092
37093 PR libstdc++/54314
37094 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
37095 about visibility on artificial decls.
37096 * config/sol2.c (solaris_assemble_visibility): Likewise.
37097
37098 2013-02-04 Kai Tietz <ktietz@redhat.com>
37099
37100 PR target/56186
37101 * config/i386/i386.c (function_value_ms_64): Add additional valtype
37102 argument and improve checking of return-argument types for 16-byte
37103 modes.
37104 (ix86_function_value_1): Add additional valtype argument on call
37105 of function_value_64.
37106 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
37107 handling infunction_value_64 function.
37108
37109 2013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
37110
37111 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
37112
37113 2013-02-04 Richard Biener <rguenther@suse.de>
37114
37115 PR tree-optimization/56188
37116 * tree-ssa-structalias.c (label_visit): Consider case with
37117 initially non-empty points-to set.
37118 (perform_var_substitution): Dump node mapping and clean up.
37119
37120 2013-02-04 Richard Guenther <rguenther@suse.de>
37121
37122 PR lto/56168
37123 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
37124 node prevail as last resort.
37125 (lto_symtab_merge_decls): Remove guard on LTRANS here.
37126 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
37127
37128 2013-02-04 Richard Biener <rguenther@suse.de>
37129
37130 PR tree-optimization/56113
37131 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
37132 Merge into ...
37133 (equiv_class_lookup_or_add): ... this.
37134 (label_visit): Adjust and fix error in previous patch.
37135 (perform_var_substitution): Adjust.
37136
37137 2013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
37138
37139 * config/sh/divtab.c: Fix formatting and comments throughout the file.
37140 * config/sh/sh4-300.md: Likewise.
37141 * config/sh/sh4a.md: Likewise.
37142 * config/sh/constraints.md: Likewise.
37143 * config/sh/sh.md: Likewise.
37144 * config/sh/netbsd-elf.h: Likewise.
37145 * config/sh/predicates.md: Likewise.
37146 * config/sh/sh-protos.h: Likewise.
37147 * config/sh/ushmedia.h: Likewise.
37148 * config/sh/linux.h: Likewise.
37149 * config/sh/sh.c: Likewise.
37150 * config/sh/superh.h: Likewise.
37151 * config/sh/elf.h: Likewise.
37152 * config/sh/sh4.md: Likewise.
37153 * config/sh/sh.h: Likewise.
37154
37155 2013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
37156
37157 * config/pa/constraints.md: Adjust unused letters. Change "T"
37158 constraint to match_test floating_point_store_memory_operand().
37159 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
37160 (base14_operand): New.
37161 (floating_point_store_memory_operand): New.
37162 (integer_store_memory_operand): Revise to use base14_operand and
37163 reg_plus_base_memory_operand.
37164 (move_dest_operand): Allow symbolic_memory_operands.
37165 (symbolic_memory_operand): Check for LO_SOM.
37166 (symbolic_operand): Change default case to break.
37167 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
37168 CONST_DOUBLE values to be reloaded by putting them into memory when
37169 the destination is a floating point register.
37170 (movdf): Remove code to handle CONST_DOUBLE.
37171 (movsf): Likewise.
37172 (reload_indf_r1): New.
37173 (reload_insf_r1): New.
37174 Consistently use "Q" and "T" constraints with integer and floating
37175 point move instructions, respectively.
37176 (movdi): Remove FAIL.
37177 Change predicate for source operand unamed DImode move from
37178 general_operand to move_src_operand.
37179 (umulsidi3): Change predicate for destination operand to
37180 register_operand.
37181 Likewise for similar unamed patterns.
37182 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
37183 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
37184 (hppa_legitimize_address): Simplify mask calculation.
37185 (pa_emit_move_sequence): Revised handling of secondary reloads from
37186 REG+D addresses for floating point loads and stores. Directly handle
37187 loading CONST0_RTX (mode) to a floating point register.
37188 (pa_secondary_reload): Handle reloading DF and SFmode constant values
37189 to floating point registers. Don't restrict secondary reloads to
37190 floating point registers to integer modes. Revise some comments and
37191 cleanup some code.
37192 (TARGET_LEGITIMATE_ADDRESS_P): Define.
37193 (pa_legitimate_address_p): New.
37194 (pa_legitimize_reload_address): New.
37195 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
37196 (STRICT_REG_OK_FOR_BASE_P): New.
37197 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
37198 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
37199
37200 2013-02-03 David Edelsohn <dje.gcc@gmail.com>
37201 Andrew Dixie <andrewd@gentrack.com>
37202
37203 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
37204 flag set.
37205
37206 2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
37207
37208 * expmed.c (extract_bit_field_1): Pass the full width of the
37209 structure to get_best_reg_extraction_insn.
37210
37211 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
37212
37213 PR target/54601
37214 * configure.ac (use_cxa_atexit): Add AIX.
37215 * configure: Regenerate.
37216
37217 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
37218
37219 2013-02-01 Jakub Jelinek <jakub@redhat.com>
37220
37221 PR debug/54793
37222 * final.c (need_profile_function): New variable.
37223 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
37224 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
37225 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
37226 notes, targetm.asm_out.function_prologue doesn't emit anything,
37227 HAVE_prologue and profiler should be emitted before prologue,
37228 set need_profile_function instead of emitting it.
37229 (final_scan_insn): If need_profile_function, emit
37230 profile_function on the first NOTE_INSN_BASIC_BLOCK or
37231 NOTE_INSN_FUNCTION_BEG note.
37232
37233 2013-02-01 Richard Henderson <rth@redhat.com>
37234
37235 * config/rs6000/rs6000.md (smulditi3): New.
37236 (umulditi3): New.
37237
37238 * config/alpha/alpha.md (umulditi3): New.
37239
37240 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
37241
37242 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
37243 (ASM_OUTPUT_ALIGNED_LOCAL): New.
37244
37245 2013-02-01 Richard Biener <rguenther@suse.de>
37246
37247 PR tree-optimization/56113
37248 * tree-ssa-structalias.c (label_visit): Reduce work for
37249 single-predecessor nodes.
37250
37251 2013-02-01 Eric Botcazou <ebotcazou@adacore.com>
37252
37253 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
37254 range isn't testing for zero.
37255
37256 2013-01-31 Steven Bosscher <steven@gcc.gnu.org>
37257
37258 PR middle-end/56113
37259 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
37260
37261 2013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
37262 Nick Clifton <nickc@redhat.com>
37263
37264 * config/v850/constraints.md (Q): Define as a memory constraint.
37265 * config/v850/predicates.md (label_ref_operand): New predicate.
37266 (e3v5_shift_operand): New predicate.
37267 (ior_operator): New predicate.
37268 * config/v850/t-v850: Add e3v5 multilib.
37269 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
37270 (v850_gen_movdi): Prototype.
37271 * config/v850/v850.c: Add support for e3v5 architecture.
37272 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
37273 TARGET_V850E_UP.
37274 (construct_save_jarl): Add e3v5 long JARL support.
37275 (v850_adjust_insn_length): New function. Adjust length of call
37276 insns when using e3v5 instructions.
37277 (v850_gen_movdi): New function: Generate instructions to move a
37278 DImode value.
37279 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
37280 (CPP_SPEC): Define __v850e3v5__ as appropriate.
37281 (TARGET_USE_FPU): Enable for e3v5.
37282 (CONST_OK_FOR_W): New macro.
37283 (ADJUST_INSN_LENGTH): Define.
37284 * config/v850/v850.md (UNSPEC_LOOP): Define.
37285 (attr cpu): Add v850e3v5.
37286 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
37287 (movdi): New pattern.
37288 (movdi_internal): New pattern.
37289 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
37290 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
37291 (cstoresf4): Likewise.
37292 (cstoredf4): Likewise.
37293 (insv): New pattern.
37294 (rotlso3_a): New pattern.
37295 (rotlsi3_b): New pattern
37296 (rotlsi3_v850e3v5): New pattern.
37297 (doloop_begin): New pattern.
37298 (fix_loop_counter): New pattern.
37299 (doloop_end): New pattern.
37300 (branch_normal): Add e3v5 long branch support.
37301 (branch_invert): Likewise.
37302 (branch_z_normal): Likewise.
37303 (branch_z_invert): Likewise.
37304 (branch_nz_normal): Likewise.
37305 (branch_nz_invert): Likewise.
37306 (call_internal_short): Add e3v5 register-indirect JARL support.
37307 (call_internal_long): Likewise.
37308 (call_value_internal_short): Likewise.
37309 (call_value_internal_long): Likewise.
37310 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
37311 (mloop): New option.
37312 * config.gcc: Add support for configuring v840e3v5 target.
37313 * doc/invoke.texi: Document new v850 specific command line options.
37314
37315 2013-01-31 Paul Koning <ni1d@arrl.net>
37316
37317 PR debug/55059
37318 PR debug/54508
37319 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
37320 children if parent is a class.
37321 (prune_unused_types_prune): Don't add DW_AT_declaration.
37322
37323 2013-01-31 Richard Biener <rguenther@suse.de>
37324
37325 PR tree-optimization/56157
37326 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
37327 match up operand with SLP child.
37328
37329 2013-01-31 Jason Merrill <jason@redhat.com>
37330
37331 PR debug/54410
37332 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
37333 parameters the first time.
37334 (gen_scheduled_generic_parms_dies): Check completeness here.
37335
37336 2013-01-31 Richard Biener <rguenther@suse.de>
37337
37338 PR middle-end/53073
37339 * common.opt (faggressive-loop-optimizations): New flag,
37340 enabled by default.
37341 * doc/invoke.texi (faggressive-loop-optimizations): Document.
37342 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
37343 infer_loop_bounds_from_undefined by it.
37344
37345 2013-01-31 Richard Biener <rguenther@suse.de>
37346
37347 PR tree-optimization/56150
37348 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
37349 visit virtual operands.
37350 (find_uses_to_rename_bb): Likewise.
37351
37352 2013-01-31 Richard Biener <rguenther@suse.de>
37353
37354 PR tree-optimization/56150
37355 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
37356 mixed store non-store stmts.
37357
37358 2013-01-30 Jakub Jelinek <jakub@redhat.com>
37359
37360 PR sanitizer/55374
37361 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
37362 LIBASAN_EARLY_SPEC is defined.
37363 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
37364 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
37365 before %o.
37366 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
37367
37368 PR c++/55742
37369 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
37370 invalid args instead of ICEing on it.
37371 (ix86_valid_target_attribute_tree): Return error_mark_node if
37372 ix86_valid_target_attribute_inner_p failed.
37373 (ix86_valid_target_attribute_p): Return false only if
37374 ix86_valid_target_attribute_tree returned error_mark_node. Allow
37375 target("default") attribute.
37376 (sorted_attr_string): Change argument from const char * to tree,
37377 merge in all target attribute arguments rather than just one.
37378 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
37379 instead of free. Avoid using strcat.
37380 (ix86_mangle_function_version_assembler_name): Mangle
37381 target("default") as if no target attribute is present. Adjust
37382 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
37383 instead of xmalloc and XDELETEVEC instead of free.
37384 (ix86_function_versions): Don't return true if one of the decls
37385 doesn't have target attribute. If they don't and one of the decls
37386 is DECL_FUNCTION_VERSIONED, report an error. Adjust
37387 sorted_attr_string caller. Use XDELETEVEC instead of free.
37388 (ix86_supports_function_versions): Remove.
37389 (make_name): Fix up formatting.
37390 (make_dispatcher_decl): Remove resolver_name and its initialization.
37391 Avoid leaking memory.
37392 (is_function_default_version): Return true if there is
37393 target("default") attribute rather than no target attribute at all.
37394 (make_resolver_func): Avoid leaking memory.
37395 (ix86_generate_version_dispatcher_body): Likewise.
37396 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
37397 * target.def (supports_function_versions): Remove.
37398 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
37399 * doc/tm.texi: Regenerated.
37400
37401 2013-01-30 Vladimir Makarov <vmakarov@redhat.com>
37402
37403 PR rtl-optimization/56144
37404 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
37405 for values with side effects.
37406
37407 2013-01-30 Richard Biener <rguenther@suse.de>
37408
37409 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
37410 (sparseset_pop): Likewise.
37411 * cfganal.c (compute_idf): Likewise. Increase work-stack size
37412 to be able to use quick_push in the worker loop.
37413
37414 2013-01-30 Marek Polacek <polacek@redhat.com>
37415
37416 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
37417
37418 2013-01-30 Richard Biener <rguenther@suse.de>
37419
37420 PR lto/56147
37421 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
37422
37423 2013-01-30 Georg-Johann Lay <avr@gjlay.de>
37424
37425 PR tree-optimization/56064
37426 * fixed-value.c (fixed_from_double_int): New function.
37427 * fixed-value.h (fixed_from_double_int): New prototype.
37428 (const_fixed_from_double_int): New static inline function.
37429 * fold-const.c (native_interpret_fixed): New static function.
37430 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
37431 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
37432 (native_encode_fixed): New static function.
37433 (native_encode_expr) <FIXED_CST>: Use it.
37434 (native_interpret_int): Move double_int worker code to...
37435 * double-int.c (double_int::from_buffer): ...this new static method.
37436 * double-int.h (double_int::from_buffer): Prototype it.
37437
37438 2013-01-30 Richard Biener <rguenther@suse.de>
37439
37440 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
37441 New pointer-map and obstack.
37442 (init_alias_vars): Allocate pointer-map and obstack.
37443 (delete_points_to_sets): Free them.
37444 (find_what_var_points_to): Cache result.
37445 (find_what_p_points_to): Adjust for changed interface of
37446 find_what_var_points_to.
37447 (compute_points_to_sets): Likewise.
37448 (ipa_pta_execute): Likewise.
37449
37450 2013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37451
37452 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
37453 * configure: Regenerate.
37454 * config.in: Regenerate.
37455 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
37456 #nobits/#progbits if supported.
37457
37458 2013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
37459
37460 PR target/56121
37461 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
37462 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
37463 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
37464
37465 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
37466
37467 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
37468 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
37469
37470 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
37471
37472 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
37473 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
37474
37475 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
37476
37477 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
37478 declaration.
37479 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
37480 * config/arm/cortex-a7.md: New bypasses using
37481 arm_mac_accumulator_is_result.
37482
37483 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
37484
37485 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
37486 (cortex_a7_neon_mla): Likewise.
37487 (cortex_a7_fpfmad): New reservation.
37488 (cortex_a7_fpmacs): Use ffmas and update required units.
37489 (cortex_a7_fpmuld): Update required units and latency.
37490 (cortex_a7_fpmacd): Likewise.
37491 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
37492 (cortex_a7_neon). Likewise.
37493 (bypass) Update participating units.
37494
37495 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
37496
37497 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
37498 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
37499 from fmac to ffma.
37500 * config/arm/vfp11.md (vfp_farith): Use ffmas.
37501 (vfp_fmul): Use ffmad.
37502 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
37503 (cortex_r4_fmacd): Use ffmad.
37504 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
37505 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
37506 (cortex_a9_fmacd): Use ffmad.
37507 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
37508 (cortex_a8_vfp_macd): Use ffmad.
37509 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
37510 (cortex_a5_fpmacd): Use ffmad.
37511 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
37512 (cortex_a15_vfp_macd): Use ffmad.
37513 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
37514
37515 2013-01-29 Jason Merrill <jason@redhat.com>
37516
37517 PR libstdc++/54314
37518 * varasm.c (default_assemble_visibility): Don't warn about
37519 visibility on artificial decls.
37520
37521 2013-01-29 Richard Biener <rguenther@suse.de>
37522
37523 PR tree-optimization/56113
37524 * tree-ssa-structalias.c (equiv_class_lookup): Also return
37525 the bitmap leader.
37526 (label_visit): Free duplicate bitmaps and record the leader instead.
37527 (perform_var_substitution): Adjust.
37528
37529 2013-01-29 Richard Biener <rguenther@suse.de>
37530
37531 PR tree-optimization/55270
37532 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
37533 the CFG, schedule loops for fixup.
37534
37535 2013-01-29 Nick Clifton <nickc@redhat.com>
37536
37537 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
37538 SP_REG.
37539
37540 2013-01-28 Leif Ekblad <leif@rdos.net>
37541
37542 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
37543 * config/i386/i386.h (TARGET_RDOS): New macro.
37544 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
37545 * config/i386/i386.c (ix86_option_override_internal): For 64bit
37546 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
37547 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
37548 DEFAULT_LARGE_SECTION_THRESHOLD.
37549 * config/i386/i386.md (R14_REG, R15_REG): New constants.
37550 * config/i386/rdos.h: New file.
37551 * config/i386/rdos64.h: New file.
37552
37553 2013-01-28 Bernd Schmidt <bernds@codesourcery.com>
37554
37555 PR other/54814
37556 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
37557 TEST_HARD_REG_BIT.
37558
37559 2013-01-28 Jakub Jelinek <jakub@redhat.com>
37560
37561 PR rtl-optimization/56117
37562 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
37563 call cselib_lookup_from_insn on the MEM before calling
37564 add_insn_mem_dependence.
37565
37566 2013-01-28 Richard Biener <rguenther@suse.de>
37567
37568 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
37569 to a stmt that didn't have one.
37570 (copy_phis_for_bb): Likewise for PHI arguments.
37571 (copy_debug_stmt): Likewise for debug stmts.
37572
37573 2013-01-28 Richard Biener <rguenther@suse.de>
37574
37575 PR tree-optimization/56034
37576 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
37577 (partition_builtin_p): Adjust.
37578 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
37579 it is the last partition.
37580 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
37581 up the vertex for the definition.
37582 (classify_partition): Classify whether a partition is a
37583 PKIND_REDUCTION, thus has uses outside of the loop.
37584 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
37585 Merge all PKIND_REDUCTION partitions into the last partition.
37586 (tree_loop_distribution): Seed partitions from reductions as well.
37587
37588 2013-01-28 Jakub Jelinek <jakub@redhat.com>
37589
37590 PR tree-optimization/56125
37591 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
37592 pow(x,c) into sqrt(x) * powi(x, n/2) or
37593 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
37594 optimizing for size.
37595 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
37596 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
37597 integer.
37598
37599 PR tree-optimization/56094
37600 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
37601 to UNKNOWN_LOCATION while gimplifying expr.
37602
37603 2013-01-27 Uros Bizjak <ubizjak@gmail.com>
37604
37605 PR target/56114
37606 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
37607 operand 0 in movabs insn template for -masm=intel asm alternative.
37608 (*movabs<mode>_2): Ditto for operand 1.
37609
37610 2013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
37611
37612 PR target/54663
37613 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
37614 of microblaze-c.o
37615
37616 2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
37617
37618 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
37619 tm_file.
37620
37621 2013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
37622
37623 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
37624 Undef to avoid warning.
37625
37626 2013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
37627
37628 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
37629 * configure: Regenerate.
37630
37631 2013-01-25 Jakub Jelinek <jakub@redhat.com>
37632
37633 PR tree-optimization/56098
37634 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
37635 for stmts with volatile ops.
37636 (cond_store_replacement): Don't optimize if assign has volatile ops.
37637 (cond_if_else_store_replacement_1): Don't optimize if either
37638 then_assign or else_assign have volatile ops.
37639 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
37640 volatile ops.
37641
37642 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
37643
37644 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
37645
37646 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
37647
37648 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
37649 missing ':' in asm example.
37650
37651 2013-01-25 Tejas Belagod <tejas.belagod@arm.com>
37652
37653 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
37654 entries into lane and laneq entries.
37655 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
37656 Remove AdvSIMD scalar modes.
37657 (aarch64_sq<r>dmulh_laneq<mode>): New.
37658 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
37659 modes.
37660 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
37661 builtin implementations to relfect changes in RTL in aarch64-simd.md.
37662 * config/aarch64/iterators.md (VCOND): New.
37663 (VCONQ): New.
37664
37665 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
37666
37667 PR target/54222
37668 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
37669 Add NULL LIBNAME argument to existing definitions.
37670 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
37671 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
37672 * config/avr/avr.c (DEF_BUILTIN): Same.
37673 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
37674 (avr_expand_builtin): Expand to a vanilla call if a libgcc
37675 implementation is available (DECL_ASSEMBLER_NAME is set).
37676 (avr_fold_absfx): New static function.
37677 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
37678 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
37679 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
37680 AVR_BUILTIN_ABSLLK.
37681 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
37682 (abshk, absk, abslk, absllk): Provide as static inline functions.
37683
37684 2013-01-25 Marek Polacek <polacek@redhat.com>
37685
37686 PR tree-optimization/56035
37687 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
37688
37689 2012-01-24 Uros Bizjak <ubizjak@gmail.com>
37690
37691 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
37692 (*movtf_internal_rex64): Add (!o,C) alternative
37693 (*movxf_internal_rex64): Ditto.
37694 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
37695
37696 2013-01-24 Shenghou Ma <minux.ma@gmail.com>
37697
37698 * doc/invoke.texi: fix typo.
37699 * doc/objc.texi: fix typo.
37700
37701 2013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
37702
37703 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
37704 for the first two alternatives.
37705
37706 2013-01-24 Diego Novillo <dnovillo@google.com>
37707
37708 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
37709 (ggc-zone.o): Remove.
37710 * configure.ac: Remove option --with-gc.
37711 * configure: Re-generate.
37712 * doc/install.texi: Remove documentation for --with-gc.
37713 * gengtype.c (write_enum_defn): Remove. Update all users.
37714 (write_Types_process_field): Remove generation of gt_e_* argument.
37715 (output_type_enum): Remove. Update all users.
37716 (write_enum_defn): Remove. Update all users.
37717 (enum alloc_zone): Remove. Update all users.
37718 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
37719 * ggc-common.c (ggc_splay_alloc): Remove first argument.
37720 Update all callers.
37721 (struct ptr_data): Remove field TYPE. Update all users.
37722 (gt_pch_note_object): Remove argument TYPE. Update all users.
37723 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
37724 Update all users.
37725 * ggc-none.c (ggc_alloc_typed_stat): Remove.
37726 (struct alloc_zone): Remove.
37727 (ggc_internal_alloc_zone_stat): Remove.
37728 (ggc_internal_cleared_alloc_zone_stat): Remove.
37729 * ggc-page.c (ggc_alloc_typed_stat): Remove.
37730 (ggc_pch_count_object): Remove last argument. Update all users.
37731 (ggc_pch_alloc_object): Remove last argument. Update all users.
37732 (struct alloc_zone): Remove.
37733 * ggc-zone.c: Remove.
37734 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
37735 (struct alloc_zone): Remove.
37736 (ggc_alloc_typed_stat): Remove.
37737 (ggc_alloc_typed): Remove.
37738 (ggc_splay_alloc): Remove first argument.
37739 (rtl_zone): Remove. Update all users.
37740 (tree_zone): Remove. Update all users.
37741 (tree_id_zone): Remove. Update all users.
37742 (ggc_internal_zone_alloc_stat): Remove. Update all users.
37743 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
37744 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
37745 * tree-ssanames.c: Remove references to zone allocator in comments.
37746
37747 2013-01-24 Georg-Johann Lay <avr@gjlay.de>
37748
37749 * config/avr/avr.c (avr_out_fract): Make register numbers that
37750 might be outside of source operand signed.
37751
37752 2013-01-24 Uros Bizjak <ubizjak@gmail.com>
37753
37754 * config/i386/constraints.md (Yf): New constraint.
37755 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
37756 of f constraint to conditionaly disable x87 register preferences.
37757 (*movdf_internal): Ditto.
37758 (*movsf_internal): Ditto.
37759
37760 2013-01-24 Steven Bosscher <steven@gcc.gnu.org>
37761
37762 PR inline-asm/55934
37763 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
37764 that have operands with impossible constraints.
37765 Add a FIXME for a speed-up opportunity.
37766 * lra-constraints.c (process_alt_operands): Verify that a class
37767 selected from constraints on asms is valid for the operand mode.
37768 (curr_insn_transform): Remove incorrect comment.
37769
37770 2013-01-23 David Edelsohn <dje.gcc@gmail.com>
37771
37772 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
37773 TOC operand is a valid symbol ref in the constant pool.
37774
37775 2013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
37776
37777 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
37778
37779 2013-01-23 Georg-Johann Lay <avr@gjlay.de>
37780
37781 PR target/54222
37782 * config/avr/stdfix.h: New file.
37783 * t-avr (stdfix-gcc.h): New rule to build it.
37784 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
37785
37786 2013-01-23 Kostya Serebryany <kcc@google.com>
37787
37788 * config/darwin.h: remove dependency on
37789 CoreFoundation (asan on Mac OS).
37790
37791 2013-01-23 Jakub Jelinek <jakub@redhat.com>
37792
37793 PR target/49069
37794 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
37795 instead of cmpdi_operand for first comparison operand.
37796 Don't assert that comparison operands aren't both constants.
37797
37798 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
37799
37800 * doc/install.texi (Downloading the Source): Update references to
37801 downloading separate components.
37802
37803 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
37804
37805 * doc/extend.texi (__int128): Improve grammar.
37806
37807 2013-01-22 Uros Bizjak <ubizjak@gmail.com>
37808
37809 PR target/56028
37810 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
37811 alternative to (o,r).
37812 (*movdi_internal_rex64): Remove (!o,n) alternative.
37813 (DImode immediate->memory splitter): Remove.
37814 (DImode immediate->memory peephole2): Remove.
37815 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
37816 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
37817 alternative to (!o,*r).
37818 (*movtf_internal_sse): New pattern.
37819 (*movxf_internal_rex64): New pattern.
37820 (*movxf_internal): Disable for TARGET_64BIT.
37821 (*movdf_internal_rex64): Remove (!o,F) alternative.
37822
37823 2013-01-22 Jakub Jelinek <jakub@redhat.com>
37824
37825 PR middle-end/56074
37826 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
37827 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
37828 * tree-vect-loop-manip.c (find_loop_location): Also ignore
37829 stmt locations where LOCATION_LOCUS of the stmt location is
37830 UNKNOWN_LOCATION or BUILTINS_LOCATION.
37831
37832 PR target/55686
37833 * config/i386/i386.md (UNSPEC_STOS): New.
37834 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
37835 *strsetqi_1): Add UNSPEC_STOS.
37836
37837 2013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
37838
37839 PR c++/56067
37840 * doc/invoke.texi: Remove left over -Wsynth example.
37841
37842 2013-01-21 Jakub Jelinek <jakub@redhat.com>
37843
37844 PR tree-optimization/56051
37845 * fold-const.c (fold_binary_loc): Don't fold
37846 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
37847 a narrowing conversion, or widening conversion from signed
37848 to unsigned.
37849
37850 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
37851
37852 PR rtl-optimization/56023
37853 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
37854 dependent on debug instruction.
37855
37856 2013-01-21 Martin Jambor <mjambor@suse.cz>
37857
37858 PR middle-end/56022
37859 * function.c (allocate_struct_function): Call
37860 invoke_set_current_function_hook earlier.
37861
37862 2013-01-21 Jakub Jelinek <jakub@redhat.com>
37863
37864 * reload1.c (init_reload): Only initialize reload_obstack
37865 during the first call.
37866
37867 2013-01-21 Marek Polacek <polacek@redhat.com>
37868
37869 * cfgloop.c (verify_loop_structure): Fix up grammar.
37870
37871 2013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
37872
37873 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
37874 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
37875
37876 2013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
37877
37878 PR target/56058
37879 * config/arm/marvell-pj4.md: Update copyright year.
37880 Fix up use of alu to alu_reg and simple_alu_imm.
37881
37882 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
37883
37884 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
37885
37886 2013-01-20 Vladimir Makarov <vmakarov@redhat.com>
37887
37888 PR target/55433
37889 * lra-constraints.c (curr_insn_transform): Don't reuse original
37890 insn for secondary memory move when memory mode should be different.
37891
37892 2013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
37893
37894 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
37895 atomic_storedi_1): New patterns.
37896
37897 2013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
37898
37899 btver2 pipeline descriptions.
37900 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
37901 descriptions.
37902 * config/i386/i386.md (btver2_decode): New type attributes.
37903 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
37904 type attributes.
37905 * config/i386/btver2.md: New file describing btver2 pipelines.
37906
37907 2013-01-19 Andrew Pinski <apinski@cavium.com>
37908
37909 PR tree-optimization/52631
37910 * tree-ssa-sccvn (visit_use): Before looking up the original
37911 statement, try looking up the simplified expression.
37912
37913 2013-01-19 Anthony Green <green@moxielogic.com>
37914
37915 * config/moxie/moxie.c (moxie_expand_prologue): Set
37916 current_function_static_stack_size.
37917
37918 2013-01-18 Jakub Jelinek <jakub@redhat.com>
37919
37920 PR tree-optimization/56029
37921 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
37922 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
37923
37924 2013-01-18 Sharad Singhai <singhai@google.com>
37925
37926 PR tree-optimization/55995
37927 * dumpfile.c (dump_loc): Print location only if available.
37928 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
37929
37930 2013-01-18 Vladimir Makarov <vmakarov@redhat.com>
37931
37932 PR target/55433
37933 * lra-constraints.c (curr_insn_transform): Reuse original insn for
37934 secondary memory move.
37935 (inherit_reload_reg): Use rclass instead of cl for
37936 check_secondary_memory_needed_p.
37937
37938 2013-01-18 Jakub Jelinek <jakub@redhat.com>
37939
37940 PR middle-end/56015
37941 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
37942 the case where writing real complex part of target modifies op1.
37943
37944 2013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
37945
37946 * config/aarch64/aarch64-simd.md
37947 (aarch64_vcond_internal<mode>): Handle unordered cases.
37948 * config/aarch64/iterators.md (v_cmp_result): New.
37949
37950 2013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
37951 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
37952
37953 * config/arm/marvell-pj4.md: New file.
37954 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
37955 * config/arm/arm.md (generic_sched): Add marvell_pj4.
37956 (generic_vfp): Likewise.
37957 * config/arm/arm-cores.def: Add marvell-pj4.
37958 * config/arm/arm-tune.md: Regenerate.
37959 * config/arm/arm-tables.opt: Regenerate.
37960 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
37961 * doc/invoke.texi: Document marvell-pj4.
37962
37963 2013-01-18 Tejas Belagod <tejas.belagod@arm.com>
37964
37965 * config/aarch64/arm_neon.h: Map scalar types to standard types.
37966
37967 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
37968
37969 PR debug/54114
37970 PR debug/54402
37971 PR debug/49888
37972 * var-tracking.c (negative_power_of_two_p): New.
37973 (global_get_addr_cache, local_get_addr_cache): New.
37974 (get_addr_from_global_cache, get_addr_from_local_cache): New.
37975 (vt_canonicalize_addr): Rewrite using the above. Adjust the
37976 heading comment.
37977 (vt_stack_offset_p): Remove.
37978 (vt_canon_true_dep): Always canonicalize loc's address.
37979 (clobber_overlapping_mems): Make sure we have a MEM.
37980 (local_get_addr_clear_given_value): New.
37981 (val_reset): Clear local cached entries.
37982 (compute_bb_dataflow): Create and release the local cache.
37983 Disable duplicate MEMs clobbering.
37984 (emit_notes_in_bb): Clobber MEMs likewise.
37985 (vt_emit_notes): Create and release the local cache.
37986 (vt_initialize, vt_finalize): Create and release the global
37987 cache, respectively.
37988 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
37989
37990 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
37991
37992 PR libmudflap/53359
37993 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
37994 not found in the symtab.
37995
37996 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
37997
37998 PR debug/56006
37999 PR rtl-optimization/55547
38000 PR rtl-optimization/53827
38001 PR debug/53671
38002 PR debug/49888
38003 * alias.c (offset_overlap_p): New, factored out of...
38004 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
38005 the conservative special case for symbolic constants. Don't
38006 adjust zero sizes on alignment.
38007
38008 2013-01-18 Bernd Schmidt <bernds@codesourcery.com>
38009
38010 PR rtl-optimization/52573
38011 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
38012 REG_UNUSED for the same register.
38013
38014 2013-01-17 Richard Biener <rguenther@suse.de>
38015 Marek Polacek <polacek@redhat.com>
38016
38017 PR rtl-optimization/55833
38018 * loop-unswitch.c (unswitch_loops): Move loop verification...
38019 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
38020 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
38021 Set it to true when we're removing a loop from hierarchy tree in
38022 an irreducible region.
38023 (fix_bb_placements): Adjust caller.
38024 (fix_loop_placements): Likewise.
38025
38026 2013-01-17 Georg-Johann Lay <avr@gjlay.de>
38027
38028 * config/avr/builtins.def (DEF_BUILTIN): Factor out
38029 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
38030 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
38031 Remove ID. Adjust comments.
38032 * config/avr/avr-c.c (avr_builtin_name): Remove.
38033 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
38034 * config/avr/avr.c (avr_tolower): New static function.
38035 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
38036 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
38037 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
38038 default expansion.
38039
38040 2013-01-17 Jan Hubicka <jh@suse.cz>
38041
38042 PR tree-optimization/55273
38043 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
38044
38045 2013-01-17 Uros Bizjak <ubizjak@gmail.com>
38046
38047 PR target/55981
38048 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
38049 store through atomic_store<mode>_1.
38050 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
38051
38052 2013-01-17 Martin Jambor <mjambor@suse.cz>
38053
38054 PR tree-optimizations/55264
38055 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
38056 for virtual methods.
38057 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
38058 virtual methods before inlining is over.
38059 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
38060 virtual functions.
38061 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
38062 non-virtual.
38063
38064 2013-01-16 Vladimir Makarov <vmakarov@redhat.com>
38065
38066 PR rtl-optimization/56005
38067 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
38068 pending reads for prefetch.
38069
38070 2013-01-16 Ian Bolton <ian.bolton@arm.com>
38071
38072 * config/aarch64/aarch64.md
38073 (*cstoresi_neg_uxtw): New pattern.
38074 (*cmovsi_insn_uxtw): New pattern.
38075 (*<optab>si3_uxtw): New pattern.
38076 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
38077 (*<optab>si3_insn_uxtw): New pattern.
38078 (*bswapsi2_uxtw): New pattern.
38079
38080 2013-01-16 Richard Biener <rguenther@suse.de>
38081
38082 * tree-inline.c (tree_function_versioning): Remove set but
38083 never used variable.
38084
38085 2013-01-16 Richard Biener <rguenther@suse.de>
38086
38087 PR tree-optimization/55964
38088 * tree-flow.h (rename_variables_in_loop): Remove.
38089 (rename_variables_in_bb): Likewise.
38090 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
38091 (copy_loop_before): Adjust and delete update-ssa status.
38092 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
38093 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
38094 (rename_variables_in_loop): Remove.
38095 (slpeel_update_phis_for_duplicate_loop): Likewise.
38096 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
38097 use available cfg machinery instead of duplicating it.
38098 Update PHI nodes and perform poor-mans SSA update here.
38099 (slpeel_tree_peel_loop_to_edge): Adjust.
38100
38101 2013-01-16 Richard Biener <rguenther@suse.de>
38102
38103 PR tree-optimization/54767
38104 PR tree-optimization/53465
38105 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
38106 (vrp_visit_phi_node): For PHI arguments coming via backedges
38107 drop all symbolical range information.
38108 (execute_vrp): Compute backedges.
38109
38110 2013-01-16 Richard Biener <rguenther@suse.de>
38111
38112 * doc/install.texi: Update CLooG and ISL requirements to
38113 0.18.0 and 0.11.1.
38114
38115 2013-01-16 Christian Bruel <christian.bruel@st.com>
38116
38117 PR target/55301
38118 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
38119 (broken_move): Handle UNSPECV_SP_SWITCH_B.
38120 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
38121
38122 2013-01-16 DJ Delorie <dj@redhat.com>
38123
38124 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
38125 (UNSPECV_SP_SWITCH_E): New.
38126 (sp_switch_1): Change to an unspec.
38127 (sp_switch_2): Change to an unspec. Don't use post-inc when we
38128 replace $r15.
38129
38130 2013-01-16 Uros Bizjak <ubizjak@gmail.com>
38131
38132 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
38133 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
38134 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
38135 (expand_mem_thread_fence): Ditto.
38136 (expand_mem_signal_fence): Ditto.
38137 (expand_atomic_load): Ditto.
38138 (expand_atomic_store): Ditto.
38139
38140 2013-01-16 Alexandre Oliva <aoliva@redhat.com>
38141
38142 PR rtl-optimization/55547
38143 PR rtl-optimization/53827
38144 PR debug/53671
38145 PR debug/49888
38146 * alias.c (memrefs_conflict_p): Set sizes to negative after
38147 AND adjustments.
38148
38149 2013-01-15 Jakub Jelinek <jakub@redhat.com>
38150
38151 PR target/55940
38152 * function.c (thread_prologue_and_epilogue_insns): Always
38153 add crtl->drap_reg to set_up_by_prologue.set, even if
38154 stack_realign_drap is false.
38155
38156 2013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
38157
38158 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
38159 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
38160 *call): Fix indention.
38161
38162 2013-01-15 Tom de Vries <tom@codesourcery.com>
38163
38164 PR target/55876
38165 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
38166 Update comment.
38167
38168 2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
38169
38170 PR rtl-optimization/55153
38171 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
38172
38173 2013-01-15 Martin Jambor <mjambor@suse.cz>
38174
38175 PR tree-optimization/55920
38176 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
38177 accesses as grp_to_be_debug_replaced.
38178
38179 2013-01-15 Jakub Jelinek <jakub@redhat.com>
38180
38181 PR tree-optimization/55920
38182 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
38183 there is non-useless type conversion needed from debug rhs to lhs,
38184 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
38185
38186 2013-01-15 Joseph Myers <joseph@codesourcery.com>
38187 Mikael Pettersson <mikpe@it.uu.se>
38188
38189 PR target/43961
38190 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
38191 Thumb.
38192 (ASM_OUTPUT_CASE_LABEL): Remove.
38193 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
38194 * final.c (shorten_branches): Update alignment of labels before
38195 jump tables if CASE_VECTOR_SHORTEN_MODE.
38196
38197 2013-01-15 Richard Biener <rguenther@suse.de>
38198
38199 PR bootstrap/55961
38200 * system.h: Do not include gmp.h for building host tools.
38201
38202 2013-01-15 Richard Biener <rguenther@suse.de>
38203
38204 PR middle-end/55882
38205 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
38206 account for bitpos when computing alignment.
38207
38208 2013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
38209
38210 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
38211 (ix86_target_macros_internal): Likewise.
38212
38213 * config/i386/i386.c (m_CORE2I7): Removed.
38214 (m_CORE_HASWELL): New macro.
38215 (m_CORE_ALL): Likewise.
38216 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
38217 (initial_ix86_arch_features): Likewise.
38218 (processor_target_table): Initializations for Core avx2.
38219 (cpu_names): New names "core-avx2".
38220 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
38221 PROCESSOR_CORE_HASWELL.
38222 (ix86_issue_rate): New case.
38223 (ia32_multipass_dfa_lookahead): Likewise.
38224 (ix86_sched_init_global): Likewise.
38225
38226 * config/i386/i386.h (TARGET_HASWELL): New macro.
38227 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
38228 (processor_type): New PROCESSOR_HASWELL.
38229
38230 2013-01-15 Jakub Jelinek <jakub@redhat.com>
38231
38232 PR tree-optimization/55955
38233 * tree-vect-loop.c (vectorizable_reduction): Give up early on
38234 *SHIFT_EXPR and *ROTATE_EXPR codes.
38235
38236 PR tree-optimization/48766
38237 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
38238 -ftrapv disable -fwrapv.
38239
38240 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
38241
38242 PR target/55974
38243 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
38244 etc. to 1 and not to __flash.
38245 Use LL suffix for __INT24_MAX__ with -mint8.
38246 Use ULL suffix for __UINT24_MAX__ with -mint8.
38247
38248 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
38249
38250 * config/avr/avr-arch.h
38251 (struct base_arch_s): Use typedef avr_arch_t instead.
38252 (struct arch_info_s): Use typedef avr_arch_info_t instead.
38253 (struct mcu_type_s): Use typedef avr_mcu_t instead.
38254 * config/avr/avr.c: Same.
38255 * config/avr/avr-devices.c: Same.
38256 * config/avr/driver-avr.c: Same.
38257 * config/avr/gen-avr-mmcu-texi.c: Same.
38258 * config/avr/avr-mcus.def: Adjust comment.
38259
38260 2013-01-14 Tejas Belagod <tejas.belagod@arm.com>
38261
38262 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
38263 * config/aarch64/iterators.md (VALLDI): New.
38264
38265 2013-01-14 Uros Bizjak <ubizjak@gmail.com>
38266 Andi Kleen <ak@linux.intel.com>
38267
38268 PR target/55948
38269 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
38270 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
38271 memmodel flag.
38272
38273 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
38274
38275 * config/avr/avr-stdint.h: Remove trailing blanks.
38276 * config/avr/avr-log.h: Same.
38277 * config/avr/avr-arch.h: Same.
38278 * config/avr/avr-devices.c: Same.
38279 * config/avr/avr-dimode.md: Same.
38280 * config/avr/predicates.md: Same.
38281 * config/avr/avr-c.c: Same. And fix typo.
38282
38283 * config/avr/avr-protos.h: Same. And:
38284 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
38285 (init_cumulative_args): Rename to avr_init_cumulative_args.
38286 (expand_prologue): Rename to avr_expand_prologue.
38287 (expand_epilogue): Rename to avr_expand_epilogue.
38288 (adjust_insn_length): Rename to avr_adjust_insn_length.
38289 (notice_update_cc): Rename to avr_notice_update_cc.
38290 (final_prescan_insn): Rename to avr_final_prescan_insn.
38291 * config/avr/avr.c: Same.
38292 * config/avr/avr.h: Same.
38293 * config/avr/avr.md: Remove trailing blanks.
38294 (prologue): Use avr_expand_prologue.
38295 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
38296
38297 2013-01-14 Richard Biener <rguenther@suse.de>
38298
38299 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
38300 verify_location, collect_subblocks): New functions.
38301 (verify_gimple_in_cfg): Verify that locations only reference
38302 BLOCKs in the functions BLOCK tree.
38303
38304 2013-01-14 Richard Biener <rguenther@suse.de>
38305
38306 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
38307 PHI argument.
38308 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
38309 unshare reference.
38310 (insert_out_of_ssa_copy_on_edge): Likewise.
38311 (rewrite_close_phi_out_of_ssa): Likewise.
38312 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
38313 debug expressions.
38314 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
38315 propagated constants.
38316 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
38317 can not be shared.
38318
38319 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
38320
38321 * config/avr/avr-modes.def: Add GPL copyright notice.
38322
38323 2013-01-13 Uros Bizjak <ubizjak@gmail.com>
38324
38325 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
38326 MEMMODEL_MASK to determine memory model.
38327 (atomic_store<mode>): Ditto from operands[2].
38328 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
38329
38330 2013-01-13 Jakub Jelinek <jakub@redhat.com>
38331
38332 PR fortran/55935
38333 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
38334 (fold_gimple_assign): Don't call unshare_expr here.
38335 (fold_ctor_reference): Call unshare_expr.
38336
38337 2013-01-13 Terry Guo <terry.guo@arm.com>
38338
38339 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
38340 * doc/fragments.texi: Document MULTILIB_REUSE.
38341 * gcc.c (multilib_reuse): New internal spec.
38342 (set_multilib_dir): Also search multilib from multilib_reuse.
38343 * genmultilib (tmpmultilib3): Refactor code.
38344 (tmpmultilib4): Ditto.
38345 (multilib_reuse): New multilib argument.
38346
38347 2013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
38348
38349 * Makefile.in: Update copyright.
38350
38351 2013-01-12 Tom de Vries <tom@codesourcery.com>
38352
38353 PR middle-end/55890
38354 * calls.c (expand_call): Check if arg_nr is valid.
38355
38356 2013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
38357
38358 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
38359 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
38360 documentation. Add missing '__' in front of
38361 __builtin_ia32_packssdw256.
38362
38363 2013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
38364
38365 PR target/55719
38366 * config/s390/s390.c (s390_preferred_reload_class): Do not return
38367 NO_REGS for larl operands.
38368 (s390_reload_larl_operand): Use s390_load_address instead of
38369 emit_move_insn.
38370
38371 2013-01-11 Richard Biener <rguenther@suse.de>
38372
38373 * tree-cfg.c (verify_node_sharing_1): Split out from ...
38374 (verify_node_sharing): ... here.
38375 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
38376
38377 2013-01-11 Eric Botcazou <ebotcazou@adacore.com>
38378
38379 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
38380 Substitute TREECHECKING.
38381 * configure: Regenerate.
38382 * Makefile.in (TREECHECKING): New.
38383
38384 2013-01-11 Richard Guenther <rguenther@suse.de>
38385
38386 PR tree-optimization/44061
38387 * tree-vrp.c (extract_range_basic): Compute zero as
38388 value-range for __builtin_constant_p of function parameters.
38389
38390 2013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
38391
38392 Update copyright years.
38393
38394 2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
38395
38396 PR rtl-optimization/55672
38397 * lra-eliminations.c (mark_not_eliminable): Permit addition with
38398 const to be eliminable.
38399
38400 2013-01-10 David Edelsohn <dje.gcc@gmail.com>
38401
38402 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
38403 * configure: Regenerate.
38404
38405 2013-01-10 Richard Biener <rguenther@suse.de>
38406
38407 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
38408
38409 2013-01-10 Richard Biener <rguenther@suse.de>
38410
38411 PR bootstrap/55792
38412 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
38413 locations for virtual PHI arguments.
38414 (rewrite_update_phi_arguments): Likewise.
38415
38416 2013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
38417
38418 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
38419 on to assembler.
38420
38421 2013-01-10 Jakub Jelinek <jakub@redhat.com>
38422
38423 PR tree-optimization/55921
38424 * tree-complex.c (expand_complex_asm): New function.
38425 (expand_complex_operations_1): Call it for GIMPLE_ASM.
38426
38427 2013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
38428
38429 PR target/55718
38430 * config/s390/s390.c (s390_symref_operand_p)
38431 (s390_loadrelative_operand_p): Merge the two functions.
38432 (s390_check_qrst_address, print_operand_address): Add parameters
38433 to s390_loadrelative_operand_p invokation.
38434 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
38435 (s390_reload_larl_operand, s390_secondary_reload): Use
38436 s390_loadrelative_operand_p instead of s390_symref_operand_p.
38437 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
38438
38439 2013-01-09 Mike Stump <mikestump@comcast.net>
38440
38441 * dse.c (record_store): Remove unnecessary assert.
38442
38443 2013-01-09 Jan Hubicka <jh@suse.cz>
38444
38445 PR tree-optimization/55569
38446 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
38447 * cfgloop.h (scale_loop_profile): Likewise.
38448
38449 2013-01-09 Jan Hubicka <jh@suse.cz>
38450
38451 PR lto/45375
38452 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
38453 functions.
38454 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
38455
38456 2013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
38457
38458 PR middle-end/55114
38459 * expr.h (maybe_emit_group_store): Declare.
38460 * expr.c (maybe_emit_group_store): New function.
38461 * builtins.c (expand_builtin_int_roundingfn): Call it.
38462 (expand_builtin_int_roundingfn_2): Likewise.
38463
38464 2013-01-09 Vladimir Makarov <vmakarov@redhat.com>
38465
38466 PR rtl-optimization/55829
38467 * lra-constraints.c (match_reload): Add code for absent output.
38468 (curr_insn_transform): Add code for reloads of matched inputs
38469 without output.
38470
38471 2013-01-09 Uros Bizjak <ubizjak@gmail.com>
38472
38473 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
38474 attribute of movddup insn to DF.
38475 (*vec_interleave_lowv2df): Ditto.
38476 (vec_dupv2df): Ditto.
38477
38478 2013-01-09 Jan Hubicka <jh@suse.cz>
38479
38480 PR tree-optimiation/55875
38481 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
38482 EVERY_ITERATION parameter.
38483 (number_of_iterations_exit): Check if exit is executed every iteration.
38484 (idx_infer_loop_bounds): Similarly here.
38485 (n_of_executions_at_most): Simplify
38486 to only test for cases where statement is dominated by the
38487 particular bound; handle correctly the "postdominance" test.
38488 (scev_probably_wraps_p): Use max loop iterations info
38489 as a global bound first.
38490
38491 2013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
38492 Nick Clifton <nickc@redhat.com>
38493
38494 * config/v850/v850.md (cbranchsf4): New pattern.
38495 (cstoresf4): New pattern.
38496 (cbranchdf4): New pattern.
38497 (cstoredf4): New pattern.
38498 (movsicc): Disallow floating point comparisons.
38499 (cmpsf_le_insn): Fix order of operators.
38500 (cmpsf_lt_insn): Likewise.
38501 (cmpsf_eq_insn): Likewise.
38502 (cmpdf_le_insn): Likewise.
38503 (cmpdf_lt_insn): Likewise.
38504 (cmpdf_eq_insn): Likewise.
38505 (cmpsf_ge_insn): Use LE comparison.
38506 (cmpdf_ge_insn): Likewise.
38507 (cmpsf_gt_insn): Use LT comparison.
38508 (cmpdf_gt_insn): Likewise.
38509 (cmpsf_ne_insn): Delete pattern.
38510 (cmpdf_ne_insn): Delete pattern.
38511 * config/v850/v850.c (v850_gen_float_compare): Use
38512 gen_cmpdf_eq_insn for NE comparison.
38513 (v850_float_z_comparison_operator)
38514 (v850_float_nz_comparison_operator): Move from here ...
38515 * config/v850/predicates.md: ... to here. Move GT and GE
38516 comparisons into v850_float_z_comparison_operator.
38517 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
38518 Delete prototype.
38519 (v850_float_nz_comparison_operator): Likewise.
38520
38521 2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
38522
38523 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
38524 with calls to gen_insvsi/gen_insvdi.
38525
38526 2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
38527
38528 * config/i386/i386.c (initial_ix86_tune_features): Set up
38529 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
38530
38531 2013-01-09 Steven Bosscher <steven@gcc.gnu.org>
38532 Jakub Jelinek <jakub@redhat.com>
38533
38534 PR tree-optimization/48189
38535 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
38536 If nitercst is 0, don't predict the exit edge.
38537
38538 2013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
38539
38540 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
38541 in asm_fprintf with reg_names.
38542 (aarch64_print_operand_address): Likewise.
38543 (aarch64_return_addr): Likewise.
38544 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
38545
38546 2013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
38547
38548 * config/pa/pa.h (VAL_U6_BITS_P): Define.
38549 (INT_U6_BITS): Likewise.
38550 * config/pa/predicates.md (uint6_operand): New predicate.
38551 (shift5_operand, shift6_operand): Likewise.
38552 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
38553 arith32_operand.
38554 (lshrdi3): Use shift6_operand.
38555 (shrpsi4, shrpdi4): New insn patterns.
38556 (extzv): Delete expander.
38557 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
38558 predicates in unamed zero extract patterns. Tighten common constraint.
38559 (extv): Delete expander.
38560 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
38561 predicates in unamed sign extract patterns. Tighten common constraint.
38562 (insv): Delete expander.
38563 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
38564 predicates in unamed insert patterns. Tighten common constraint.
38565 Change uint32_operand predicate to uint6_operand predicate in unamed
38566 DImode pattern to insert constant values of type 1...1xxxx.
38567
38568 2013-01-04 Jan Hubicka <jh@suse.cz>
38569
38570 PR tree-optimization/55823
38571 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
38572 issue.
38573
38574 2013-01-08 Jakub Jelinek <jakub@redhat.com>
38575 Uros Bizjak <ubizjak@gmail.com>
38576
38577 PR rtl-optimization/55845
38578 * df-problems.c (can_move_insns_across): Stop scanning at
38579 volatile_insn_p source instruction or give up if
38580 across_from .. across_to range contains any volatile_insn_p
38581 instructions.
38582
38583 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
38584
38585 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
38586 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
38587 Declare.
38588 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
38589 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
38590
38591 2013-01-08 Jakub Jelinek <jakub@redhat.com>
38592
38593 PR fortran/55341
38594 * asan.c (asan_clear_shadow): New function.
38595 (asan_emit_stack_protection): Use it.
38596
38597 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
38598
38599 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
38600 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
38601 with tab instead of space.
38602
38603 2013-01-08 Nick Clifton <nickc@redhat.com>
38604
38605 * config/rl78/rl78.c (rl78_expand_prologue): Always select
38606 register bank 0 at the start of an interrupt handler.
38607 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
38608 MDBH registers.
38609
38610 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
38611
38612 * config/aarch64/aarch64-simd.md
38613 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
38614 (aarch64_simd_bsl): Likewise.
38615 (aarch64_vcond_internal<mode>): Likewise.
38616 (vcond<mode><mode>): Likewise.
38617 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
38618 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
38619
38620 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
38621
38622 * config/aarch64/aarch64-builtins.c
38623 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
38624
38625 2013-01-08 Martin Jambor <mjambor@suse.cz>
38626
38627 PR debug/55579
38628 * tree-sra.c (analyze_access_subtree): Return true also after
38629 potentially creating a debug-only replacement.
38630
38631 2013-01-08 Jakub Jelinek <jakub@redhat.com>
38632
38633 PR middle-end/55890
38634 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
38635
38636 PR tree-optimization/54120
38637 * tree-vrp.c (range_fits_type_p): Don't allow
38638 src_precision < precision from signed vr to unsigned_p
38639 if vr->min or vr->max is negative.
38640 (simplify_float_conversion_using_ranges): Test can_float_p
38641 against CODE_FOR_nothing.
38642
38643 2013-01-08 Jakub Jelinek <jakub@redhat.com>
38644 Richard Biener <rguenther@suse.de>
38645
38646 PR middle-end/55851
38647 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
38648 types instead of just INTEGER_TYPE types.
38649
38650 2013-01-07 Mark Kettenis <kettenis@openbsd.org>
38651
38652 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
38653 TF_SIZE): Define.
38654
38655 2013-01-07 Steve Ellcey <sellcey@mips.com>
38656
38657 PR target/42661
38658 * config/mips/mips.opt: Change mad to mmad to match documentation.
38659
38660 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
38661
38662 PR target/55897
38663 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
38664 .progmemx.data now.
38665
38666 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
38667
38668 PR target/55897
38669 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
38670 (avr_addrspace_t): Add .section_name field.
38671 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
38672 array size.
38673 (avr_addrspace): Same. Initialize .section_name. Remove last
38674 NULL entry. Put __memx into .progmemx.data.
38675 (progmem_section_prefix): Remove.
38676 (avr_asm_init_sections): No need to initialize progmem_section.
38677 (avr_asm_named_section): Use avr_addrspace[].section_name to get
38678 section name prefix.
38679 (avr_asm_select_section): Ditto. And use get_unnamed_section to
38680 retrieve the progmem section.
38681 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
38682 boundary to run over avr_addrspace[].
38683 (avr_register_target_pragmas): Ditto.
38684
38685 2013-01-06 Jakub Jelinek <jakub@redhat.com>
38686
38687 * varasm.c (output_constant_def_contents): For asan_protect_global
38688 protected strings, adjust DECL_ALIGN if needed, before testing for
38689 anchored symbols.
38690 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
38691 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
38692 normal decls.
38693 (output_object_block): For asan protected decls, emit asan padding
38694 after their contents.
38695 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
38696 (asan_finish_file): Test it here instead.
38697
38698 2013-01-07 Nick Clifton <nickc@redhat.com>
38699 Matthias Klose <doko@debian.org>
38700 Doug Kwan <dougkwan@google.com>
38701 H.J. Lu <hongjiu.lu@intel.com>
38702
38703 PR driver/55470
38704 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
38705
38706 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
38707
38708 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
38709
38710 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
38711
38712 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
38713
38714 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
38715
38716 PR target/54461
38717 * doc/install.texi (Cross-Compiler-Specific Options): Document
38718 --with-avrlibc.
38719
38720 2013-01-07 Tejas Belagod <tejas.belagod@arm.com>
38721
38722 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
38723 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
38724 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
38725 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
38726 vqmovun_high_s64): Fix source operand number and update copyright.
38727
38728 2013-01-07 Richard Biener <rguenther@suse.de>
38729
38730 PR middle-end/55890
38731 * gimple.h (gimple_call_builtin_p): New overload.
38732 * gimple.c (validate_call): New function.
38733 (gimple_call_builtin_p): Likewise.
38734 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
38735 Use gimple_call_builtin_p.
38736 (find_func_clobbers): Likewise.
38737 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
38738 (strlen_optimize_stmt): Likewise.
38739
38740 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
38741
38742 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
38743 (vld1q_dup_*): Likewise.
38744 (vld1_*): Likewise.
38745 (vld1q_*): Likewise.
38746 (vld1_lane_*): Likewise.
38747 (vld1q_lane_*): Likewise.
38748
38749 2013-01-07 Richard Biener <rguenther@suse.de>
38750
38751 * lto-streamer.h (LTO_minor_version): Bump to 2.
38752
38753 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
38754
38755 * config/aarch64/aarch64-protos.h
38756 (aarch64_const_double_zero_rtx_p): Rename to...
38757 (aarch64_float_const_zero_rtx_p): ...this.
38758 (aarch64_float_const_representable_p): New.
38759 (aarch64_output_simd_mov_immediate): Likewise.
38760 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
38761 move immediate case.
38762 * config/aarch64/aarch64.c
38763 (aarch64_const_double_zero_rtx_p): Rename to...
38764 (aarch64_float_const_zero_rtx_p): ...this.
38765 (aarch64_print_operand): Allow printing of new constants.
38766 (aarch64_valid_floating_const): New.
38767 (aarch64_legitimate_constant_p): Check for valid floating-point
38768 constants.
38769 (aarch64_simd_valid_immediate): Likewise.
38770 (aarch64_vect_float_const_representable_p): New.
38771 (aarch64_float_const_representable_p): Likewise.
38772 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
38773 (aarch64_output_simd_mov_immediate): New.
38774 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
38775 (*movdf_aarch64): Likewise.
38776 * config/aarch64/constraints.md (Ufc): New.
38777 (Y): call aarch64_float_const_zero_rtx.
38778 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
38779
38780 2013-01-07 Richard Biener <rguenther@suse.de>
38781
38782 PR tree-optimization/55888
38783 PR tree-optimization/55862
38784 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
38785 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
38786 not if it is contained therein.
38787
38788 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
38789
38790 * config/avr/t-avr: Typo.
38791
38792 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
38793
38794 PR55243
38795 * config/avr/t-avr: Don't automatically rebuild
38796 $(srcdir)/config/avr/t-multilib
38797 $(srcdir)/config/avr/avr-tables.opt
38798 $(srcdir)/doc/avr-mmcu.texi
38799 (avr-mcus): New phony target to build them on request.
38800 (s-avr-mlib, s-avr-mmcu-texi): Remove.
38801 * avr/avr-mcus.def: Adjust comments.
38802
38803 2013-01-07 Uros Bizjak <ubizjak@gmail.com>
38804
38805 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
38806
38807 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
38808
38809 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
38810
38811 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
38812
38813 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
38814
38815 2013-01-05 David Edelsohn <dje.gcc@gmail.com>
38816
38817 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
38818 to generate profiling.
38819 * config/rs6000/aix64.h (LIB_SPEC): Same.
38820
38821 2013-01-04 Andrew Pinski <apinski@cavium.com>
38822
38823 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
38824 New function.
38825 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
38826
38827 2013-01-04 Uros Bizjak <ubizjak@gmail.com>
38828
38829 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
38830 unconditionally.
38831 (ix86_expand_move): Ditto.
38832 (ix86_zero_extend_to_Pmode): Ditto.
38833 (ix86_expand_call): Ditto.
38834 (ix86_expand_special_args_builtin): Ditto.
38835 (ix86_expand_builtin): Ditto.
38836
38837 2013-01-04 Richard Biener <rguenther@suse.de>
38838
38839 PR tree-optimization/55862
38840 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
38841 translating them through PHI nodes.
38842
38843 2013-01-04 Martin Jambor <mjambor@suse.cz>
38844
38845 PR tree-optimization/55755
38846 * tree-sra.c (sra_modify_assign): Do not check that an access has no
38847 children when trying to avoid producing a VIEW_CONVERT_EXPR.
38848
38849 2013-01-04 Marek Polacek <polacek@redhat.com>
38850
38851 PR middle-end/55859
38852 * opts.c (default_options_optimization): Clarify error message.
38853
38854 2013-01-04 Richard Biener <rguenther@suse.de>
38855
38856 PR middle-end/55863
38857 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
38858 reassociation.
38859
38860 2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
38861
38862 PR target/53789
38863 * config/pa/pa.md (movsi): Revert previous change.
38864 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
38865 references.
38866
38867 2013-01-03 Richard Henderson <rth@redhat.com>
38868
38869 * config/i386/i386.c (ix86_expand_move): Always assign to op1
38870 after eliminating TLS symbols.
38871
38872 2013-01-03 Marc Glisse <marc.glisse@inria.fr>
38873
38874 PR bootstrap/50167
38875 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
38876 * graphite-poly.c (debug_gmp_value): Likewise.
38877
38878 2013-01-03 Uros Bizjak <ubizjak@gmail.com>
38879
38880 PR target/55712
38881 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
38882 selected code model, define __code_mode_small__, __code_model_medium__,
38883 __code_model_large__, __code_model_32__ or __code_model_kernel__.
38884 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
38885 xchg temporary register with %k. Declare temporary register as
38886 early clobbered.
38887 [__x86_64__]: For medium and large code models, preserve %rbx register.
38888
38889 2013-01-03 Richard Biener <rguenther@suse.de>
38890
38891 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
38892 (dump_subscript): Adjust.
38893 (finalize_ddr_dependent): Do not dump redundant info.
38894 (analyze_siv_subscript): Adjust.
38895 (subscript_dependence_tester): Likewise.
38896 (compute_affine_dependence): Likewise.
38897
38898 2013-01-03 Richard Biener <rguenther@suse.de>
38899
38900 Revert
38901 2013-01-03 Richard Biener <rguenther@suse.de>
38902
38903 PR tree-optimization/55857
38904 * tree-vect-stmts.c (vectorizable_load): Do not setup
38905 re-alignment for invariant loads.
38906
38907 2013-01-02 Richard Biener <rguenther@suse.de>
38908
38909 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
38910 invariant load do not generate a vector load from the scalar location.
38911
38912 2013-01-03 Richard Biener <rguenther@suse.de>
38913
38914 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
38915 for not vectorizing.
38916 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
38917 not build INDIRECT_REFs, call get_name once only.
38918 (vect_create_data_ref_ptr): Likewise. Dump base object kind
38919 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
38920
38921 2013-01-03 Richard Biener <rguenther@suse.de>
38922
38923 PR tree-optimization/55857
38924 * tree-vect-stmts.c (vectorizable_load): Do not setup
38925 re-alignment for invariant loads.
38926
38927 2013-01-03 Richard Biener <rguenther@suse.de>
38928
38929 PR lto/55848
38930 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
38931 prefer a built-in decl.
38932
38933 2013-01-03 Jakub Jelinek <jakub@redhat.com>
38934
38935 * gcc.c (process_command): Update copyright notice dates.
38936 * gcov.c (print_version): Likewise.
38937 * gcov-dump.c (print_version): Likewise.
38938
38939 PR rtl-optimization/55838
38940 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
38941 iv0.step, iv1.step and step.
38942
38943 2013-01-03 Jakub Jelinek <jakub@redhat.com>
38944 Marc Glisse <marc.glisse@inria.fr>
38945
38946 PR tree-optimization/55832
38947 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
38948 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
38949 integer_{one,zero}_node.
38950
38951 2013-01-03 Jakub Jelinek <jakub@redhat.com>
38952
38953 PR debug/54402
38954 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
38955 * var-tracking.c (reverse_op): Don't add reverse ops to
38956 VALUEs that have already
38957 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
38958
38959 2013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
38960
38961 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
38962
38963 2013-01-02 Teresa Johnson <tejohnson@google.com>
38964
38965 * dumpfile.c (dump_loc): Print filename with location.
38966 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
38967 new location_t parameter to emit complete unroll message with
38968 new dump framework.
38969 (canonicalize_loop_induction_variables): Compute loops location
38970 and pass to try_unroll_loop_completely.
38971 * loop-unroll.c (report_unroll_peel): New function.
38972 (peel_loops_completely): Use new dump format with location
38973 for main dumpfile message, and invoke report_unroll_peel on success.
38974 (decide_unrolling_and_peeling): Ditto.
38975 (decide_peel_once_rolling): Remove old dumpfile message subsumed
38976 by report_unroll_peel.
38977 (decide_peel_completely): Ditto.
38978 (decide_unroll_constant_iterations): Ditto.
38979 (decide_unroll_runtime_iterations): Ditto.
38980 (decide_peel_simple): Ditto.
38981 (decide_unroll_stupid): Ditto.
38982 * cfgloop.c (get_loop_location): New function.
38983 * cfgloop.h (get_loop_location): Declare.
38984
38985 2013-01-02 Sriraman Tallam <tmsriram@google.com>
38986
38987 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
38988 NULL.
38989
38990 2013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
38991
38992 PR middle-end/55198
38993 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
38994 BLKmode objects when EXPAND_MEMORY is specified.
38995
38996 2013-01-02 Sriraman Tallam <tmsriram@google.com>
38997
38998 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
38999 in loop predicate.
39000 (fold_builtin_cpu): Do not share cpu model decls across statements.
39001
39002 2013-01-02 Jason Merrill <jason@redhat.com>
39003
39004 PR c++/55804
39005 * tree.c (build_array_type_1): Revert earlier change.
39006
39007 2013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
39008
39009 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
39010 "cortex-a57".
39011 * config/aarch64/aarch64-tune.md: Re-generate.
39012
39013 2013-01-02 Richard Biener <rguenther@suse.de>
39014
39015 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
39016 invariant load do not generate a vector load from the scalar location.
39017
39018 2013-01-02 Richard Biener <rguenther@suse.de>
39019
39020 PR bootstrap/55784
39021 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
39022 * configure: Regenerate.
39023
39024 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
39025
39026 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
39027 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
39028 (expand_builtin_int_roundingfn_2): Keep the original target around
39029 for the fallback case.
39030
39031 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
39032
39033 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
39034 to be clear for sign changes.
39035
39036 2013-01-01 Jan Hubicka <jh@suse.cz>
39037
39038 * ipa-inline-analysis.c: Fix formatting.
39039
39040 2013-01-01 Jakub Jelinek <jakub@redhat.com>
39041
39042 PR tree-optimization/55831
39043 * tree-vect-loop.c (get_initial_def_for_induction): Use
39044 gsi_after_labels instead of gsi_start_bb.
39045 \f
39046 Copyright (C) 2013 Free Software Foundation, Inc.
39047
39048 Copying and distribution of this file, with or without modification,
39049 are permitted in any medium without royalty provided the copyright
39050 notice and this notice are preserved.