Fix typo in PR number (59613) of recent commit.
[gcc.git] / gcc / ChangeLog
1 2013-12-31 Chung-Lin Tang <cltang@codesourcery.com>
2 Sandra Loosemore <sandra@codesourcery.com>
3 Based on patches from Altera Corporation
4
5 * config.gcc (nios2-*-*): Add nios2 config targets.
6 * configure.ac (TLS_SECTION_ASM_FLAG): Add nios2 case.
7 ("$cpu_type"): Add nios2 as new cpu type.
8 * configure: Regenerate.
9 * config/nios2/nios2.c: New file.
10 * config/nios2/nios2.h: New file.
11 * config/nios2/nios2-opts.h: New file.
12 * config/nios2/nios2-protos.h: New file.
13 * config/nios2/elf.h: New file.
14 * config/nios2/elf.opt: New file.
15 * config/nios2/linux.h: New file.
16 * config/nios2/nios2.opt: New file.
17 * config/nios2/nios2.md: New file.
18 * config/nios2/predicates.md: New file.
19 * config/nios2/constraints.md: New file.
20 * config/nios2/t-nios2: New file.
21 * common/config/nios2/nios2-common.c: New file.
22 * doc/invoke.texi (Nios II options): Document Nios II specific
23 options.
24 * doc/md.texi (Nios II family): Document Nios II specific
25 constraints.
26 * doc/extend.texi (Function Specific Option Pragmas): Document
27 Nios II supported target pragma functionality.
28
29 2013-12-30 Jakub Jelinek <jakub@redhat.com>
30
31 PR tree-optimization/59591
32 * tree-vect-stmts.c (vectorizable_mask_load_store): Fix up handling
33 of modifier = NARROW masked gathers.
34 (permute_vec_elements): Use gimple_get_lhs instead of
35 gimple_assign_lhs.
36
37 2013-12-30 Nick Clifton <nickc@redhat.com>
38 Peter Bigot <bigotp@acm.org>
39
40 PR target/59613
41 * stor-layout.c (get_mode_bounds): Use GET_MODE_PRECISION instead
42 of GET_MODE_BITSIZE.
43
44 2013-12-30 Nick Clifton <nickc@redhat.com>
45
46 * config/msp430/msp430.c (msp430_print_operand): Rename %B to %b
47 and %A to %Q. Add %A, %B, %C and %D as selectors for 16-bit parts
48 of a 64-bit operand.
49 * config/msp430/msp430.md: Replace uses of %B with %b and uses of
50 %A with %q.
51
52 2013-12-30 Felix Yang <felix.yang@huawei.com>
53
54 * ira-costs.c (cost_classes_hasher::equal): Check equality of
55 memcmp and 0 if no difference exists for HV1 and HV2.
56
57 2013-12-30 Jakub Jelinek <jakub@redhat.com>
58
59 PR target/59501
60 * config/i386/i386.c (ix86_save_reg): Don't return true for drap_reg
61 if !crtl->stack_realign_needed.
62 (ix86_finalize_stack_realign_flags): If drap_reg isn't live on entry
63 and stack_realign_needed will be false, clear drap_reg and need_drap.
64 Optimize leaf functions that don't need stack frame even if
65 crtl->need_drap.
66
67 2013-12-30 H.J. Lu <hongjiu.lu@intel.com>
68
69 PR target/59605
70 * config/i386/i386.c (ix86_expand_set_or_movmem): Create
71 jump_around_label only if it doesn't exist.
72
73 2013-12-28 Eric Botcazou <ebotcazou@adacore.com>
74
75 * doc/invoke.texi (output file options): Document -fada-spec-parent.
76
77 2013-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
78 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
79 Sergey Lega <sergey.s.lega@intel.com>
80 Anna Tikhonova <anna.tikhonova@intel.com>
81 Ilya Tocar <ilya.tocar@intel.com>
82 Andrey Turetskiy <andrey.turetskiy@intel.com>
83 Ilya Verbin <ilya.verbin@intel.com>
84 Kirill Yukhin <kirill.yukhin@intel.com>
85 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
86
87 * config/i386/sse.md (avx512f_fixupimm<mode>_maskz): Extend to support
88 EVEX's RC.
89 (avx512f_sfixupimm<mode>_maskz): Ditto.
90 * config/i386/subst.md (round_saeonly_expand_name): New.
91 (round_saeonly_expand_nimm_predicate): Ditto.
92 (round_saeonly_expand_operand6): Ditto.
93 (round_saeonly_expand): Ditto.
94
95 2013-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
96 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
97 Sergey Lega <sergey.s.lega@intel.com>
98 Anna Tikhonova <anna.tikhonova@intel.com>
99 Ilya Tocar <ilya.tocar@intel.com>
100 Andrey Turetskiy <andrey.turetskiy@intel.com>
101 Ilya Verbin <ilya.verbin@intel.com>
102 Kirill Yukhin <kirill.yukhin@intel.com>
103 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
104
105 * config/i386/sse.md (avx512f_fmadd_<mode>_maskz): Extend to support
106 EVEX's RC.
107 (avx512f_fmaddsub_<mode>_maskz): Ditto.
108 * config/i386/subst.md (round_expand_name): New.
109 (round_expand_nimm_predicate): Ditto.
110 (round_expand_operand): Ditto.
111 (round_expand): Ditto.
112
113 2013-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
114 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
115 Sergey Lega <sergey.s.lega@intel.com>
116 Anna Tikhonova <anna.tikhonova@intel.com>
117 Ilya Tocar <ilya.tocar@intel.com>
118 Andrey Turetskiy <andrey.turetskiy@intel.com>
119 Ilya Verbin <ilya.verbin@intel.com>
120 Kirill Yukhin <kirill.yukhin@intel.com>
121 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
122
123 * config/i386/sse.md (<code><mode>3<mask_name>): Extend to support
124 EVEX's SAE mode.
125 (*<code><mode>3_finite<mask_name>): Ditto.
126 (*<code><mode>3<mask_name>): Ditto.
127 (avx512f_cmp<mode>3<mask_scalar_merge_name>): Ditto.
128 (avx512f_vmcmp<mode>3): Ditto.
129 (avx512f_vmcmp<mode>3_mask): Ditto.
130 (<sse>_comi): Ditto.
131 (<sse>_ucomi): Ditto.
132 (sse_cvttss2si): Ditto.
133 (sse_cvttss2siq): Ditto.
134 (<fixsuffix>fix_truncv16sfv16si2<mask_name>): Ditto.
135 (avx512f_vcvttss2usi): Ditto.
136 (avx512f_vcvttss2usiq): Ditto.
137 (avx512f_vcvttsd2usi): Ditto.
138 (avx512f_vcvttsd2usiq): Ditto.
139 (sse2_cvttsd2si): Ditto.
140 (sse2_cvttsd2siq): Ditto.
141 (<fixsuffix>fix_truncv8dfv8si2<mask_name>): Ditto.
142 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix><mask_name>): Ditto.
143 (avx512f_getexp<mode><mask_name>): Ditto.
144 (avx512f_fixupimm<mode><sd_maskz_name>): Ditto.
145 (avx512f_fixupimm<mode>_mask): Ditto.
146 (avx512f_sfixupimm<mode><sd_maskz_name>): Ditto.
147 (avx512f_sfixupimm<mode>_mask): Ditto.
148 (avx512f_rndscale<mode><mask_name>): Ditto.
149 (<mask_codefor>avx512f_vcvtph2ps512<mask_name>): Ditto.
150 (avx512f_getmant<mode><mask_name>): Ditto.
151 * config/i386/subst.md (round_saeonly_name): New.
152 (round_saeonly_mask_operand2): Ditto.
153 (round_saeonly_mask_operand3): Ditto.
154 (round_saeonly_mask_scalar_operand3): Ditto.
155 (round_saeonly_mask_scalar_operand4): Ditto.
156 (round_saeonly_mask_scalar_merge_operand4): Ditto.
157 (round_saeonly_sd_mask_operand5): Ditto.
158 (round_saeonly_op2): Ditto.
159 (round_saeonly_op4): Ditto.
160 (round_saeonly_op5): Ditto.
161 (round_saeonly_op6): Ditto.
162 (round_saeonly_mask_op2): Ditto.
163 (round_saeonly_mask_op3): Ditto.
164 (round_saeonly_mask_scalar_op3): Ditto.
165 (round_saeonly_mask_scalar_op4): Ditto.
166 (round_saeonly_mask_scalar_merge_op4): Ditto.
167 (round_saeonly_sd_mask_op5): Ditto.
168 (round_saeonly_constraint): Ditto.
169 (round_saeonly_constraint2): Ditto.
170 (round_saeonly_nimm_predicate): Ditto.
171 (round_saeonly_mode512bit_condition): Ditto.
172 (round_saeonly): Ditto.
173
174 2013-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
175 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
176 Sergey Lega <sergey.s.lega@intel.com>
177 Anna Tikhonova <anna.tikhonova@intel.com>
178 Ilya Tocar <ilya.tocar@intel.com>
179 Andrey Turetskiy <andrey.turetskiy@intel.com>
180 Ilya Verbin <ilya.verbin@intel.com>
181 Kirill Yukhin <kirill.yukhin@intel.com>
182 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
183
184 * config/i386/i386.c (ix86_print_operand): Print EVEX's RC modifiers.
185 * config/i386/i386.md (define_constants): Define EVEx's RC constants.
186 * gcc/config/i386/sse.md (<plusminus_insn><mode>3<mask_name>): Extend
187 to support EVEX's rounding control.
188 (*<plusminus_insn><mode>3<mask_name>): Ditto.
189 (mul<mode>3<mask_name>): Ditto.
190 (*mul<mode>3<mask_name>): Ditto.
191 (<sse>_div<mode>3<mask_name>): Ditto.
192 (<sse>_sqrt<mode>2<mask_name>): Ditto.
193 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>): Ditto.
194 (avx512f_fmadd_<mode>_mask): Ditto.
195 (avx512f_fmadd_<mode>_mask3): Ditto.
196 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>): Ditto.
197 (avx512f_fmsub_<mode>_mask): Ditto.
198 (avx512f_fmsub_<mode>_mask3): Ditto.
199 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>): Ditto.
200 (avx512f_fnmadd_<mode>_mask): Ditto.
201 (avx512f_fnmadd_<mode>_mask3): Ditto.
202 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>): Ditto.
203 (avx512f_fnmsub_<mode>_mask): Ditto.
204 (avx512f_fnmsub_<mode>_mask3): Ditto.
205 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name>): Ditto.
206 (avx512f_fmaddsub_<mode>_mask): Ditto.
207 (avx512f_fmaddsub_<mode>_mask3): Ditto.
208 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name>): Ditto.
209 (avx512f_fmsubadd_<mode>_mask): Ditto.
210 (avx512f_fmsubadd_<mode>_mask3): Ditto.
211 (fmai_vmfmadd_<mode>): Ditto.
212 (*fmai_fmadd_<mode>): Ditto.
213 (*fmai_fmsub_<mode>): Ditto.
214 (*fmai_fnmadd_<mode>): Ditto.
215 (*fmai_fnmsub_<mode>): Ditto.
216 (sse_cvtsi2ss): Ditto.
217 (sse_cvtsi2ssq): Ditto.
218 (sse_cvtss2si): Ditto.
219 (sse_cvtss2siq): Ditto.
220 (cvtusi2<ssescalarmodesuffix>32): Ditto.
221 (cvtusi2<ssescalarmodesuffix>64): Ditto.
222 (float<sseintvecmodelower><mode>2<mask_name>): Ditto.
223 (ufloatv16siv16sf2<mask_name>): Ditto.
224 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name>): Ditto.
225 (<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name>): Ditto.
226 (sse2_cvtsi2sdq): Ditto.
227 (avx512f_vcvtss2usi): Ditto.
228 (avx512f_vcvtss2usiq): Ditto.
229 (avx512f_vcvtsd2usi): Ditto.
230 (avx512f_vcvtsd2usiq): Ditto.
231 (sse2_cvtsd2si): Ditto.
232 (sse2_cvtsd2siq): Ditto.
233 (<mask_codefor>avx512f_cvtpd2dq512<mask_name>): Ditto.
234 (avx512f_ufix_notruncv8dfv8si<mask_name>): Ditto.
235 (<mask_codefor>avx512f_cvtpd2ps512<mask_name>): Ditto.
236 (avx512f_scalef<mode><mask_name>): Ditto.
237 (<code><mode>3<mask_name>): Ditto.
238 (*avx2_<code><mode>3<mask_name>): Ditto.
239 (avx512er_exp2<mode><mask_name): Ditto.
240 (<mask_codefor>avx512er_rcp28<mode><mask_name>): Ditto.
241 (<mask_codefor>avx512er_rsqrt28<mode><mask_name>): Ditto.
242 (avx512f_fmadd_<mode>_maskz): New.
243 * config/i386/subst.md (SUBST_A): New.
244 (round_name): Ditto.
245 (round_mask_operand2): Ditto.
246 (round_mask_operand3): Ditto.
247 (round_mask_scalar_operand3): Ditto.
248 (round_sd_mask_operand4): Ditto.
249 (round_op2): Ditto.
250 (round_op3): Ditto.
251 (round_op4): Ditto.
252 (round_op5): Ditto.
253 (round_op6): Ditto.
254 (round_mask_op2): Ditto.
255 (round_mask_op3): Ditto.
256 (round_mask_scalar_op3): Ditto.
257 (round_sd_mask_op4): Ditto.
258 (round_constraint): Ditto.
259 (round_constraint2): Ditto.
260 (round_constraint3): Ditto.
261 (round_nimm_predicate): Ditto.
262 (round_mode512bit_condition): Ditto.
263 (round_modev4sf_condition): Ditto.
264 (round_codefor): Ditto.
265 (round_opnum): Ditto.
266 (round): Ditto.
267
268 2013-12-26 H.J. Lu <hongjiu.lu@intel.com>
269
270 PR target/59588
271 * config/i386/i386.c (ix86_option_override_internal): Don't
272 check generic tuning. Don't change i686 tuning.
273
274 2013-12-26 H.J. Lu <hongjiu.lu@intel.com>
275
276 PR target/59601
277 * config/i386/i386.c (get_builtin_code_for_version): Map
278 PROCESSOR_NEHALEM to "corei7".
279
280 2013-12-26 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
281
282 * config/i386/i386.c (get_builtin_code_for_version): Rename AMD
283 CPU names M_AMD_BOBCAT to M_AMD_BTVER1 and M_AMD_JAGUAR
284 to M_AMD_BTVER2.
285 (processor_model): Likewise.
286 (arch_names_table): Likewise.
287
288 2013-12-26 Uros Bizjak <ubizjak@gmail.com>
289
290 * config/i386/driver-i386.c (decode_caches_intel): Add missing entries.
291
292 2013-12-25 H.J. Lu <hongjiu.lu@intel.com>
293
294 PR target/59587
295 * config/i386/i386.c (struct ptt): Add a field for processor name.
296 (processor_target_table): Sync with processor_type.
297 Add processor names.
298 (cpu_names): Removed.
299 (ix86_option_override_internal): Default x_ix86_tune_string
300 to processor_target_table[TARGET_CPU_DEFAULT].name.
301 (ix86_function_specific_print): Assert arch and tune < PROCESSOR_max.
302 Use processor_target_table to print arch and tune names.
303 * config/i386/i386.h (TARGET_CPU_DEFAULT): Default to
304 PROCESSOR_GENERIC.
305 (target_cpu_default): Removed.
306 (processor_type): Reordered.
307
308 2013-12-25 Allan Sandfeld Jensen <sandfeld@kde.org>
309 H.J. Lu <hongjiu.lu@intel.com>
310
311 PR target/59422
312 * config/i386/i386.c (get_builtin_code_for_version): Handle
313 PROCESSOR_HASWELL, PROCESSOR_SILVERMONT, PROCESSOR_BTVER1,
314 PROCESSOR_BTVER2, PROCESSOR_BDVER3 and PROCESSOR_BDVER4.
315 Change priority of PROCESSOR_BDVER1 to P_PROC_XOP.
316 (fold_builtin_cpu): Add "ivybridge", "haswell", "bonnell",
317 "silvermont", "bobcat" and "jaguar" CPU names. Add "sse4a",
318 "fma4", "xop" and "fma" ISA names.
319
320 2013-12-24 H.J. Lu <hongjiu.lu@intel.com>
321
322 * config/i386/i386.c (ix86_option_override_internal): Check
323 opts->x_ix86_arch_string instead of ix86_arch_string.
324
325 2013-12-24 Renlin Li <Renlin.Li@arm.com>
326
327 * config/arm/arm-protos.h (vfp_const_double_for_bits): Declare.
328 * config/arm/constraints.md (Dp): Define new constraint.
329 * config/arm/predicates.md (const_double_vcvt_power_of_two): Define
330 new predicate.
331 * config/arm/arm.c (arm_print_operand): Add print for new fucntion.
332 (vfp3_const_double_for_bits): New function.
333 * config/arm/vfp.md (combine_vcvtf2i): Define new instruction.
334
335 2013-12-23 Hans-Peter Nilsson <hp@axis.com>
336
337 PR target/59203
338 * config/cris/cris.c (cris_pic_symbol_type_of): Fix typo,
339 checking t1 twice instead of t1 and t2 respectively.
340
341 PR middle-end/59584
342 * config/cris/predicates.md (cris_nonsp_register_operand):
343 New define_predicate.
344 * config/cris/cris.md: Replace register_operand with
345 cris_nonsp_register_operand for destinations in all
346 define_splits where a register is set more than once.
347
348 2013-12-23 Jason Merrill <jason@redhat.com>
349
350 * gdbinit.in (input_line, input_filename): Define.
351
352 * cgraph.h (struct cgraph_node): Add calls_comdat_local.
353 (symtab_comdat_local_p, symtab_in_same_comdat_p): New.
354 * cif-code.def: Add USES_COMDAT_LOCAL.
355 * symtab.c (verify_symtab_base): Make sure we don't refer to a
356 comdat-local symbol from outside its comdat.
357 * cgraph.c (verify_cgraph_node): Likewise.
358 * cgraphunit.c (mark_functions_to_output): Don't mark comdat-locals.
359 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
360 (function_and_variable_visibility): Handle comdat-local fns.
361 * ipa-cp.c (determine_versionability): Don't clone comdat-locals.
362 * ipa-inline-analysis.c (compute_inline_parameters): Update
363 calls_comdat_local.
364 * ipa-inline-transform.c (inline_call): Likewise.
365 (save_inline_function_body): Don't clear DECL_COMDAT_GROUP.
366 * ipa-inline.c (can_inline_edge_p): Check calls_comdat_local.
367 * lto-cgraph.c (input_overwrite_node): Read calls_comdat_local.
368 (lto_output_node): Write it.
369 * symtab.c (symtab_dissolve_same_comdat_group_list): Clear
370 DECL_COMDAT_GROUP for comdat-locals.
371
372 2013-12-23 H.J. Lu <hongjiu.lu@intel.com>
373
374 * config/i386/i386.c (processor_target_table): Move Bonnell and
375 Silvermont entries before generic.
376
377 2013-12-23 Bingfeng Mei <bmei@broadcom.com>
378
379 PR middle-end/59569
380 * tree-vect-stmts.c (vectorizable_store): Skip permutation for
381 consant/external operand, and add a few missing \n.
382
383 2013-12-23 H.J. Lu <hongjiu.lu@intel.com>
384 Tocar Ilya <ilya.tocar@intel.com>
385
386 * config/i386/core2.md: Replace corei7 with nehalem.
387
388 * config/i386/driver-i386.c (host_detect_local_cpu): Use nehalem,
389 westmere, sandybridge, ivybridge, haswell, bonnell, silvermont
390 for cpu names.
391
392 * config/i386/i386-c.c (ix86_target_macros_internal): Replace
393 PROCESSOR_COREI7, PROCESSOR_COREI7_AVX, PROCESSOR_ATOM,
394 PROCESSOR_SLM with PROCESSOR_NEHALEM, PROCESSOR_SANDYBRIDGE,
395 PROCESSOR_BONNELL, PROCESSOR_SILVERMONT. Define
396 __nehalem/__nehalem__, __sandybridge/__sandybridge__,
397 __haswell/__haswell__, __tune_nehalem__, __tune_sandybridge__,
398 __tune_haswell__, __bonnell/__bonnell__,
399 __silvermont/__silvermont__, __tune_bonnell__,
400 __tune_silvermont__.
401
402 * config/i386/i386.c (m_COREI7): Renamed to ...
403 (m_NEHALEM): This.
404 (m_COREI7_AVX): Renamed to ...
405 (m_SANDYBRIDGE): This.
406 (m_ATOM): Renamed to ...
407 (m_BONNELL): This.
408 (m_SLM): Renamed to ...
409 (m_SILVERMONT): This.
410 (m_CORE_ALL): Updated.
411 (cpu_names): Add "nehalem", "westmere", "sandybridge",
412 "ivybridge", "haswell", "broadwell", "bonnell", "silvermont".
413 (PTA_CORE2): New.
414 (PTA_NEHALEM): Likewise.
415 (PTA_WESTMERE): Likewise.
416 (PTA_SANDYBRIDGE): Likewise.
417 (PTA_IVYBRIDGE): Likewise.
418 (PTA_HASWELL): Likewise.
419 (PTA_BROADWELL): Likewise.
420 (PTA_BONNELL): Likewise.
421 (PTA_SILVERMONT): Likewise.
422 (ix86_option_override_internal): Use new PTA_XXX. Add nehalem,
423 westmere, sandybridge, ivybridge, haswell, bonnell, silvermont.
424 (ix86_lea_outperforms): Updated.
425 (ix86_issue_rate): Likewise.
426 (ix86_adjust_cost): Likewise.
427 (ia32_multipass_dfa_lookahead): Likewise.
428 (do_reorder_for_imul): Likewise.
429 (swap_top_of_ready_list): Likewise.
430 (ix86_sched_reorder): Likewise.
431 (ix86_sched_init_global): Likewise.
432 (get_builtin_code_for_version): Likewise.
433 (processor_model): Replace M_INTEL_ATOM, M_INTEL_SLM with
434 M_INTEL_BONNELL, M_INTEL_SILVERMONT.
435 (arch_names_table): Updated.
436
437 * config/i386/i386.h (TARGET_COREI7): Removed.
438 (TARGET_COREI7_AVX): Likewise.
439 (TARGET_ATOM): Likewise.
440 (TARGET_SLM): Likewise.
441 (TARGET_NEHALEM): New.
442 (TARGET_SANDYBRIDGE): Likewise.
443 (TARGET_BONNELL): Likewise.
444 (TARGET_SILVERMONT): Likewise.
445 (target_cpu_default): Add TARGET_CPU_DEFAULT_core_avx2,
446 TARGET_CPU_DEFAULT_nehalem, TARGET_CPU_DEFAULT_westmere,
447 TARGET_CPU_DEFAULT_sandybridge, TARGET_CPU_DEFAULT_ivybridge,
448 TARGET_CPU_DEFAULT_broadwell, TARGET_CPU_DEFAULT_bonnell,
449 TARGET_CPU_DEFAULT_silvermont. Move TARGET_CPU_DEFAULT_haswell
450 before TARGET_CPU_DEFAULT_broadwell.
451 (processor_type): Replace PROCESSOR_COREI7, PROCESSOR_COREI7_AVX,
452 PROCESSOR_ATOM, PROCESSOR_SLM with PROCESSOR_NEHALEM,
453 PROCESSOR_SANDYBRIDGE, PROCESSOR_BONNELL, PROCESSOR_SILVERMONT.
454
455 * config/i386/i386.md (cpu): Replace corei7 with nehalem.
456
457 * config/i386/x86-tune.def: Updated.
458
459 * doc/invoke.texi: Replace corei7, corei7-avx, core-avx-i,
460 core-avx2, atom, slm with nehalem, sandybridge, ivybridge,
461 haswell, bonnel, silvermont. Add westmere.
462
463 2013-12-23 Andrey Belevantsev <abel@ispras.ru>
464
465 PR rtl-optimization/57422
466 * sel-sched.c (fill_vec_av_set): Assert that the fence insn
467 can always be scheduled in its current form.
468
469 2013-12-23 Andrey Belevantsev <abel@ispras.ru>
470
471 PR rtl-optimization/57422
472 * sel-sched.c (mark_unavailable_hard_regs): Fix typo when calling
473 add_to_hard_reg_set.
474
475 2013-12-20 Sharad Singhai <singhai@google.com>
476
477 * Makefile.in: Add optinfo.texi.
478 * doc/invoke.texi: Fix typo.
479 * doc/optinfo.texi: New documentation for optimization info.
480 * doc/passes.texi: Add new node.
481
482 2013-12-20 Trevor saunders <tsaunders@mozilla.com>
483
484 * vec.h (stack_vec): Convert to a templaate specialization of
485 auto_vec.
486 * config/i386/i386.c, df-scan.c, function.c, genautomata.c,
487 gimplify.c, graphite-clast-to-gimple.c, graphite-dependences.c,
488 graphite-scop-detection.c, graphite-sese-to-poly.c, hw-doloop.c,
489 trans-mem.c, tree-call-cdce.c, tree-data-ref.c, tree-dfa.c,
490 tree-if-conv.c, tree-inline.c, tree-loop-distribution.c,
491 tree-parloops.c, tree-predcom.c, tree-ssa-alias.c,
492 tree-ssa-loop-ivcanon.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
493 tree-ssa-uncprop.c, tree-vect-loop.c, tree-vect-patterns.c,
494 tree-vect-slp.c, tree-vect-stmts.c, var-tracking.c: Adjust.
495
496 2013-12-20 Eric Botcazou <ebotcazou@adacore.com>
497
498 * config/arm/arm.c (arm_expand_prologue): In a nested APCS frame with
499 arguments to push onto the stack and no varargs, save ip into the last
500 stack slot if r3 isn't available on entry.
501
502 2013-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
503
504 * config/arm/neon.ml (crypto_intrinsics): Add vceq_64 and vtst_p64.
505 * config/arm/arm_neon.h: Regenerate.
506 * config/arm/neon-docgen.ml: Add vceq_p64 and vtst_p64.
507 * doc/arm-neon-intrinsics.texi: Regenerate.
508
509 2013-12-20 Vladimir Makarov <vmakarov@redhat.com>
510
511 * config/arm/arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Return
512 NO_REGS for LRA.
513
514 2013-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
515
516 * config/arm/arm_acle.h: Add underscores before variables.
517
518 2013-12-20 Bingfeng Mei <bmei@broadcom.com>
519
520 PR tree-optimization/59544
521 * tree-vect-stmts.c (perm_mask_for_reverse): Move before
522 vectorizable_store.
523 (vectorizable_store): Handle negative step.
524
525 2013-12-20 Tocar Ilya <ilya.tocar@intel.com>
526
527 * config.gcc: Support march=broadwell.
528 * config/i386/driver-i386.c (host_detect_local_cpu): Detect Broadwell.
529 * config/i386/i386.c (ix86_option_override_internal): Add broadwell.
530 * doc/invoke.texi: Document march=broadwell.
531
532 2013-12-20 Jakub Jelinek <jakub@redhat.com>
533
534 * ubsan.c: Include tree-ssanames.h, asan.h and gimplify-me.h.
535 (ubsan_type_descriptor): Handle BOOLEAN_TYPE and ENUMERAL_TYPE
536 like INTEGER_TYPE.
537 (instrument_bool_enum_load): New function.
538 (ubsan_pass): Call it.
539 (gate_ubsan): Also enable for SANITIZE_BOOL or SANITIZE_ENUM.
540 * asan.c (create_cond_insert_point): No longer static.
541 * asan.h (create_cond_insert_point): Declare.
542 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE): New
543 built-in.
544 * opts.c (common_handle_option): Handle -fsanitize=bool and
545 -fsanitize=enum.
546 * builtins.c (fold_builtin_memory_op): When sanitizing bool
547 and enum loads, don't use enum or bool types for memcpy folding.
548 * flag-types.h (SANITIZE_BOOL, SANITIZE_ENUM): New.
549 (SANITIZE_UNDEFINED): Or these in.
550
551 2013-12-20 Chung-Ju Wu <jasonwucj@gmail.com>
552
553 * config/nds32/nds32.h (NDS32_MODE_TYPE_ALIGN): New macro.
554 (NDS32_AVAILABLE_REGNUM_FOR_ARG): Use more accurate alignment checking
555 to determine available register number.
556 * config/nds32/nds32.c (nds32_needs_double_word_align): Use new
557 macro NDS32_MODE_TYPE_ALIGN.
558 (nds32_function_arg): Refine code layout.
559
560 2013-12-19 Jeff Law <law@redhat.com>
561
562 * doc/invoke.texi: (dump-rtl-ree): Fix typo and clarify ree
563 handles both zero and sign extension.
564
565 2013-12-19 Teresa Johnson <tejohnson@google.com>
566
567 PR gcov-profile/59542
568 * bb-reorder.c (duplicate_computed_gotos): Invoke fixup_partitions
569 if we have made any changes.
570
571 2013-12-19 Jakub Jelinek <jakub@redhat.com>
572
573 PR other/59545
574 * genattrtab.c (struct attr_hash): Change hashcode type to unsigned.
575 (attr_hash_add_rtx, attr_hash_add_string): Change hashcode parameter
576 to unsigned.
577 (attr_rtx_1): Change hashcode variable to unsigned.
578 (attr_string): Likewise. Perform first multiplication in
579 unsigned type.
580 * ifcvt.c (noce_try_store_flag_constants): Avoid signed integer
581 overflows.
582 * double-int.c (neg_double): Likewise.
583 * stor-layout.c (set_min_and_max_values_for_integral_type): Likewise.
584 * combine.c (force_to_mode): Likewise.
585 * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn,
586 reload_cse_move2add, move2add_note_store): Likewise.
587 * simplify-rtx.c (simplify_const_unary_operation,
588 simplify_const_binary_operation): Likewise.
589 * ipa-split.c (find_split_points): Initialize first.can_split
590 and first.non_ssa_vars.
591 * gengtype-state.c (read_state_files_list): Fix up check.
592 * genautomata.c (reserv_sets_hash_value): Use portable rotation idiom.
593
594 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
595
596 * config/arm/neon-docgen.ml: Add crypto intrinsics documentation.
597 * doc/arm-neon-intrinsics.texi: Regenerate.
598
599 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
600
601 * config/arm/neon-testgen.ml (effective_target): Handle "CRYPTO".
602
603 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
604
605 * config/arm/arm.c (enum arm_builtins): Add crypto builtins.
606 (arm_init_neon_builtins): Handle crypto builtins.
607 (bdesc_2arg): Likewise.
608 (bdesc_1arg): Likewise.
609 (bdesc_3arg): New table.
610 (arm_expand_ternop_builtin): New function.
611 (arm_expand_unop_builtin): Handle sha1h explicitly.
612 (arm_expand_builtin): Handle ternary builtins.
613 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS):
614 Define __ARM_FEATURE_CRYPTO.
615 * config/arm/arm.md: Include crypto.md.
616 (is_neon_type): Add crypto types.
617 * config/arm/arm_neon_builtins.def: Add TImode reinterprets.
618 * config/arm/crypto.def: New.
619 * config/arm/crypto.md: Likewise.
620 * config/arm/iterators.md (CRYPTO_UNARY): New int iterator.
621 (CRYPTO_BINARY): Likewise.
622 (CRYPTO_TERNARY): Likewise.
623 (CRYPTO_SELECTING): Likewise.
624 (crypto_pattern): New int attribute.
625 (crypto_size_sfx): Likewise.
626 (crypto_mode): Likewise.
627 (crypto_type): Likewise.
628 * config/arm/neon-gen.ml: Handle poly64_t and poly128_t types.
629 Handle crypto intrinsics.
630 * config/arm/neon.ml: Add support for poly64 and polt128 types
631 and intrinsics. Define crypto intrinsics.
632 * config/arm/neon.md (neon_vreinterpretti<mode>): New pattern.
633 (neon_vreinterpretv16qi<mode>): Use VQXMOV mode iterator.
634 (neon_vreinterpretv8hi<mode>): Likewise.
635 (neon_vreinterpretv4si<mode>): Likewise.
636 (neon_vreinterpretv4sf<mode>): Likewise.
637 (neon_vreinterpretv2di<mode>): Likewise.
638 * config/arm/unspecs.md (UNSPEC_AESD, UNSPEC_AESE, UNSPEC_AESIMC)
639 (UNSPEC_AESMC, UNSPEC_SHA1C, UNSPEC_SHA1M, UNSPEC_SHA1P, UNSPEC_SHA1H)
640 (UNSPEC_SHA1SU0, UNSPEC_SHA1SU1, UNSPEC_SHA256H, UNSPEC_SHA256H2)
641 (UNSPEC_SHA256SU0, UNSPEC_SHA256SU1, VMULLP64): Define.
642 * config/arm/arm_neon.h: Regenerate.
643
644 2013-12-19 H.J. Lu <hongjiu.lu@intel.com>
645
646 PR driver/59321
647 * collect2.c (main): Check -fuse-ld=[bfd|gold] when
648 DEFAULT_LINKER is defined.
649 * common.opt (fuse-ld=bfd): Add Driver.
650 (fuse-ld=gold): Likewise.
651 * gcc.c (use_ld): New variable.
652 (driver_handle_option): Set use_ld for OPT_fuse_ld_bfd and
653 OPT_fuse_ld_gold.
654 (main): Check -fuse-ld=[bfd|gold] for -print-prog-name=ld.
655
656 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
657
658 * Makefile.in (TEXI_GCC_FILES): Add arm-acle-intrinsics.texi.
659 * config.gcc (extra_headers): Add arm_acle.h.
660 * config/arm/arm.c (FL_CRC32): Define.
661 (arm_have_crc): Likewise.
662 (arm_option_override): Set arm_have_crc.
663 (arm_builtins): Add CRC32 builtins.
664 (bdesc_2arg): Likewise.
665 (arm_init_crc32_builtins): New function.
666 (arm_init_builtins): Initialise CRC32 builtins.
667 (arm_file_start): Handle architecture extensions.
668 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
669 __ARM_FEATURE_CRC32. Define __ARM_32BIT_STATE.
670 (TARGET_CRC32): Define.
671 * config/arm/arm-arches.def: Add armv8-a+crc.
672 * config/arm/arm-tables.opt: Regenerate.
673 * config/arm/arm.md (type): Add crc.
674 (<crc_variant>): New insn.
675 * config/arm/arm_acle.h: New file.
676 * config/arm/iterators.md (CRC): New int iterator.
677 (crc_variant, crc_mode): New int attributes.
678 * confg/arm/unspecs.md (UNSPEC_CRC32B, UNSPEC_CRC32H, UNSPEC_CRC32W,
679 UNSPEC_CRC32CB, UNSPEC_CRC32CH, UNSPEC_CRC32CW): New unspecs.
680 * doc/invoke.texi: Document -march=armv8-a+crc option.
681 * doc/extend.texi: Document ACLE intrinsics.
682
683 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
684
685 PR target/59142
686 * config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb
687 patterns.
688 * config/arm/ldmstm.md: Regenerate.
689
690 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
691
692 PR target/59142
693 * config/arm/predicates.md (arm_hard_general_register_operand):
694 New predicate.
695 (arm_hard_register_operand): Remove.
696 * config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
697 for all patterns.
698 * config/arm/ldmstm.md: Regenerate.
699
700 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
701
702 PR target/59142
703 * config/arm/predicates.md (vfp_hard_register_operand): New predicate.
704 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use
705 vfp_hard_register_operand.
706
707 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
708
709 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
710 Define builtin types for poly64_t poly128_t.
711 (TYPES_BINOPP, aarch64_types_binopp_qualifiers): New.
712 * aarch64/aarch64-simd-builtins.def: Update builtins table.
713 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi,
714 aarch64_crypto_pmullv2di): New.
715 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Update table for
716 poly64x2_t mangler.
717 * config/aarch64/arm_neon.h (poly64x2_t, poly64_t, poly128_t): Define.
718 (vmull_p64, vmull_high_p64): New.
719 * config/aarch64/iterators.md (UNSPEC_PMULL<2>): New.
720
721 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
722
723 * config/aarch64/aarch64-simd-builtins.def: Update builtins table.
724 * config/aarch64/aarch64-simd.md
725 (aarch64_crypto_sha256h<sha256_op>v4si, aarch64_crypto_sha256su0v4si,
726 aarch64_crypto_sha256su1v4si): New.
727 * config/aarch64/arm_neon.h (vsha256hq_u32, vsha256h2q_u32,
728 vsha256su0q_u32, vsha256su1q_u32): New.
729 * config/aarch64/iterators.md (UNSPEC_SHA256H<2>, UNSPEC_SHA256SU<01>):
730 New.
731 (CRYPTO_SHA256): New int iterator.
732 (sha256_op): New int attribute.
733
734 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
735
736 * config/aarch64/aarch64-simd-builtins.def: Update builtins table.
737 * config/aarch64/aarch64-builtins.c (aarch64_types_ternopu_qualifiers,
738 TYPES_TERNOPU): New.
739 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hsi,
740 aarch64_crypto_sha1su1v4si, aarch64_crypto_sha1<sha1_op>v4si,
741 aarch64_crypto_sha1su0v4si): New.
742 * config/aarch64/arm_neon.h (vsha1cq_u32, sha1mq_u32, vsha1pq_u32,
743 vsha1h_u32, vsha1su0q_u32, vsha1su1q_u32): New.
744 * config/aarch64/iterators.md (UNSPEC_SHA1<CPMH>, UNSPEC_SHA1SU<01>):
745 New.
746 (CRYPTO_SHA1): New int iterator.
747 (sha1_op): New int attribute.
748
749 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
750
751 * config/aarch64/aarch64-simd-builtins.def: Update builtins table.
752 * config/aarch64/aarch64-builtins.c (aarch64_types_binopu_qualifiers,
753 TYPES_BINOPU): New.
754 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi,
755 aarch64_crypto_aes<aesmc_op>v16qi): New.
756 * config/aarch64/arm_neon.h (vaeseq_u8, vaesdq_u8, vaesmcq_u8,
757 vaesimcq_u8): New.
758 * config/aarch64/iterators.md (UNSPEC_AESE, UNSPEC_AESD, UNSPEC_AESMC,
759 UNSPEC_AESIMC): New.
760 (CRYPTO_AES, CRYPTO_AESMC): New int iterators.
761 (aes_op, aesmc_op): New int attributes.
762
763 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
764
765 * config/arm/types.md (neon_mul_d_long, crypto_aes, crypto_sha1_xor,
766 crypto_sha1_fast, crypto_sha1_slow, crypto_sha256_fast,
767 crypto_sha256_slow): New.
768
769 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
770
771 * config/aarch64/aarch64.h (TARGET_CRYPTO): New.
772 (__ARM_FEATURE_CRYPTO): Define if TARGET_CRYPTO is true.
773
774 2013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com>
775 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
776
777 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New
778 constant.
779 (s390_hotpatch_trampoline_halfwords_max): New constant.
780 (s390_hotpatch_trampoline_halfwords): New static variable.
781 (get_hotpatch_attribute): New function.
782 (s390_handle_hotpatch_attribute): New function.
783 (s390_attribute_table): New target specific attribute table to
784 implement the hotpatch attribute.
785 (s390_option_override): Parse hotpatch options.
786 (s390_function_num_hotpatch_trampoline_halfwords): New function.
787 (s390_can_inline_p): Implement target hook to
788 suppress hotpatching for explicitly inlined functions.
789 (s390_asm_output_function_label): Generate hotpatch prologue.
790 (TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table.
791 (TARGET_CAN_INLINE_P): Define to implement target hook.
792 * config/s390/s390.opt (mhotpatch): New options -mhotpatch,
793 -mhotpatch=.
794 * config/s390/s390-protos.h (s390_asm_output_function_label): Add
795 prototype.
796 * config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific
797 function label generation for hotpatching.
798 (FUNCTION_BOUNDARY): Align functions to eight bytes.
799 * doc/extend.texi: Document hotpatch attribute.
800 * doc/invoke.texi: Document -mhotpatch option.
801
802 2013-12-19 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
803
804 * config/i386/i386.c: Include cfgloop.h.
805 (ix86_loop_memcount): New function.
806 (ix86_loop_unroll_adjust): New function.
807 (TARGET_LOOP_UNROLL_ADJUST): Define.
808 * config/i386/i386.h
809 (TARGET_ADJUST_UNROLL): Define.
810 * config/i386/x86-tune.def
811 (X86_TUNE_ADJUST_UNROLL): Define.
812
813 2013-12-19 Marek Polacek <polacek@redhat.com>
814
815 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Remove
816 variable alg. Use index variable i directly.
817
818 2013-12-19 Eric Botcazou <ebotcazou@adacore.com>
819
820 * print-tree.c (print_node) <case tcc_type>: Print no_force_blk_flag
821 for all types.
822
823 2013-12-19 Monk Chiang <sh.chiang04@gmail.com>
824
825 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
826 Consider TARGET_CPU_DEFAULT settings.
827
828 2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
829
830 * config/aarch64/aarch64-cores.def: Add support for
831 -mcpu=cortex-a57.cortex-a53.
832 * config/aarch64/aarch64-tune.md: Regenerate.
833 * doc/invoke.texi: Document -mcpu=cortex-a57.cortex-a53.
834
835 2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
836
837 * config/aarch64/aarch64-cores.def: Add new column for SCHEDULER_IDENT.
838 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Handle SCHEDULER_IDENT.
839 * config/aarch64/aarch64.c (AARCH64_CORE): Handle SCHEDULER_IDENT.
840 (aarch64_parse_cpu): mcpu implies a default value for mtune.
841 * config/aarch64/aarch64.h (AARCH64_CORE): Handle SCHEDULER_IDENT.
842
843 2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
844
845 * common/config/aarch64/aarch64-common.c
846 (aarch64_rewrite_selected_cpu): New.
847 (aarch64_rewrite_mcpu): New.
848 * config/aarch64/aarch64-protos.h
849 (aarch64_rewrite_selected_cpu): New.
850 * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): New.
851 (BIG_LITTLE_SPEC_FUNCTIONS): Likewise.
852 (ASM_CPU_SPEC): Likewise.
853 (EXTRA_SPEC_FUNCTIONS): Likewise.
854 (EXTRA_SPECS): Likewise.
855 (ASM_SPEC): Likewise.
856 * config/aarch64/aarch64.c (aarch64_start_file): Rewrite target
857 CPU name.
858
859 2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
860
861 * omp-low.c (simd_clone_clauses_extract): Replaced the string
862 "cilk simd elemental" with "cilk simd function."
863 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
864 Removed a carriage-return from a warning string.
865
866 2013-12-18 Aldy Hernandez <aldyh@redhat.com>
867
868 * passes.c (execute_function_dump): Set graph_dump_initialized
869 appropriately.
870 (pass_init_dump_file): Similarly.
871 (execute_one_pass): Pass new argument to do_per_function.
872 * tree-pass.h (class opt_pass): New field graph_dump_initialized.
873
874 2013-12-18 Aldy Hernandez <aldyh@redhat.com>
875
876 * doc/tree-ssa.texi (SSA Operands): Remove reference to
877 SSA_OP_VMAYUSE.
878 Synchronize SSA_OP* definitions with source.
879 * ssa-iterators.h: Fix comment for FOR_EACH_IMM_USE_STMT.
880 Add not to SSA_OP* macro definitions.
881
882 2013-12-18 Jakub Jelinek <jakub@redhat.com>
883
884 PR target/59539
885 * config/i386/sse.md
886 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
887 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): New expanders,
888 prefix existing define_insn names with *.
889
890 2013-12-18 Eric Botcazou <ebotcazou@adacore.com>
891
892 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko.
893
894 2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
895 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
896
897 * config/arm/t-aprofile: Add cortex-a15.cortex-a7, cortex-a12,
898 cortex-a57, cortex-a57.cortex-a53.
899
900 2013-12-18 Eric Botcazou <ebotcazou@adacore.com>
901
902 PR debug/59418
903 * dwarf2cfi.c (dwarf2out_frame_debug_cfa_offset): Fix comment and tidy.
904 (dwarf2out_frame_debug_cfa_restore): Handle TARGET_DWARF_REGISTER_SPAN.
905 (dwarf2out_frame_debug_expr): Tidy.
906
907 2013-12-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
908 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
909 Sergey Lega <sergey.s.lega@intel.com>
910 Anna Tikhonova <anna.tikhonova@intel.com>
911 Ilya Tocar <ilya.tocar@intel.com>
912 Andrey Turetskiy <andrey.turetskiy@intel.com>
913 Ilya Verbin <ilya.verbin@intel.com>
914 Kirill Yukhin <kirill.yukhin@intel.com>
915 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
916
917 * config/i386/sse.md (*fma_fmadd_<mode>): Extend to support masking.
918 (*fma_fmsub_<mode>): Ditto.
919 (*fma_fnmadd_<mode>): Ditto.
920 (*fma_fnmsub_<mode>): Ditto.
921 (*fma_fmaddsub_<mode>): Ditto.
922 (*fma_fmsubadd_<mode>): Ditto.
923 (avx512f_vternlog<mode>): Ditto.
924 (avx512f_fixupimm<mode>): Ditto.
925 (avx512f_sfixupimm<mode>): Ditto.
926 (avx512f_vpermi2var<mode>3): Ditto.
927 (avx512f_vpermt2var<mode>3): Ditto.
928 (avx512f_fmaddsub_<mode>_maskz): New.
929 (avx512f_vternlog<mode>_maskz): Ditto.
930 (avx512f_fixupimm<mode>_maskz): Ditto.
931 (avx512f_sfixupimm<mode>_maskz): Ditto.
932 (avx512f_vpermi2var<mode>3_maskz): Ditto.
933 (avx512f_vpermt2var<mode>3_maskz): Ditto.
934 (avx512f_expand<mode>_maskz): Ditto.
935 * config/i386/subst.md (sd_maskz_name): Ditto.
936 (sd_mask_op4): Ditto.
937 (sd_mask_op5): Ditto.
938 (sd_mask_codefor): Ditto.
939 (sd_mask_mode512bit_condition): Ditto.
940 (sd): Ditto.
941
942 2013-12-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
943 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
944 Sergey Lega <sergey.s.lega@intel.com>
945 Anna Tikhonova <anna.tikhonova@intel.com>
946 Ilya Tocar <ilya.tocar@intel.com>
947 Andrey Turetskiy <andrey.turetskiy@intel.com>
948 Ilya Verbin <ilya.verbin@intel.com>
949 Kirill Yukhin <kirill.yukhin@intel.com>
950 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
951
952 * config/i386/sse.md (avx512f_cmp<mode>3): Extend to support masking.
953 (avx512f_ucmp<mode>3): Ditto.
954 (avx512f_eq<mode>3): Ditto.
955 (avx512f_gt<mode>3): Ditto.
956 (avx512f_testm<mode>3): Ditto.
957 (avx512f_testnm<mode>3): Ditto.
958 * config/i386/subst.md (SUBST_S): New.
959 (mask_scalar_merge_name): Ditto.
960 (mask_scalar_merge_operand3): Ditto.
961 (mask_scalar_merge_operand4): Ditto.
962 (mask_scalar_merge): Ditto.
963
964 2013-12-17 Jan Hubicka <hubicka@ucw.cz>
965
966 PR middle-end/35545
967 * gimple-fold.c (fold_gimple_assign): Attempt to devirtualize
968 OBJ_TYPE_REF.
969 (gimple_fold_stmt_to_constant_1): Bypass OBJ_TYPE_REF wrappers.
970
971 2013-12-17 Jan Hubicka <hubicka@ucw.cz>
972
973 PR middle-end/35545
974 * tree-vrp.c (extract_range_from_unary_expr_1): Handle OBJ_TYPE_REF.
975
976 2013-12-17 Teresa Johnson <tejohnson@google.com>
977
978 PR gcov-profile/59527
979 * cfgrtl.c (fixup_reorder_chain): Handle a region-crossing
980 branch, which can't be eliminated.
981
982 2013-12-18 Martin Liska <marxin.liska@gmail.com>
983 Jan Hubicka <jh@suse.cz>
984
985 * cgraphunit.c (node_cmp): New function.
986 (expand_all_functions): Function ordering added.
987 * common.opt: New profile based function reordering flag introduced.
988 * lto-partition.c: Support for time profile added.
989 * lto.c: Likewise.
990 * predict.c (handle_missing_profiles): Time profile handled in
991 missing profiles.
992
993 2013-12-17 Jakub Jelinek <jakub@redhat.com>
994
995 PR tree-optimization/59523
996 * tree-vectorizer.c (fold_loop_vectorized_call): Call update_stmt
997 on updated stmts.
998
999 2013-12-17 Aldy Hernandez <aldyh@redhat.com>
1000
1001 * ipa-inline.c (gate_ipa_inline): Remove.
1002 (const pass_data pass_data_ipa_inline): Unset has_gate.
1003 (class pass_ipa_inline): Remove gate() method.
1004
1005 2013-12-17 Jan Hubicka <hubicka@ucw.cz>
1006
1007 * ipa-devirt.c (get_polymorphic_call_info): Fix offset calculatoin
1008 in contains_type_p query.
1009
1010 2013-12-17 Thomas Schwinge <thomas@codesourcery.com>
1011
1012 * omp-low.c (tmp_ompfn_id_num): Remove leftover variable definition.
1013
1014 * tree-pass.h (make_pass_expand_omp_ssa): Remove leftover function
1015 declaration.
1016
1017 * omp-low.c: Remove leftover comment.
1018
1019 * omp-low.c (check_combined_parallel): Reflect reality in comment.
1020
1021 * doc/cfg.texi (Control Flow): Refer to passes.def instead of passes.c.
1022 * doc/passes.texi (Pass manager): Refer to passes.def.
1023
1024 * doc/gccint.texi (Top): Fix inclusion order.
1025
1026 2013-12-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1027
1028 * config/arm/arm-cores.def (cortex-a12): Use cortexa15 scheduling.
1029 * config/arm/arm.c (arm_issue_rate): Handle cortexa12.
1030 * config/arm/arm.md (generic_vfp): Remove cortexa12.
1031
1032 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
1033
1034 * config/arm/arm-cores.def (cortex-a57.cortex-a53): New.
1035 * doc/invoke.texi: Document -mcpu=cortex-a57.cortex-a53.
1036 * config/arm/arm-tables.opt: Regenerate.
1037 * config/arm/arm-tune.md: Regenerate.
1038 * config/arm/bpabi.h
1039 (BE8_LINK_SPEC): Handle -mcpu=cortex-a57.cortex-a53.
1040
1041 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
1042
1043 * config/arm/arm-cores.def (cortex-a57): New.
1044 * doc/invoke.texi: Document -mcpu=cortex-a57.
1045 * config/arm/arm-tables.opt: Regenerate.
1046 * config/arm/arm-tune.md: Regenerate.
1047 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle -mcpu=cortex-a57.
1048
1049 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
1050
1051 * config/arm/arm-cores.def (cortex-a15.cortex-a7): New.
1052 * doc/invoke.texi: Document -mcpu=cortex-a15.cortex-a7.
1053 * config/arm/arm-tables.opt: Regenerate.
1054 * config/arm/arm-tune.md: Regenerate.
1055 * config/arm/bpabi.h
1056 (BE8_LINK_SPEC): Handle -mcpu=cortex-a5.cortex-a7.
1057
1058 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
1059
1060 * config/arm/arm-cores.def: Add new column for TUNE_IDENT.
1061 * config/arm/genopt.sh: Improve layout.
1062 * config/arm/arm-tune.md: Regenerate.
1063 * config/arm/arm-tables.opt: Regenerate.
1064 * config/arm/arm-opts.h (ARM_CORE): Modify macro for TUNE_IDENT.
1065 * config/arm/arm.c (ARM_CORE): Modify macro for TUNE_IDENT.
1066 (arm_option_override): When a CPU is chosen, that should also
1067 form the tune target.
1068 * config/arm/arm.h (ARM_CORE): Modify macro for TUNE_IDENT.
1069
1070 2013-12-17 James Greenhalgh <james.greenhalgh@arm.com>
1071
1072 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): New.
1073 (arm_rewrite_mcpu): Likewise.
1074 * config/arm/arm-protos.h (arm_rewrite_selected_cpu): New.
1075 * config/arm/arm.h (BIG_LITTLE_SPEC): New.
1076 (BIG_LITTLE_SPEC_FUNCTIONS): Likewise.
1077 (EXTRA_SPEC_FUNCTIONS): Include BIG_LITTLE_SPEC_FUNCTIONS.
1078 (ASM_CPU_SPEC): Include BIG_LITTLE_SPEC.
1079 * config/arm/arm.c (arm_file_start): Rewrite arm_selecetd_cpu values.
1080
1081 2013-12-17 Eric Botcazou <ebotcazou@adacore.com>
1082
1083 * expmed.c (lowpart_bit_field_p): Fix comment.
1084 (store_bit_field_using_insv): Fix formatting.
1085 (store_bit_field): Likewise.
1086 (store_fixed_bit_field): More declaration and remove return.
1087 (store_fixed_bit_field_1): Fix formatting.
1088 (extract_fixed_bit_field): Move declaration.
1089 (extract_fixed_bit_field_1): Simplify.
1090
1091 2013-12-17 Jan Hubicka <hubicka@ucw.cz>
1092
1093 * ipa-utils.h (possible_polymorphic_call_targets): Determine
1094 context of the call.
1095 * gimple-fold.c (gimple_fold_call): Use ipa-devirt to devirtualize.
1096
1097 2013-12-17 Jakub Jelinek <jakub@redhat.com>
1098
1099 * expr.c (convert_modes): For SUBREG_PROMOTED_VAR_P use SUBREG_REG (x)
1100 instead of x as last gen_lowpart argument.
1101
1102 2013-12-16 Jakub Jelinek <jakub@redhat.com>
1103
1104 * predict.h (PROB_LIKELY): Fix the value.
1105 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Add support
1106 for overflow checking for modes without 2xwider supported mode,
1107 if the mode has 2xnarrower mode.
1108
1109 * internal-fn.c: Include stringpool.h and tree-ssanames.h.
1110 (ubsan_expand_si_overflow_addsub_check): In the generic expansion,
1111 try to improve generated code if one of the arguments is constant
1112 or get_range_info says that one of the argument is always
1113 negative or always non-negative.
1114 * tree-vrp.c (simplify_internal_call_using_ranges): New function.
1115 (simplify_stmt_using_ranges): Call it.
1116
1117 2013-12-16 Vladimir Makarov <vmakarov@redhat.com>
1118
1119 PR rtl-optimization/59466
1120 * emit-rtl.c (change_address_1): Don't validate address for LRA.
1121 * recog.c (general_operand): Accept any memory for LRA.
1122 * lra.c (lra_set_insn_recog_data): Add an assert.
1123
1124 2013-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1125
1126 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a12 entry.
1127
1128 2013-12-14 Jan Hubicka <jh@suse.cz>
1129 Markus Trippelsdorf <octoploid@yandex.com>
1130
1131 PR ipa/59265
1132 * ipa-profile.c (ipa_profile_generate_summary): Do not ICE when
1133 call is already devirtualized.
1134
1135 2013-12-16 Jakub Jelinek <jakub@redhat.com>
1136
1137 * Makefile.in (version.o): Restore dependencies on
1138 $(REVISION), $(DATESTAMP), $(BASEVER) and $(DEVPHASE).
1139
1140 2013-12-14 Jan Hubicka <jh@suse.cz>
1141
1142 PR ipa/59473
1143 * ipa-devirt.c (get_class_context): Do not ICE when type is found
1144 at wrong offset.
1145
1146 2013-12-16 Jakub Jelinek <jakub@redhat.com>
1147
1148 PR libgomp/58756
1149 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_REDUCTION>: For
1150 reductions without placeholder if is_simd, but when not using
1151 GOMP_SIMD* internal calls, also perform the reduction operation
1152 on the outer var rather than simple assignment.
1153
1154 2013-12-16 Jakub Jelinek <jakub@redhat.com>
1155
1156 PR middle-end/58956
1157 PR middle-end/59470
1158 * gimple-walk.h (walk_stmt_load_store_addr_fn): New typedef.
1159 (walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it
1160 for callback params.
1161 * gimple-walk.c (walk_stmt_load_store_ops): Likewise.
1162 (walk_stmt_load_store_addr_ops): Likewise. Adjust all callback
1163 calls to supply the gimple operand containing the base tree
1164 as an extra argument.
1165 * tree-ssa-ter.c: Include gimple-walk.h.
1166 (find_ssaname, find_ssaname_in_store): New helper functions.
1167 (find_replaceable_in_bb): For calls or GIMPLE_ASM, only set
1168 same_root_var if USE is used somewhere in the stores of the stmt.
1169 * ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt
1170 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
1171 * ipa-pure-const.c (check_load, check_store, check_ipa_load,
1172 check_ipa_store): Likewise.
1173 * gimple.c (gimple_ior_addresses_taken_1, check_loadstore): Likewise.
1174 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise.
1175 (verify_non_ssa_vars, visit_bb): Adjust their callers.
1176 * cfgexpand.c (add_scope_conflicts_1): Use
1177 walk_stmt_load_store_addr_fn type for visit variable.
1178 (visit_op, visit_conflict): Remove name of the stmt
1179 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
1180 * tree-sra.c (asm_visit_addr): Likewise. Remove name of the data
1181 argument and ATTRIBUTE_UNUSED.
1182 * cgraphbuild.c (mark_address, mark_load, mark_store): Add another
1183 unnamed tree argument.
1184 * gimple-ssa-isolate-paths.c (check_loadstore): Likewise. Remove
1185 ATTRIBUTE_UNUSED from stmt parameter.
1186
1187 2013-12-16 Chung-Lin Tang <cltang@codesourcery.com>
1188
1189 * opts-common.c (integral_argument): Add support for
1190 hexadecimal command option integer arguments. Update comments.
1191
1192 2013-12-14 Jan Hubicka <jh@suse.cz>
1193
1194 PR ipa/59265
1195 * ipa-prop.c (ipa_analyze_call_uses): Skip already
1196 devirtualized calls.
1197
1198 2013-12-14 Jan Hubicka <jh@suse.cz>
1199
1200 PR middle-end/58477
1201 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
1202
1203 2013-12-14 Jan Hubicka <jh@suse.cz>
1204
1205 PR middle-end/58477
1206 * cgraphclones.c (cgraph_clone_edge): Do not resolve speculative edges.
1207
1208 2013-12-14 H.J. Lu <hongjiu.lu@intel.com>
1209
1210 PR target/59492
1211 * config/i386/i386.c (ix86_function_specific_restore): Don't
1212 change -fPIC.
1213
1214 2013-12-14 Eric Botcazou <ebotcazou@adacore.com>
1215
1216 * var-tracking.c (add_stores): Fix oversight in latest commit.
1217
1218 2013-12-14 Marek Polacek <polacek@redhat.com>
1219
1220 PR sanitizer/59503
1221 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Call
1222 expand_binop with correct optab depending on code.
1223
1224 2013-12-14 Tom de Vries <tom@codesourcery.com>
1225
1226 * calls.c (expand_call): Fix REG_PARM_STACK_SPACE comparison.
1227
1228 2013-12-13 DJ Delorie <dj@redhat.com>
1229
1230 * config/rl78/rl78-expand.md (one_cmplqi2): Make constant signed.
1231
1232 * config/msp430/msp430.md (movqi): replace general_operand with
1233 msp_general_operand and nonimmediate_operand with
1234 msp_nonimmediate_operand to allow volatile operands.
1235 (movhi): Likewise.
1236 (movpsi): Likewise.
1237 (addpsi3): Likewise.
1238 (addhi3): Likewise.
1239 (addhi3_cy): Likewise.
1240 (addchi4_cy): Likewise.
1241 (xor<mode>3): Likewise.
1242 (ome_cmpl<mode>2): Likewise.
1243 (extendqihi2): Likewise.
1244 (zero_extendqihi2): Likewise.
1245 (zero_extendhipsi2): Likewise.
1246 (truncpsihi2): Likewise.
1247 (srai_1): Likewise.
1248
1249 2013-12-13 Vladimir Makarov <vmakarov@redhat.com>
1250
1251 * ira.h (struct ira_reg_equiv): Rename to ira_reg_equiv_s.
1252 * ira.c: Ditto.
1253 * lra-int.h (lra_init_equiv): New prototype.
1254 * lra-constraints.c (lra_init_equiv, update_equiv): New functions.
1255 (loc_equivalence_callback): Use the 3rd arg.
1256 (lra_constraints): Update equivalences. Pass curr_insn to
1257 simplify_replace_fn_rtx.
1258 * lra.c (lra): Call lra_init_equiv.
1259
1260 2013-12-13 Kenneth Zadeck <zadeck@naturalbridge.com>
1261
1262 * genmodes.c (emit_max_int): Fixed missing parens.
1263
1264 2013-12-13 Aldy Hernandez <aldyh@redhat.com>
1265
1266 PR tree-optimization/59149
1267 * calls.c (flags_from_decl_or_type): Fail on non decl or type.
1268 * trans-mem.c (diagnose_tm_1): Do not call flags_from_decl_or_type
1269 if no type or decl.
1270
1271 2013-12-13 Kenneth Zadeck <zadeck@naturalbridge.com>
1272
1273 * config/arc/arc.h (BITS_PER_UNIT): Removed.
1274 * config/bfin/bfin.h (BITS_PER_UNIT): Removed.
1275 * config/lm32/lm32.h (BITS_PER_UNIT): Removed.
1276 * config/m32c/m32c.h (BITS_PER_UNIT): Removed.
1277 * config/microblaze/microblaze.h (BITS_PER_UNIT): Removed.
1278 * config/picochip/picochip.h (BITS_PER_UNIT): Removed.
1279 * config/spu/spu.h (BITS_PER_UNIT): Removed.
1280 * defaults.h (BITS_PER_UNIT): Removed.
1281 * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): New.
1282 * doc/rtl (BITS_PER_UNIT): Moved from tm.texi.
1283 (MAX_BITSIZE_MODE_ANY_INT): Updated.
1284 * doc/tm.texi (BITS_PER_UNIT): Removed.
1285 * doc/tm.texi.in (BITS_PER_UNIT): Removed.
1286 * genmodes.c (bits_per_unit, max_bitsize_mode_any_int): New.
1287 (create_modes): Added code to set bits_per_unit and
1288 max_bitsize_mode_any_int.
1289 (emit_max_int): Changed code generation.
1290 * mkconfig.sh: Added insn-modes.h.
1291
1292 2013-12-13 Jeff Law <law@redhat.com>
1293
1294 PR tree-optimization/45685
1295 * tree-ssa-phiopt.c (neg_replacement): New function.
1296 (tree_ssa_phiopt_worker): Call it.
1297
1298 2013-12-13 Yuri Rumyantsev <ysrumyan@gmail.com>
1299
1300 * config/i386/i386.c (slm_cost): Fix imul cost for HI.
1301
1302 2013-12-13 Bin Cheng <bin.cheng@arm.com>
1303
1304 PR tree-optimization/58296
1305 PR tree-optimization/41488
1306 * tree-scalar-evolution.c: Include necessary header files.
1307 (simplify_peeled_chrec): New function.
1308 (analyze_evolution_in_loop): New static variable.
1309 Call simplify_peeled_chrec.
1310 * tree-ssa-loop-ivopts.c (mark_bivs): Don't mark peeled IV as biv.
1311 (add_old_iv_candidates): Don't add candidate for peeled IV.
1312 * tree-affine.h (aff_combination_zero_p): New function.
1313
1314 2013-12-13 Nick Clifton <nickc@redhat.com>
1315
1316 * config/msp430/msp430.c (is_wakeup_func): New function. Returns
1317 true if the current function has the wakeup attribute.
1318 (msp430_start_function): Note if the function has the wakeup
1319 attribute.
1320 (msp430_attribute_table): Add wakeup attribute.
1321 (msp430_expand_epilogue): Add support for wakeup functions.
1322 * config/msp430/msp430.md (disable_interrupts): Emit a NOP after
1323 the DINT instruction.
1324 * doc/extend.texi: Document the wakeup attribute.
1325
1326 2013-12-13 Kai Tietz <kitetz@redhat.com>
1327
1328 PR c++/57897
1329 * config/i386/i386.c (ix86_option_override_internal): Set for
1330 x64 target flag_unwind_tables, if flag_asynchronous_unwind_tables
1331 was explicit set.
1332
1333 2013-12-12 Jeff Law <law@redhat.com>
1334
1335 * i386.md (simple LEA peephole2): Add missing mode to zero_extend
1336 for zero-extended MULT simple LEA pattern.
1337
1338 2013-12-12 Vladimir Makarov <vmakarov@redhat.com>
1339
1340 PR middle-end/59470
1341 * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo
1342 values if necessary.
1343
1344 2013-12-12 Jakub Jelinek <jakub@redhat.com>
1345
1346 PR libgomp/59467
1347 * gimplify.c (omp_check_private): Add copyprivate argument, if it
1348 is true, don't check omp_privatize_by_reference.
1349 (gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify
1350 decl is private in outer context. Adjust omp_check_private caller.
1351
1352 2013-12-11 Jeff Law <law@redhat.com>
1353
1354 PR rtl-optimization/59446
1355 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
1356 test for crossing a loop header.
1357
1358 2013-12-11 Sriraman Tallam <tmsriram@google.com>
1359
1360 PR target/59390
1361 * config/i386/i386.c (get_builtin): New function.
1362 (ix86_builtin_vectorized_function): Replace all instances of
1363 ix86_builtins[...] with get_builtin(...).
1364 (ix86_builtin_reciprocal): Ditto.
1365
1366 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com>
1367
1368 * langhooks.h (lang_hooks_for_decls): Remove lang_hooks_for_cilkplus.
1369 (lang_hooks_for_cilkplus): Remove.
1370 * langhooks.c (lhd_cilk_detect_spawn): Likewise.
1371 (lhd_install_body_with_frame_cleanup): Likewise.
1372 * langhooks-def.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
1373 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
1374 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
1375 (LANG_HOOKS_CILKPLUS): Likewise.
1376 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_CILKPLUS.
1377 * gimplify.c (gimplify_expr): Removed CILK_SPAWN_STMT case.
1378 (gimplify_modify_expr): Removed handling of _Cilk_spawn in expr.
1379 (gimplify_call_expr): Likewise.
1380
1381 2013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
1382
1383 * expr.c (expand_assignment): Remove dependency on
1384 flag_strict_volatile_bitfields. Always set the memory access mode.
1385 (expand_expr_real_1): Likewise.
1386
1387 2013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
1388
1389 PR middle-end/59134
1390 * expmed.c (store_bit_field): Use narrow_bit_field_mem and
1391 store_fixed_bit_field_1 for -fstrict-volatile-bitfields.
1392 (store_fixed_bit_field): Split up. Call store_fixed_bit_field_1
1393 to do the real work.
1394 (store_fixed_bit_field_1): New function.
1395 (store_split_bit_field): Limit the unit size to the memory mode size,
1396 to prevent recursion.
1397
1398 2013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
1399 Sandra Loosemore <sandra@codesourcery.com>
1400
1401 PR middle-end/23623
1402 PR middle-end/48784
1403 PR middle-end/56341
1404 PR middle-end/56997
1405 * expmed.c (strict_volatile_bitfield_p): Add bitregion_start
1406 and bitregion_end parameters. Test for compliance with C++
1407 memory model.
1408 (store_bit_field): Adjust call to strict_volatile_bitfield_p.
1409 Add fallback logic for cases where -fstrict-volatile-bitfields
1410 is supposed to apply, but cannot.
1411 (extract_bit_field): Likewise. Use narrow_bit_field_mem and
1412 extract_fixed_bit_field_1 to do the extraction.
1413 (extract_fixed_bit_field): Revert to previous mode selection algorithm.
1414 Call extract_fixed_bit_field_1 to do the real work.
1415 (extract_fixed_bit_field_1): New function.
1416
1417 2013-12-11 Sandra Loosemore <sandra@codesourcery.com>
1418
1419 PR middle-end/23623
1420 PR middle-end/48784
1421 PR middle-end/56341
1422 PR middle-end/56997
1423 * expmed.c (strict_volatile_bitfield_p): New function.
1424 (store_bit_field_1): Don't special-case strict volatile
1425 bitfields here.
1426 (store_bit_field): Handle strict volatile bitfields here instead.
1427 (store_fixed_bit_field): Don't special-case strict volatile
1428 bitfields here.
1429 (extract_bit_field_1): Don't special-case strict volatile
1430 bitfields here.
1431 (extract_bit_field): Handle strict volatile bitfields here instead.
1432 (extract_fixed_bit_field): Don't special-case strict volatile
1433 bitfields here. Simplify surrounding code to resemble that in
1434 store_fixed_bit_field.
1435 * doc/invoke.texi (Code Gen Options): Update
1436 -fstrict-volatile-bitfields description.
1437
1438 2013-12-11 Kugan Vivekanandarajah <kuganv@linaro.org>
1439
1440 * configure.ac: Add check for aarch64 assembler -mabi support.
1441 * configure: Regenerate.
1442 * config.in: Regenerate.
1443 * config/aarch64/aarch64-elf.h (ASM_MABI_SPEC): New define.
1444 (ASM_SPEC): Update to substitute -mabi with ASM_MABI_SPEC.
1445 * config/aarch64/aarch64.h (aarch64_override_options): Issue error
1446 if assembler does not support -mabi and option ilp32 is selected.
1447 * doc/install.texi: Added note that building gcc 4.9 and after
1448 with pre 2.24 binutils will not support -mabi=ilp32.
1449
1450 2013-12-11 Marek Polacek <polacek@redhat.com>
1451
1452 PR sanitizer/59399
1453 * expr.c (expand_expr_real_1): Remove assert dealing with
1454 internal calls and turn that into a condition instead.
1455
1456 2013-12-11 Yvan Roux <yvan.roux@linaro.org>
1457
1458 * config/arm/arm.opt (mlra): Enable LRA by default.
1459
1460 2013-12-11 Jakub Jelinek <jakub@redhat.com>
1461
1462 PR tree-optimization/59417
1463 * tree-ssa-copy.c (fini_copy_prop): If copy_of[i].value is defined
1464 in a different bb rhan var, only duplicate points-to info and
1465 not alignment info and don't duplicate range info.
1466 * tree-ssa-loop-niter.c (determine_value_range): Instead of
1467 assertion failure handle inconsistencies in range info by only
1468 using var's range info and not PHI result range infos.
1469
1470 PR tree-optimization/59386
1471 * tree-inline.c (remap_gimple_stmt): If not id->do_not_unshare,
1472 unshare_expr (id->retval) before passing it to gimple_build_assign.
1473
1474 2013-12-11 Bin Cheng <bin.cheng@arm.com>
1475
1476 Reverted:
1477 2013-12-10 Bin Cheng <bin.cheng@arm.com>
1478 PR tree-optimization/41488
1479 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): Don't add cand
1480 for PEELED_CHREC kind IV.
1481 * tree-scalar-evolution.c: Include necessary header files.
1482 (peeled_chrec_map, simplify_peeled_chrec): New.
1483 (analyze_evolution_in_loop): New static variable.
1484 Call simplify_peeled_chrec.
1485 (scev_initialize): Initialize peeled_chrec_map.
1486 (scev_reset, scev_finalize): Reset and release peeled_chrec_map.
1487
1488 2013-12-10 H.J. Lu <hongjiu.lu@intel.com>
1489
1490 PR target/59458
1491 * config/i386/i386.md (*movsf_internal): Set mode to SI for
1492 alternative 13.
1493
1494 2013-12-10 Eric Botcazou <ebotcazou@adacore.com>
1495
1496 PR rtl-optimization/58295
1497 * simplify-rtx.c (simplify_truncation): Restrict the distribution for
1498 WORD_REGISTER_OPERATIONS targets.
1499
1500 2013-12-10 Richard Sandiford <rdsandiford@googlemail.com>
1501
1502 * genrecog.c (validate_pattern): Treat all messages except missing
1503 modes as errors.
1504 * config/epiphany/epiphany.md: Remove constraints from
1505 define_peephole2s.
1506 * config/h8300/h8300.md: Remove constraints from define_splits.
1507 * config/msp430/msp430.md: Likewise.
1508 * config/mcore/mcore.md (movdi_i, movsf_i, movdf_k): Use
1509 nonimmediate_operand rather than general_operand for operand 0.
1510 * config/moxie/moxie.md (*movsi, *movqi, *movhi): Likewise.
1511 * config/pdp11/predicates.md (float_operand, float_nonimm_operand):
1512 Use match_operator rather than match_test to invoke general_operand.
1513 * config/v850/v850.md (*movqi_internal, *movhi_internal)
1514 (*movsi_internal_v850e, *movsi_internal, *movsf_internal): Likewise.
1515
1516 2013-12-10 Richard Sandiford <rdsandiford@googlemail.com>
1517
1518 * config/tilegx/tilegx.md (insn_ld_add<bitsuffix>): Use
1519 register_operand rather than pointer_operand. Add modes to the
1520 operands.
1521 (insn_ldna_add<bitsuffix>): Likewise.
1522 (insn_ld<I124MODE:n><s>_add<I48MODE:bitsuffix>): Likewise.
1523 (insn_ldnt_add<bitsuffix>): Likewise.
1524 (insn_ldnt<I124MODE:n><s>_add<I48MODE:bitsuffix>): Likewise.
1525 (insn_ld_add_L2<bitsuffix>): Likewise.
1526 (insn_ldna_add_L2<bitsuffix>): Likewise.
1527 (insn_ld<I124MODE:n><s>_add_L2<I48MODE:bitsuffix>): Likewise.
1528 (insn_ldnt_add_L2<bitsuffix>): Likewise.
1529 (insn_ldnt<I124MODE:n><s>_add_L2<I48MODE:bitsuffix>): Likewise.
1530 (insn_ld_add_miss<bitsuffix>): Likewise.
1531 (insn_ldna_add_miss<bitsuffix>): Likewise.
1532 (insn_ld<I124MODE:n><s>_add_miss<I48MODE:bitsuffix>): Likewise.
1533 (insn_ldnt_add_miss<bitsuffix>): Likewise.
1534 (insn_ldnt<I124MODE:n><s>_add_miss<I48MODE:bitsuffix>): Likewise.
1535 (insn_st_add<bitsuffix>): Likewise.
1536 (insn_st<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise.
1537 (*insn_st<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise.
1538 (insn_stnt_add<bitsuffix>): Likewise.
1539 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise.
1540 (*insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise.
1541 (vec_pack_<pack_optab>_v4hi): Use register_operand rather than
1542 reg_or_0_operand for operand 0.
1543 (insn_v2<pack_insn>): Likewise.
1544 (vec_pack_hipart_v4hi): Likewise.
1545 (insn_v2packh): Likewise.
1546 (vec_pack_ssat_v2si): Likewise.
1547 (insn_v4packsc): Likewise.
1548
1549 2013-12-10 H.J. Lu <hongjiu.lu@intel.com>
1550
1551 * basic-block.h (gcov_working_set_t): Put back typedef.
1552 * gcov-io.h (gcov_bucket_type): Likewise.
1553 (gcov_working_set_info, gcov_working_set_t): Likewise.
1554
1555 2013-12-10 Oleg Endo <olegendo@gcc.gnu.org>
1556
1557 * cgraph.h (cgraph_node_set_iterator, varpool_node_set_iterator):
1558 Remove typedef.
1559 (cgraph_inline_failed_enum, cgraph_inline_failed_t): Remove typedef and
1560 rename to cgraph_inline_failed_t.
1561 * tree-ssa-alias.h (ao_ref_s, ao_ref): Remove typedef and rename
1562 to ao_ref.
1563 * reload.h (reg_equivs_s, reg_equivs_t): Remove typedef and rename
1564 to reg_equivs_t.
1565 * conditions.h (CC_STATUS): Remove typedef.
1566 * bitmap.h (bitmap_obstack): Remove typedef.
1567 (bitmap_element_def, bitmap_element): Remove typedef and rename to
1568 bitmap_element.
1569 (bitmap_head_def, bitmap_head): Remove typedef and rename to
1570 bitmap_head.
1571 (bitmap_iterator): Remove typedef.
1572 * target.h (cumulative_args_t, print_switch_type,
1573 secondary_reload_info): Remove typedef.
1574 * dwarf2out.h (dw_cfi_oprnd_struct, dw_cfi_oprnd): Remove
1575 dw_cfi_oprnd_struct alias.
1576 (dw_cfi_struct, dw_cfi_node): Remove typedef and rename to dw_cfi_node.
1577 (dw_fde_struct, dw_fde_node): Remove typedef and rename to dw_fde_node.
1578 (cfa_loc, dw_cfa_location): Remove typedef and rename to
1579 dw_cfa_location.
1580 (dw_vec_struct, dw_vec_const): Remove typedef and rename to
1581 dw_vec_const.
1582 (dw_val_struct, dw_val_node): Remove typedef and rename to dw_val_node.
1583 (dw_loc_descr_struct, dw_loc_descr_node): Remove typedef and rename to
1584 dw_loc_descr_node.
1585 * params.h (param_info, compiler_param): Remove typedef.
1586 * opts.h (cl_deferred_param): Remove typedef.
1587 * sreal.h (sreal): Remove typedef.
1588 * ddg.h (dep_type, dep_data_type): Remove typedef.
1589 * graphite-clast-to-gimple.h (cloog_prog_clast, bb_pbb_def): Remove
1590 typedef.
1591 * lto-streamer.h (lto_decl_stream_e_t, lto_encoder_entry,
1592 lto_symtab_encoder_iterator, res_pair): Remove typedef.
1593 * tree-affine.h (affine_tree_combination, aff_tree): Remove typedef
1594 and rename to aff_tree.
1595 * sched-int.h (region): Remove typedef.
1596 * diagnostic.h (diagnostic_info,
1597 diagnostic_classification_change_t): Remove typedef.
1598 * tree-ssa-loop.h (affine_iv_d): Remove typedef and rename to
1599 affine_iv.
1600 * sbitmap.h (sbitmap_iterator): Remove typedef.
1601 * ssa-iterators.h (immediate_use_iterator_d, imm_use_iterator):
1602 Remove typedef and rename to imm_use_iterator.
1603 (ssa_operand_iterator_d, ssa_op_iter): Remove typedef and rename to
1604 ssa_op_iter.
1605 * ggc-internal.h (ggc_statistics): Remove typedef.
1606 * cselib.h (cselib_val_struct, cselib_val): Remove typedef and
1607 rename to cselib_val.
1608 * tree-core.h (alias_pair): Remove typedef.
1609 (constructor_elt_d, constructor_elt): Remove typedef and rename to
1610 constructor_elt.
1611 (ssa_use_operand_d, ssa_use_operand_t): Remove typedef and rename to
1612 ssa_use_operand_t.
1613 * graphite-sese-to-poly.h (base_alias_pair): Remove typedef.
1614 * tree-data-ref.h (conflict_function): Remove typedef.
1615 * tree-inline.h (copy_body_data): Remove typedef.
1616 * ipa-inline.h (condition, size_time_entry, inline_param_summary_t,
1617 edge_growth_cache_entry): Remove typedef.
1618 * regrename.h (operand_rr_info, insn_rr_info): Remove typedef.
1619 * gimple-iterator.h (gimple_stmt_iterator_d, gimple_stmt_iterator):
1620 Remove typedef and rename to gimple_stmt_iterator.
1621 * basic-block.h (ce_if_block, ce_if_block_t): Remove typedef and
1622 rename to ce_if_block.
1623 (edge_iterator): Remove typedef.
1624 * ipa-prop.h (ipa_agg_jf_item, ipa_agg_jf_item_t): Remove typedef
1625 and rename to ipa_agg_jf_item.
1626 (ipa_agg_jump_function_t, ipa_param_descriptor_t, ipa_node_params_t,
1627 ipa_parm_adjustment_t): Remove typedef.
1628 (ipa_jump_func, ipa_jump_func_t): Remove typedef and rename to
1629 ipa_jump_func.
1630 (ipa_edge_args, ipa_edge_args_t): Remove typedef and rename to
1631 ipa_edge_args.
1632 * gcov-io.h (gcov_bucket_type): Remove typedef.
1633 (gcov_working_set_info, gcov_working_set_t): Remove typedef and rename
1634 to gcov_working_set_t.
1635 * ira-int.h (minmax_set_iterator, ira_allocno_iterator,
1636 ira_object_iterator, ira_allocno_object_iterator, ira_pref_iterator,
1637 ira_copy_iterator, ira_object_conflict_iterator): Remove typedef.
1638 * tree-iterator.h (tree_stmt_iterator): Remove typedef.
1639 * rtl.h (addr_diff_vec_flags, mem_attrs, reg_attrs,
1640 replace_label_data): Remove typedef.
1641 (rtunion_def, rtunion): Remove typedef and rename to rtunion.
1642 * hard-reg-set.h (hard_reg_set_iterator): Remove typedef.
1643 * sel-sched-ir.h (_list_iterator, sel_global_bb_info_def,
1644 sel_region_bb_info_def, succ_iterator): Remove typedef.
1645 (deps_where_def, deps_where_t): Remove typedef and rename to
1646 deps_where_t.
1647 * coretypes.h: Adapt forward declarations.
1648 * tree-scalar-evolution.h: Likewise.
1649 * tree-ssa-address.h: Likewise.
1650 * tree-ssa-operands.h: Likewise.
1651 * function.h: Likewise.
1652 * config/frv/frv-protos.h: Likewise.
1653 * targhooks.h: Likewise.
1654 * basic_block.h: Likewise.
1655 * rtl.def: Adapt documentation.
1656 * doc/tm.texi: Likewise.
1657 * ipa-cp.c: Adapt uses.
1658 * bitmap.c: Likewise.
1659 * dwarf2out.c: Likewise.
1660 * target.def: Likewise.
1661 * ipa-inline-analysis.c: Likewise.
1662 * dwarf2cfi.c: Likewise.
1663 * tree-ssa-loop-ivopts.c: Likewise.
1664 * lto-cgraph.c: Likewise.
1665 * config/frv/frv.c: Likewise.
1666 * ifcvt.c: Likewise.
1667 * ipa-prop.c: Likewise.
1668
1669 2013-12-10 Kai Tietz <ktietz@redhat.com>
1670
1671 PR target/56807
1672 * config/i386/i386.c (ix86_expand_prologue): Address saved
1673 registers stack-relative, not via frame-pointer.
1674
1675 2013-12-10 Richard Biener <rguenther@suse.de>
1676
1677 PR middle-end/38474
1678 * tree-ssa-structalias.c (solution_set_expand): Expand into
1679 a different possibly cached bitmap and return the result.
1680 (set_union_with_increment): Pass in a shared expanded bitmap
1681 and adjust.
1682 (do_sd_constraint): Likewise.
1683 (do_ds_constraint): Likewise.
1684 (do_complex_constraint): Likewise.
1685 (solve_graph): Manage the shared expanded bitmap.
1686
1687 2013-12-10 Jakub Jelinek <jakub@redhat.com>
1688
1689 * tree-vectorizer.h (struct _loop_vec_info): Add scalar_loop field.
1690 (LOOP_VINFO_SCALAR_LOOP): Define.
1691 (slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument.
1692 * config/i386/sse.md (maskload<mode>, maskstore<mode>): New expanders.
1693 * tree-data-ref.c (get_references_in_stmt): Handle MASK_LOAD and
1694 MASK_STORE.
1695 * internal-fn.def (LOOP_VECTORIZED, MASK_LOAD, MASK_STORE): New
1696 internal fns.
1697 * tree-if-conv.c: Include expr.h, optabs.h, tree-ssa-loop-ivopts.h and
1698 tree-ssa-address.h.
1699 (release_bb_predicate): New function.
1700 (free_bb_predicate): Use it.
1701 (reset_bb_predicate): Likewise. Don't unallocate bb->aux
1702 just to immediately allocate it again.
1703 (add_to_predicate_list): Add loop argument. If basic blocks that
1704 dominate loop->latch don't insert any predicate.
1705 (add_to_dst_predicate_list): Adjust caller.
1706 (if_convertible_phi_p): Add any_mask_load_store argument, if true,
1707 handle it like flag_tree_loop_if_convert_stores.
1708 (insert_gimplified_predicates): Likewise.
1709 (ifcvt_can_use_mask_load_store): New function.
1710 (if_convertible_gimple_assign_stmt_p): Add any_mask_load_store
1711 argument, check if some conditional loads or stores can't be
1712 converted into MASK_LOAD or MASK_STORE.
1713 (if_convertible_stmt_p): Add any_mask_load_store argument,
1714 pass it down to if_convertible_gimple_assign_stmt_p.
1715 (predicate_bbs): Don't return bool, only check if the last stmt
1716 of a basic block is GIMPLE_COND and handle that. Adjust
1717 add_to_predicate_list caller.
1718 (if_convertible_loop_p_1): Only call predicate_bbs if
1719 flag_tree_loop_if_convert_stores and free_bb_predicate in that case
1720 afterwards, check gimple_code of stmts here. Replace is_predicated
1721 check with dominance check. Add any_mask_load_store argument,
1722 pass it down to if_convertible_stmt_p and if_convertible_phi_p,
1723 call if_convertible_phi_p only after all if_convertible_stmt_p calls.
1724 (if_convertible_loop_p): Add any_mask_load_store argument,
1725 pass it down to if_convertible_loop_p_1.
1726 (predicate_mem_writes): Emit MASK_LOAD and/or MASK_STORE calls.
1727 (combine_blocks): Add any_mask_load_store argument, pass
1728 it down to insert_gimplified_predicates and call predicate_mem_writes
1729 if it is set. Call predicate_bbs.
1730 (version_loop_for_if_conversion): New function.
1731 (tree_if_conversion): Adjust if_convertible_loop_p and combine_blocks
1732 calls. Return todo flags instead of bool, call
1733 version_loop_for_if_conversion if if-conversion should be just
1734 for the vectorized loops and nothing else.
1735 (main_tree_if_conversion): Adjust caller. Don't call
1736 tree_if_conversion for dont_vectorize loops if if-conversion
1737 isn't explicitly enabled.
1738 * tree-vect-data-refs.c (vect_check_gather): Handle
1739 MASK_LOAD/MASK_STORE.
1740 (vect_analyze_data_refs, vect_supportable_dr_alignment): Likewise.
1741 * gimple.h (gimple_expr_type): Handle MASK_STORE.
1742 * internal-fn.c (expand_LOOP_VECTORIZED, expand_MASK_LOAD,
1743 expand_MASK_STORE): New functions.
1744 * tree-vectorizer.c: Include tree-cfg.h and gimple-fold.h.
1745 (vect_loop_vectorized_call, fold_loop_vectorized_call): New functions.
1746 (vectorize_loops): Don't try to vectorize loops with
1747 loop->dont_vectorize set. Set LOOP_VINFO_SCALAR_LOOP for if-converted
1748 loops, fold LOOP_VECTORIZED internal call depending on if loop
1749 has been vectorized or not.
1750 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
1751 New function.
1752 (slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument.
1753 If non-NULL, copy basic blocks from scalar_loop instead of loop, but
1754 still to loop's entry or exit edge.
1755 (slpeel_tree_peel_loop_to_edge): Add scalar_loop argument, pass it
1756 down to slpeel_tree_duplicate_loop_to_edge_cfg.
1757 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_loop_alignment):
1758 Adjust callers.
1759 (vect_loop_versioning): If LOOP_VINFO_SCALAR_LOOP, perform loop
1760 versioning from that loop instead of LOOP_VINFO_LOOP, move it to the
1761 right place in the CFG afterwards.
1762 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1763 MASK_STORE.
1764 * cfgloop.h (struct loop): Add dont_vectorize field.
1765 * tree-loop-distribution.c (copy_loop_before): Adjust
1766 slpeel_tree_duplicate_loop_to_edge_cfg caller.
1767 * optabs.def (maskload_optab, maskstore_optab): New optabs.
1768 * passes.def: Add a note that pass_vectorize must immediately follow
1769 pass_if_conversion.
1770 * tree-predcom.c (split_data_refs_to_components): Give up if
1771 DR_STMT is a call.
1772 * tree-vect-stmts.c (vect_mark_relevant): Don't crash if lhs is NULL.
1773 (exist_non_indexing_operands_for_use_p): Handle MASK_LOAD
1774 and MASK_STORE.
1775 (vectorizable_mask_load_store): New function.
1776 (vectorizable_call): Call it for MASK_LOAD or MASK_STORE.
1777 (vect_transform_stmt): Handle MASK_STORE.
1778 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Ignore
1779 DR_STMT where lhs is NULL.
1780 * optabs.h (can_vec_perm_p): Fix up comment typo.
1781 (can_vec_mask_load_store_p): New prototype.
1782 * optabs.c (can_vec_mask_load_store_p): New function.
1783
1784 2013-12-10 Eric Botcazou <ebotcazou@adacore.com>
1785
1786 * expr.c (expand_expr_real_1) <normal_inner_ref>: Always return 0 for
1787 the extraction of a bit-field of null size.
1788
1789 2013-12-10 Marek Polacek <polacek@redhat.com>
1790
1791 PR sanitizer/59437
1792 * vtable-verify.c (var_is_used_for_virtual_call_p): Check the
1793 return value of gimple_call_fn. Use is_gimple_call/is_gimple_assign
1794 instead of gimple_code.
1795
1796 2013-12-10 Maxim Kuvyrkov <maxim@kugelworks.com>
1797
1798 * config.gcc (mips*-mti-linux*, mips64*-*-linux*):
1799 Add android definitions.
1800 (s390x-*-linux*): Use linux-protos.h.
1801
1802 2013-12-10 Bin Cheng <bin.cheng@arm.com>
1803
1804 PR tree-optimization/41488
1805 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): Don't add cand
1806 for PEELED_CHREC kind IV.
1807 * tree-scalar-evolution.c: Include necessary header files.
1808 (peeled_chrec_map, simplify_peeled_chrec): New.
1809 (analyze_evolution_in_loop): New static variable.
1810 Call simplify_peeled_chrec.
1811 (scev_initialize): Initialize peeled_chrec_map.
1812 (scev_reset, scev_finalize): Reset and release peeled_chrec_map.
1813
1814 2013-12-09 Andrew Pinski <apinski@cavium.com>
1815
1816 * config/aarch64/t-aarch64 (MULTILIB_OPTIONS): Fix definition so
1817 that options are conflicting ones.
1818
1819 2013-12-09 Eric Botcazou <ebotcazou@adacore.com>
1820
1821 * optabs.c (gen_int_libfunc): Do not compare modes directly.
1822
1823 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1824
1825 * basic-block.h (FOR_ALL_BB): Eliminate macro.
1826
1827 * cfg.c (alloc_aux_for_blocks, clear_aux_for_blocks): Replace
1828 uses of FOR_ALL_BB with FOR_ALL_BB_FN, making uses of cfun explicit.
1829
1830 * cfganal.c (inverted_post_order_compute): Likewise.
1831 * cfgcleanup.c (try_optimize_cfg): Likewise.
1832 * cfgexpand.c (add_scope_conflicts): Likewise.
1833 * cfghooks.c (dump_flow_info, account_profile_record): Likewise.
1834 * cfgrtl.c (relink_block_chain): Likewise.
1835 * dce.c (mark_artificial_uses): Likewise.
1836 * df-core.c (df_set_blocks, df_compute_cfg_image, df_dump): Likewise.
1837 * df-problems.c (df_lr_verify_solution_start,
1838 df_lr_verify_solution_end, df_lr_verify_transfer_functions,
1839 df_live_verify_solution_start, df_live_verify_solution_end,
1840 df_live_set_all_dirty, df_live_verify_transfer_functions,
1841 df_md_local_comput): Likewise.
1842 * df-scan.c (df_scan_free_internal, df_scan_alloc)
1843 df_reorganize_refs_by_insn, df_scan_verify): Likewise.
1844 * dominance.c (compute_dom_fast_query, calculate_dominance_info,
1845 free_dominance_info): Likewise.
1846 * dse.c (dse_step1, dse_step3, dse_step4, dse_step6): Likewise.
1847 * graph.c (draw_cfg_edges): Likewise.
1848 * graphite-scop-detection.c (print_graphite_scop_statistics,
1849 dot_all_scops_1): Likewise.
1850 * graphite.c (print_global_statistics,
1851 print_graphite_scop_statistics): Likewise.
1852 * ira.c (do_reload): Likewise.
1853 * loop-init.c (loop_optimizer_finalize): Likewise.
1854 * lto-streamer-in.c (input_function): Likewise.
1855 * lto-streamer-out.c (output_function): Likewise.
1856 * mcf.c (adjust_cfg_counts): Likewise.
1857 * predict.c (estimate_loops): Likewise.
1858 * sched-rgn.c (haifa_find_rgns): Likewise.
1859 * tree-cfg.c (split_critical_edges): Likewise.
1860 * tree-dfa.c (renumber_gimple_stmt_uids): Likewise.
1861 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
1862 * tree-ssa-pre.c (compute_antic, insert, init_pre): Likewise.
1863 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
1864 * var-tracking.c (vt_initialize, vt_finalize): Likewise.
1865 * vtable-verify.c (vtable_verify_main): Likewise.
1866 * web.c (web_main): Likewise.
1867
1868 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1869
1870 * basic-block.h (FOR_EACH_BB_REVERSE): Eliminate macro.
1871
1872 * cfghooks.c (verify_flow_info): Replace uses of FOR_EACH_BB_REVERSE
1873 with FOR_EACH_BB_REVERSE_FN, making uses of cfun explicit.
1874 * cfgrtl.c (print_rtl_with_bb, rtl_verify_edges,
1875 rtl_verify_bb_insns, rtl_verify_bb_pointers,
1876 rtl_verify_bb_insn_chain, rtl_verify_fallthru): Likewise.
1877 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
1878 * config/sh/sh.c (sh_md_init_global): Likewise.
1879 * config/sh/sh_optimize_sett_clrt.cc
1880 (sh_optimize_sett_clrt::execute): Likewise.
1881 * dce.c (reset_unmarked_insns_debug_uses, delete_unmarked_insns):
1882 Likewise.
1883 * dominance.c (calc_dfs_tree): Likewise.
1884 * final.c (final): Likewise.
1885 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1886 * gcse.c (compute_code_hoist_vbeinout): Likewise.
1887 * ira.c (update_equiv_regs, build_insn_chain): Likewise.
1888 * lcm.c (compute_antinout_edge): Likewise.
1889 * mode-switching.c (optimize_mode_switching): Likewise.
1890 * postreload.c (reload_combine): Likewise.
1891 * recog.c (split_all_insns, peephole2_optimize): Likewise.
1892 * tree-ssa-live.c (live_worklist): Likewise.
1893
1894 2013-12-09 David Malcolm <dmalcolm@redhat.com>
1895
1896 * basic-block.h (FOR_EACH_BB): Eliminate macro.
1897
1898 * asan.c (transform_statements, execute_sanopt): Eliminate
1899 use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
1900 explicit.
1901 * auto-inc-dec.c (rest_of_handle_auto_inc_dec): Likewise.
1902 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges,
1903 set_edge_can_fallthru_flag, fix_up_fall_thru_edges,
1904 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes,
1905 insert_section_boundary_note, rest_of_handle_reorder_blocks,
1906 duplicate_computed_gotos): Likewise.
1907 * cfg.c (clear_edges, compact_blocks, brief_dump_cfg): Likewise.
1908 * cfganal.c (find_unreachable_blocks, add_noreturn_fake_exit_edges,
1909 compute_dominance_frontiers_1, single_pred_before_succ_order): Likewise.
1910 * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
1911 * cfgcleanup.c (try_optimize_cfg, delete_dead_jumptables): Likewise.
1912 * cfgexpand.c (add_scope_conflicts, discover_nonconstant_array_refs):
1913 Likewise.
1914 * cfgloop.c (flow_loops_cfg_dump, get_loop_body, record_loop_exits,
1915 verify_loop_structure): Likewise.
1916 * cfgloopanal.c (mark_loop_exit_edges): Likewise.
1917 * cfgrtl.c (compute_bb_for_insn, find_partition_fixes,
1918 verify_hot_cold_block_grouping, purge_all_dead_edges,
1919 fixup_abnormal_edges, record_effective_endpoints,
1920 outof_cfg_layout_mode, fixup_reorder_chain, force_one_exit_fallthru,
1921 break_superblocks): Likewise.
1922 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges,
1923 cgraph_rebuild_references): Likewise.
1924 * combine-stack-adj.c (combine_stack_adjustments): Likewise.
1925 * combine.c (delete_noop_moves, create_log_links,
1926 combine_instructions): Likewise.
1927 * config/arm/arm.c (thumb1_reorg, thumb2_reorg): Likewise.
1928 * config/bfin/bfin.c (bfin_gen_bundles, reorder_var_tracking_notes):
1929 Likewise.
1930 * config/c6x/c6x.c (c6x_gen_bundles, conditionalize_after_sched,
1931 c6x_reorg): Likewise.
1932 * config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
1933 * config/frv/frv.c (frv_optimize_membar): Likewise.
1934 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
1935 * config/ia64/ia64.c (ia64_reorg): Likewise.
1936 * config/mips/mips.c (mips_annotate_pic_calls): Likewise.
1937 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
1938 * config/rs6000/rs6000.c (rs6000_alloc_sdmode_stack_slot): Likewise.
1939 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
1940 * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Likewise.
1941 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
1942 * config/tilegx/tilegx.c (tilegx_gen_bundles,
1943 reorder_var_tracking_notes): Likewise.
1944 * config/tilepro/tilepro.c (tilepro_gen_bundles,
1945 reorder_var_tracking_notes): Likewise.
1946 * coverage.c (coverage_compute_cfg_checksum): Likewise.
1947 * cprop.c (compute_hash_table_work, compute_cprop_data,
1948 local_cprop_pass, find_implicit_sets): Likewise.
1949 * cse.c (cse_condition_code_reg): Likewise.
1950 * dce.c (prescan_insns_for_dce): Likewise.
1951 * df-core.c (df_compact_blocks): Likewise.
1952 * df-problems.c (df_word_lr_alloc): Likewise.
1953 * df-scan.c (df_scan_start_dump, df_scan_blocks, df_insn_rescan_all,
1954 df_update_entry_exit_and_calls): Likewise.
1955 * dominance.c (calculate_dominance_info, verify_dominators,
1956 debug_dominance_info): Likewise.
1957 * dse.c (dse_step5_nospill): Likewise.
1958 * except.c (finish_eh_generation): Likewise.
1959 * final.c (compute_alignments): Likewise.
1960 * function.c (thread_prologue_and_epilogue_insns,
1961 rest_of_match_asm_constraints): Likewise.
1962 * gcse.c (compute_hash_table_work, prune_expressions,
1963 compute_pre_data, compute_code_hoist_vbeinout, hoist_code,
1964 calculate_bb_reg_pressure, compute_ld_motion_mems): Likewise.
1965 * gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
1966 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour,
1967 find_explicit_erroneous_behaviour): Likewise.
1968 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa,
1969 rewrite_cross_bb_scalar_deps_out_of_ssa): Likewise.
1970 * haifa-sched.c (haifa_sched_init): Likewise.
1971 * hw-doloop.c (discover_loops, set_bb_indices, reorder_loops):
1972 Likewise.
1973 * ifcvt.c (if_convert): Likewise.
1974 * init-regs.c (initialize_uninitialized_regs): Likewise.
1975 * ipa-prop.c (ipcp_transform_function): Likewise.
1976 * ipa-pure-const.c (analyze_function): Likewise.
1977 * ipa-split.c (find_split_points, execute_split_functions): Likewise.
1978 * ira-build.c (form_loop_tree): Likewise.
1979 * ira-costs.c (find_costs_and_classes): Likewise.
1980 * ira-emit.c (emit_moves, add_ranges_and_copies, ira_emit): Likewise.
1981 * ira.c (decrease_live_ranges_number, compute_regs_asm_clobbered,
1982 mark_elimination, update_equiv_regs, find_moveable_pseudos,
1983 split_live_ranges_for_shrink_wrap, allocate_initial_values): Likewise.
1984 * jump.c (mark_all_labels): Likewise.
1985 * lcm.c (compute_laterin, compute_insert_delete, compute_available,
1986 compute_nearerout, compute_rev_insert_delete): Likewise.
1987 * loop-init.c (fix_loop_structure): Likewise.
1988 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
1989 * lower-subreg.c (decompose_multiword_subregs,
1990 decompose_multiword_subregs): Likewise.
1991 * lra-assigns.c (assign_by_spills): Likewise.
1992 * lra-coalesce.c (lra_coalesce): Likewise.
1993 * lra-constraints.c (lra_inheritance, remove_inheritance_pseudos):
1994 Likewise.
1995 * lra-eliminations.c (lra_init_elimination): Likewise.
1996 * lra-spills.c (assign_spill_hard_regs, spill_pseudos,
1997 lra_final_code_change): Likewise.
1998 * lra.c (remove_scratches, check_rtl, has_nonexceptional_receiver,
1999 update_inc_notes): Likewise.
2000 * mcf.c (adjust_cfg_counts): Likewise.
2001 * mode-switching.c (optimize_mode_switching): Likewise.
2002 * modulo-sched.c (rest_of_handle_sms): Likewise.
2003 * omp-low.c (optimize_omp_library_calls, expand_omp_taskreg,
2004 expand_omp_target): Likewise.
2005 * postreload-gcse.c (alloc_mem, compute_hash_table): Likewise.
2006 * postreload.c (reload_cse_regs_1): Likewise.
2007 * predict.c (strip_predict_hints, tree_bb_level_predictions,
2008 tree_estimate_probability, expensive_function_p,
2009 estimate_bb_frequencies, compute_function_frequency): Likewise.
2010 * profile.c (is_inconsistent, compute_branch_probabilities,
2011 branch_prob): Likewise.
2012 * ree.c (find_removable_extensions): Likewise.
2013 * reg-stack.c (compensate_edges, convert_regs, reg_to_stack): Likewise.
2014 * regcprop.c (copyprop_hardreg_forward): Likewise.
2015 * reginfo.c (init_subregs_of_mode): Likewise.
2016 * regrename.c (regrename_analyze): Likewise.
2017 * regstat.c (regstat_compute_ri, regstat_compute_calls_crossed):
2018 Likewise.
2019 * reload1.c (has_nonexceptional_receiver, reload,
2020 calculate_elim_costs_all_insns): Likewise.
2021 * resource.c (init_resource_info, free_resource_info): Likewise.
2022 * sched-ebb.c (schedule_ebbs): Likewise.
2023 * sched-rgn.c (is_cfg_nonregular, find_single_block_region,
2024 haifa_find_rgns, sched_rgn_local_init): Likewise.
2025 * sel-sched-dump.c (sel_dump_cfg_2): Likewise.
2026 * sel-sched-ir.c (init_lv_sets, free_lv_sets,
2027 make_regions_from_the_rest): Likewise.
2028 * sese.c (build_sese_loop_nests, sese_build_liveouts): Likewise.
2029 * stack-ptr-mod.c (notice_stack_pointer_modification): Likewise.
2030 * store-motion.c (compute_store_table, build_store_vectors,
2031 one_store_motion_pass): Likewise.
2032 * tracer.c (tail_duplicate): Likewise.
2033 * trans-mem.c (compute_transaction_bits): Likewise.
2034 * tree-call-cdce.c (tree_call_cdce): Likewise.
2035 * tree-cfg.c (replace_loop_annotate, factor_computed_gotos,
2036 fold_cond_expr_cond, make_edges, assign_discriminators,
2037 make_abnormal_goto_edges, cleanup_dead_labels, group_case_labels,
2038 dump_cfg_stats, gimple_verify_flow_info, print_loop,
2039 execute_fixup_cfg): Likewise.
2040 * tree-cfgcleanup.c (cleanup_tree_cfg_1, merge_phi_nodes): Likewise.
2041 * tree-complex.c (init_dont_simulate_again, tree_lower_complex):
2042 Likewise.
2043 * tree-dfa.c (collect_dfa_stats, dump_enumerated_decls): Likewise.
2044 * tree-eh.c (execute_lower_resx, execute_lower_eh_dispatch,
2045 mark_reachable_handlers): Likewise.
2046 * tree-emutls.c (lower_emutls_function_body): Likewise.
2047 * tree-if-conv.c (main_tree_if_conversion): Likewise.
2048 * tree-inline.c (optimize_inline_calls): Likewise.
2049 * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Likewise.
2050 * tree-nrv.c (tree_nrv, execute_return_slot_opt): Likewise.
2051 * tree-object-size.c (compute_object_sizes): Likewise.
2052 * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees,
2053 insert_backedge_copies, tree_profiling): Likewise.
2054 * tree-scalar-evolution.c (scev_const_prop): Likewise.
2055 * tree-sra.c (scan_function, sra_modify_function_body,
2056 propagate_dereference_distances, ipa_sra_modify_function_body,
2057 convert_callers): Likewise.
2058 * tree-ssa-ccp.c (ccp_initialize, execute_fold_all_builtins): Likewise.
2059 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
2060 create_outofssa_var_map, coalesce_partitions): Likewise.
2061 * tree-ssa-copy.c (init_copy_prop): Likewise.
2062 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
2063 * tree-ssa-dce.c (find_obviously_necessary_stmts,
2064 eliminate_unnecessary_stmts): Likewise.
2065 * tree-ssa-dom.c (free_all_edge_infos, tree_ssa_dominator_optimize):
2066 Likewise.
2067 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
2068 * tree-ssa-live.c (clear_unused_block_pointer, remove_unused_locals,
2069 new_tree_live_info, calculate_live_on_exit, dump_live_info,
2070 analyze_memory_references, fill_always_executed_in,
2071 tree_ssa_lim_finalize): Likewise.
2072 * tree-ssa-loop-manip.c (find_uses_to_rename, verify_loop_closed_ssa):
2073 Likewise.
2074 * tree-ssa-math-opts.c (execute_cse_reciprocals, execute_cse_sincos,
2075 execute_optimize_bswap, execute_optimize_widening_mul): Likewise.
2076 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2077 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
2078 * tree-ssa-tail-merge.c (find_same_succ, reset_cluster_vectors):
2079 Likewise.
2080 * tree-ssa-ter.c (find_replaceable_exprs): Likewise.
2081 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2082 * tree-ssa-uncprop.c (associate_equivalences_with_edges,
2083 tree_ssa_uncprop): Likewise.
2084 * tree-ssa-uninit.c (warn_uninitialized_vars,
2085 execute_late_warn_uninitialized): Likewise.
2086 * tree-ssa.c (verify_ssa, execute_update_addresses_taken): Likewise.
2087 * tree-stdarg.c (check_all_va_list_escapes, execute_optimize_stdarg):
2088 Likewise.
2089 * tree-switch-conversion.c (do_switchconv): Likewise.
2090 * tree-vect-generic.c (expand_vector_operations): Likewise.
2091 * tree-vectorizer.c (adjust_simduid_builtins, note_simd_array_uses,
2092 execute_vect_slp): Likewise.
2093 * tree-vrp.c (check_all_array_refs, remove_range_assertions,
2094 vrp_initialize, identify_jump_threads, instrument_memory_accesses):
2095 Likewise.
2096 * ubsan.c (ubsan_pass): Likewise.
2097 * value-prof.c (verify_histograms,
2098 gimple_value_profile_transformations, gimple_find_values_to_profile):
2099 Likewise.
2100 * var-tracking.c (vt_find_locations, dump_dataflow_sets, vt_emit_notes,
2101 vt_initialize, delete_debug_insns, vt_finalize): Likewise.
2102
2103 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2104
2105 * basic-block.h (last_basic_block): Eliminate macro.
2106
2107 * asan.c (transform_statements): Eliminate use of last_basic_block
2108 in favor of last_basic_block_for_fn, in order to make use of cfun
2109 explicit.
2110 * bb-reorder.c (copy_bb, reorder_basic_blocks): Likewise.
2111 * bt-load.c (compute_defs_uses_and_gen, compute_kill, compute_out,
2112 link_btr_uses, build_btr_def_use_webs, migrate_btr_defs): Likewise.
2113 * cfg.c (compact_blocks): Likewise.
2114 * cfganal.c (mark_dfs_back_edges,
2115 control_dependences::control_dependences, post_order_compute,
2116 pre_and_rev_post_order_compute_fn, dfs_enumerate_from, compute_idf,
2117 single_pred_before_succ_order): Likewise.
2118 * cfgbuild.c (make_edges): Likewise.
2119 * cfgexpand.c (add_scope_conflicts, gimple_expand_cfg): Likewise.
2120 * cfghooks.c (verify_flow_info): Likewise.
2121 * cfgloop.c (verify_loop_structure): Likewise.
2122 * cfgloopanal.c (just_once_each_iteration_p,
2123 mark_irreducible_loops): Likewise.
2124 * cfgloopmanip.c (fix_bb_placements, remove_path,
2125 update_dominators_in_loop): Likewise.
2126 * cfgrtl.c (create_basic_block_structure, rtl_create_basic_block,
2127 break_superblocks, rtl_flow_call_edges_add): Likewise.
2128 * config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
2129 * config/frv/frv.c (frv_optimize_membar): Likewise.
2130 * config/mips/mips.c (r10k_insert_cache_barriers): Likewise.
2131 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
2132 * cprop.c (compute_local_properties, find_implicit_sets,
2133 bypass_conditional_jumps, one_cprop_pass): Likewise.
2134 * cse.c (cse_main): Likewise.
2135 * df-core.c (rest_of_handle_df_initialize, df_worklist_dataflow,
2136 df_analyze, df_grow_bb_info, df_compact_blocks): Likewise.
2137 * df-problems.c (df_lr_verify_solution_start,
2138 df_live_verify_solution_start, df_md_local_compute): Likewise.
2139 * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2140 calc_idoms): Likewise.
2141 * domwalk.c (dom_walker::walk): Likewise.
2142 * dse.c (dse_step0, dse_step3): Likewise.
2143 * function.c (epilogue_done): Likewise.
2144 * gcse.c (alloc_gcse_mem, compute_local_properties,
2145 prune_insertions_deletions, compute_pre_data,
2146 pre_expr_reaches_here_p, one_pre_gcse_pass,
2147 compute_code_hoist_vbeinout, should_hoist_expr_to_dom, hoist_code,
2148 one_code_hoisting_pass): Likewise.
2149 * graph.c (draw_cfg_nodes_no_loops): Likewise.
2150 * graphite-sese-to-poly.c (build_scop_bbs): Likewise.
2151 * haifa-sched.c (unlink_bb_notes): Likewise.
2152 * ipa-split.c (execute_split_functions): Likewise.
2153 * ira-build.c (create_loop_tree_nodes, remove_unnecessary_regions):
2154 Likewise.
2155 * ira-emit.c (ira_emit): Likewise.
2156 * ira.c (find_moveable_pseudos, ira): Likewise.
2157 * lcm.c (compute_antinout_edge, compute_laterin,
2158 compute_insert_delete, pre_edge_lcm, compute_available,
2159 compute_nearerout, compute_rev_insert_delete,
2160 pre_edge_rev_lcm): Likewise.
2161 * loop-unroll.c (opt_info_start_duplication, apply_opt_in_copies):
2162 Likewise.
2163 * lower-subreg.c (decompose_multiword_subregs): Likewise.
2164 * lra-lives.c (lra_create_live_ranges): Likewise.
2165 * lra.c (lra): Likewise.
2166 * mode-switching.c (optimize_mode_switching): Likewise.
2167 * recog.c (split_all_insns): Likewise.
2168 * regcprop.c (copyprop_hardreg_forward): Likewise.
2169 * regrename.c (regrename_analyze): Likewise.
2170 * reload1.c (reload): Likewise.
2171 * resource.c (init_resource_info): Likewise.
2172 * sched-rgn.c (haifa_find_rgns, extend_rgns, compute_trg_info,
2173 realloc_bb_state_array, schedule_region, extend_regions): Likewise.
2174 * sel-sched-ir.c (sel_extend_global_bb_info, extend_region_bb_info,
2175 recompute_rev_top_order, sel_init_pipelining,
2176 make_regions_from_the_rest): Likewise.
2177 * store-motion.c (remove_reachable_equiv_notes,build_store_vectors)
2178 Likewise.
2179 * tracer.c (tail_duplicate): Likewise.
2180 * trans-mem.c (tm_region_init, get_bb_regions_instrumented): Likewise.
2181 * tree-cfg.c (create_bb, cleanup_dead_labels, gimple_dump_cfg,
2182 gimple_flow_call_edges_add): Likewise.
2183 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls,
2184 cleanup_tree_cfg_1): Likewise.
2185 * tree-complex.c (tree_lower_complex): Likewise.
2186 * tree-inline.c (copy_cfg_body): Likewise.
2187 * tree-into-ssa.c (mark_phi_for_rewrite, rewrite_into_ssa,
2188 prepare_def_site_for, update_ssa): Likewise.
2189 * tree-ssa-dce.c (tree_dce_init, perform_tree_ssa_dce): Likewise.
2190 * tree-ssa-dom.c (record_edge_info): Likewise.
2191 * tree-ssa-live.c (new_tree_live_info, live_worklist): Likewise.
2192 * tree-ssa-loop-im.c (fill_always_executed_in_1): Likewise.
2193 * tree-ssa-loop-manip.c (copy_phi_node_args
2194 gimple_duplicate_loop_to_header_edge): Likewise.
2195 * tree-ssa-pre.c (compute_antic): Likewise.
2196 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
2197 * tree-ssa-reassoc.c (init_reassoc): Likewise.
2198 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
2199 * tree-ssa-tail-merge.c (init_worklist): Likewise.
2200 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
2201 * tree-stdarg.c (reachable_at_most_once): Likewise.
2202 * tree-vrp.c (find_assert_locations): Likewise.
2203 * var-tracking.c (vt_find_locations): Likewise.
2204
2205 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2206
2207 * basic-block.h (profile_status): Eliminate macro.
2208
2209 * cfgbuild.c (find_many_sub_basic_blocks): Eliminate use of
2210 profile_status macro in favor of profile_status_for_fn, making
2211 use of cfun explicit.
2212 * cfghooks.c (account_profile_record): Likewise.
2213 * cfgloopanal.c (single_likely_exit):
2214 * cfgrtl.c (rtl_verify_edges, rtl_account_profile_record): Likewise.
2215 * graphite.c (graphite_finalize):
2216 * internal-fn.c (ubsan_expand_si_overflow_addsub_check,
2217 ubsan_expand_si_overflow_neg_check,
2218 ubsan_expand_si_overflow_mul_check): Likewise.
2219 * ipa-split.c (consider_split, execute_split_functions):
2220 * loop-unroll.c (decide_peel_simple):
2221 * optabs.c (emit_cmp_and_jump_insn_1):
2222 * predict.c (maybe_hot_edge_p, probably_never_executed,
2223 predictable_edge_p, probability_reliable_p, gimple_predict_edge,
2224 tree_estimate_probability_driver, estimate_bb_frequencies,
2225 compute_function_frequency, rebuild_frequencies): Likewise.
2226 * profile.c (compute_branch_probabilities): Likewise.
2227 * tree-cfg.c (gimple_account_profile_record): Likewise.
2228 * tree-inline.c (optimize_inline_calls): Likewise.
2229
2230 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2231
2232 * basic-block.h (label_to_block_map): Eliminate macro.
2233
2234 * gimple.c (gimple_set_bb): Replace uses of label_to_block_map with
2235 uses of label_to_block_map_for_fn, making uses of cfun be explicit.
2236 * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
2237 (verify_gimple_label): Likewise.
2238
2239 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2240
2241 * basic-block.h (basic_block_info): Eliminate macro.
2242
2243 * cfgrtl.c (rtl_create_basic_block): Replace uses of basic_block_info
2244 with basic_block_info_for_fn, making uses of cfun be explicit.
2245 * tree-cfg.c (build_gimple_cfg, create_bb): Likewise.
2246
2247 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2248
2249 * basic-block.h (BASIC_BLOCK): Eliminate macro.
2250
2251 * alias.c (init_alias_analysis): Eliminate BASIC_BLOCK macro in
2252 favor of uses of BASIC_BLOCK_FOR_FN, making uses of cfun explicit.
2253 * bt-load.c (compute_defs_uses_and_gen, compute_out, link_btr_uses,
2254 block_at_edge_of_live_range_p, migrate_btr_defs): Likewise.
2255 * caller-save.c (insert_one_insn): Likewise.
2256 * cfg.c (debug_bb, get_bb_original, get_bb_copy): Likewise.
2257 * cfgexpand.c (add_scope_conflicts): Likewise.
2258 * cfghooks.c (verify_flow_info): Likewise.
2259 * cfgloop.c (flow_loops_find): Likewise.
2260 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2261 * config/mips/mips.c (r10k_insert_cache_barriers): Likewise.
2262 * config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
2263 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
2264 * cse.c (cse_main): Likewise.
2265 * dce.c (fast_dce): Likewise.
2266 * df-core.c (df_set_blocks, df_worklist_propagate_forward,
2267 df_worklist_propagate_backward, df_worklist_dataflow_doublequeue,
2268 df_bb_replace, df_dump_region): Likewise.
2269 * df-problems.c (df_rd_bb_local_compute, df_lr_bb_local_compute,
2270 df_live_bb_local_compute, df_chain_remove_problem)
2271 df_chain_create_bb, df_word_lr_bb_local_compute, df_note_bb_compute,
2272 df_md_bb_local_compute, df_md_local_compute,
2273 df_md_transfer_function): Likewise.
2274 * df-scan.c (df_scan_blocks, df_reorganize_refs_by_reg_by_insn,
2275 df_reorganize_refs_by_insn, df_bb_refs_collect,
2276 df_record_entry_block_defs, df_update_entry_block_defs,
2277 df_record_exit_block_uses): Likewise.
2278 * dominance.c (nearest_common_dominator_for_set): Likewise.
2279 * gcse.c (hoist_code): Likewise.
2280 * graph.c (draw_cfg_nodes_no_loops): Likewise.
2281 * ipa-inline-analysis.c (param_change_prob,
2282 estimate_function_body_sizes): Likewise.
2283 * ipa-split.c (dominated_by_forbidden): Likewise.
2284 * loop-unroll.c (apply_opt_in_copies): Likewise.
2285 * lower-subreg.c (decompose_multiword_subregs): Likewise.
2286 * lra-lives.c (lra_create_live_ranges): Likewise.
2287 * predict.c (propagate_freq): Likewise.
2288 * regrename.c (regrename_analyze): Likewise.
2289 * regstat.c (regstat_bb_compute_ri, regstat_bb_compute_calls_crossed):
2290 Likewise.
2291 * resource.c (mark_target_live_regs): Likewise.
2292 * sched-ebb.c (ebb_fix_recovery_cfg): Likewise.
2293 * sched-int.h (EBB_FIRST_BB, EBB_LAST_BB): Likewise.
2294 * sched-rgn.c (debug_region, dump_region_dot, too_large,
2295 haifa_find_rgns, extend_rgns, compute_dom_prob_ps, update_live,
2296 propagate_deps, sched_is_disabled_for_current_region_p): Likewise.
2297 * sched-vis.c (debug_bb_n_slim): Likewise.
2298 * sel-sched-ir.c (sel_finish_global_and_expr, verify_backedges,
2299 purge_empty_blocks, sel_remove_loop_preheader): Likewise.
2300 * sel-sched.c (remove_insns_that_need_bookkeeping)
2301 (current_region_empty_p, sel_region_init, simplify_changed_insns):
2302 Likewise.
2303 * trans-mem.c (execute_tm_mark, execute_tm_edges,
2304 tm_memopt_compute_antic, ipa_tm_scan_irr_function): Likewise.
2305 * tree-cfg.c (make_edges, end_recording_case_labels,
2306 label_to_block_fn, gimple_debug_bb, gimple_flow_call_edges_add,
2307 remove_edge_and_dominated_blocks, remove_edge_and_dominated_blocks,
2308 gimple_purge_all_dead_eh_edges,
2309 gimple_purge_all_dead_abnormal_call_edges): Likewise.
2310 * tree-cfgcleanup.c (fixup_noreturn_call,
2311 split_bbs_on_noreturn_calls, cleanup_tree_cfg_1): Likewise.
2312 * tree-inline.c (copy_cfg_body, fold_marked_statements): Likewise.
2313 * tree-into-ssa.c (set_livein_block, prune_unused_phi_nodes,
2314 insert_phi_nodes_for, insert_updated_phi_nodes_for): Likewise.
2315 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2316 * tree-ssa-live.c (live_worklist): Likewise.
2317 * tree-ssa-loop-manip.c (compute_live_loop_exits, add_exit_phis_var,
2318 find_uses_to_rename, copy_phi_node_args): Likewise.
2319 * tree-ssa-pre.c (compute_antic): Likewise.
2320 * tree-ssa-reassoc.c (update_range_test, optimize_range_tests):
2321 Likewise.
2322 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
2323 * tree-ssa-tail-merge.c (same_succ_hash, same_succ_def::equal,
2324 same_succ_flush_bbs, update_worklist, set_cluster,
2325 same_phi_alternatives, find_clusters_1, apply_clusters,
2326 update_debug_stmts): Likewise.
2327 * tree-ssa-threadupdate.c (mark_threaded_blocks,
2328 thread_through_all_blocks): Likewise.
2329 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
2330 * tree-vrp.c (find_assert_locations): Likewise.
2331
2332 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2333
2334 * basic-block.h (SET_BASIC_BLOCK): Eliminate macro.
2335
2336 * cfg.c (compact_blocks): Replace uses of SET_BASIC_BLOCK
2337 with SET_BASIC_BLOCK_FOR_FN, making use of cfun explicit.
2338 (expunge_block): Likewise.
2339 * cfgrtl.c (create_basic_block_structure): Likewise.
2340 * df-core.c (df_compact_blocks, df_bb_replace): Likewise.
2341 * sel-sched.c (create_block_for_bookkeeping): Likewise.
2342 * tree-cfg.c (create_bb): Likewise.
2343
2344 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2345
2346 * basic-block.h (profile_status_for_function): Rename to...
2347 (profile_status_for_fn): ...this.
2348
2349 * cfg.c (check_bb_profile): Update for renaming.
2350 * cgraphbuild.c (compute_call_stmt_bb_frequency): Likewise.
2351 * lto-streamer-in.c (input_cfg): Likewise.
2352 * lto-streamer-out.c (output_cfg): Likewise.
2353 * predict.c (maybe_hot_frequency_p, maybe_hot_count_p,
2354 maybe_hot_bb_p, probably_never_executed)
2355 (handle_missing_profiles): Likewise.
2356 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
2357 * tree-inline.c (copy_bb, initialize_cfun): Likewise.
2358
2359 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2360
2361 * basic-block.h (label_to_block_map_for_function): Rename to...
2362 (label_to_block_map_for_fn): ...this.
2363
2364 * lto-streamer-in.c (input_cfg): Update for renaming.
2365 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
2366
2367 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2368
2369 * basic-block.h (last_basic_block_for_function): Rename to...
2370 (last_basic_block_for_fn): ...this.
2371
2372 * ipa-utils.c (ipa_merge_profiles): Update for renaming of
2373 last_basic_block_for_function to last_basic_block_for_fn.
2374 * lto-streamer-in.c (input_cfg): Likewise.
2375 * lto-streamer-out.c (output_cfg): Likewise.
2376 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
2377 * tree-sra.c (propagate_dereference_distances, ipa_early_sra):
2378 Likewise.
2379
2380 2013-12-09 David Malcolm <dmalcolm@redhat.com>
2381
2382 * basic-block.h (basic_block_info_for_function): Rename to...
2383 (basic_block_info_for_fn): ...this.
2384 (BASIC_BLOCK_FOR_FUNCTION): Rename to...
2385 (BASIC_BLOCK_FOR_FN): ...this.
2386 (SET_BASIC_BLOCK_FOR_FUNCTION): Rename to...
2387 (SET_BASIC_BLOCK_FOR_FN): ...this.
2388
2389 * gimple-streamer-in.c (input_phi, input_bb): Update for renaming
2390 of BASIC_BLOCK_FOR_FUNCTION to BASIC_BLOCK_FOR_FN.
2391 * ipa-utils.c (ipa_merge_profiles): Likewise.
2392 * lto-streamer-in.c (make_new_block): Update for renaming of
2393 SET_BASIC_BLOCK_FOR_FUNCTION to SET_BASIC_BLOCK_FOR_FN.
2394 (input_cfg): Update for renamings.
2395 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
2396 (dump_function_to_file): Update for renaming of
2397 basic_block_info_for_function to basic_block_info_for_fn.
2398
2399 2013-12-09 Richard Biener <rguenther@suse.de>
2400
2401 PR middle-end/38474
2402 * tree-ssa-structalias.c (set_union_with_increment): Remove
2403 unreachable code.
2404 (do_complex_constraint): Call set_union_with_increment with
2405 the solution delta, not the full solution.
2406 (make_transitive_closure_constraints): Merge the two constraints.
2407
2408 2013-12-09 Richard Earnshaw <rearnsha@arm.com>
2409
2410 * arm.c (mem_ok_for_ldrd_strd): Rename first argument as MEM. Do
2411 more address validation checks.
2412
2413 2013-12-09 Marek Polacek <polacek@redhat.com>
2414
2415 PR sanitizer/59415
2416 * vtable-verify.c (verify_bb_vtables): Check the return value
2417 of gimple_call_fn. Use is_gimple_call instead of gimple_code.
2418
2419 2013-12-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2420
2421 * config/arm/arm.md (generic_sched): Add cortexa12.
2422 (generic_vfp): Likewise.
2423 * config/arm/arm.c (cortexa12_extra_costs): New cost table.
2424 (arm_cortex_a12_tune): New tuning struct.
2425 * config/arm/arm-cores.def: Add cortex-a12.
2426 * config/arm/arm-tables.opt: Regenerate.
2427 * config/arm/arm-tune.md: Likewise.
2428 * config/arm/bpabi.h: Add cortex-a12.
2429 * doc/invoke.texi: Document -mcpu=cortex-a12.
2430
2431 2013-12-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2432
2433 * doc/install.texi (Prerequisites): Explicitly mention C library
2434 and its headers for multilib builds.
2435
2436 2013-12-08 Oleg Endo <olegendo@gcc.gnu.org>
2437
2438 PR target/52898
2439 PR target/51697
2440 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
2441 OPT_mcbranchdi entry.
2442 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Mark as undocumented and
2443 emit a warning.
2444 * config/sh/sh.c (sh_option_override): Initialize TARGET_CBRANCHDI4
2445 and TARGET_CMPEQDI_T variables.
2446 * doc/invoke.texi (SH options): Undocument -mcbranchdi and -mcmpeqdi.
2447
2448 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
2449
2450 * config/linux.h: Fix typo in a comment.
2451
2452 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
2453
2454 * config.gcc (*linux*): Split libc selection from Android support.
2455 Add libc selection to all *linux* targets. Add Android support to
2456 architectures that support it.
2457 (arm*-*-linux-*, i[34567]86-*-linux*, x86_64-*-linux*,)
2458 (mips*-*-linux*): Add Android support.
2459
2460 2013-12-07 Alexander Ivchenko <alexander.ivchenko@intel.com>
2461 Maxim Kuvyrkov <maxim@kugelworks.com>
2462
2463 * config/bfin/uclinux.h, config/c6x/uclinux-elf.h,
2464 * config/lm32/uclinux-elf.h, config/m68k/uclinux.h,
2465 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Move definitions
2466 to linux.h.
2467 * config/linux-android.h (TARGET_HAS_IFUNC_P): Move definition
2468 to linux.h.
2469 * config/linux.h (TARGET_LIBC_HAS_FUNCTION, TARGET_HAS_IFUNC_P):
2470 Define appropriately for Linux and uClinux targets.
2471
2472 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
2473
2474 * config/linux.c (linux_has_ifunc_p): Use correct test.
2475
2476 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
2477
2478 * config/linux.c (linux_android_has_ifunc_p): Rename to
2479 linux_has_ifunc_p.
2480 (linux_android_libc_has_function): Rename to linux_libc_has_function.
2481 * config/linux-protos.h (linux_android_has_ifunc_p,)
2482 (linux_android_libc_has_function): Update declarations.
2483 * config/linux.h, config/linux-android.h, config/alpha/linux.h,
2484 * config/rs6000/linux.h, config/rs6000/linux64.h: Update.
2485
2486 2013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com>
2487
2488 * linux-android.c: Rename to linux.c.
2489 * t-linux-android: Rename to t-linux. Update references
2490 to linux-android.c
2491 * config.gcc: Update references to t-linux-android and linux-android.o.
2492
2493 2013-12-07 Alan Modra <amodra@gmail.com>
2494
2495 * config/rs6000/rs6000.md (bswapdi2_32bit): Remove ?? from r->r
2496 alternative.
2497
2498 2013-12-07 Ralf Corsépius <ralf.corsepius@rtems.org>
2499
2500 * config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT.
2501
2502 2013-12-06 Vladimir Makarov <vmakarov@redhat.com>
2503
2504 * config/rs6000/rs600.md (*bswapdi2_64bit): Remove ?? from the
2505 constraint.
2506
2507 2013-12-06 Caroline Tice <cmtice@google.com>
2508
2509 Submitting patch from Stephen Checkoway, s@cs.jhu.edu
2510 * vtable-verify.c (verify_bb_vtables): Replace all uses of verified
2511 vtable pointer with the results of the verification call, rather than
2512 only the uses in the next statement.
2513
2514 2013-12-06 Andrew Pinski <apinski@cavium.com>
2515
2516 PR target/59092
2517 * config/aarch64/aarch64.md (trap): New pattern.
2518
2519 2013-12-06 Jakub Jelinek <jakub@redhat.com>
2520
2521 PR tree-optimization/59388
2522 * tree-ssa-reassoc.c (update_range_test): If op == range->exp,
2523 gimplify tem after stmt rather than before it.
2524
2525 * tree-data-ref.c (struct data_ref_loc_d): Replace pos field with ref.
2526 (get_references_in_stmt): Don't record operand addresses, but
2527 operands themselves.
2528 (find_data_references_in_stmt, graphite_find_data_references_in_stmt):
2529 Adjust for the pos -> ref change.
2530
2531 2013-12-06 H.J. Lu <hongjiu.lu@intel.com>
2532
2533 * config.gcc: Change --with-cpu=ia to --with-cpu=intel.
2534
2535 * config/i386/i386.c (cpu_names): Replace "ia" with "intel".
2536 (processor_alias_table): Likewise.
2537 (ix86_option_override_internal): Likewise.
2538 * config/i386/i386.h (target_cpu_default): Replace
2539 TARGET_CPU_DEFAULT_ia with TARGET_CPU_DEFAULT_intel.
2540
2541 * doc/invoke.texi: Replace -mtune=ia with -mtune=intel.
2542
2543 2013-12-06 Uros Bizjak <ubizjak@gmail.com>
2544
2545 PR target/59405
2546 * config/i386/i386.c (type_natural_mode): Properly handle
2547 size 8 for !TARGET_64BIT.
2548
2549 2013-12-06 Trevor Saunders <tsaunders@mozilla.com>
2550
2551 * tree-ssa-pre.c (compute_antic_aux): Remove redundant call to
2552 vec::release.
2553
2554 2013-12-06 Ian Bolton <ian.bolton@arm.com>
2555 Mark Mitchell <mark@codesourcery.com>
2556
2557 PR target/59091
2558 * config/arm/arm.md (trap): New pattern.
2559 * config/arm/types.md: Added a type for trap.
2560
2561 2013-12-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
2562
2563 * expr.c (expand_assignment): Update bitregion_start and bitregion_end.
2564
2565 2013-12-06 Eric Botcazou <ebotcazou@adacore.com>
2566
2567 PR target/59316
2568 * config/sparc/sparc.h (SPARC_LOW_FE_EXCEPT_VALUES): Define.
2569 * config/sparc/sol2.h (SPARC_LOW_FE_EXCEPT_VALUES): Redefine.
2570 * config/sparc/sparc.c (TARGET_INIT_BUILTINS): Move around.
2571 (TARGET_BUILTIN_DECL): Define.
2572 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Likewise.
2573 (sparc32_initialize_trampoline): Adjust call to gen_flush.
2574 (enum sparc_builtins): New enumeral type.
2575 (sparc_builtins): New static array.
2576 (sparc_builtins_icode): Likewise.
2577 (def_builtin): Accept a separate icode and save the result.
2578 (def_builtin_const): Likewise.
2579 (sparc_fpu_init_builtins): New function.
2580 (sparc_vis_init_builtins): Pass the builtin code.
2581 (sparc_init_builtins): Call it if TARGET_FPU.
2582 (sparc_builtin_decl): New function.
2583 (sparc_expand_builtin): Deal with SPARC_BUILTIN_{LD,ST}FSR.
2584 (sparc_handle_vis_mul8x16): Use the builtin code.
2585 (sparc_fold_builtin): Likewise. Deal with SPARC_BUILTIN_{LD,ST}FSR
2586 and SPARC_BUILTIN_PDISTN.
2587 (compound_expr): New helper function.
2588 (sparc_atomic_assign_expand_fenv): New function.
2589 * config/sparc/sparc.md (unspecv): Reorder values, add UNSPECV_LDFSR
2590 and UNSPECV_STFSR.
2591 (flush, flushdi): Merge into single pattern.
2592 (ldfsr): New instruction.
2593 (stfsr): Likewise.
2594
2595 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
2596
2597 * asan.c: Remove struct tags when referring to class varpool_node.
2598 * cgraph.h: Likewise.
2599 * cgraphbuild.c: Likewise.
2600 * cgraphunit.c: Likewise.
2601 * dbxout.c: Likewise.
2602 * dwarf2out.c: Likewise.
2603 * gimple-fold.c: Likewise.
2604 * ipa-devirt.c: Likewise.
2605 * ipa-ref-inline.h: Likewise.
2606 * ipa-ref.h: Likewise.
2607 * ipa-reference.c: Likewise.
2608 * ipa-utils.c: Likewise.
2609 * ipa.c: Likewise.
2610 * lto-cgraph.c: Likewise.
2611 * lto-streamer-out.c: Likewise.
2612 * lto-streamer.h: Likewise.
2613 * passes.c: Likewise.
2614 * toplev.c: Likewise.
2615 * tree-eh.c: Likewise.
2616 * tree-emutls.c: Likewise.
2617 * tree-pass.h: Likewise.
2618 * tree-ssa-structalias.c: Likewise.
2619 * tree-vectorizer.c: Likewise.
2620 * tree.c: Likewise.
2621 * varasm.c: Likewise.
2622 * varpool.c: Likewise.
2623
2624 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
2625
2626 * cgraphunit.c: Remove struct tags when referring to class
2627 ipa_opt_pass_d or class opt_pass.
2628 * function.h: Likewise.
2629 * lto-cgraph.c: Likewise.
2630 * pass_manager.h: Likewise.
2631 * passes.c: Likewise.
2632 * tree-pass.h: Likewise.
2633
2634 2013-12-06 Richard Biener <rguenther@suse.de>
2635
2636 PR tree-optimization/59058
2637 * tree-vectorizer.h (struct _loop_vec_info): Add num_itersm1 member.
2638 (LOOP_VINFO_NITERSM1): New macro.
2639 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Express
2640 the vector loop entry test in terms of scalar latch executions.
2641 (vect_do_peeling_for_alignment): Update LOOP_VINFO_NITERSM1.
2642 * tree-vect-loop.c (vect_get_loop_niters): Also return the
2643 number of latch executions.
2644 (new_loop_vec_info): Initialize LOOP_VINFO_NITERSM1.
2645 (vect_analyze_loop_form): Likewise.
2646 (vect_generate_tmps_on_preheader): Compute the number of
2647 vectorized iterations differently.
2648
2649 2013-12-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2650
2651 * config/score/score.c (score_force_temporary): Delete function.
2652 (score_split_symbol): Ditto.
2653 * config/score/score.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add extra
2654 parentheses to silence ambiguity warning and reindent.
2655
2656 2013-12-05 Marek Polacek <polacek@redhat.com>
2657
2658 * doc/invoke.texi: Document -fsanitize=signed-integer-overflow.
2659
2660 2013-12-05 H.J. Lu <hongjiu.lu@intel.com>
2661
2662 * config.gcc: Support --with-cpu=ia.
2663
2664 * config/i386/i386.c (cpu_names): Add "ia".
2665 (processor_alias_table): Likewise.
2666 (ix86_option_override_internal): Disallow -march=ia.
2667 * config/i386/i386.h (target_cpu_default): Add TARGET_CPU_DEFAULT_ia.
2668
2669 * doc/invoke.texi: Document -mtune=ia.
2670
2671 2013-12-05 Vladimir Makarov <vmakarov@redhat.com>
2672
2673 PR rtl-optimization/59317
2674 * lra-constraints.c (in_class_p): Don't ignore insn with constant
2675 as a source.
2676
2677 2013-12-05 Martin Jambor <mjambor@suse.cz>
2678
2679 PR ipa/58253
2680 * ipa-prop.c (ipa_modify_formal_parameters): Create decls of
2681 non-BLKmode in their naturally aligned type.
2682
2683 2013-12-05 Marek Polacek <polacek@redhat.com>
2684
2685 PR sanitizer/59333
2686 PR sanitizer/59397
2687 * ubsan.c: Include rtl.h and expr.h.
2688 (ubsan_encode_value): Add new parameter. If expanding, assign
2689 a stack slot for DECL_RTL of the temporary and call expand_assignment.
2690 Handle BOOLEAN_TYPE and ENUMERAL_TYPE.
2691 (ubsan_build_overflow_builtin): Adjust ubsan_encode_value call.
2692 * ubsan.h (ubsan_encode_value): Adjust declaration.
2693 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Move
2694 ubsan_build_overflow_builtin above expand_normal call. Surround
2695 this call with push_temp_slots and pop_temp_slots.
2696 (ubsan_expand_si_overflow_neg_check): Likewise.
2697 (ubsan_expand_si_overflow_mul_check): Likewise.
2698
2699 2013-12-05 Yufeng Zhang <yufeng.zhang@arm.com>
2700
2701 * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Guard
2702 the get_alternative_base call with flag_expensive_optimizations.
2703 (alloc_cand_and_find_basis): Likewise.
2704
2705 2013-12-05 Tejas Belagod <tejas.belagod@arm.com>
2706
2707 * rtlanal.c (set_noop_p): Return nonzero in case of redundant
2708 vec_select for overlapping register lanes.
2709
2710 2013-12-05 Kirill Yukhin <kirill.yukhin@intel.com>
2711
2712 * config/i386/i386.c (ix86_expand_builtin): Generate
2713 reg for readflags built-in when optimizing.
2714 * config/i386/i386.md (*pushfl<mode>): Rename to ...
2715 (pushfl<mode>2): This. Fix iterator.
2716 (*popfl<mode>): Rename to ...
2717 (*popfl<mode>1): This. Fix iterator.
2718
2719 2013-12-05 Kirill Yukhin <kirill.yukhin@intel.com>
2720
2721 * config/i386/i386.c (IX86_BUILTIN_READ_FLAGS): New.
2722 (IX86_BUILTIN_WRITE_FLAGS): Ditto.
2723 (ix86_init_mmx_sse_builtins): Define
2724 __builtin_ia32_writeeflags_u32, __builtin_ia32_writeeflags_u64,
2725 __builtin_ia32_readeflags_u32, __builtin_ia32_readeflags_u64.
2726 (ix86_expand_builtin): Expand them.
2727 * config/i386/ia32intrin.h (__readeflags): New.
2728 (__writeeflags): Ditto.
2729 * config/i386/i386.md (*pushfl<mode>): Ditto.
2730 (*popfl<mode>1): Ditto.
2731
2732 2013-12-05 Richard Biener <rguenther@suse.de>
2733
2734 PR tree-optimization/59374
2735 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
2736 Commonize known and unknown dependence case fixing the allowed
2737 read-write dependence case and dropping code that should not matter.
2738
2739 2013-12-05 Kirill Yukhin <kirill.yukhin@intel.com>
2740
2741 * config/ia64/ia64.md (prologue_allocate_stack): Block auto-
2742 generation of predicated version.
2743 (epilogue_deallocate_stack): Ditto.
2744 (prologue_allocate_stack_pr): Add explicit predicated version.
2745 (epilogue_deallocate_stack_pr): Ditto.
2746 * config/ia64/ia64.c (ia64_single_set): Use explicit version.
2747
2748 2013-12-05 Alan Modra <amodra@gmail.com>
2749
2750 * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
2751 build != host.
2752 <recursive call for build != host>: Clear GMPINC. Don't bother
2753 saving CFLAGS.
2754
2755 2013-12-04 Jakub Jelinek <jakub@redhat.com>
2756 Marek Polacek <polacek@redhat.com>
2757
2758 * opts.c (common_handle_option): Handle
2759 -fsanitize=signed-integer-overflow.
2760 * config/i386/i386.md (addv<mode>4, subv<mode>4, mulv<mode>4,
2761 negv<mode>3, negv<mode>3_1): Define expands.
2762 (*addv<mode>4, *subv<mode>4, *mulv<mode>4, *negv<mode>3): Define insns.
2763 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW,
2764 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW,
2765 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW,
2766 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW): Define.
2767 * ubsan.h (PROB_VERY_UNLIKELY, PROB_EVEN, PROB_VERY_LIKELY,
2768 PROB_ALWAYS): Define.
2769 (ubsan_build_overflow_builtin): Declare.
2770 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Add folding of
2771 internal functions.
2772 * ubsan.c (PROB_VERY_UNLIKELY): Don't define here.
2773 (ubsan_build_overflow_builtin): New function.
2774 (instrument_si_overflow): Likewise.
2775 (ubsan_pass): Add signed integer overflow checking.
2776 (gate_ubsan): Enable the pass also when SANITIZE_SI_OVERFLOW.
2777 * flag-types.h (enum sanitize_code): Add SANITIZE_SI_OVERFLOW.
2778 * internal-fn.c: Include ubsan.h and target.h.
2779 (ubsan_expand_si_overflow_addsub_check): New function.
2780 (ubsan_expand_si_overflow_neg_check): Likewise.
2781 (ubsan_expand_si_overflow_mul_check): Likewise.
2782 (expand_UBSAN_CHECK_ADD): Likewise.
2783 (expand_UBSAN_CHECK_SUB): Likewise.
2784 (expand_UBSAN_CHECK_MUL): Likewise.
2785 * fold-const.c (fold_binary_loc): Don't fold A + (-B) -> A - B and
2786 (-A) + B -> B - A when doing the signed integer overflow checking.
2787 * internal-fn.def (UBSAN_CHECK_ADD, UBSAN_CHECK_SUB, UBSAN_CHECK_MUL):
2788 Define.
2789 * tree-vrp.c (extract_range_basic): Handle internal calls.
2790 * optabs.def (addv4_optab, subv4_optab, mulv4_optab, negv4_optab): New
2791 optabs.
2792 * asan.c: Include predict.h.
2793 (PROB_VERY_UNLIKELY, PROB_ALWAYS): Don't define here.
2794 * predict.c: Move the PROB_* macros...
2795 * predict.h (enum br_predictor): ...here.
2796 (PROB_LIKELY, PROB_UNLIKELY): Define.
2797 * trans-mem.c: Include predict.h.
2798 (PROB_VERY_UNLIKELY, PROB_ALWAYS, PROB_VERY_LIKELY,
2799 PROB_LIKELY, PROB_UNLIKELY): Don't define here.
2800
2801 2013-12-04 Jeff Law <law@redhat.com>
2802
2803 * common.opt: Split up -fisolate-erroneous-paths into
2804 -fisolate-erroneous-paths-dereference and
2805 -fisolate-erroneous-paths-attribute.
2806 * invoke.texi: Corresponding changes.
2807 * gimple.c (infer_nonnull_range): Add and use new arguments to control
2808 what kind of statements can be used to infer a non-null range.
2809 * gimple.h (infer_nonnull_range): Update prototype.
2810 * tree-vrp.c (infer_value_range): Corresponding changes.
2811 * opts.c (default_options_table): Update due to option split.
2812 * gimple-ssa-isolate-paths.c: Fix trailing whitespace.
2813 (find_implicit_erroneous_behaviour): Pass additional arguments
2814 to infer_nonnull_range.
2815 (find_explicit_erroneous_behaviour): Similarly.
2816 (gate_isolate_erroneous_paths): Check both of the new options.
2817
2818 2013-12-04 Jeff Law <law@redhat.com>
2819
2820 * expr.c (expand_assignment): Update comments.
2821
2822 2013-12-04 Tobias Burnus <burnus@net-b.de>
2823
2824 PR debug/37132
2825 * lto-streamer.h (LTO_tags): Add LTO_namelist_decl_ref.
2826 * tree.def (NAMELIST_DECL): Add.
2827 * tree.h (NAMELIST_DECL_ASSOCIATED_DECL): New macro.
2828 * tree.c (initialize_tree_contains_struct): Add asserts for it.
2829 * dwarf2out.c (gen_namelist_decl): New function.
2830 (gen_decl_die, dwarf2out_decl): Call it.
2831 (dwarf2out_imported_module_or_decl_1): Handle NAMELIST_DECL.
2832 * lto-streamer-in.c (lto_input_tree_ref): Handle NAMELIST_DECL.
2833 (lto_input_tree_ref, lto_input_tree_1): Update lto_tag_check_range
2834 call.
2835 * lto-streamer-out.c (lto_output_tree_ref): Handle NAMELIST_DECL.
2836
2837 2013-12-03 Xinliang David Li <davidxl@google.com>
2838
2839 * tree-ssa-structalias.c (constraint_set_union): Change return type
2840 from void to bool.
2841 (merge_node_constraints): Ditto.
2842 (unify_nodes): Update changed set when constraints set changes.
2843
2844 2013-12-04 H.J. Lu <hongjiu.lu@intel.com>
2845
2846 * configure.ac: Append gdbasan.in to .gdbinit if CFLAGS contains
2847 -fsanitize=address.
2848 * configure: Regenerated.
2849
2850 * gdbasan.in: New file.
2851
2852 2013-12-04 Jakub Jelinek <jakub@redhat.com>
2853
2854 PR rtl-optimization/58726
2855 * combine.c (force_to_mode): Fix comment typo. Don't destructively
2856 modify x for ROTATE, ROTATERT and IF_THEN_ELSE.
2857
2858 2013-12-04 Jakub Jelinek <jakub@redhat.com>
2859 Uros Bizjak <ubizjak@gmail.com>
2860
2861 PR target/59163
2862 * config/i386/i386.c (ix86_legitimate_combined_insn): If for
2863 !TARGET_AVX there is misaligned MEM operand with vector mode
2864 and get_attr_ssememalign is 0, return false.
2865 (ix86_expand_special_args_builtin): Add get_pointer_alignment
2866 computed alignment and for non-temporal loads/stores also
2867 at least GET_MODE_ALIGNMENT as MEM_ALIGN.
2868 * config/i386/sse.md
2869 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
2870 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
2871 <sse2_avx_avx512f>_loaddqu<mode><mask_name>,
2872 <sse2_avx_avx512f>_storedqu<mode>, <sse3>_lddqu<avxsizesuffix>,
2873 sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
2874 sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
2875 *vec_interleave_highv2df, *vec_interleave_lowv2df,
2876 *vec_extractv2df_1_sse, sse2_movsd, sse4_1_<code>v8qiv8hi2,
2877 sse4_1_<code>v4qiv4si2, sse4_1_<code>v4hiv4si2,
2878 sse4_1_<code>v2qiv2di2, sse4_1_<code>v2hiv2di2,
2879 sse4_1_<code>v2siv2di2, sse4_2_pcmpestr, *sse4_2_pcmpestr_unaligned,
2880 sse4_2_pcmpestri, sse4_2_pcmpestrm, sse4_2_pcmpestr_cconly,
2881 sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned, sse4_2_pcmpistri,
2882 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add ssememalign attribute.
2883 * config/i386/i386.md (ssememalign): New define_attr.
2884
2885 2013-12-04 Jakub Jelinek <jakub@redhat.com>
2886
2887 PR tree-optimization/59355
2888 * ipa-devirt.c (gate_ipa_devirt): Return false if !flag_devirtualize.
2889 * opts.c (common_handle_option): Fix comment spelling.
2890
2891 2013-12-04 Yufeng Zhang <yufeng.zhang@arm.com>
2892
2893 * gimple-ssa-strength-reduction.c: Include tree-affine.h.
2894 (name_expansions): New static variable.
2895 (alt_base_map): Ditto.
2896 (get_alternative_base): New function.
2897 (find_basis_for_candidate): For CAND_REF, optionally call
2898 find_basis_for_base_expr with the returned value from
2899 get_alternative_base.
2900 (record_potential_basis): Add new parameter 'base' of type 'tree';
2901 add an assertion of non-NULL base; use base to set node->base_expr.
2902 (alloc_cand_and_find_basis): Update; call record_potential_basis
2903 for CAND_REF with the returned value from get_alternative_base.
2904 (replace_refs): Dump details on the replacing.
2905 (execute_strength_reduction): Call pointer_map_create for
2906 alt_base_map; call free_affine_expand_cache with &name_expansions.
2907
2908 2013-12-03 Wei Mi <wmi@google.com>
2909
2910 PR rtl-optimization/59020
2911 * sched-deps.c (try_group_insn): Move it from haifa-sched.c to here.
2912 (sched_analyze_insn): Call try_group_insn.
2913 (sched_analyze): Cleanup SCHED_GROUP_P before start the analysis.
2914 * haifa-sched.c (try_group_insn): Moved to sched-deps.c.
2915 (group_insns_for_macro_fusion): Removed.
2916 (sched_init): Remove calling group_insns_for_macro_fusion.
2917
2918 2013-12-03 Peter Bergner <bergner@vnet.ibm.com>
2919
2920 * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix
2921 typo in macro name.
2922 (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise.
2923
2924 2013-12-03 Vladimir Makarov <vmakarov@redhat.com>
2925
2926 * config/aarch64/aarch64.c (aarch64_frame_pointer_required): Check
2927 LR_REGNUM.
2928 (aarch64_can_eliminate): Don't check elimination source when
2929 frame_pointer_required is false.
2930
2931 2013-12-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2932
2933 * config/avr/avr.c (avr_option_override): Warn if asked to generate
2934 position independent code.
2935 * config/avr/avr.h: Modify LINK_SPEC to reject -shared.
2936
2937 2013-12-03 H.J. Lu <hongjiu.lu@intel.com>
2938
2939 PR target/59363
2940 * config/i386/i386.c (emit_memset): Adjust destination address
2941 after gen_strset.
2942 (expand_setmem_epilogue): Likewise.
2943
2944 2013-12-03 Marek Polacek <polacek@redhat.com>
2945
2946 PR middle-end/56344
2947 * calls.c (expand_call): Disallow passing huge arguments by value.
2948
2949 2013-12-03 Jakub Jelinek <jakub@redhat.com>
2950
2951 PR tree-optimization/59362
2952 * tree-object-size.c (object_sizes): Change into array of
2953 vec<unsigned HOST_WIDE_INT>.
2954 (compute_builtin_object_size): Check computed bitmap for
2955 non-NULL instead of object_sizes. Call safe_grow on object_sizes
2956 vector if new SSA_NAMEs appeared.
2957 (init_object_sizes): Check computed bitmap for non-NULL.
2958 Call safe_grow on object_sizes elements instead of initializing
2959 it with XNEWVEC.
2960 (fini_object_sizes): Call release on object_sizes elements, don't
2961 set it to NULL.
2962
2963 PR middle-end/59011
2964 * gimplify.c (nonlocal_vla_vars): New variable.
2965 (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
2966 nonlocal_vla_vars chain.
2967 (gimplify_body): Call declare_vars on nonlocal_vla_vars chain
2968 if outer_bind has DECL_INITIAL (current_function_decl) block.
2969
2970 PR target/58864
2971 * dojump.c (save_pending_stack_adjust, restore_pending_stack_adjust):
2972 New functions.
2973 * expr.h (struct saved_pending_stack_adjust): New type.
2974 (save_pending_stack_adjust, restore_pending_stack_adjust): New
2975 prototypes.
2976 * optabs.c (emit_conditional_move): Call save_pending_stack_adjust
2977 and get_last_insn before do_pending_stack_adjust, call
2978 restore_pending_stack_adjust after delete_insns_since.
2979 * expr.c (expand_expr_real_2): Don't call do_pending_stack_adjust
2980 before calling emit_conditional_move.
2981 * expmed.c (expand_sdiv_pow2): Likewise.
2982 * calls.c (expand_call): Use {save,restore}_pending_stack_adjust.
2983
2984 2013-12-02 Jeff Law <law@redhat.com>
2985
2986 PR tree-optimization/59322
2987 * tree-ssa-threadedge.c (create_edge_and_update_destination_phis):
2988 Remove code which copied jump threading paths.
2989
2990 2013-12-02 Sriraman Tallam <tmsriram@google.com>
2991
2992 PR target/58944
2993 * config/i386/i386.opt (ix86_arch_string): Mark this variable
2994 for saving in cl_target_option.
2995 (ix86_tune_string): Ditto.
2996 (ix86_cmodel): Ditto.
2997 (ix86_abi): Ditto.
2998 (ix86_asm_dialect): Ditto.
2999 (ix86_branch_cost): Ditto.
3000 (ix86_dump_tunes): Ditto.
3001 (ix86_force_align_arg_pointer): Ditto.
3002 (ix86_force_drap): Ditto.
3003 (ix86_incoming_stack_boundary_arg): Ditto.
3004 (ix86_pmode): Ditto.
3005 (ix86_preferred_stack_boundary_arg): Ditto.
3006 (ix86_recip_name): Ditto.
3007 (ix86_regparm): Ditto.
3008 (ix86_section_threshold): Ditto.
3009 (ix86_sse2avx): Ditto.
3010 (ix86_stack_protector_guard): Ditto.
3011 (ix86_stringop_alg): Ditto.
3012 (ix86_tls_dialect): Ditto.
3013 (ix86_tune_ctrl_string): Ditto.
3014 (ix86_tune_memcpy_strategy): Ditto.
3015 (ix86_tune_memset_strategy): Ditto.
3016 (ix86_tune_no_default): Ditto.
3017 (ix86_veclibabi_type): Ditto.
3018 * config/i386/i386.c (function_specific_save): Save the above
3019 variables in gcc_options to cl_target_option.
3020 (function_specific_restore): Do the reverse done in
3021 function_specific_save.
3022 (ix86_valid_target_attribute_tree): Change ix86_arch_string
3023 and ix86_tune_string to use the opts structure.
3024 (ix86_option_override_internal):Change
3025 ix86_incoming_stack_boundary_arg to
3026 opts->x_ix86_incoming_stack_boundary_arg
3027
3028 2013-12-02 Joern Rennecke <joern.rennecke@embecosm.com>
3029
3030 * config/epiphany/epiphany.h: Wrap rtl_opt_pass declarations
3031 in #ifndef IN_LIBGCC2 / #endif.
3032
3033 2013-12-02 Jakub Jelinek <jakub@redhat.com>
3034
3035 PR tree-optimization/59358
3036 * tree-vrp.c (union_ranges): To check for the partially overlapping
3037 ranges or adjacent ranges, also compare *vr0max with vr1max.
3038
3039 2013-12-02 Sterling Augustine  <saugustine@google.com>
3040
3041 * dwarf2out.c (output_pubnames): Use comp_unit_die ()->die_offset
3042 when there isn't a skeleton die.
3043
3044 2013-12-02 Marek Polacek <polacek@redhat.com>
3045
3046 PR sanitizer/59353
3047 * doc/invoke.texi: Document -fsanitize=return.
3048
3049 2013-12-02 Tobias Burnus <burnus@net-b.de>
3050 Manuel López-Ibáñez <manu@gcc.gnu.org>
3051
3052 PR middle-end/59257
3053 * doc/invoke.texi: Add missing @opindex.
3054 (-fsanitize=): Use @gcctabopt instead of @itemize.
3055
3056 2013-12-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3057
3058 Fix C++0x memory model for unaligned fields in packed, aligned(4)
3059 structures with -fno-strict-volatile-bitfields on STRICT_ALIGNMENT
3060 targets like arm-none-eabi.
3061 * expr.c (expand_assignment): Handle normal fields like bit regions.
3062
3063 2013-12-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3064
3065 PR target/58115
3066 * function.c (invoke_set_current_function_hook): Call
3067 targetm.set_current_function after setting this_fn_optabs.
3068
3069 2013-12-02 Richard Biener <rguenther@suse.de>
3070
3071 PR tree-optimization/59139
3072 * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match
3073 code in get_val_for.
3074 (get_val_for): Use gcc_checking_asserts.
3075
3076 2013-12-02 Richard Biener <rguenther@suse.de>
3077
3078 PR middle-end/59199
3079 * tree-ssa-operands.c (opf_implicit): Remove.
3080 (opf_address_taken): New flag.
3081 (get_expr_operands): Remove early out, pass down opf_address_taken for
3082 ADDR_EXPRs, add a use operand only for non-opf_address_taken bases.
3083 (get_indirect_ref_operands): Rename to ...
3084 (get_mem_ref_operands): ... this.
3085 (get_asm_expr_operands): Rename to ...
3086 (get_asm_stmt_operands): ... this.
3087
3088 2013-12-02 Yuri Rumyantsev <ysrumyan@gmail.com>
3089
3090 * ipa-inline.c (check_callers): Add missed pointer de-reference.
3091
3092 2013-12-02 Eric Botcazou <ebotcazou@adacore.com>
3093
3094 PR tree-optimization/59356
3095 * tree-dfa.h (get_addr_base_and_unit_offset_1) <case ARRAY_REF>: Do the
3096 offset computation using the precision of the index type.
3097
3098 2013-12-02 Yvan Roux <yvan.roux@linaro.org>
3099
3100 PR target/58785
3101 * config/arm/arm.c (arm_preferred_reload_class): Only return LO_REGS
3102 when rclass is GENERAL_REGS.
3103
3104 2013-12-02 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3105
3106 * loop-unroll.c (decide_unroll_constant_iterations): Check macro
3107 TARGET_LOOP_UNROLL_ADJUST while deciding unroll factor.
3108
3109 2013-12-01 Eric Botcazou <ebotcazou@adacore.com>
3110
3111 * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
3112 identifier node.
3113
3114 2013-12-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3115
3116 * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument.
3117
3118 2013-11-30 Paulo Matos <pmatos@broadcom.com>
3119 Eric Botcazou <ebotcazou@adacore.com>
3120
3121 * combine.c (reg_nonzero_bits_for_combine): Apply mask transformation
3122 as applied to nonzero_sign_valid when last_set_mode has less precision
3123 than mode.
3124
3125 2013-11-30 Tobias Burnus <burnus@net-b.de>
3126
3127 PR sanitizer/59275
3128 * doc/invoke.texi (-fsanitize=address,leak): Mention the associated
3129 environment variable and link to a list with flags.
3130 (-fsanitize=thread): Ditto and update link.
3131
3132 2013-11-29 Vladimir Makarov <vmakarov@redhat.com>
3133
3134 PR rtl-optimization/59340
3135 * lra.c (check_rtl): Use recog_memoized instead of insn_invalid_p.
3136
3137 Revert
3138 2013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com>
3139
3140 * lra.c (lra): Set lra_in_progress before check_rtl call.
3141 * recog.c (insn_invalid_p): Add !lra_in_progress to prevent
3142 adding clobber regs when LRA is running.
3143
3144 2013-11-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3145
3146 PR target/59289
3147 * config/arm/arm.c (cortexa15_extra_costs): Adjust costs.
3148
3149 2013-11-29 Richard Biener <rguenther@suse.de>
3150
3151 PR middle-end/59208
3152 * tree-ssa-operands.h (fini_ssa_operands, verify_ssa_operands,
3153 free_stmt_operands, update_stmt_operands): Add struct function
3154 argument.
3155 * tree-ssa-operands.c: Remove uses of cfun, propagate struct
3156 function argument from fini_ssa_operands, verify_ssa_operands,
3157 free_stmt_operands and update_stmt_operands everywhere.
3158 * tree-ssanames.h (release_ssa_name_fn): New.
3159 (release_ssa_name): Inline wrapper around release_ssa_name_fn.
3160 * tree-ssanames.c (release_ssa_name): Rename to ...
3161 (release_ssa_name_fn): ... this and add struct function argument.
3162 * gimple-ssa.h (update_stmt, update_stmt_if_modified): Adjust.
3163 (update_stmt_fn): New function.
3164 * tree-cfg.c (move_block_to_fn): Adjust.
3165 * tree-if-conv.c (free_bb_predicate): Likewise.
3166 * tree-ssa.c (verify_ssa): Likewise.
3167 (delete_tree_ssa): Likewise.
3168 * gimple-pretty-print.c (dump_gimple_mem_ops): Remove guard.
3169 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Call
3170 update_stmt_fn instead of update_stmt.
3171
3172 2013-11-29 Yvan Roux <yvan.roux@linaro.org>
3173
3174 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS
3175 for LRA.
3176
3177 2013-11-29 Yvan Roux <yvan.roux@linaro.org>
3178
3179 * config/arm/arm.md (store_minmaxsi): Use only when
3180 optimize_function_for_size_p.
3181
3182 2013-11-29 Jakub Jelinek <jakub@redhat.com>
3183 Yury Gribov <y.gribov@samsung.com>
3184
3185 PR sanitizer/59063
3186 * config/gnu-user.h: Removed old code for setting up sanitizer libs.
3187 * gcc.c: Using libsanitizer spec instead of explicit libs.
3188
3189 2013-11-29 Ilya Enkovich <ilya.enkovich@intel.com>
3190
3191 Reverted:
3192 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
3193 * cgraph.h (varpool_node): Add need_bounds_init field.
3194 * lto-cgraph.c (lto_output_varpool_node): Output
3195 need_bounds_init value.
3196 (input_varpool_node): Read need_bounds_init value.
3197 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
3198
3199 Reverted:
3200 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
3201 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
3202 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
3203 (gen_type_die_with_usage): Skip pointer bounds.
3204 (dwarf2out_global_decl): Likewise.
3205
3206 Reverted:
3207 2013-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
3208 * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
3209 * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
3210 * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
3211 * gimple.c (gimple_call_get_nobnd_arg_index): Remove.
3212 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
3213 (gimple_call_with_bounds_p): New.
3214 (gimple_call_set_with_bounds): New.
3215 (gimple_call_num_nobnd_args): Remove.
3216 (gimple_call_nobnd_arg): Remove.
3217 * tree.h (CALL_WITH_BOUNDS_P): New.
3218 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
3219
3220 Reverted:
3221 2013-11-08 Ilya Enkovich <ilya.enkovich@intel.com>
3222 * common.opt (fcheck-pointer-bounds): Move to ...
3223 * c-family/c.opt: ... here.
3224 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
3225 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
3226 * langhooks.h (lang_hooks): Remove chkp_supported field.
3227 * toplev.c (process_options): Remove chkp_supported check.
3228
3229 Reverted:
3230 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
3231 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
3232 * tree.h (POINTER_BOUNDS_P): New.
3233 (BOUNDED_TYPE_P): New.
3234 (BOUNDED_P): New.
3235 (pointer_bounds_type_node): New.
3236 * tree.c (build_common_tree_nodes): Initialize
3237 pointer_bounds_type_node.
3238 * gimple.h (gimple_call_get_nobnd_arg_index): New.
3239 (gimple_call_num_nobnd_args): New.
3240 (gimple_call_nobnd_arg): New.
3241 (gimple_return_retbnd): New.
3242 (gimple_return_set_retbnd): New
3243 * gimple.c (gimple_build_return): Increase number of ops
3244 for return statement.
3245 (gimple_call_get_nobnd_arg_index): New.
3246 * gimple-pretty-print.c (dump_gimple_return): Print second op.
3247
3248 Reverted:
3249 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
3250 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
3251 with "chkp ctor" and "bnd_legacy" attributes.
3252 * gimplify.c (gimplify_init_constructor): Avoid infinite
3253 loop during gimplification of bounds initializer.
3254
3255 Reverted:
3256 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
3257 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
3258 (handle_bnd_legacy): New.
3259 (c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
3260 * doc/extend.texi: Document bnd_variable_size and bnd_legacy
3261 attributes.
3262
3263 Reverted:
3264 2013-10-29 Ilya Enkovich <ilya.enkovich@intel.com>
3265 * builtin-types.def (BT_FN_VOID_CONST_PTR): New.
3266 (BT_FN_PTR_CONST_PTR): New.
3267 (BT_FN_CONST_PTR_CONST_PTR): New.
3268 (BT_FN_PTR_CONST_PTR_SIZE): New.
3269 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
3270 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
3271 (BT_FN_VOID_CONST_PTR_SIZE): New.
3272 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
3273 * chkp-builtins.def: New.
3274 * builtins.def: include chkp-builtins.def.
3275 (DEF_CHKP_BUILTIN): New.
3276 * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
3277 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
3278 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
3279 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
3280 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
3281 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
3282 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
3283 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
3284 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
3285 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
3286 * common.opt (fcheck-pointer-bounds): New.
3287 * toplev.c (process_options): Check Pointer Bounds Checker is
3288 supported.
3289 * doc/extend.texi: Document Pointer Bounds Checker built-in functions.
3290
3291 Reverted:
3292 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
3293 * target.def (builtin_chkp_function): New.
3294 (chkp_bound_type): New.
3295 (chkp_bound_mode): New.
3296 (fn_abi_va_list_bounds_size): New.
3297 (load_bounds_for_arg): New.
3298 (store_bounds_for_arg): New.
3299 * targhooks.h (default_load_bounds_for_arg): New.
3300 (default_store_bounds_for_arg): New.
3301 (default_fn_abi_va_list_bounds_size): New.
3302 (default_chkp_bound_type): New.
3303 (default_chkp_bound_mode): New.
3304 (default_builtin_chkp_function): New.
3305 * targhooks.c (default_load_bounds_for_arg): New.
3306 (default_store_bounds_for_arg): New.
3307 (default_fn_abi_va_list_bounds_size): New.
3308 (default_chkp_bound_type): New.
3309 (default_chkp_bound_mode); New.
3310 (default_builtin_chkp_function): New.
3311 * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
3312 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
3313 (TARGET_STORE_BOUNDS_FOR_ARG): New.
3314 (TARGET_BUILTIN_CHKP_FUNCTION): New.
3315 (TARGET_CHKP_BOUND_TYPE): New.
3316 (TARGET_CHKP_BOUND_MODE): New.
3317 * doc/tm.texi: Regenerated.
3318 * langhooks.h (lang_hooks): Add chkp_supported field.
3319 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
3320 (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.
3321
3322 Reverted:
3323 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
3324 * config/i386/constraints.md (B): New.
3325 (Ti): New.
3326 (Tb): New.
3327 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
3328 * config/i386/i386-modes.def (BND32): New.
3329 (BND64): New.
3330 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
3331 * config/i386/i386.c (isa_opts): Add mmpx.
3332 (regclass_map): Add bound registers.
3333 (dbx_register_map): Likewise.
3334 (dbx64_register_map): Likewise.
3335 (svr4_dbx_register_map): Likewise.
3336 (PTA_MPX): New.
3337 (ix86_option_override_internal): Support MPX ISA.
3338 (ix86_conditional_register_usage): Support bound registers.
3339 (print_reg): Likewise.
3340 (ix86_code_end): Add MPX bnd prefix.
3341 (output_set_got): Likewise.
3342 (ix86_output_call_insn): Likewise.
3343 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
3344 (ix86_print_operand_punct_valid_p): Likewise.
3345 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
3346 UNSPEC_BNDMK_ADDR.
3347 (ix86_class_likely_spilled_p): Add bound regs support.
3348 (ix86_hard_regno_mode_ok): Likewise.
3349 (x86_order_regs_for_local_alloc): Likewise.
3350 (ix86_bnd_prefixed_insn_p): New.
3351 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
3352 (FIXED_REGISTERS): Add bound registers.
3353 (CALL_USED_REGISTERS): Likewise.
3354 (REG_ALLOC_ORDER): Likewise.
3355 (HARD_REGNO_NREGS): Likewise.
3356 (TARGET_MPX): New.
3357 (VALID_BND_REG_MODE): New.
3358 (FIRST_BND_REG): New.
3359 (LAST_BND_REG): New.
3360 (reg_class): Add BND_REGS.
3361 (REG_CLASS_NAMES): Likewise.
3362 (REG_CLASS_CONTENTS): Likewise.
3363 (BND_REGNO_P): New.
3364 (ANY_BND_REG_P): New.
3365 (BNDmode): New.
3366 (HI_REGISTER_NAMES): Add bound registers.
3367 * config/i386/i386.md (UNSPEC_BNDMK): New.
3368 (UNSPEC_BNDMK_ADDR): New.
3369 (UNSPEC_BNDSTX): New.
3370 (UNSPEC_BNDLDX): New.
3371 (UNSPEC_BNDLDX_ADDR): New.
3372 (UNSPEC_BNDCL): New.
3373 (UNSPEC_BNDCU): New.
3374 (UNSPEC_BNDCN): New.
3375 (UNSPEC_MPX_FENCE): New.
3376 (BND0_REG): New.
3377 (BND1_REG): New.
3378 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
3379 (length_immediate): Likewise.
3380 (prefix_0f): Likewise.
3381 (memory): Likewise.
3382 (prefix_rep): Check for bnd prefix.
3383 (length_nobnd): New.
3384 (length): Use length_nobnd if specified.
3385 (BND): New.
3386 (bnd_ptr): New.
3387 (BNDCHECK): New.
3388 (bndcheck): New.
3389 (*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
3390 (*jcc_2): Likewise.
3391 (jump): Likewise.
3392 (simple_return_internal): Likewise.
3393 (simple_return_pop_internal): Likewise.
3394 (*indirect_jump): Add MPX bnd prefix.
3395 (*tablejump_1): Likewise.
3396 (simple_return_internal_long): Likewise.
3397 (simple_return_indirect_internal): Likewise.
3398 (<mode>_mk): New.
3399 (*<mode>_mk): New.
3400 (mov<mode>): New.
3401 (*mov<mode>_internal_mpx): New.
3402 (<mode>_<bndcheck>): New.
3403 (*<mode>_<bndcheck>): New.
3404 (<mode>_ldx): New.
3405 (*<mode>_ldx): New.
3406 (<mode>_stx): New.
3407 (*<mode>_stx): New.
3408 * config/i386/predicates.md (lea_address_operand): Rename to...
3409 (address_no_seg_operand): ... this.
3410 (address_mpx_no_base_operand): New.
3411 (address_mpx_no_index_operand): New.
3412 (bnd_mem_operator): New.
3413 * config/i386/i386.opt (mmpx): New.
3414 * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
3415 * doc/rtl.texi Add documentation for BND32mode and BND64mode.
3416
3417 Reverted:
3418 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
3419 * mode-classes.def (MODE_POINTER_BOUNDS): New.
3420 * tree.def (POINTER_BOUNDS_TYPE): New.
3421 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
3422 (POINTER_BOUNDS_MODE): New.
3423 (make_pointer_bounds_mode): New.
3424 * machmode.h (POINTER_BOUNDS_MODE_P): New.
3425 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
3426 (layout_type): Support POINTER_BOUNDS_TYPE.
3427 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
3428 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
3429 (type_contains_placeholder_1): Likewise.
3430 * tree.h (POINTER_BOUNDS_TYPE_P): New.
3431 * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
3432 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
3433
3434 2013-11-29 Richard Biener <rguenther@suse.de>
3435
3436 PR middle-end/59338
3437 * tree-cfg.c (verify_expr): Restrict bounds verification of
3438 BIT_FIELD_REF arguments to non-aggregate typed base objects.
3439
3440 2013-11-29 Richard Biener <rguenther@suse.de>
3441
3442 PR tree-optimization/59334
3443 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
3444 in previous commit.
3445
3446 2013-11-29 Jakub Jelinek <jakub@redhat.com>
3447 Richard Biener <rguenther@suse.de>
3448
3449 PR lto/59326
3450 * omp-low.c (simd_clone_create): Return NULL if for definition
3451 !cgraph_function_with_gimple_body_p (old_node). Call cgraph_get_body
3452 before calling cgraph_function_versioning.
3453 (expand_simd_clones): Look for "omp declare simd" attribute first.
3454 Don't check targetm.simd_clone.compute_vecsize_and_simdlen here.
3455 Punt if node->global.inlined_to.
3456 (pass_omp_simd_clone::gate): Also enable if in_lto_p && !flag_wpa.
3457 Disable pass if targetm.simd_clone.compute_vecsize_and_simdlen is NULL.
3458 * lto-streamer-out.c (hash_tree): Handle OMP_CLAUSE.
3459
3460 2013-11-29 Jakub Jelinek <jakub@redhat.com>
3461
3462 PR lto/59326
3463 * tree-core.h (enum omp_clause_schedule_kind): Add
3464 OMP_CLAUSE_SCHEDULE_LAST.
3465 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST.
3466 (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST.
3467 (enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST.
3468 (enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST.
3469 * lto-streamer-out.c (lto_is_streamable): Allow streaming OMP_CLAUSE.
3470 (DFS_write_tree_body): Handle OMP_CLAUSE.
3471 * tree-streamer-out.c (pack_ts_omp_clause_value_fields): New function.
3472 (streamer_pack_tree_bitfields): Call it for OMP_CLAUSE.
3473 (write_ts_omp_clause_tree_pointers): New function.
3474 (streamer_write_tree_body): Call it for OMP_CLAUSE.
3475 (streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE.
3476 * tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New function.
3477 (unpack_value_fields): Call it for OMP_CLAUSE.
3478 (streamer_alloc_tree): Handle OMP_CLAUSE.
3479 (lto_input_ts_omp_clause_tree_pointers): New function.
3480 (streamer_read_tree_body): Call it for OMP_CLAUSE.
3481
3482 2013-11-29 Joseph Myers <joseph@codesourcery.com>
3483
3484 * doc/implement-c.texi: Document C11 implementation-defined
3485 behavior. Refer to -ffp-contract=fast for contraction behavior.
3486 * doc/invoke.texi (-std=c99, std=c11): Update description of
3487 completeness.
3488 (-std=gnu99): Don't mention as future default.
3489 (-std=gnu11): Mention as intended future default.
3490 * doc/standards.texi: Update descriptions of C99 and C11 support.
3491 Limit statement about C99 facilities for freestanding
3492 implementations to some platforms only.
3493
3494 2013-11-28 Jakub Jelinek <jakub@redhat.com>
3495
3496 PR middle-end/59327
3497 * cfgexpand.c (expand_used_vars): Avoid warning on 32-bit HWI hosts.
3498
3499 2013-11-28 Vladimir Makarov <vmakarov@redhat.com>
3500
3501 PR target/57293
3502 * ira.h (ira_setup_eliminable_regset): Remove parameter.
3503 * ira.c (ira_setup_eliminable_regset): Ditto. Add
3504 SUPPORTS_STACK_ALIGNMENT for crtl->stack_realign_needed.
3505 Don't call lra_init_elimination.
3506 (ira): Call ira_setup_eliminable_regset without arguments.
3507 * loop-invariant.c (calculate_loop_reg_pressure): Remove argument
3508 from ira_setup_eliminable_regset call.
3509 * gcse.c (calculate_bb_reg_pressure): Ditto.
3510 * haifa-sched.c (sched_init): Ditto.
3511 * lra.h (lra_init_elimination): Remove the prototype.
3512 * lra-int.h (lra_insn_recog_data): New member sp_offset. Move
3513 used_insn_alternative upper.
3514 (lra_eliminate_regs_1): Add one more parameter.
3515 (lra-eliminate): Ditto.
3516 * lra.c (lra_invalidate_insn_data): Set sp_offset.
3517 (setup_sp_offset): New.
3518 (lra_process_new_insns): Call setup_sp_offset.
3519 (lra): Add argument to lra_eliminate calls.
3520 * lra-constraints.c (get_equiv_substitution): Rename to get_equiv.
3521 (get_equiv_with_elimination): New.
3522 (process_addr_reg): Call get_equiv_with_elimination instead of
3523 get_equiv_substitution.
3524 (equiv_address_substitution): Ditto.
3525 (loc_equivalence_change_p): Ditto.
3526 (loc_equivalence_callback, lra_constraints): Ditto.
3527 (curr_insn_transform): Ditto. Print the sp offset
3528 (process_alt_operands): Prevent stack pointer reloads.
3529 (lra_constraints): Remove one argument from lra_eliminate call.
3530 Move it up. Mark used hard regs bfore it. Use
3531 get_equiv_with_elimination instead of get_equiv_substitution.
3532 * lra-eliminations.c (lra_eliminate_regs_1): Add parameter and
3533 assert for param values combination. Use sp offset. Add argument
3534 to lra_eliminate_regs_1 calls.
3535 (lra_eliminate_regs): Add argument to lra_eliminate_regs_1 call.
3536 (curr_sp_change): New static var.
3537 (mark_not_eliminable): Add parameter. Update curr_sp_change.
3538 Don't prevent elimination to sp if we can calculate its change.
3539 Pass the argument to mark_not_eliminable calls.
3540 (eliminate_regs_in_insn): Add a parameter. Use sp offset. Add
3541 argument to lra_eliminate_regs_1 call.
3542 (update_reg_eliminate): Move calculation of hard regs for spill
3543 lower. Switch off lra_in_progress temporarily to generate regs
3544 involved into elimination.
3545 (lra_init_elimination): Rename to init_elimination. Make it
3546 static. Set up insn sp offset, check the offsets at the end of BBs.
3547 (process_insn_for_elimination): Add parameter. Pass its value to
3548 eliminate_regs_in_insn.
3549 (lra_eliminate): : Add parameter. Pass its value to
3550 process_insn_for_elimination. Add assert for param values
3551 combination. Call init_elimination. Don't update offsets in
3552 equivalence substitutions.
3553 * lra-spills.c (assign_mem_slot): Don't call lra_eliminate_regs_1
3554 for created stack slot.
3555 (remove_pseudos): Call lra_eliminate_regs_1 before changing memory
3556 onto stack slot.
3557
3558 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3559
3560 * config/arm/iterators.md (vrint_conds): New int attribute.
3561 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
3562 (smax<mode>3): Likewise.
3563 (smin<mode>3): Likewise.
3564
3565 2013-11-28 Richard Sandiford <rdsandiford@googlemail.com>
3566
3567 * tree-core.h (tree_base): Document use of static_flag for SSA_NAME.
3568 * tree.h (SSA_NAME_ANTI_RANGE_P, SSA_NAME_RANGE_TYPE): New macros.
3569 * tree-ssanames.h (set_range_info): Add range_type argument.
3570 (duplicate_ssa_name_range_info): Likewise.
3571 * tree-ssanames.c (set_range_info): Take the range type as argument
3572 and store it in SSA_NAME_ANTI_RANGE_P.
3573 (duplicate_ssa_name_range_info): Likewise.
3574 (get_range_info): Use SSA_NAME_ANTI_RANGE_P.
3575 (set_nonzero_bits): Update call to set_range_info.
3576 (duplicate_ssa_name_fn): Update call to duplicate_ssa_name_range_info.
3577 * tree-ssa-copy.c (fini_copy_prop): Likewise.
3578 * tree-vrp.c (remove_range_assertions): Update call to set_range_info.
3579 (vrp_finalize): Likewise, passing anti-ranges directly.
3580
3581 2013-11-28 Richard Biener <rguenther@suse.de>
3582
3583 PR tree-optimization/59330
3584 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
3585 and fix delayed marking of free calls not necessary.
3586
3587 2013-11-28 Andrew MacLeod <amacleod@redhat.com>
3588
3589 * tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to
3590 is_gimple_reg_type.
3591 * ipa-prop.c (determine_known_aggregate_parts): Likewise.
3592
3593 2013-11-28 Terry Guo <terry.guo@arm.com>
3594
3595 * config/arm/arm.c (v7m_extra_costs): New table.
3596 (arm_v7m_tune): Use it.
3597
3598 2013-11-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3599
3600 * config/sol2.h (TIME_LIBRARY): Define.
3601
3602 2013-11-28 Richard Biener <rguenther@suse.de>
3603
3604 PR lto/59323
3605 * lto-streamer-out.c (tree_is_indexable): TYPE_DECLs and
3606 CONST_DECLs in function context are not indexable.
3607
3608 2013-11-28 Chung-Ju Wu <jasonwucj@gmail.com>
3609
3610 * config/nds32/nds32.c (nds32_rtx_costs): Adjust MULT cost if it is
3611 not optimized for size.
3612
3613 2013-11-28 Jakub Jelinek <jakub@redhat.com>
3614
3615 * cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb
3616 fields.
3617 (expand_stack_vars): For -fsanitize=address, use (and set initially)
3618 data->asan_base as base for vars and update asan_alignb.
3619 (expand_used_vars): Initialize data.asan_base and data.asan_alignb.
3620 Pass them to asan_emit_stack_protection.
3621 * asan.c (asan_detect_stack_use_after_return): New variable.
3622 (asan_emit_stack_protection): Add pbase and alignb arguments.
3623 Implement use after return sanitization.
3624 * asan.h (asan_emit_stack_protection): Adjust prototype.
3625 (ASAN_STACK_MAGIC_USE_AFTER_RET, ASAN_STACK_RETIRED_MAGIC): Define.
3626
3627 2013-11-28 Sergey Ostanevich <sergos.gnu@gmail.com>
3628
3629 * common.opt: Introduced a new option -fsimd-cost-model.
3630 * doc/invoke.texi: Introduced a new openmp-simd warning and
3631 a new -fsimd-cost-model option.
3632 * tree-vectorizer.h (unlimited_cost_model): Interface updated
3633 to rely on the particular loop info.
3634 * tree-vect-data-refs.c (vect_peeling_hash_insert): Ditto.
3635 (vect_peeling_hash_choose_best_peeling): Ditto.
3636 (vect_enhance_data_refs_alignment): Ditto.
3637 * tree-vect-slp.c (vect_slp_analyze_bb_1): Ditto.
3638 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Ditto
3639 plus added openmp-simd warining.
3640
3641 2013-11-27 H.J. Lu <hongjiu.lu@intel.com>
3642
3643 PR rtl-optimization/59311
3644 * dwarf2cfi.c (dwf_regno): Assert reg isn't pseudo register.
3645 * lra-spills.c (spill_pseudos): Handle REG_XXX notes.
3646
3647 2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
3648
3649 * var-tracking.c (track_expr_p): Do not track declarations for parts
3650 of tracked parameters.
3651 (add_stores): Do not track values for tracked parameters passed in
3652 multiple locations.
3653 (vt_get_decl_and_offset): Handle PARALLEL.
3654 (vt_add_function_parameter): Handle parameters with incoming PARALLEL.
3655
3656 2013-11-27 Jeff Law <law@redhat.com>
3657
3658 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
3659 clobber the loop structure thread_block was unsuccessful. If
3660 thread_block was unsuccessful, cleanup appropriately.
3661
3662 2013-11-27 Chen Liqin <liqin.gcc@gmail.com>
3663
3664 * config/score/score.h (REG_CLASS_FROM_LETTER): Delete.
3665 (score_char_to_class): Likewise.
3666
3667 2013-11-27 Kenneth Zadeck <zadeck@naturalbridge.com>
3668
3669 * fold-const.c (int_const_binop_1): Make INT_MIN % -1 return 0 with
3670 the overflow bit set.
3671
3672 2013-11-27 Richard Biener <rguenther@suse.de>
3673
3674 PR middle-end/58723
3675 * cgraphbuild.c (build_cgraph_edges): Do not build edges
3676 for internal calls.
3677 (rebuild_cgraph_edges): Likewise.
3678 * ipa-inline-analysis.c (estimate_function_body_sizes):
3679 Skip internal calls.
3680 * tree-inline.c (estimate_num_insns): Estimate size of internal
3681 calls as 0.
3682 (gimple_expand_calls_inline): Do not try inline-expanding
3683 internal calls.
3684 * lto-streamer-in.c (input_cfg): Stream loop safelen,
3685 force_vect and simduid.
3686 (input_struct_function_base): Stream has_force_vect_loops
3687 and has_simduid_loops.
3688 (input_function): Adjust.
3689 * lto-streamer-out.c (output_cfg): Stream loop safelen,
3690 force_vect and simduid.
3691 (output_struct_function_base): Stream has_force_vect_loops
3692 and has_simduid_loops.
3693
3694 2013-11-27 Kai Tietz <ktietz@redhat.com>
3695
3696 * config/i386/winnt.c (i386_pe_section_type_flags): Use const
3697 pointer cast.
3698
3699 2013-11-27 Kugan Vivekanandarajah <kuganv@linaro.org>
3700
3701 * doc/tm.texi.in (TARGET_HAS_NO_HW_DIVIDE): Define.
3702 * doc/tm.texi (TARGET_HAS_NO_HW_DIVIDE): Regenerate.
3703
3704 2013-11-27 Marek Polacek <polacek@redhat.com>
3705
3706 PR sanitizer/59306
3707 * ubsan.c (instrument_null): Use gimple_store_p/gimple_assign_load_p
3708 instead of walk_gimple_op.
3709 (ubsan_pass): Adjust. Call instrument_null only if SANITIZE_NULL.
3710
3711 2013-11-27 Aldy Hernandez <aldyh@redhat.com>
3712 Jakub Jelinek <jakub@redhat.com>
3713
3714 * cgraph.h (enum cgraph_simd_clone_arg_type): New.
3715 (struct cgraph_simd_clone_arg, struct cgraph_simd_clone): New.
3716 (struct cgraph_node): Add simdclone and simd_clones fields.
3717 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen,
3718 ix86_simd_clone_adjust, ix86_simd_clone_usable): New functions.
3719 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
3720 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Define.
3721 * doc/tm.texi.in (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
3722 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Add.
3723 * doc/tm.texi: Regenerated.
3724 * ggc.h (ggc_alloc_cleared_simd_clone_stat): New function.
3725 * ipa-cp.c (determine_versionability): Fail if "omp declare simd"
3726 attribute is present.
3727 * omp-low.c: Include pretty-print.h, ipa-prop.h and tree-eh.h.
3728 (simd_clone_vector_of_formal_parm_types): New function.
3729 (simd_clone_struct_alloc, simd_clone_struct_copy,
3730 simd_clone_vector_of_formal_parm_types, simd_clone_clauses_extract,
3731 simd_clone_compute_base_data_type, simd_clone_mangle,
3732 simd_clone_create, simd_clone_adjust_return_type,
3733 create_tmp_simd_array, simd_clone_adjust_argument_types,
3734 simd_clone_init_simd_arrays): New functions.
3735 (struct modify_stmt_info): New type.
3736 (ipa_simd_modify_stmt_ops, ipa_simd_modify_function_body,
3737 simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone): New
3738 functions.
3739 (pass_data_omp_simd_clone): New variable.
3740 (pass_omp_simd_clone): New class.
3741 (make_pass_omp_simd_clone): New function.
3742 * passes.def (pass_omp_simd_clone): New.
3743 * target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
3744 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): New target hooks.
3745 * target.h (struct cgraph_node, struct cgraph_simd_node): Declare.
3746 * tree-core.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Document.
3747 * tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Define.
3748 * tree-pass.h (make_pass_omp_simd_clone): New prototype.
3749 * tree-vect-data-refs.c: Include cgraph.h.
3750 (vect_analyze_data_refs): Inline by hand find_data_references_in_loop
3751 and find_data_references_in_bb, if find_data_references_in_stmt
3752 fails, still allow calls to #pragma omp declare simd functions
3753 in #pragma omp simd loops unless they contain data references among
3754 the call arguments or in lhs.
3755 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3756 calls with no lhs.
3757 (vect_transform_loop): Allow NULL STMT_VINFO_VECTYPE for calls
3758 without lhs.
3759 * tree-vectorizer.h (enum stmt_vec_info_type): Add
3760 call_simd_clone_vec_info_type.
3761 (struct _stmt_vec_info): Add simd_clone_fndecl field.
3762 (STMT_VINFO_SIMD_CLONE_FNDECL): Define.
3763 * tree-vect-stmts.c: Include tree-ssa-loop.h,
3764 tree-scalar-evolution.h and cgraph.h.
3765 (vectorizable_call): Handle calls without lhs. Assert
3766 !stmt_can_throw_internal instead of failing for it. Don't update
3767 EH stuff.
3768 (struct simd_call_arg_info): New.
3769 (vectorizable_simd_clone_call): New function.
3770 (vect_transform_stmt): Call it.
3771 (vect_analyze_stmt): Likewise. Allow NULL STMT_VINFO_VECTYPE for
3772 calls without lhs.
3773 * ipa-prop.c (ipa_add_new_function): Only call ipa_analyze_node
3774 if cgraph_function_with_gimple_body_p is true.
3775
3776 2013-11-27 Tom de Vries <tom@codesourcery.com>
3777 Marc Glisse <marc.glisse@inria.fr>
3778
3779 PR middle-end/59037
3780 * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
3781 BIT_FIELD_REF.
3782 * gimple-fold.c (gimple_fold_indirect_ref): Same.
3783 * tree-cfg.c (verify_expr): Give error if BIT_FIELD_REF is
3784 out-of-bounds.
3785
3786 2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
3787
3788 PR middle-end/59138
3789 * expr.c (emit_group_store): Don't write past the end of the structure.
3790 (store_bit_field): Fix formatting.
3791
3792 2013-11-27 Richard Biener <rguenther@suse.de>
3793
3794 PR tree-optimization/59288
3795 * tree-vect-loop.c (get_initial_def_for_induction): Do not
3796 re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
3797
3798 2013-11-27 Marek Polacek <polacek@redhat.com>
3799
3800 * ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL
3801 for a decl, recreate that decl. Save into the hash table VAR_DECLs
3802 rather than ADDR_EXPRs.
3803
3804 2013-11-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
3805
3806 * config/ia64/hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.
3807
3808 2013-11-26 David Malcolm <dmalcolm@redhat.com>
3809
3810 * gengtype.c (struct seen_tag): New.
3811 (already_seen_tag): New.
3812 (mark_tag_as_seen): New.
3813 (walk_subclasses): Support having multiple subclasses using the
3814 same tag by tracking which tags have already been seen, and using
3815 this to avoid adding duplicate cases to the "switch" statement.
3816 The call to already_seen_tag introduces an O(N^2) when running
3817 gengtype on N, the number of tags, due to the repeated linear
3818 search, but currently max(N) is relatively small (the number of
3819 GSS codes, which is 26).
3820 (walk_type): Pass in a seen_tag for use by the walk_subclasses
3821 recursion.
3822
3823 * gimple.def (GIMPLE_OMP_ATOMIC_STORE, GIMPLE_OMP_RETURN): Rename
3824 underlying GSS values for these codes (from GSS_OMP_ATOMIC_STORE to
3825 GSS_OMP_ATOMIC_STORE_LAYOUT) to make clear that although
3826 GIMPLE_OMP_RETURN happens to share the data layout of
3827 GIMPLE_OMP_ATOMIC_STORE, they are not otherwise related.
3828 (GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TARGET): Likewise, rename
3829 underlying GSS value from GSS_OMP_PARALLEL to
3830 GSS_OMP_PARALLEL_LAYOUT to make clear that these gimple codes are
3831 not directly related; they merely share in-memory layout.
3832 (GIMPLE_OMP_SINGLE, GIMPLE_OMP_TEAMS): Likewise, rename GSS values
3833 for these two codes from GSS_OMP_SINGLE to GSS_OMP_SINGLE_LAYOUT.
3834
3835 * gsstruct.def (GSS_OMP_PARALLEL, gimple_statement_omp_parallel):
3836 Rename to...
3837 (GSS_OMP_PARALLEL_LAYOUT, gimple_statement_omp_parallel_layout):
3838 ...these.
3839 (GSS_OMP_SINGLE, gimple_statement_omp_single): Rename to...
3840 (GSS_OMP_SINGLE_LAYOUT, gimple_statement_omp_single_layout): ...these.
3841 (GSS_OMP_ATOMIC_STORE, gimple_statement_omp_atomic_store): Rename to...
3842 (GSS_OMP_ATOMIC_STORE_LAYOUT, gimple_statement_omp_atomic_store):
3843 ...these.
3844
3845 * gimple.h (gimple_statement_resx): New subclass of
3846 gimple_statement_eh_ctrl, with the invariant that
3847 stmt->code == GIMPLE_RESX.
3848 (gimple_statement_eh_dispatch): New subclass of
3849 gimple_statement_eh_ctrl, with the invariant that
3850 stmt->code == GIMPLE_EH_DISPATH.
3851
3852 (gimple_statement_omp_parallel): The existing class expressed
3853 a layout (GSS_OMP_PARALLEL), but the codes with that layout
3854 are not all related, so it makes more sense for this class to
3855 express a *code* (GIMPLE_OMP_PARALLEL). GSS_OMP_PARALLEL has
3856 been renamed to GSS_OMP_PARALLEL_LAYOUT to express this, so
3857 rename the existing gimple_statement_omp_parallel class to...
3858 (gimple_statement_omp_parallel_layout): ...this, expressing
3859 a statement of structure layout GSS_OMP_PARALLEL_LAYOUT.
3860 (gimple_statement_omp_taskreg): New subclass of
3861 gimple_statement_omp_parallel_layout, expressing the invariant
3862 that the code is one of GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK,
3863 as used by the various gimple_omp_taskreg_ accessors.
3864 (gimple_statement_omp_parallel): Reintroduce this class, this time
3865 as a subclass of gimple_statement_omp_taskreg to express the
3866 invariant stmt->code == GIMPLE_OMP_PARALLEL.
3867 (gimple_statement_omp_target) New class, subclassing
3868 gimple_statement_omp_parallel_layout, to express the invariant
3869 stmt->code == GIMPLE_OMP_TARGET.
3870 (gimple_statement_omp_task): Update to inherit from
3871 gimple_statement_omp_taskreg rather than
3872 gimple_statement_omp_parallel.
3873
3874 (gimple_statement_omp_single): Rename to...
3875 (gimple_statement_omp_single_layout): ...this, expressing the
3876 invariant that the layout is GSS_OMP_SINGLE_LAYOUT.
3877 (gimple_statement_omp_single): ...and reintroduce this name as
3878 a subclass of gimple_statement_omp_single_layout, expressing
3879 the invariant that code == GIMPLE_OMP_SINGLE.
3880 (gimple_statement_omp_teams): New class, subclassing
3881 gimple_statement_omp_single_layout, for the code GIMPLE_OMP_TEAMS.
3882
3883 (gimple_statement_omp_atomic_store): Rename to...
3884 (gimple_statement_omp_atomic_store_layout): ...this, expressing
3885 the invariant that the layout is GSS_OMP_ATOMIC_STORE_LAYOUT.
3886 (gimple_statement_omp_atomic_store): ...and reintroduce this
3887 name as a subclass of gimple_statement_omp_atomic_store_layout
3888 with code == GIMPLE_OMP_ATOMIC_STORE.
3889 (gimple_statement_omp_return): New class, subclassing
3890 gimple_statement_omp_atomic_store_layout for the code
3891 GIMPLE_OMP_RETURN.
3892
3893 (is_a_helper <gimple_statement_eh_ctrl>::test): Delete.
3894 (is_a_helper <gimple_statement_resx>::test): New.
3895 (is_a_helper <gimple_statement_eh_dispatch>::test): New.
3896 (is_a_helper <gimple_statement_omp_atomic_store>::test): Only
3897 check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
3898 (is_a_helper <gimple_statement_omp_return>::test): New.
3899 (is_a_helper <gimple_statement_omp_taskreg>::test): New.
3900 (is_a_helper <gimple_statement_omp_parallel>::test): Only check
3901 for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
3902 GIMPLE_OMP_TARGET.
3903 (is_a_helper <gimple_statement_omp_target>::test): New.
3904 (is_a_helper <gimple_statement_omp_single>::test): Only check
3905 for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
3906 (is_a_helper <gimple_statement_omp_teams>::test): New.
3907
3908 (is_a_helper <const gimple_statement_eh_ctrl>::test): Delete.
3909 (is_a_helper <const gimple_statement_resx>::test): New.
3910 (is_a_helper <const gimple_statement_eh_dispatch>::test): New.
3911 (is_a_helper <const gimple_statement_omp_atomic_store>::test): Only
3912 check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
3913 (is_a_helper <const gimple_statement_omp_return>::test): New.
3914 (is_a_helper <const gimple_statement_omp_taskreg>::test): New.
3915 (is_a_helper <const gimple_statement_omp_parallel>::test): Only
3916 check for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
3917 GIMPLE_OMP_TARGET.
3918 (is_a_helper <const gimple_statement_omp_target>::test): New.
3919 (is_a_helper <const gimple_statement_omp_single>::test): Only
3920 check for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
3921 (is_a_helper <const gimple_statement_omp_teams>::test): New.
3922
3923 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
3924 gimple_omp_return_lhs_ptr): Replace bogus downcasts to
3925 gimple_statement_omp_atomic_store with downcasts to
3926 gimple_statement_omp_return, thus requiring that the code be
3927 GIMPLE_OMP_RETURN.
3928 (gimple_resx_region, gimple_resx_set_region): Replace bogus
3929 downcasts to gimple_statement_eh_ctrl with downcasts to
3930 gimple_statement_resx, thus requiring that the code be GIMPLE_RESX.
3931 (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region):
3932 Replace bogus downcasts to const gimple_statement_eh_ctrl with
3933 downcasts to gimple_statement_eh_dispatch, thus requiring that
3934 the code be GIMPLE_EH_DISPATCH.
3935 (gimple_omp_taskreg_clauses, gimple_omp_taskreg_clauses_ptr)
3936 gimple_omp_taskreg_set_clauses, gimple_omp_taskreg_child_fn,
3937 gimple_omp_taskreg_child_fn_ptr, gimple_omp_taskreg_set_child_fn,
3938 gimple_omp_taskreg_data_arg, gimple_omp_taskreg_data_arg_ptr,
3939 gimple_omp_taskreg_set_data_arg): Replace bogus downcasts to
3940 gimple_statement_omp_parallel with downcasts to
3941 gimple_statement_omp_taskreg, thus requiring that the code be
3942 either GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK.
3943 (gimple_omp_target_clauses, gimple_omp_target_clauses_ptr
3944 gimple_omp_target_set_clauses, gimple_omp_target_child_fn
3945 gimple_omp_target_child_fn_ptr, gimple_omp_target_set_child_fn
3946 gimple_omp_target_data_arg, gimple_omp_target_data_arg_ptr
3947 gimple_omp_target_set_data_arg): Replace bogus downcasts to
3948 gimple_statement_omp_parallel with downcasts to
3949 gimple_statement_omp_target, thus requiring that the code be
3950 GIMPLE_OMP_TARGET.
3951 (gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr
3952 gimple_omp_teams_set_clauses): Replace bogus downcasts to
3953 gimple_statement_omp_single with downcasts to
3954 gimple_statement_omp_teams, thus requiring that the code be
3955 GIMPLE_OMP_TEAMS.
3956
3957 * gimple.c (gimple_build_resx): Fix bogus as_a<> to use
3958 gimple_statement_resx.
3959 (gimple_build_eh_dispatch): Fix bogus as_a<> to use
3960 gimple_statement_eh_dispatch.
3961
3962 2013-11-26 Jakub Jelinek <jakub@redhat.com>
3963
3964 PR tree-optimization/59014
3965 * tree-vrp.c (register_edge_assert_for_1): Don't look
3966 through conversions from non-integral types or through
3967 narrowing conversions.
3968
3969 PR target/59229
3970 * config/i386/i386.c (device_alg): Fix up formatting.
3971 (ix86_expand_set_or_movmem): Handle max_size < epilogue_size_needed
3972 similarly to count && count < epilogue_size_needed. Fix up
3973 comment typo.
3974 * builtins.c (determine_block_size): Fix comment typo.
3975
3976 PR sanitizer/59258
3977 * ubsan.c (ubsan_source_location): Don't add any location
3978 to ADDR_EXPR in the ctor. Revert 2013-11-22 change.
3979 (ubsan_create_data): Strip block info from LOC.
3980
3981 PR middle-end/59273
3982 * tree-vect-generic.c (optimize_vector_constructor): Don't optimize
3983 if there isn't optab handler for the corresponding vector PLUS_EXPR.
3984
3985 PR rtl-optimization/59166
3986 * ira.c (find_moveable_pseudos): Use DF_REF_REAL_LOC instead of
3987 DF_REF_LOC in validate_change call.
3988 (split_live_ranges_for_shrink_wrap): Likewise.
3989
3990 PR middle-end/59150
3991 * omp-low.c (lower_rec_input_clause): For reduction with placeholder
3992 of references to constant size types in simd loops, defer emitting
3993 initializer for the new_var, emit it later on only if not using
3994 SIMD arrays for it.
3995
3996 PR middle-end/59152
3997 * omp-low.c (expand_omp_for_static_chunk): Don't set loop->latch
3998 for the inner loop if collapse_bb is non-NULL.
3999 (expand_omp_simd): Use cont_bb rather than e->dest as latch.
4000
4001 2013-11-26 Yufeng Zhang <yufeng.zhang@arm.com>
4002
4003 * config/arm/arm.c (arm_legitimize_address): Check xop1 is not
4004 a constant immediate before force_reg.
4005
4006 2013-11-26 Richard Biener <rguenther@suse.de>
4007
4008 PR tree-optimization/59245
4009 * tree-vrp.c (set_value_range): Assert that we don't have
4010 overflowed constants (but our infinities).
4011 (set_value_range_to_value): Drop all overflow flags.
4012 (vrp_visit_phi_node): Likewise.
4013 (vrp_visit_assignment_or_call): Use set_value_range_to_value
4014 to set a constant range.
4015
4016 2013-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4017
4018 PR target/59290
4019 * config/arm/arm.md (*zextendsidi_negsi): New pattern.
4020 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost correctly
4021 for zero_extend case.
4022
4023 2013-11-26 H.J. Lu <hongjiu.lu@intel.com>
4024
4025 PR bootstrap/55552
4026 * configure.ac (install_gold_as_default): New. Set to yes for
4027 --disable-ld or --enable-gold=default.
4028 (gcc_cv_ld_gold_srcdir): New.
4029 (gcc_cv_ld): Also check in-tree gold if install_gold_as_default is yes.
4030 (ORIGINAL_LD_BFD_FOR_TARGET): New AC_SUBST.
4031 (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
4032 * configure: Regenerated.
4033
4034 * exec-tool.in (ORIGINAL_LD_BFD_FOR_TARGET): New variable.
4035 (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
4036 (original) [collect-ld && -fuse-ld=bfd]: Set to
4037 $ORIGINAL_LD_BFD_FOR_TARGET.
4038 (original) [collect-ld && -fuse-ld=gold]: Set to
4039 $ORIGINAL_LD_GOLD_FOR_TARGET.
4040 (dir) [collect-ld && ../gold/ld-new]: Set to gold.
4041 (fast_install) [collect-ld && ../gold/ld-new]: Set to yes.
4042
4043 2013-11-26 Terry Guo <terry.guo@arm.com>
4044
4045 * config/arm/arm.c (require_pic_register): Handle high pic base
4046 register for thumb-1.
4047 (arm_load_pic_register): Also initialize high pic base register.
4048 * doc/invoke.texi: Update documentation for option -mpic-register.
4049
4050 2013-11-26 Oleg Endo <olegendo@gcc.gnu.org>
4051
4052 PR target/58314
4053 PR target/50751
4054 * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
4055 Prefix function names with 'sh_'. Make them non-static.
4056 * config/sh/sh-protos.h (sh_disp_addr_displacement,
4057 sh_max_mov_insn_displacement): Add declarations.
4058 * config/sh/constraints.md (Q): Reject QImode.
4059 (Sdd): Use match_code "mem".
4060 (Snd): Fix erroneous matching of non-memory operands.
4061 * config/sh/predicates.md (short_displacement_mem_operand): New
4062 predicate.
4063 (general_movsrc_operand): Disallow PC relative QImode loads.
4064 * config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
4065 (*movqi, *movhi): Merge both insns into...
4066 (*mov<mode>): ... this new insn. Replace generic 'm' constraints with
4067 'Snd' and 'Sdd' constraints. Calculate insn length dynamically based
4068 on the operand types.
4069
4070 2013-11-26 Joern Rennecke <joern.rennecke@embecosm.com>
4071
4072 * config/epiphany/epiphany.c (epiphany_expand_prologue):
4073 Remove unused variable save_config.
4074 (epiphany_compute_frame_size): Avoid signed/unsigned comparison in
4075 assert.
4076
4077 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
4078
4079 * config/aarch64/arm_neon.h (vtbx1_<psu>8): Emulate behaviour
4080 using other intrinsics.
4081 (vtbx3_<psu>8): Likewise.
4082
4083 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
4084
4085 * config/aarch64/aarch64-builtins.c
4086 (aarch64_types_bsl_p_qualifiers): New.
4087 (aarch64_types_bsl_s_qualifiers): Likewise.
4088 (aarch64_types_bsl_u_qualifiers): Likewise.
4089 (TYPES_BSL_P): Likewise.
4090 (TYPES_BSL_S): Likewise.
4091 (TYPES_BSL_U): Likewise.
4092 (BUILTIN_VALLDIF): Likewise.
4093 (BUILTIN_VDQQH): Likewise.
4094 * config/aarch64/aarch64-simd-builtins.def (simd_bsl): New.
4095 * config/aarch64/aarch64-simd.md
4096 (aarch64_simd_bsl<mode>_internal): Handle more modes.
4097 (aarch64_simd_bsl<mode>): Likewise.
4098 * config/aarch64/arm_neon.h
4099 (vbsl<q>_<fpsu><8,16,32,64): Implement using builtins.
4100 * config/aarch64/iterators.md (VALLDIF): New.
4101 (Vbtype): Handle more modes.
4102
4103 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
4104
4105 * config/aarch64/aarch64-builtins.c
4106 (aarch64_type_qualifiers): Add qualifier_poly.
4107 (aarch64_build_scalar_type): Also build Poly types.
4108 (aarch64_build_vector_type): Likewise.
4109 (aarch64_build_type): Likewise.
4110 (aarch64_build_signed_type): New.
4111 (aarch64_build_unsigned_type): Likewise.
4112 (aarch64_build_poly_type): Likewise.
4113 (aarch64_init_simd_builtins): Also handle Poly types.
4114
4115 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
4116
4117 * config/aarch64/aarch64-builtins.c
4118 (VAR1): Use new naming scheme for aarch64_builtins.
4119 (aarch64_builtin_vectorized_function): Use new aarch64_builtins names.
4120
4121 2013-11-26 Richard Biener <rguenther@suse.de>
4122
4123 PR tree-optimization/59287
4124 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4125 Remove no longer necessary special-casing of union accesses.
4126
4127 2013-11-26 Richard Biener <rguenther@suse.de>
4128
4129 * pretty-print.c (output_buffer::~output_buffer): Really
4130 free the obstacks.
4131
4132 2013-11-25 Jeff Law <law@redhat.com>
4133
4134 * tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively
4135 invalidate loop information.
4136
4137 2013-11-25 Oleg Endo <olegendo@gcc.gnu.org>
4138
4139 * config/sh/sh.md (doloop_end_split): Add missing SI mode.
4140
4141 2013-11-25 Oleg Endo <olegendo@gcc.gnu.org>
4142
4143 PR target/53976
4144 PR target/59243
4145 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value): Update
4146 comments.
4147 (sh_optimize_sett_clrt::find_last_ccreg_values): Check stack of
4148 previously visited basic blocks before recursing instead of only one
4149 basic block.
4150
4151 2013-11-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4152
4153 * config/aarch64/aarch64.c (cortexa53_tuning): New struct.
4154 * config/aarch64/aarch64-cores.def (cortex-a53):
4155 Use cortexa53 tuning struct.
4156
4157 2013-11-25 Andrew Macleod <amacleod@redhat.com>
4158
4159 PR bootstrap/59260
4160 * fold-const.c: Include hash-table.h.
4161
4162 2013-11-25 Marek Polacek <polacek@redhat.com>
4163
4164 PR sanitizer/59258
4165 * ubsan.c (ubsan_create_data): Increase the size of the fields array.
4166
4167 2013-11-25 Richard Biener <rguenther@suse.de>
4168
4169 * tree-dfa.c: Remove unused convert.h include.
4170
4171 2013-11-25 Terry Guo <terry.guo@arm.com>
4172
4173 * doc/invoke.texi (-mslow-flash-data): Document new option.
4174 * config/arm/arm.opt (mslow-flash-data): New option.
4175 * config/arm/arm-protos.h (arm_max_const_double_inline_cost):
4176 Declare it.
4177 * config/arm/arm.h (TARGET_USE_MOVT): Always true when literal pools
4178 are disabled.
4179 (arm_disable_literal_pool): Declare it.
4180 * config/arm/arm.c (arm_disable_literal_pool): New variable.
4181 (arm_option_override): Handle new option.
4182 (thumb2_legitimate_address_p): Don't allow symbol references when
4183 literal pools are disabled.
4184 (arm_max_const_double_inline_cost): New function.
4185 * config/arm/arm.md (types.md): Include it before ...
4186 (use_literal_pool): New attribute.
4187 (enabled): Use new attribute.
4188 (split pattern): Replace symbol+offset with MOVW/MOVT.
4189
4190 2013-11-24 Steven Bosscher <steven@gcc.gnu.org>
4191
4192 PR bootstrap/59279
4193 Revert previous commit.
4194
4195 2013-11-24 Steven Bosscher <steven@gcc.gnu.org>
4196
4197 * jump.c (reset_insn_reg_label_operand_notes): New function,
4198 split out from ...
4199 (init_label_info): ... here. Reset LABEL_NUSES in cfglayout mode.
4200 * cfgcleanup.c (delete_dead_jump_tables_between): New function,
4201 split out from ...
4202 (delete_dead_jumptables): ... here. Handle cfglayout mode.
4203 (cleanup_cfg): Delete dead jump tables in cfglayout mode if an
4204 expensive CFG cleanup is called for.
4205 * cfgrtl.c (fixup_reorder_chain): Remove BARRIERs from fallthru paths.
4206 (cfg_layout_finalize): Delete dead jump tables before re-building
4207 the insns chain.
4208 * ira.c (ira): Rebuild jump labels *after* deleting unreachable
4209 basic blocks, not before.
4210 * loop-init.c (rtl_loop_done): Call for an expensive CFG cleanup.
4211
4212 * modulo-sched.c (sms_schedule): Do not look for BARRIERs in the
4213 insns chain of a scheduling extended basic block, they cannot appear
4214 there in cfglayout mode.
4215
4216 2013-11-24 Tobias Burnus <burnus@net-b.de>
4217
4218 * doc/invoke.texi (-fsanitize=leak): Add link to the wiki page.
4219
4220 2013-11-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4221
4222 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
4223 for little endian.
4224
4225 2013-11-24 H.J. Lu <hongjiu.lu@intel.com>
4226
4227 * graphite-sese-to-poly.c: Don't include extra "expr.h".
4228
4229 2013-11-23 Eric Botcazou <ebotcazou@adacore.com>
4230
4231 * cilk-common.c (expand_builtin_cilk_detach): Dereference worker.
4232
4233 2013-11-23 David Edelson <dje.gcc@gmail.com>
4234 Andrew Dixie <andrewd@gentrack.com>
4235
4236 PR target/33704
4237 * config/rs6000/aix.h (COLLECT_SHARED_INIT_FUNC): Define.
4238 (COLLECT_SHARED_FINI_FUNC): Define.
4239
4240 * collect2.c (aix_shared_initname): Declare.
4241 (aix_shared_fininame): Declare.
4242 (symkind): Add SYM_AIXI and SYM_AIXD.
4243 (scanfilter_masks): Add SCAN_AIXI and SCAN_AIXD.
4244 (struct names special): Add GLOBAL__AIXI_ and GLOBAL__AIXD_.
4245 (aixlazy_flag): Parse.
4246 (extract_init_priority): SYM_AIXI and SYM_AIXD have highest priority.
4247 (scan_prog_file, COFF): Handle SYM_AIXI and SYM_AIXD.
4248
4249 2013-11-23 David Edelsohn <dje.gcc@gmail.com>
4250
4251 * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
4252 (rs6000_xcoff_select_section): Place decls with stricter alignment
4253 into named sections.
4254 (rs6000_xcoff_unique_section): Allow unique sections for
4255 uninitialized data with strict alignment.
4256
4257 2013-11-23 Jakub Jelinek <jakub@redhat.com>
4258
4259 PR tree-optimization/59154
4260 * tree-ssa-reassoc.c (maybe_optimize_range_tests): When changing
4261 rhs1 of a cast and new_op is invariant, fold_convert it.
4262 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Only call
4263 simplify_conversion_from_bitmask if rhs1 is a SSA_NAME.
4264
4265 2013-11-23 Uros Bizjak <ubizjak@gmail.com>
4266
4267 PR target/56788
4268 * config/i386/i386.c (bdesc_multi_arg) <IX86_BUILTIN_VFRCZSS>:
4269 Declare as MULTI_ARG_1_SF instruction.
4270 <IX86_BUILTIN_VFRCZSD>: Decleare as MULTI_ARG_1_DF instruction.
4271 * config/i386/sse.md (*xop_vmfrcz<mode>2): Rename
4272 from *xop_vmfrcz_<mode>.
4273 * config/i386/xopintrin.h (_mm_frcz_ss): Use __builtin_ia32_movss
4274 to merge scalar result with __A.
4275 (_mm_frcz_sd): Use __builtin_ia32_movsd to merge scalar
4276 result with __A.
4277
4278 2013-11-23 Eric Botcazou <ebotcazou@adacore.com>
4279
4280 * gimplify.h (recalculate_side_effects): Delete.
4281 * gimplify.c (recalculate_side_effects): Make static and add comment.
4282
4283 2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
4284
4285 * config/sh/sh.md: Use nonimmediate_operand rather than general_operand
4286 for the destination of a define_peephole2. Likewise register_operand
4287 rather than arith_reg_operand. Remove constraints from
4288 define_peephole2s.
4289
4290 2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
4291
4292 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation):
4293 Delete.
4294 (mn10300_store_multiple_operation_p): Declare.
4295 * config/mn10300/mn10300.c (mn10300_store_multiple_operation):
4296 Rename to...
4297 (mn10300_store_multiple_operation_p): ...this and remove mode
4298 argument.
4299 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
4300 Define.
4301
4302 2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
4303
4304 * config/bfin/bfin-protos.h (push_multiple_operation): Delete.
4305 (pop_multiple_operation): Delete.
4306 (analyze_push_multiple_operation): Declare.
4307 (analyze_pop_multiple_operation): Declare.
4308 * config/bfin/bfin.c (push_multiple_operation): Rename to...
4309 (analyze_push_multiple_operation): ...this and remove mode argument.
4310 (pop_multiple_operation): Rename to...
4311 (analyze_pop_multiple_operation): ...this and remove mode argument.
4312 * config/bfin/predicates.md (push_multiple_operation): Define.
4313 (pop_multiple_operation): Likewise.
4314
4315 2013-11-23 Alan Modra <amodra@gmail.com>
4316
4317 * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.
4318
4319 2013-11-22 Jakub Jelinek <jakub@redhat.com>
4320
4321 PR sanitizer/59061
4322 * common.opt (static-liblsan): Add.
4323 * config/gnu-user.h (STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS):
4324 Define.
4325 * flag-types.h (enum sanitize_code): Add SANITIZE_LEAK. Renumber
4326 SANITIZE_SHIFT, SANITIZE_DIVIDE, SANITIZE_UNREACHABLE, SANITIZE_VLA,
4327 SANITIZE_RETURN.
4328 * opts.c (common_handle_option): Handle -fsanitize=leak.
4329 * gcc.c (ADD_STATIC_LIBLSAN_LIBS, LIBLSAN_SPEC): Define.
4330 (LIBUBSAN_SPEC): Don't test LIBUBSAN_EARLY_SPEC.
4331 (LIBUBSAN_EARLY_SPEC): Remove.
4332 (SANITIZER_EARLY_SPEC): Don't do anything for libubsan.
4333 (SANITIZER_SPEC): Add -fsanitize=leak handling.
4334 (sanitize_spec_function): Handle %sanitize(leak).
4335 * doc/invoke.texi (-static-liblsan, -fsanitize=leak): Document.
4336
4337 2013-11-22 Aldy Hernandez <aldyh@redhat.com>
4338 Jakub Jelinek <jakub@redhat.com>
4339
4340 * ipa.c (symtab_remove_unreachable_nodes): Fix up comment typos.
4341 * ipa-prop.c (get_vector_of_formal_parm_types): Renamed to ...
4342 (ipa_get_vector_of_formal_parm_types): ... this. No longer static.
4343 (ipa_modify_formal_parameters): Adjust caller. Remove
4344 synth_parm_prefix argument. Use operator enum instead of bit fields.
4345 Add assert for properly handling vector of references. Handle
4346 creating brand new parameters.
4347 (ipa_modify_call_arguments): Use operator enum instead of bit
4348 fields.
4349 (ipa_combine_adjustments): Same. Assert that IPA_PARM_OP_NEW is not
4350 used.
4351 (ipa_modify_expr, get_ssa_base_param, ipa_get_adjustment_candidate):
4352 New functions.
4353 (ipa_dump_param_adjustments): Rename reduction to new_decl.
4354 Use operator enum instead of bit fields.
4355 * ipa-prop.h (enum ipa_parm_op): New.
4356 (struct ipa_parm_adjustment): New field op. Rename reduction
4357 to new_decl, new_arg_prefix to arg_prefix and remove remove_param
4358 and copy_param.
4359 (ipa_modify_formal_parameters): Remove last argument.
4360 (ipa_get_vector_of_formal_parm_types, ipa_modify_expr,
4361 ipa_get_adjustment_candidate): New prototypes.
4362 * tree-sra.c (turn_representatives_into_adjustments): Use operator
4363 enum. Set arg_prefix.
4364 (get_adjustment_for_base): Use operator enum.
4365 (sra_ipa_modify_expr): Rename to ipa_modify_expr and move to
4366 ipa-prop.c.
4367 (sra_ipa_modify_assign): Rename sra_ipa_modify_expr to ipa_modify_expr.
4368 (ipa_sra_modify_function_body): Same. No longer static.
4369 (sra_ipa_reset_debug_stmts): Use operator enum.
4370 (modify_function): Do not pass prefix argument.
4371
4372 2013-11-22 Jakub Jelinek <jakub@redhat.com>
4373
4374 * ubsan.c (ubsan_source_location): Don't crash on unknown locations.
4375 (ubsan_pass): Ignore clobber stmts.
4376
4377 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_MISSING_RETURN): New built-in.
4378 * opts.c (common_handle_option): Add -fsanitize=return.
4379 * flag-types.h (enum sanitize_code): Add SANITIZE_RETURN and
4380 or it into SANITIZE_UNDEFINED.
4381
4382 * sanitizer.def (BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT,
4383 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT): New.
4384 * asan.c (instrument_derefs): Handle also VAR_DECL loads/stores.
4385 Don't instrument accesses to VAR_DECLs which are known to fit
4386 into their bounds and the vars are known to have shadow bytes
4387 indicating allowed access.
4388 (asan_dynamic_init_call): New function.
4389 (asan_add_global): If vnode->dynamically_initialized,
4390 set __has_dynamic_init to 1 instead of 0.
4391 (initialize_sanitizer_builtins): Add BT_FN_VOID_CONST_PTR var.
4392 * asan.h (asan_dynamic_init_call): New prototype.
4393 * cgraph.h (varpool_node): Add dynamically_initialized bitfield.
4394
4395 2013-11-22 Martin Jambor <mjambor@suse.cz>
4396
4397 PR rtl-optimization/10474
4398 * ira.c (interesting_dest_for_shprep_1): New function.
4399 (interesting_dest_for_shprep): Use interesting_dest_for_shprep_1,
4400 also check parallels.
4401
4402 2013-11-22 Jeff Law <law@redhat.com>
4403
4404 * tree-ssa-threadedge.c (record_temporary_equivalence): Handle
4405 NULL for RHS, which we used to invalidate equivalences.
4406 (record_temporary_equivalences_from_phis): New bitmap arguments
4407 and a boolean indicating if we have passed a backedge. If we
4408 have passed a backedge, then set the appropriate bit in the
4409 bitmaps for the SRC & DEST of PHIs creating equivalences.
4410 (invalidate_equivalences, dummy_simplify): New functions.
4411 (cond_arg_set_in_b): Remove.
4412 (record_temporary_equivalences_from_stmts_at_dest): New bitmap
4413 arguments and a boolean indicating if we have passed a backedge.
4414 If we have passed a backedge, then perform invalidations as needed.
4415 (thread_around_empty_blocks): If we have seen a backedge, then
4416 use the dummy simplify routine.
4417 (thread_through_normal_block): Likewise. Pass bitmaps and
4418 backedge status to children. Do not pessimize so much when
4419 traversing backedges in the CFG.
4420 (thread_across_edge): Manage the SRC_MAP/DST_MAP bitmaps.
4421 If we have seen a backedge, then use the dummy simplify routine.
4422 Do not pessimize so much when traversing backedges.
4423
4424 2013-11-22 Hans-Peter Nilsson <hp@axis.com>
4425
4426 * config/cris/cris.c (cris_atomic_align_for_mode): New function.
4427 (TARGET_ATOMIC_ALIGN_FOR_MODE): Define.
4428
4429 2013-11-22 Yuri Rumyantsev <ysrumyan@gmail.com>
4430
4431 * config/i386/i386.c (processor_alias_table): Enable PTA_AES,
4432 PTA_PCLMUL and PTA_RDRND for Silvermont.
4433 * config/i386/driver-i386.c (host_detect_local_cpu): Set up cpu
4434 for Silvermont.
4435
4436 * doc/invoke.texi: Mention AES, PCLMUL and RDRND for Silvermont.
4437
4438 2013-11-22 Andrew MacLeod <amacleod@redhat.com>
4439
4440 * hooks.h (hook_uint_mode_0): Add Prototype.
4441 * hooks.c (hook_uint_mode_0): New default function.
4442 * target.def (atomic_align_for_mode): New target hook.
4443 * tree.c (build_atomic_base): Add alignment override parameter.
4444 (build_common_tree_nodes): Use atomic alignment override.
4445 * doc/tm.texi.in (TARGET_ATOMIC_ALIGN_FOR_MODE): Define.
4446 * doc/tm.texi (TARGET_ATOMIC_ALIGN_FOR_MODE): Add description.
4447
4448 2013-11-22 Andrew MacLeod <amacleod@redhat.com>
4449
4450 * gimple.h: Remove all includes.
4451 (recalculate_side_effects): Move prototype to gimplify.h.
4452 * Makefile.in (PLUGIN_HEADERS): Add flattened gimple.h includes.
4453 * gengtype.c (open_base_files): Add gimple.h include list.
4454 * gimplify.h (recalculate_side_effects): Relocate prototype here.
4455 * gimple.c: Adjust include list.
4456 (recalculate_side_effects): Move to gimplify.c.
4457 * gimplify.c: Adjust include list.
4458 (recalculate_side_effects): Relocate from gimple.c.
4459 * alias.c: Add required include files removed from gimple.h.
4460 * asan.c: Likewise.
4461 * builtins.c: Likewise.
4462 * calls.c: Likewise.
4463 * cfgexpand.c: Likewise.
4464 * cfgloop.c: Likewise.
4465 * cfgloopmanip.c: Likewise.
4466 * cgraphbuild.c: Likewise.
4467 * cgraph.c: Likewise.
4468 * cgraphclones.c: Likewise.
4469 * cgraphunit.c: Likewise.
4470 * cilk-common.c: Likewise.
4471 * data-streamer.c: Likewise.
4472 * data-streamer-in.c: Likewise.
4473 * data-streamer-out.c: Likewise.
4474 * dse.c: Likewise.
4475 * dwarf2out.c: Likewise.
4476 * emit-rtl.c: Likewise.
4477 * except.c: Likewise.
4478 * expr.c: Likewise.
4479 * fold-const.c: Likewise.
4480 * function.c: Likewise.
4481 * gimple-builder.c: Likewise.
4482 * gimple-expr.c: Likewise.
4483 * gimple-fold.c: Likewise.
4484 * gimple-iterator.c: Likewise.
4485 * gimple-low.c: Likewise.
4486 * gimple-pretty-print.c: Likewise.
4487 * gimple-ssa-isolate-paths.c: Likewise.
4488 * gimple-ssa-strength-reduction.c: Likewise.
4489 * gimple-streamer-in.c: Likewise.
4490 * gimple-streamer-out.c: Likewise.
4491 * gimple-walk.c: Likewise.
4492 * gimplify-me.c: Likewise.
4493 * graphite-blocking.c: Likewise.
4494 * graphite.c: Likewise.
4495 * graphite-clast-to-gimple.c: Likewise.
4496 * graphite-dependences.c: Likewise.
4497 * graphite-interchange.c: Likewise.
4498 * graphite-optimize-isl.c: Likewise.
4499 * graphite-poly.c: Likewise.
4500 * graphite-scop-detection.c: Likewise.
4501 * graphite-sese-to-poly.c: Likewise.
4502 * internal-fn.c: Likewise.
4503 * ipa.c: Likewise.
4504 * ipa-cp.c: Likewise.
4505 * ipa-devirt.c: Likewise.
4506 * ipa-inline-analysis.c: Likewise.
4507 * ipa-inline.c: Likewise.
4508 * ipa-profile.c: Likewise.
4509 * ipa-prop.c: Likewise.
4510 * ipa-pure-const.c: Likewise.
4511 * ipa-reference.c: Likewise.
4512 * ipa-split.c: Likewise.
4513 * ipa-utils.c: Likewise.
4514 * langhooks.c: Likewise.
4515 * lto-cgraph.c: Likewise.
4516 * lto-compress.c: Likewise.
4517 * lto-opts.c: Likewise.
4518 * lto-section-in.c: Likewise.
4519 * lto-section-out.c: Likewise.
4520 * lto-streamer.c: Likewise.
4521 * lto-streamer-in.c: Likewise.
4522 * lto-streamer-out.c: Likewise.
4523 * omp-low.c: Likewise.
4524 * opts-global.c: Likewise.
4525 * passes.c: Likewise.
4526 * predict.c: Likewise.
4527 * profile.c: Likewise.
4528 * sese.c: Likewise.
4529 * stmt.c: Likewise.
4530 * stor-layout.c: Likewise.
4531 * symtab.c: Likewise.
4532 * targhooks.c: Likewise.
4533 * toplev.c: Likewise.
4534 * tracer.c: Likewise.
4535 * trans-mem.c: Likewise.
4536 * tree-affine.c: Likewise.
4537 * tree.c: Likewise.
4538 * tree-call-cdce.c: Likewise.
4539 * tree-cfg.c: Likewise.
4540 * tree-cfgcleanup.c: Likewise.
4541 * tree-chrec.c: Likewise.
4542 * tree-complex.c: Likewise.
4543 * tree-data-ref.c: Likewise.
4544 * tree-dfa.c: Likewise.
4545 * tree-eh.c: Likewise.
4546 * tree-emutls.c: Likewise.
4547 * tree-if-conv.c: Likewise.
4548 * tree-inline.c: Likewise.
4549 * tree-into-ssa.c: Likewise.
4550 * tree-loop-distribution.c: Likewise.
4551 * tree-nested.c: Likewise.
4552 * tree-nrv.c: Likewise.
4553 * tree-object-size.c: Likewise.
4554 * tree-outof-ssa.c: Likewise.
4555 * tree-parloops.c: Likewise.
4556 * tree-phinodes.c: Likewise.
4557 * tree-predcom.c: Likewise.
4558 * tree-pretty-print.c: Likewise.
4559 * tree-profile.c: Likewise.
4560 * tree-scalar-evolution.c: Likewise.
4561 * tree-sra.c: Likewise.
4562 * tree-ssa-address.c: Likewise.
4563 * tree-ssa-alias.c: Likewise.
4564 * tree-ssa.c: Likewise.
4565 * tree-ssa-ccp.c: Likewise.
4566 * tree-ssa-coalesce.c: Likewise.
4567 * tree-ssa-copy.c: Likewise.
4568 * tree-ssa-copyrename.c: Likewise.
4569 * tree-ssa-dce.c: Likewise.
4570 * tree-ssa-dom.c: Likewise.
4571 * tree-ssa-dse.c: Likewise.
4572 * tree-ssa-forwprop.c: Likewise.
4573 * tree-ssa-ifcombine.c: Likewise.
4574 * tree-ssa-live.c: Likewise.
4575 * tree-ssa-loop.c: Likewise.
4576 * tree-ssa-loop-ch.c: Likewise.
4577 * tree-ssa-loop-im.c: Likewise.
4578 * tree-ssa-loop-ivcanon.c: Likewise.
4579 * tree-ssa-loop-ivopts.c: Likewise.
4580 * tree-ssa-loop-manip.c: Likewise.
4581 * tree-ssa-loop-niter.c: Likewise.
4582 * tree-ssa-loop-prefetch.c: Likewise.
4583 * tree-ssa-loop-unswitch.c: Likewise.
4584 * tree-ssa-math-opts.c: Likewise.
4585 * tree-ssanames.c: Likewise.
4586 * tree-ssa-operands.c: Likewise.
4587 * tree-ssa-phiopt.c: Likewise.
4588 * tree-ssa-phiprop.c: Likewise.
4589 * tree-ssa-pre.c: Likewise.
4590 * tree-ssa-propagate.c: Likewise.
4591 * tree-ssa-reassoc.c: Likewise.
4592 * tree-ssa-sccvn.c: Likewise.
4593 * tree-ssa-sink.c: Likewise.
4594 * tree-ssa-strlen.c: Likewise.
4595 * tree-ssa-structalias.c: Likewise.
4596 * tree-ssa-tail-merge.c: Likewise.
4597 * tree-ssa-ter.c: Likewise.
4598 * tree-ssa-threadedge.c: Likewise.
4599 * tree-ssa-threadupdate.c: Likewise.
4600 * tree-ssa-uncprop.c: Likewise.
4601 * tree-ssa-uninit.c: Likewise.
4602 * tree-stdarg.c: Likewise.
4603 * tree-streamer.c: Likewise.
4604 * tree-streamer-in.c: Likewise.
4605 * tree-streamer-out.c: Likewise.
4606 * tree-switch-conversion.c: Likewise.
4607 * tree-tailcall.c: Likewise.
4608 * tree-vect-data-refs.c: Likewise.
4609 * tree-vect-generic.c: Likewise.
4610 * tree-vect-loop.c: Likewise.
4611 * tree-vect-loop-manip.c: Likewise.
4612 * tree-vectorizer.c: Likewise.
4613 * tree-vect-patterns.c: Likewise.
4614 * tree-vect-slp.c: Likewise.
4615 * tree-vect-stmts.c: Likewise.
4616 * tree-vrp.c: Likewise.
4617 * tsan.c: Likewise.
4618 * ubsan.c: Likewise.
4619 * value-prof.c: Likewise.
4620 * varpool.c: Likewise.
4621 * var-tracking.c: Likewise.
4622 * vtable-verify.c: Likewise.
4623 * config/darwin.c: Likewise.
4624 * config/aarch64/aarch64-builtins.c: Likewise.
4625 * config/aarch64/aarch64.c: Likewise.
4626 * config/alpha/alpha.c: Likewise.
4627 * config/i386/i386.c: Likewise.
4628 * config/i386/winnt.c: Likewise.
4629 * config/ia64/ia64.c: Likewise.
4630 * config/m32c/m32c.c: Likewise.
4631 * config/mep/mep.c: Likewise.
4632 * config/mips/mips.c: Likewise.
4633 * config/rs6000/rs6000.c: Likewise.
4634 * config/s390/s390.c: Likewise.
4635 * config/sh/sh.c: Likewise.
4636 * config/sparc/sparc.c: Likewise.
4637 * config/spu/spu.c: Likewise.
4638 * config/stormy16/stormy16.c: Likewise.
4639 * config/tilegx/tilegx.c: Likewise.
4640 * config/tilepro/tilepro.c: Likewise.
4641 * config/xtensa/xtensa.c: Likewise.
4642
4643 2013-11-22 Richard Earnshaw <rearnsha@arm.com>
4644
4645 PR target/59216
4646 * arm.md (negdi_extendsidi): Fix invalid split.
4647
4648 2013-11-22 Alex Velenko <Alex.Velenko@arm.com>
4649
4650 * config/aarch64/arm_neon.h (vmov_n_f32): Implemented in C.
4651 (vmov_n_f64): Likewise.
4652 (vmov_n_p8): Likewise.
4653 (vmov_n_p16): Likewise.
4654 (vmov_n_s8): Likewise.
4655 (vmov_n_s16): Likewise.
4656 (vmov_n_s32): Likewise.
4657 (vmov_n_s64): Likewise.
4658 (vmov_n_u8): Likewise.
4659 (vmov_n_u16): Likewise.
4660 (vmov_n_u32): Likewise.
4661 (vmov_n_u64): Likewise.
4662 (vmovq_n_f32): Likewise.
4663 (vmovq_n_f64): Likewise.
4664 (vmovq_n_p8): Likewise.
4665 (vmovq_n_p16): Likewise.
4666 (vmovq_n_s8): Likewise.
4667 (vmovq_n_s16): Likewise.
4668 (vmovq_n_s32): Likewise.
4669 (vmovq_n_s64): Likewise.
4670 (vmovq_n_u8): Likewise.
4671 (vmovq_n_u16): Likewise.
4672 (vmovq_n_u32): Likewise.
4673 (vmovq_n_u64): Likewise.
4674
4675 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
4676
4677 * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>,
4678 vec_pack_trunc_v2df, vec_pack_trunc_df): Swap for big-endian.
4679 (reduc_<sur>plus_<mode>): Factorize V2DI into this.
4680 (reduc_<sur>plus_<mode>): Change this to reduc_splus_<mode> for floats
4681 and also change to float UNSPEC.
4682 (reduc_maxmin_uns>_<mode>): Remove V2DI.
4683 * config/aarch64/arm_neon.h (vaddv<q>_<suf><8,16,32,64>,
4684 vmaxv<q>_<suf><8,16,32,64>, vminv<q>_<suf><8,16,32,64>): Fix up scalar
4685 result access for big-endian.
4686 (__LANE0): New macro used to fix up lane access of 'across-lanes'
4687 intrinsics for big-endian.
4688 * config/aarch64/iterators.md (VDQV): Add V2DI.
4689 (VDQV_S): New.
4690 (vp): New mode attribute.
4691
4692 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
4693
4694 * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>,
4695 vec_pack_trunc_v2df, vec_pack_trunc_df): Swap source ops for
4696 big-endian.
4697
4698 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
4699
4700 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Adjust
4701 for big-endian element order.
4702 (aarch64_simd_vec_setv2di): Likewise.
4703 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>,
4704 *aarch64_get_lane_zero_extendsi<mode>, aarch64_get_lane): Likewise.
4705 (vec_extract): Expand using aarch64_get_lane.
4706 * config/aarch64/aarch64.h (ENDIAN_LANE_N): New.
4707
4708 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
4709
4710 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Fix loads
4711 and stores to be ABI compliant.
4712
4713 2013-11-22 David Malcolm <dmalcolm@redhat.com>
4714
4715 * input.h (input_line): Remove.
4716 (input_filename): Likewise.
4717 (in_system_header): Likewise.
4718 * tree.h (EXPR_LOC_OR_HERE): Remove.
4719 * config/bfin/bfin.c (output_file_start): Remove use of
4720 input_filename macro.
4721 * builtins.c (c_strlen): Remove use of EXPR_LOC_OR_HERE macro.
4722 * gimplify.c (internal_get_tmp_var): Likewise.
4723 EXPR_LOC_OR_HERE macro.
4724 (shortcut_cond_expr): Likewise.
4725 * tree-diagnostic.c (diagnostic_report_current_function): Remove
4726 use of input_filename macro.
4727 * tree.c (get_file_function_name): Likewise.
4728
4729 2013-11-22 Kenneth Zadeck <zadeck@naturalbridge.com>
4730
4731 * store-layout.c (place-field): Fix hwi test and accessor mismatch.
4732
4733 2013-11-22 Jakub Jelinek <jakub@redhat.com>
4734
4735 * expr.c (store_constructor): Allow CONSTRUCTOR with VECTOR_TYPE
4736 (same sized) elements even if the type of the CONSTRUCTOR has
4737 vector mode and target is a REG.
4738
4739 2013-11-22 Richard Biener <rguenther@suse.de>
4740
4741 Revert
4742 2013-11-21 Richard Biener <rguenther@suse.de>
4743
4744 * tree-ssa-loop-ch.c (copy_loop_headers): Decrement
4745 nb_iterations_upper_bound by one.
4746
4747 2013-11-22 H.J. Lu <hongjiu.lu@intel.com>
4748
4749 * config/i386/i386.c (processor_alias_table): Enable PTA_POPCNT
4750 for Silvermont.
4751
4752 * doc/invoke.texi: Mention POPCNT for corei7, corei7-avx,
4753 core-avx-i, core-avx2 and slm.
4754
4755 2013-11-22 Eric Botcazou <ebotcazou@adacore.com>
4756
4757 * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
4758
4759 2013-11-22 Richard Sandiford <rdsandiford@googlemail.com>
4760
4761 * config/m32c/cond.md (stzx_16): Use register_operand for operand 0.
4762 (stzx_24_<mode>): Likewise mra_operand.
4763
4764 2013-11-22 Jeff Law <law@redhat.com>
4765
4766 * tree-ssa-threadupdate.c: Include tree-cfg.h and tree-pass.h
4767 (thread_block_1): Do not cancel jump threads which go from
4768 inside a loop, through the header, then back inside the loop.
4769 (bb_ends_with_multiway_branch): New function.
4770 (thread_through_all_blocks): Handle threading cases which start
4771 in a loop through the loop header to a point in the loop.
4772
4773 * tree-ssa-threadedge.c (thread_across_edge): Mark the start of the
4774 jump thread path properly.
4775
4776 2013-11-22 Trevor Saunders <tsaunders@mozilla.com>
4777
4778 * vec.h (auto_vec): New class.
4779 * cfganal.c, cfgloop.c, cgraphunit.c, config/i386/i386.c, dwarf2out.c,
4780 function.c, genautomata.c, gimple.c, haifa-sched.c, ipa-inline.c,
4781 ira-build.c, loop-unroll.c, omp-low.c, ree.c, trans-mem.c,
4782 tree-call-cdce.c, tree-eh.c, tree-if-conv.c, tree-into-ssa.c,
4783 tree-loop-distribution.c, tree-predcom.c, tree-sra.c,
4784 tree-sssa-forwprop.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
4785 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
4786 tree-vect-loop.c, tree-vect-stmts.c: Use auto_vec and stack_vec as
4787 appropriate instead of vec for local variables.
4788
4789 2013-11-21 Teresa Johnson <tejohnson@google.com>
4790
4791 PR target/59233
4792 * cfgcleanup.c (outgoing_edges_match): Walk up past note instructions
4793 not understood by old_insns_match_p.
4794
4795 2013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com>
4796
4797 * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
4798 little endian change.
4799 (vec_pack_sfix_trunc_v2df): Likewise.
4800 (vec_pack_ufix_trunc_v2df): Likewise.
4801 * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
4802 double checking of endianness.
4803
4804 2013-11-22 Jakub Jelinek <jakub@redhat.com>
4805
4806 * tree-vect-generic.c (optimize_vector_constructor): New function.
4807 (expand_vector_operations_1): Call it.
4808
4809 2013-11-21 Uros Bizjak <ubizjak@gmail.com>
4810
4811 * config/i386/i386.c (ix86_expand_special_args_builtin): Use
4812 ix86_zero_extend_to_Pmode where appropriate.
4813 (ix86_expand_builtin): Ditto.
4814
4815 2013-11-21 Cary Coutant <ccoutant@google.com>
4816
4817 * dwarf2out.c (want_pubnames): Don't do pubnames for -g1.
4818 (add_linkage_name): Don't add linkage name for -g1.
4819 (decls_for_scope): Process subblocks for -g1.
4820 (dwarf2out_source_line): Output line tables for -g1.
4821 (dwarf2out_finish): Likewise.
4822 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
4823 unused scopes for -g1.
4824 * opts.c (common_handle_option): Handle -g same as -g2.
4825 * doc/invoke.texi: Update description for -g1.
4826
4827 2013-11-21 Peter Bergner <bergner@vnet.ibm.com>
4828
4829 * doc/extend.texi: Document htm builtins.
4830
4831 2013-11-21 Jeff Law <law@redhat.com>
4832
4833 PR tree-optimization/59221
4834 * tree-ssa-threadedge.c (thread_across_edge): Properly manage
4835 temporary equivalences when threading through joiner blocks.
4836
4837 2013-11-21 Joseph Myers <joseph@codesourcery.com>
4838
4839 PR rtl-optimization/55950
4840 * real.c (real_sqrt): Remove function.
4841 * real.h (real_sqrt): Remove prototype.
4842 * simplify-rtx.c (simplify_const_unary_operation): Do not fold
4843 SQRT using real_sqrt.
4844
4845 2013-11-21 Richard Biener <rguenther@suse.de>
4846
4847 PR tree-optimization/59058
4848 * tree-scalar-evolution.h (number_of_exit_cond_executions): Remove.
4849 * tree-scalar-evolution.c (number_of_exit_cond_executions): Likewise.
4850 * tree-vectorizer.h (LOOP_PEELING_FOR_ALIGNMENT): Rename to ...
4851 (LOOP_VINFO_PEELING_FOR_ALIGNMENT): ... this.
4852 (NITERS_KNOWN_P): Fold into ...
4853 (LOOP_VINFO_NITERS_KNOWN_P): ... this.
4854 (LOOP_VINFO_PEELING_FOR_NITER): Add.
4855 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
4856 Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
4857 (vect_do_peeling_for_alignment): Re-use precomputed niter
4858 instead of re-emitting it.
4859 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4860 Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
4861 * tree-vect-loop.c (vect_get_loop_niters): Use
4862 number_of_latch_executions.
4863 (new_loop_vec_info): Initialize LOOP_VINFO_PEELING_FOR_NITER.
4864 (vect_analyze_loop_form): Simplify.
4865 (vect_analyze_loop_operations): Move epilogue peeling code ...
4866 (vect_analyze_loop_2): ... here and adjust it to compute
4867 LOOP_VINFO_PEELING_FOR_NITER.
4868 (vect_estimate_min_profitable_iters): Use
4869 LOOP_VINFO_PEELING_FOR_ALIGNMENT.
4870 (vect_build_loop_niters): Emit on the preheader.
4871 (vect_generate_tmps_on_preheader): Likewise.
4872 (vect_transform_loop): Use LOOP_VINFO_PEELING_FOR_NITER instead
4873 of recomputing it. Adjust.
4874
4875 2013-11-21 Richard Biener <rguenther@suse.de>
4876
4877 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
4878 LOC_LINE): Remove wrappers and fix all users.
4879 (struct _loop_vec_info): Remove loop_line_number member.
4880 (LOOP_VINFO_LOC): Remove.
4881 * tree-parloops.c, tree-vect-loop-manip.c, tree-vect-slp.c,
4882 tree-vectorizer.c: Fix users of LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE
4883 and LOC_LINE.
4884
4885 2013-11-21 Richard Biener <rguenther@suse.de>
4886
4887 * tree-ssa-forwprop.c (simplify_vce): New function.
4888 (ssa_forward_propagate_and_combine): Call it.
4889
4890 2013-11-21 Richard Biener <rguenther@suse.de>
4891
4892 * tree-vect-loop-manip.c (vect_build_loop_niters,
4893 vect_generate_tmps_on_preheader): Move ...
4894 * tree-vect-loop.c (vect_build_loop_niters,
4895 vect_generate_tmps_on_preheader): ... here and simplify.
4896 (vect_transform_loop): Call them here and pass down results
4897 to consumers.
4898 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound):
4899 Get niter variables from caller.
4900 (vect_do_peeling_for_alignment): Likewise.
4901 * tree-vectorizer.h (vect_generate_tmps_on_preheader): Remove.
4902 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
4903 Adjust prototypes.
4904
4905 2013-11-21 Richard Biener <rguenther@suse.de>
4906
4907 * tree-ssa-loop-ch.c (copy_loop_headers): Decrement
4908 nb_iterations_upper_bound by one.
4909
4910 2013-11-21 Richard Biener <rguenther@suse.de>
4911
4912 PR tree-optimization/59058
4913 * tree-loop-distribution.c (struct partition_s): Add plus_one member.
4914 (build_size_arg_loc): Apply niter adjustment here.
4915 (generate_memset_builtin): Adjust.
4916 (generate_memcpy_builtin): Likewise.
4917 (classify_partition): Do not use number_of_exit_cond_executions
4918 but record whether niter needs to be adjusted.
4919
4920 2013-11-21 Eric Botcazou <ebotcazou@adacore.com>
4921
4922 * tree-ssa-tail-merge.c (stmt_local_def): Return false if the statement
4923 could throw.
4924
4925 2013-11-21 Oleg Endo <olegendo@gcc.gnu.org>
4926
4927 PR target/53976
4928 * config/sh/sh_optimize_sett_clrt.cc: New SH specific RTL pass.
4929 * config/sh/sh.c (register_sh_passes): Add sh_optimize_sett_clrt pass.
4930 * config/sh/sh/t-sh (sh_optimize_sett_clrt pass.o): New entry.
4931 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add
4932 sh_optimize_sett_clrt pass.o to extra_objs.
4933
4934 2013-11-20 David Malcolm <dmalcolm@redhat.com>
4935
4936 * cfg.c (dump_edge_info): Remove redundant comment.
4937 * cfgcleanup.c (outgoing_edges_match): Reword reference to
4938 EXIT_BLOCK_PTR in comment.
4939 (try_optimize_cfg): Likewise.
4940 * cfgrtl.c (last_bb_in_partition): Likewise.
4941 * cgraph.c (cgraph_node_cannot_return): Likewise.
4942 * function.c (thread_prologue_and_epilogue_insns): Likewise.
4943 * graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
4944 * ipa-split.c (consider_split): Likewise.
4945 * profile.c (find_spanning_tree): Likewise.
4946 * sched-int.h (common_sched_info_def.add_block): Likewise.
4947 * dominance.c (calc_dfs_tree_nonrec): Reword references in
4948 comments to now removed ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros.
4949 * tree-cfgcleanup.c (cleanup_control_flow_bb): Reword references
4950 in comments to now removed ENTRY_BLOCK_PTR macro.
4951 (tree_forwarder_block_p): Reword reference in comment to
4952 EXIT_BLOCK_PTR.
4953 * tree-inline.c (copy_cfg_body): Reword references in comments to
4954 now removed ENTRY_BLOCK_PTR macro.
4955 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
4956 * tree-scalar-evolution.h ( block_before_loop): Likewise. Add
4957 a comma to the comment to clarify the meaning.
4958
4959 2013-11-20 Andrew MacLeod <amacleod@redhat.com>
4960
4961 * gimplify.h (gimplify_hasher:typed_free_remove, struct gimplify_ctx):
4962 Move to gimplify.c.
4963 (free_gimplify_stack): Add prototype.
4964 * gimplify.c (gimplify_hasher:typed_free_remove): Relocate here.
4965 (struct gimplify_ctx): Relocate here.
4966 (gimplify_ctxp): Make static.
4967 (ctx_pool, ctx_alloc, ctx_free, free_gimplify_stack): New. Manage a
4968 list of struct gimplify_ctx.
4969 (push_gimplify_context): Add default parameters and allocate a struct
4970 from the pool.
4971 (pop_gimplify_context): Free a struct back to the pool.
4972 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
4973 gimplify_omp_workshare, gimplify_transaction, gimplify_body): Don't
4974 use a local 'struct gimplify_ctx'.
4975 * cgraphunit.c (expand_all_functions): call free_gimplify_stack.
4976 * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
4977 Likewise.
4978 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
4979 lower_omp_ordered, lower_omp_critical, lower_omp_for,
4980 create_task_copyfn, lower_omp_taskreg, lower_omp_target,
4981 lower_omp_teams, execute_lower_omp): Likewise.
4982 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
4983 * tree-inline.c (optimize_inline_calls): Likewise.
4984
4985 2013-11-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4986
4987 * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
4988 (vsx_extract_<mode>): Likewise.
4989 (*vsx_extract_<mode>_one_le): New LE variant on
4990 *vsx_extract_<mode>_zero.
4991 (vsx_extract_v4sf): Adjust for little endian.
4992
4993 2013-11-20 Vladimir Makarov <vmakarov@redhat.com>
4994
4995 PR rtl-optimization/59133
4996 * lra.c (expand_reg_data): Add new argument. Set up ALL_REGS for
4997 new pseudos.
4998 (lra_create_new_reg_with_unique_value): Pass new argument value.
4999 (lra_emit_add, lra_emit_move): Ditto.
5000 * lra-constraints.c (in_class_p): Add check for move for a new insn.
5001 (change_class): Rename to lra_change_class. Move to lra-int.h.
5002 (get_reload_reg, narrow_reload_pseudo_class): Adjust calls of
5003 change_class.
5004 (process_addr_reg, process_addr): Ditto.
5005 (curr_insn_transform): Ditto. Add check on old pseudo for
5006 optional reload.
5007 * lra-int.h (lra_get_regno_hard_regno): Move below.
5008 (lra_change_class): Renamed change_class from lra.c.
5009
5010 2013-11-20 David Malcolm <dmalcolm@redhat.com>
5011
5012 * gdbhooks.py (VecPrinter.children): Don't attempt to iterate
5013 the children of a NULL pointer.
5014
5015 2013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com>
5016
5017 * lra.c (lra): Set lra_in_progress before check_rtl call.
5018 * recog.c (insn_invalid_p): Add !lra_in_progress to prevent
5019 adding clobber regs when LRA is running.
5020
5021 2013-11-20 Maciej W. Rozycki <macro@codesourcery.com>
5022
5023 * config/mips/mips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64
5024 restriction for ISA_MIPS32R2.
5025 (ISA_HAS_LXC1_SXC1): New macro.
5026 (ISA_HAS_FP_MADD4_MSUB4): Remove ISA_MIPS32R2 special-casing.
5027 (ISA_HAS_NMADD4_NMSUB4): Likewise.
5028 (ISA_HAS_FP_RECIP_RSQRT): Likewise.
5029 (ISA_HAS_PREFETCHX): Redefine in terms of ISA_HAS_FP4.
5030 * config/mips/mips.md (*<ANYF:loadx>_<P:mode>): Use
5031 ISA_HAS_LXC1_SXC1 rather than ISA_HAS_FP4.
5032 (*<ANYF:storex>_<P:mode>): Likewise.
5033
5034 2013-11-20 Maciej W. Rozycki <macro@codesourcery.com>
5035
5036 * config/mips/mips.h (ISA_HAS_FP_RECIP_RSQRT): New macro.
5037 * config/mips/mips.c (mips_rtx_costs) <DIV>: Check for
5038 ISA_HAS_FP_RECIP_RSQRT rather than ISA_HAS_FP4.
5039 * config/mips/mips.md (recip_condition): Remove mode attribute.
5040 (div<mode>3): Use ISA_HAS_FP_RECIP_RSQRT rather than
5041 <recip_condition>.
5042 (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Likewise.
5043
5044 2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
5045
5046 PR target/59207
5047 * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
5048 Make sure neg2_ovf is set before being used.
5049
5050 2013-11-20 Basile Starynkevitch <basile@starynkevitch.net>
5051
5052 * plugin.def: Add comment about register_callback and
5053 invoke_plugin_callbacks_full.
5054
5055 * plugin.c (register_callback, invoke_plugin_callbacks_full):
5056 Handle PLUGIN_INCLUDE_FILE event.
5057
5058 2013-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5059
5060 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
5061 allow subregs of TDmode in FPRs of smaller size in little-endian.
5062 (rs6000_split_multireg_move): When splitting an access to TDmode
5063 in FPRs, do not use simplify_gen_subreg.
5064
5065 2013-11-20 Joseph Myers <joseph@codesourcery.com>
5066
5067 PR middle-end/21718
5068 * real.c: Remove comment about decimal string conversion and
5069 rounding errors.
5070 (real_from_string): Use MPFR to convert nonzero decimal constant
5071 to REAL_VALUE_TYPE.
5072
5073 2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
5074
5075 * config/arm/arm.c (arm_dwarf_register_span): Take into account the
5076 endianness of the D registers for the legacy encodings.
5077
5078 2013-11-20 Richard Earnshaw <rearnsha@arm.com>
5079
5080 PR rtl-optimization/54300
5081 * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
5082 outputs in a single-set are killed from the value chains.
5083
5084 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
5085
5086 * cgraph.h (varpool_node): Add need_bounds_init field.
5087 * lto-cgraph.c (lto_output_varpool_node): Output
5088 need_bounds_init value.
5089 (input_varpool_node): Read need_bounds_init value.
5090 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
5091
5092 2013-11-20 Jan Hubicka <jh@suse.cz>
5093
5094 * opts.c (finish_options): Imply -ffat-lto-objects with
5095 -fno-use-linker-plugin.
5096 * common.opt (fuse-linker-plugin): Add var.
5097
5098 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
5099
5100 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
5101 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
5102 (gen_type_die_with_usage): Skip pointer bounds.
5103 (dwarf2out_global_decl): Likewise.
5104
5105 2013-11-20 James Greenhalgh <james.greenhalgh@arm.com>
5106
5107 * config/aarch64/aarch64.md: Remove "mode" and "mode2" attributes
5108 from all insns.
5109
5110 2013-11-20 Yuri Rumyantsev <ysrumyan@gmail.com>
5111
5112 PR target/57756
5113 * config/i386/i386.c (ix86_option_override_internal): Add missed
5114 argument prefix for 'ix86_fpmath'.
5115 * config/i386/ssemath.h: Add missed definition of
5116 TARGET_FPMATH_DEFAULT_P macros.
5117
5118 2013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com>
5119 Mike Stump <mikestump@comcast.net>
5120 Richard Sandiford <rdsandiford@googlemail.com>
5121
5122 * alias.c (ao_ref_from_mem): Use tree_to_shwi and tree_to_uhwi
5123 instead of TREE_INT_CST_LOW, in cases where there is a protecting
5124 tree_fits_shwi_p or tree_fits_uhwi_p.
5125 * builtins.c (fold_builtin_powi): Likewise.
5126 * config/epiphany/epiphany.c (epiphany_special_round_type_align):
5127 Likewise.
5128 * dbxout.c (dbxout_symbol): Likewise.
5129 * expr.c (expand_expr_real_1): Likewise.
5130 * fold-const.c (fold_single_bit_test, fold_plusminus_mult_expr)
5131 (fold_binary_loc): Likewise.
5132 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
5133 * gimple-ssa-strength-reduction.c (stmt_cost): Likewise.
5134 * omp-low.c (lower_omp_for_lastprivate): Likewise.
5135 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
5136 * stor-layout.c (compute_record_mode): Likewise.
5137 * tree-cfg.c (verify_expr): Likewise.
5138 * tree-dfa.c (get_ref_base_and_extent): Likewise.
5139 * tree-pretty-print.c (dump_array_domain): Likewise.
5140 * tree-sra.c (build_user_friendly_ref_for_offset): Likewise.
5141 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
5142 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr_id): Likewise.
5143 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
5144 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
5145 * tree-ssa-reassoc.c (acceptable_pow_call): Likewise.
5146 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
5147 (ao_ref_init_from_vn_reference, vn_reference_fold_indirect): Likewise.
5148 (vn_reference_lookup_3, simplify_binary_expression): Likewise.
5149 * tree-ssa-structalias.c (bitpos_of_field): Likewise.
5150 (get_constraint_for_1, push_fields_onto_fieldstack): Likewise.
5151 (create_variable_info_for_1): Likewise.
5152 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
5153 (vect_verify_datarefs_alignment): Likewise.
5154 (vect_analyze_data_ref_accesses): Likewise.
5155 (vect_prune_runtime_alias_test_list): Likewise.
5156 * tree-vectorizer.h (NITERS_KNOWN_P): Likewise.
5157
5158 2013-11-20 Richard Sandiford <rdsandiford@googlemail.com>
5159
5160 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Avoid signed
5161 overflow. Use tree_to_shwi.
5162
5163 2013-11-20 Richard Sandiford <rdsandiford@googlemail.com>
5164
5165 * fold-const.c (fold_binary_loc): Use unsigned rather than signed
5166 HOST_WIDE_INTs when folding (x >> c) << c.
5167
5168 2013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5169 Dominik Vogt <vogt@linux.vnet.ibm.com>
5170
5171 * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
5172 int comparisons with an out of range condition code.
5173 (s390_optimize_nonescaping_tx): Skip empty BBs.
5174 Generate the new tbegin RTX when removing the FPR clobbers (with
5175 two SETs).
5176 (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the
5177 result before doing the retry calculations.
5178 (s390_init_builtins): Make tbegin "returns_twice" and tabort
5179 "noreturn".
5180 * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
5181 the TDB setting part of an tbegin.
5182 ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
5183 ("tx_assist"): Set unused argument to an immediate zero instead of
5184 loading zero into a GPR and pass it as argument.
5185 * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
5186 Remove inline and related attributes.
5187 (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
5188 (__TM_is_illegal, __TM_is_footprint_exceeded)
5189 (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value check.
5190
5191 2013-11-20 Richard Biener <rguenther@suse.de>
5192
5193 PR lto/59035
5194 * lto-opts.c (lto_write_options): Write defaults only if
5195 they were not explicitely specified. Also write
5196 -ffp-contract default.
5197 * lto-wrapper.c (merge_and_complain): Merge -ffp-contract
5198 conservatively.
5199 (run_gcc): Pass through -ffp-contract.
5200
5201 2013-11-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5202
5203 * config/mips/mips.c (r10k_simplify_address): Eliminate macro usage.
5204
5205 2013-11-20 James Greenhalgh <james.greenhalgh@arm.com>
5206
5207 * config/aarch64/aarch64-builtins.c
5208 (aarch64_simd_itype): Remove.
5209 (aarch64_simd_builtin_datum): Remove itype, add qualifiers pointer.
5210 (VAR1): Use qualifiers.
5211 (aarch64_build_scalar_type): New.
5212 (aarch64_build_vector_type): Likewise.
5213 (aarch64_build_type): Likewise.
5214 (aarch64_init_simd_builtins): Refactor, remove special cases,
5215 consolidate main loop.
5216 (aarch64_simd_expand_args): Likewise.
5217
5218 2013-11-19 Joshua J Cogliati <jrincayc@yahoo.com>
5219
5220 PR c/53001
5221 * doc/invoke.texi: Adding documentation about -Wfloat-conversion.
5222
5223 2013-11-19 Miro Kropacek <miro.kropacek@gmail.com>
5224
5225 * config/m68k/m68k.c (m68k_option_overrides): Fix typo.
5226
5227 2013-11-19 David Malcolm <dmalcolm@redhat.com>
5228
5229 * gdbhooks.py (VecPrinter): New class, for prettyprinting pointers
5230 to "vec<>" instances.
5231 (build_pretty_printer): Register the vec<>* prettyprinter.
5232
5233 2013-11-19 David Malcolm <dmalcolm@redhat.com>
5234
5235 * gdbhooks.py (GdbSubprinter.__init__): Drop str_type_ field.
5236 (GdbSubprinter.handles_type): New.
5237 (GdbSubprinterTypeList): New subclass of GdbSubprinter.
5238 (GdbSubprinterRegex): New subclass of GdbSubprinter.
5239 (GdbPrettyPrinters.add_printer): Remove in favor of...
5240 (GdbPrettyPrinters.add_printer_for_types): ...this new method and...
5241 (GdbPrettyPrinters.add_printer_for_regex): ...this other new method.
5242 (GdbPrettyPrinters.__call__): Update search for subprinter
5243 to use handles_type method.
5244 (build_pretty_printer): Update registration of subprinters to
5245 use the new API above, supporting multiple spelling of each type,
5246 and allowing for future regex-based subprinters.
5247
5248 2013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5249
5250 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
5251 V16QI vector splat case for little endian.
5252
5253 2013-11-19 Jeff Law <law@redhat.com>
5254
5255 * tree-ssa-threadedge.c (thread_across_edge): After threading
5256 through a joiner, allow threading a normal block requiring duplication.
5257
5258 * tree-ssa-threadupdate.c (thread_block_1): Improve code to detect
5259 jump threading requests that would muck up the loop structures.
5260
5261 * tree-ssa-threadupdate.c: Fix trailing whitespace.
5262 * tree-ssa-threadupdate.h: Likewise.
5263
5264 2013-11-19 Mike Stump <mikestump@comcast.net>
5265
5266 * gdbinit.in: Add pmz to print out mpz values.
5267
5268 2013-11-20 Jan Hubicka <jh@suse.cz>
5269
5270 * common.opt (ffat-lto-objects): Disable by default.
5271 * doc/invoke.texi (fat-lto-objects): Update documentation.
5272 * opts.c: Enable fat-lto-objects on lto plugin disable setups.
5273
5274 2013-11-19 Martin Jambor <mjambor@suse.cz>
5275
5276 PR rtl-optimization/59099
5277 * ira.c (find_moveable_pseudos): Put back various analyses from ira()
5278 here.
5279 (ira): Move init_reg_equiv and call to
5280 split_live_ranges_for_shrink_wrap up, remove analyses around call
5281 to find_moveable_pseudos.
5282
5283 2013-11-20 Alan Modra <amodra@gmail.com>
5284
5285 * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
5286 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
5287 to strict alignment on older processors when little-endian.
5288 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
5289 for ELFv2.
5290
5291 2013-11-19 Teresa Johnson <tejohnson@google.com>
5292
5293 * common/config/i386/i386-common.c: Enable
5294 -freorder-blocks-and-partition at -O2 and up for x86.
5295 * doc/invoke.texi: Update -freorder-blocks-and-partition default.
5296 * opts.c (finish_options): Only warn if
5297 -freorder-blocks-and-partition was set on command line.
5298
5299 2013-11-19 Sriraman Tallam <tmsriram@google.com>
5300
5301 * final.c (final_scan_insn): Emit a label for the split
5302 cold function part. Label name is formed by suffixing
5303 the original function name with "cold".
5304
5305 2013-11-19 David Malcolm <dmalcolm@redhat.com>
5306
5307 * basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
5308 (EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
5309 (ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
5310 (EXIT_BLOCK_PTR_FOR_FN): ...this.
5311 (ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
5312 cfun be explicit.
5313 (EXIT_BLOCK_PTR): Likewise.
5314 (FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
5315 (FOR_ALL_BB_FN): Update for renaming of
5316 "ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".
5317
5318 * cfg.c (init_flow): Likewise.
5319 (check_bb_profile): Likewise.
5320 * cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
5321 * cfgcleanup.c (walk_to_nondebug_insn): Likewise.
5322 * cfghooks.c (account_profile_record): Likewise.
5323 * cfgloop.c (init_loops_structure): Likewise.
5324 * cgraphbuild.c (record_eh_tables): Likewise.
5325 (compute_call_stmt_bb_frequency): Likewise.
5326 * ipa-inline-analysis.c (compute_bb_predicates): Likewise.
5327 * lto-streamer-in.c (input_cfg): Likewise.
5328 * predict.c (maybe_hot_frequency_p): Likewise.
5329 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
5330 * tree-inline.c (initialize_cfun): Likewise.
5331 (copy_cfg_body): Likewise.
5332 (copy_body): Likewise.
5333 (tree_function_versioning): Likewise.
5334
5335 * bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
5336 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5337 (duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
5338 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
5339 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5340 (connect_traces): Likewise.
5341 (rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
5342 (bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
5343 (fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
5344 macro.
5345 (find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
5346 EXIT_BLOCK_PTR.
5347 (fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
5348 (find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
5349 (fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
5350 (rotate_loop): Likewise.
5351 * bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
5352 * cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
5353 EXIT_BLOCK_PTR.
5354 (alloc_aux_for_edges): Likewise.
5355 (clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
5356 (cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
5357 EXIT_BLOCK_PTR.
5358 (compact_blocks): Likewise.
5359 (clear_edges): Likewise.
5360 * cfganal.c (single_pred_before_succ_order): Remove usage of
5361 ENTRY_BLOCK_PTR macro.
5362 (bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
5363 (bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
5364 (bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
5365 (bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
5366 (inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
5367 EXIT_BLOCK_PTR.
5368 (compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR macro.
5369 (post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
5370 EXIT_BLOCK_PTR.
5371 (connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR macro.
5372 (remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
5373 (add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
5374 (find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5375 (remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
5376 (verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
5377 EXIT_BLOCK_PTR.
5378 (print_edge_list): Likewise.
5379 (create_edge_list): Likewise.
5380 (find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
5381 (mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
5382 EXIT_BLOCK_PTR.
5383 * cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
5384 macro.
5385 (find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
5386 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5387 * cfgcleanup.c (delete_unreachable_blocks): Likewise.
5388 (try_optimize_cfg): Likewise.
5389 (try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
5390 (try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
5391 (try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
5392 (merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
5393 (outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
5394 (try_forward_edges): Likewise.
5395 (try_simplify_condjump): Likewise.
5396 * cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
5397 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5398 (construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
5399 (construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
5400 EXIT_BLOCK_PTR.
5401 (expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
5402 (expand_gimple_tailcall): Likewise.
5403 * cfghooks.c (can_duplicate_block_p): Remove uses of macros:
5404 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5405 (tidy_fallthru_edges): Likewise.
5406 (verify_flow_info): Likewise.
5407 * cfgloop.c (flow_bb_inside_loop_p): Likewise.
5408 (num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
5409 (disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR macro.
5410 (get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
5411 (bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
5412 (get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
5413 (get_loop_body_in_dom_order): Likewise.
5414 (get_loop_body): Likewise.
5415 * cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
5416 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5417 * cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
5418 macro.
5419 (remove_path): Remove usage of EXIT_BLOCK_PTR macro.
5420 (fix_bb_placement): Likewise.
5421 * cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
5422 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5423 (rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
5424 (cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
5425 EXIT_BLOCK_PTR.
5426 (rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
5427 (cfg_layout_can_merge_blocks_p): Remove uses of macros:
5428 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5429 (cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
5430 macro.
5431 (fixup_fallthru_exit_predecessor): Remove uses of macros:
5432 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5433 (fixup_reorder_chain): Likewise.
5434 (relink_block_chain): Likewise.
5435 (cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
5436 (rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
5437 (cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
5438 (force_one_exit_fallthru): Likewise.
5439 (rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
5440 EXIT_BLOCK_PTR.
5441 (rtl_verify_edges): Likewise.
5442 (commit_edge_insertions): Likewise.
5443 (commit_one_edge_insertion): Likewise.
5444 (rtl_split_edge): Likewise.
5445 (force_nonfallthru_and_redirect): Likewise.
5446 (outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
5447 (skip_insns_after_block): Likewise.
5448 (fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
5449 EXIT_BLOCK_PTR.
5450 (purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
5451 (rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
5452 EXIT_BLOCK_PTR.
5453 (contains_no_active_insn_p): Likewise.
5454 (emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
5455 (entry_of_function): Likewise.
5456 (last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
5457 (fixup_new_cold_bb): Likewise.
5458 (patch_jump_insn): Likewise.
5459 (try_redirect_by_replacing_jump): Likewise.
5460 (block_label): Likewise.
5461 (could_fall_through): Likewise.
5462 (can_fallthru): Likewise.
5463 * cgraphbuild.c (cgraph_rebuild_references): Remove usage of
5464 ENTRY_BLOCK_PTR macro.
5465 (rebuild_cgraph_edges): Likewise.
5466 * cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
5467 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5468 (expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
5469 * combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
5470 (distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
5471 (get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
5472 (try_combine): Remove usage of EXIT_BLOCK_PTR macro.
5473 (reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
5474 macro.
5475 (reg_nonzero_bits_for_combine): Likewise.
5476 (set_nonzero_bits_and_sign_copies): Likewise.
5477 (combine_instructions): Likewise.
5478 * cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
5479 EXIT_BLOCK_PTR.
5480 (bypass_conditional_jumps): Likewise.
5481 (bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
5482 (find_implicit_sets): Likewise.
5483 (cprop_jump): Likewise.
5484 * cse.c (cse_cc_succs): Likewise.
5485 (cse_find_path): Likewise.
5486 * df-problems.c (df_lr_confluence_0): Likewise.
5487 * df-scan.c (df_entry_block_defs_collect): Remove usage of
5488 ENTRY_BLOCK_PTR macro.
5489 (df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
5490 * dominance.c (iterate_fix_dominators): Remove usage of
5491 ENTRY_BLOCK_PTR macro.
5492 (calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5493 (determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR macro.
5494 (calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
5495 EXIT_BLOCK_PTR.
5496 (prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
5497 macro.
5498 (calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
5499 EXIT_BLOCK_PTR.
5500 * domwalk.c (cmp_bb_postorder): Likewise.
5501 * dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
5502 * except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
5503 macro.
5504 (sjlj_emit_function_enter): Likewise.
5505 * final.c (compute_alignments): Likewise.
5506 * function.c (thread_prologue_and_epilogue_insns): Remove uses of
5507 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5508 (reposition_prologue_and_epilogue_notes): Remove usage of
5509 EXIT_BLOCK_PTR macro.
5510 (convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
5511 EXIT_BLOCK_PTR.
5512 (regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
5513 (next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
5514 * gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
5515 (update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
5516 (compute_code_hoist_vbeinout): Likewise.
5517 (should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
5518 (pre_expr_reaches_here_p_work): Likewise.
5519 * gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
5520 (gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
5521 EXIT_BLOCK_PTR.
5522 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
5523 ENTRY_BLOCK_PTR macro.
5524 * graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
5525 macro.
5526 * graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
5527 ENTRY_BLOCK_PTR macro.
5528 * graphite-scop-detection.c (build_scops): Likewise.
5529 (create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
5530 (scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
5531 * haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
5532 macro.
5533 (unlink_bb_notes): Likewise.
5534 (create_check_block_twin): Likewise.
5535 (init_before_recovery): Likewise.
5536 (sched_extend_bb): Likewise.
5537 (priority): Likewise.
5538 * hw-doloop.c (reorder_loops): Likewise.
5539 (discover_loop): Likewise.
5540 * ifcvt.c (dead_or_predicable): Remove uses of macros:
5541 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5542 (find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
5543 (block_has_only_trap): Likewise.
5544 (cond_exec_find_if_block): Likewise.
5545 (merge_if_block): Likewise.
5546 * ipa-inline-analysis.c (param_change_prob): Remove usage of
5547 ENTRY_BLOCK_PTR macro.
5548 (record_modified): Likewise.
5549 * ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
5550 EXIT_BLOCK_PTR macro.
5551 (local_pure_const): Likewise.
5552 * ipa-split.c (split_function): Remove uses of macros:
5553 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5554 (find_split_points): Likewise.
5555 (consider_split): Likewise.
5556 (find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
5557 (verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
5558 * ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
5559 * ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR macro.
5560 * ira-emit.c (entered_from_non_parent_p): Remove usage of
5561 ENTRY_BLOCK_PTR macro.
5562 (ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
5563 * ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
5564 * ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
5565 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5566 * lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
5567 macro.
5568 (compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
5569 EXIT_BLOCK_PTR.
5570 (compute_farthest): Likewise.
5571 (compute_available): Likewise.
5572 (compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
5573 (compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
5574 EXIT_BLOCK_PTR.
5575 (compute_earliest): Likewise.
5576 (compute_antinout_edge): Likewise.
5577 * loop-iv.c (simplify_using_initial_values): Remove usage of
5578 ENTRY_BLOCK_PTR macro.
5579 * loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
5580 macro.
5581 * lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
5582 macro.
5583 * lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
5584 macro.
5585 * lra-lives.c (lra_create_live_ranges): Remove uses of macros:
5586 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5587 * lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
5588 macro.
5589 * lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
5590 macro.
5591 * lto-streamer-out.c (output_cfg): Likewise.
5592 * mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
5593 EXIT_BLOCK_PTR.
5594 (create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
5595 * mode-switching.c (optimize_mode_switching): Likewise.
5596 (create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
5597 * modulo-sched.c (rest_of_handle_sms): Likewise.
5598 (canon_loop): Likewise.
5599 * omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR macro.
5600 * postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
5601 of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5602 * predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
5603 macro.
5604 (propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
5605 (estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
5606 (tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
5607 (expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
5608 (tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
5609 (counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
5610 (apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
5611 (estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
5612 (gimple_predict_edge): Likewise.
5613 (probably_never_executed): Likewise.
5614 * profile.c (find_spanning_tree): Remove uses of macros:
5615 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5616 (branch_prob): Likewise.
5617 (compute_branch_probabilities): Likewise.
5618 (compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
5619 (is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
5620 (read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
5621 (set_bb_counts): Likewise.
5622 (correct_negative_edge_counts): Likewise.
5623 (get_exec_counts): Likewise.
5624 (instrument_values): Likewise.
5625 (instrument_edges): Likewise.
5626 * reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
5627 EXIT_BLOCK_PTR.
5628 (compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
5629 (convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
5630 (convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
5631 (reg_to_stack): Likewise.
5632 * regs.h (REG_N_SETS): Likewise.
5633 * reload.c (find_dummy_reload): Likewise.
5634 (combine_reloads): Likewise.
5635 (push_reload): Likewise.
5636 * reload1.c (has_nonexceptional_receiver): Remove usage of
5637 EXIT_BLOCK_PTR macro.
5638 * resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
5639 macro.
5640 (find_basic_block): Likewise.
5641 * sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
5642 (schedule_ebbs): Likewise.
5643 * sched-int.h (sel_sched_p): Likewise.
5644 * sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
5645 macro.
5646 (rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
5647 (haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
5648 EXIT_BLOCK_PTR.
5649 (propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
5650 (extend_rgns): Likewise.
5651 (find_single_block_region): Likewise.
5652 * sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
5653 ENTRY_BLOCK_PTR macro.
5654 (setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
5655 (sel_create_recovery_block): Likewise.
5656 (bb_ends_ebb_p): Likewise.
5657 (sel_bb_end): Likewise.
5658 (sel_bb_head): Likewise.
5659 (free_lv_sets): Likewise.
5660 (init_lv_sets): Likewise.
5661 (tidy_control_flow): Likewise.
5662 (maybe_tidy_empty_bb): Likewise.
5663 * sel-sched-ir.h (_succ_iter_cond): Likewise.
5664 (_succ_iter_start): Likewise.
5665 (sel_bb_empty_or_nop_p): Likewise.
5666 (get_loop_exit_edges_unique_dests): Likewise.
5667 (inner_loop_header_p): Likewise.
5668 * sel-sched.c (create_block_for_bookkeeping): Likewise.
5669 (find_block_for_bookkeeping): Likewise.
5670 * store-motion.c (remove_reachable_equiv_notes): Likewise.
5671 (insert_store): Likewise.
5672 * trans-mem.c (ipa_tm_transform_clone): Remove usage of
5673 ENTRY_BLOCK_PTR macro.
5674 (tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
5675 (ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
5676 (gate_tm_init): Likewise.
5677 (tm_region_init): Likewise.
5678 * tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
5679 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5680 (execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
5681 (split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
5682 EXIT_BLOCK_PTR.
5683 (print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
5684 (move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
5685 EXIT_BLOCK_PTR.
5686 (gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
5687 macro.
5688 (gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
5689 EXIT_BLOCK_PTR.
5690 (remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
5691 macro.
5692 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5693 (gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
5694 (make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
5695 (build_gimple_cfg): Likewise.
5696 (gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
5697 (gimple_can_merge_blocks_p): Likewise.
5698 * tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
5699 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5700 * tree-complex.c (update_parameter_components): Remove usage of
5701 ENTRY_BLOCK_PTR macro.
5702 * tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
5703 EXIT_BLOCK_PTR macro.
5704 * tree-inline.c (tree_function_versioning): Remove uses of macros:
5705 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5706 (delete_unreachable_blocks_update_callgraph): Likewise.
5707 (initialize_cfun): Likewise.
5708 (copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
5709 (copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
5710 (remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
5711 * tree-into-ssa.c (update_ssa): Likewise.
5712 (maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
5713 (insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
5714 (rewrite_into_ssa): Likewise.
5715 (rewrite_debug_stmt_uses): Likewise.
5716 * tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
5717 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5718 * tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
5719 ENTRY_BLOCK_PTR macro.
5720 * tree-scalar-evolution.h (block_before_loop): Likewise.
5721 * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
5722 (dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
5723 EXIT_BLOCK_PTR.
5724 (analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
5725 macro.
5726 (propagate_dereference_distances): Remove uses of macros:
5727 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5728 (initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
5729 macro.
5730 * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
5731 (optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
5732 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5733 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
5734 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5735 (remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
5736 (propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
5737 (mark_control_dependent_edges_necessary): Remove uses of macros:
5738 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5739 * tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
5740 ENTRY_BLOCK_PTR macro.
5741 (tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
5742 * tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
5743 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5744 (calculate_live_on_exit): Likewise.
5745 (set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
5746 (loe_visit_block): Likewise.
5747 * tree-ssa-live.h (live_on_exit): Remove uses of macros:
5748 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5749 (live_on_entry): Likewise.
5750 * tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
5751 EXIT_BLOCK_PTR macro.
5752 * tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
5753 ENTRY_BLOCK_PTR macro.
5754 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
5755 (bound_difference): Likewise.
5756 * tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
5757 of EXIT_BLOCK_PTR macro.
5758 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
5759 of ENTRY_BLOCK_PTR macro.
5760 * tree-ssa-math-opts.c (register_division_in): Likewise.
5761 * tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
5762 * tree-ssa-pre.c (compute_avail): Likewise.
5763 (compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
5764 (insert): Remove usage of ENTRY_BLOCK_PTR macro.
5765 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
5766 (simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
5767 (cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
5768 EXIT_BLOCK_PTR.
5769 (add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
5770 * tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
5771 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5772 (build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
5773 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
5774 (execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
5775 * tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
5776 (compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
5777 (find_pdom): Likewise.
5778 (warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
5779 * tree-stdarg.c (reachable_at_most_once): Likewise.
5780 * tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
5781 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5782 (eliminate_tail_call): Likewise.
5783 * tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
5784 macro.
5785 (instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
5786 * var-tracking.c (vt_initialize): Remove uses of macros:
5787 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
5788 (vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
5789 (vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
5790 (vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
5791 EXIT_BLOCK_PTR.
5792 * varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
5793 macro.
5794 * config/bfin/bfin.c (hwloop_optimize): Likewise.
5795 * config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
5796 of EXIT_BLOCK_PTR macro.
5797 * config/arm/arm.c (require_pic_register): Remove usage of
5798 ENTRY_BLOCK_PTR macro.
5799 (arm_r3_live_at_start_p): Likewise.
5800 (any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
5801 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
5802 * config/frv/frv.c (frv_optimize_membar_global): Likewise.
5803 * config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
5804 ENTRY_BLOCK_PTR macro.
5805 * config/i386/i386.c (ix86_count_insn): Likewise.
5806 (ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
5807 (ix86_pad_short_function): Likewise.
5808 (ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
5809 (ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
5810 (ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
5811 (add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
5812 (ix86_expand_epilogue): Likewise.
5813 * config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
5814 (ia64_expand_prologue): Likewise.
5815
5816 2013-11-19 Catherine Moore <clm@codesourcery.com>
5817
5818 * doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document.
5819 * config/mips/mips.opt (mfix-rm7000): New option.
5820 * config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000.
5821 * config/mips/mips.c (mips_reorg_process_insns): Disable
5822 noreorder for TARGET_FIX_RM7000.
5823
5824 2013-11-19 Oleg Endo <olegendo@gcc.gnu.org>
5825
5826 * config/sh/sh-c.c: Fix typo in include of file attribs.h.
5827
5828 2013-11-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5829
5830 * config/arm/arm.c (arm_new_rtx_costs):
5831 Handle narrow mode add-shifts properly.
5832 * config/arm/arm-common.c (arm_rtx_shift_left_p): Remove static.
5833 * config/arm/arm-common-protos.h (arm_rtx_shift_left_p):
5834 Declare extern.
5835
5836 2013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
5837
5838 * config/arm/arm.md (zero_extend<mode>di2): Add type attribute.
5839
5840 2013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5841
5842 * config/rs6000/vector.md ("mov<mode>"): Do not call
5843 rs6000_emit_le_vsx_move to move into or out of GPRs.
5844 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
5845 source and destination are not GPR hard regs.
5846
5847 2013-11-19 David Malcolm <dmalcolm@redhat.com>
5848
5849 * basic-block.h (n_edges_for_function): Rename macro to...
5850 (n_edges_for_fn): ...this.
5851 (n_edges): Eliminate macro as work towards making uses of
5852 cfun be explicit.
5853
5854 * cfg.c (init_flow): Update for renaming of "n_edges_for_function"
5855 to "n_edges_for_fn".
5856
5857 * cfg.c (unchecked_make_edge): Remove usage of n_edges macro.
5858 (clear_edges): Likewise.
5859 (free_edge): Likewise.
5860 * cfghooks.c (dump_flow_info): Likewise.
5861 * cprop.c (is_too_expensive): Likewise.
5862 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
5863 * gcse.c (is_too_expensive): Likewise.
5864 (prune_insertions_deletions): Likewise.
5865 * mcf.c (create_fixup_graph): Likewise.
5866 * sched-rgn.c (haifa_find_rgns): Likewise.
5867 * tree-cfg.c (gimple_dump_cfg): Likewise.
5868 * var-tracking.c (variable_tracking_main_1): Likewise.
5869
5870 2013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
5871
5872 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix over
5873 length lines.
5874
5875 2013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
5876
5877 * config/aarch64/aarch64.md
5878 (aarch64_movdi_<mode>low, *add_<shift>_si_uxtw): Adjust whitespace.
5879
5880 2013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
5881
5882 * config/aarch64/aarch64.h (PROFILE_HOOK): Fix whitespace.
5883
5884 2013-11-19 Joseph Myers <joseph@codesourcery.com>
5885
5886 * varasm.c (align_variable): Give error instead of warning for
5887 unsupported alignment.
5888 (assemble_noswitch_variable): Likewise.
5889
5890 2013-11-19 Basile Starynkevitch <basile@starynkevitch.net>
5891
5892 * plugin.def (PLUGIN_INCLUDE_FILE): New event, invoked in
5893 cb_file_change.
5894
5895 2013-11-19 Peter Bergner <bergner@vnet.ibm.com>
5896
5897 * loop-doloop.c (doloop_optimize_loops): Remove unused
5898 loop iterator argument from FOR_EACH_LOOP.
5899
5900 2013-11-19 David Malcolm <dmalcolm@redhat.com>
5901
5902 Convert gimple types from a union to C++ inheritance.
5903 * Makefile.in (GIMPLE_H): Add dep on is-a.h.
5904 * coretypes.h (union gimple_statement_d): Remove declaration.
5905 (gimple): Convert from being a "union gimple_statement_d *"
5906 to a "struct gimple_statement_base *".
5907 (const_gimple): Likewise (with "const").
5908 * ggc.h (ggc_alloc_cleared_gimple_statement_d_stat): Replace with...
5909 (ggc_alloc_cleared_gimple_statement_stat): ...this.
5910 * gimple-pretty-print.c (debug): Change parameter from a
5911 "gimple_statement_d &" to a "gimple_statement_base &".
5912 (debug): Change parameter from a "gimple_statement_d *" to
5913 a "gimple_statement_base *".
5914 * gimple-pretty-print.h (debug): Update declarations as above.
5915 * gimple.c (gimple_alloc_stat): Update for renaming of
5916 ggc_alloc_cleared_gimple_statement_d_stat to
5917 ggc_alloc_cleared_gimple_statement_stat.
5918 * gimple.h: Include "is-a.h" for use by is_a_helper
5919 specializations in followup autogenerated patch.
5920 (struct gimple statement_base): Make this type usable as a base
5921 class by adding "desc", "tag" and "variable_size" to GTY, thus
5922 using opting-in to gengtype's support for simple inheritance.
5923 (gimple_statement_with_ops_base): Convert to a subclass of
5924 gimple_statement_base, dropping initial "gsbase" field. Note that
5925 this type is abstract, with no GSS_ value, and thus no GTY tag value.
5926 (gimple_statement_with_ops): Convert to a subclass of
5927 gimple_statement_with_ops_base, dropping initial "opbase" field.
5928 Add tag value to GTY marking. Update marking of op field to
5929 reflect how num_ops field is accessed via inheritance.
5930 (gimple_statement_with_memory_ops_base): Convert to a subclass of
5931 gimple_statement_with_ops_base, dropping initial "opbase" field.
5932 Add tag value to GTY marking.
5933 (gimple_statement_with_memory_ops): Convert to a subclass of
5934 public gimple_statement_with_memory_ops_base, dropping initial
5935 "membase" field. Add tag value to GTY marking. Update marking
5936 of op field to reflect how num_ops field is accessed via inheritance.
5937 (gimple_statement_call): Analogous changes that also update the
5938 marking of the "u" union.
5939 (gimple_statement_omp): Convert to a subclass of
5940 gimple_statement_base, dropping initial "gsbase" field, adding
5941 tag value to GTY marking.
5942 (gimple_statement_bind): Likewise.
5943 (gimple_statement_catch): Likewise.
5944 (gimple_statement_eh_filter): Likewise.
5945 (gimple_statement_eh_else): Likewise.
5946 (gimple_statement_eh_mnt): Likewise.
5947 (gimple_statement_phi): Likewise.
5948 (gimple_statement_eh_ctrl): Likewise.
5949 (gimple_statement_try): Likewise.
5950 (gimple_statement_wce): Likewise.
5951 (gimple_statement_asm): Convert to a subclass of
5952 gimple_statement_with_memory_ops_base, dropping initial
5953 "membase" field, adding tag value to GTY marking, and updating
5954 marking of op field.
5955 (gimple_statement_omp_critical): Convert to a subclass of
5956 gimple_statement_omp, dropping initial "omp" field, adding tag
5957 value to GTY marking.
5958 (gimple_statement_omp_for): Likewise.
5959 (gimple_statement_omp_parallel): Likewise.
5960 (gimple_statement_omp_task): Convert to a subclass of
5961 gimple_statement_omp_parallel, dropping initial "par" field,
5962 adding tag value to GTY marking.
5963 (gimple_statement_omp_sections): Convert to a subclass of
5964 gimple_statement_omp, dropping initial "omp" field, adding
5965 tag value to GTY marking.
5966 (gimple_statement_omp_continue): Convert to a subclass of
5967 gimple_statement_base, dropping initial "gsbase" field, adding
5968 tag value to GTY marking.
5969 (gimple_statement_omp_single): Convert to a subclass of
5970 gimple_statement_omp, dropping initial "omp" field, adding
5971 tag value to GTY marking.
5972 (gimple_statement_omp_atomic_load): Convert to a subclass of
5973 gimple_statement_base, dropping initial "gsbase" field, adding
5974 tag value to GTY marking.
5975 (gimple_statement_omp_atomic_store): Convert to a subclass of
5976 gimple_statement_base, dropping initial "gsbase" field, adding
5977 tag value to GTY marking.
5978 (gimple_statement_transaction): Convert to a subclass of
5979 gimple_statement_with_memory_ops_base, dropping initial "gsbase"
5980 field, adding tag value to GTY marking.
5981 (union gimple_statement_d): Remove.
5982 * system.h (CONST_CAST_GIMPLE): Update to use
5983 "struct gimple_statement_base *" rather than
5984 "union gimple_statement_d *".
5985 * tree-ssa-ccp.c (gimple_htab): Convert underlying type from
5986 gimple_statement_d to gimple_statement_base.
5987
5988 * gimple.h (gimple_use_ops): Port from union to usage of dyn_cast.
5989 (gimple_set_use_ops): Port from union to usage of as_a.
5990 (gimple_set_vuse): Likewise.
5991 (gimple_set_vdef): Likewise.
5992 (gimple_call_internal_fn): Port from union to a static_cast,
5993 given that the type has already been asserted.
5994 (gimple_omp_body_ptr): Port from unchecked union usage to
5995 a static_cast.
5996 (gimple_omp_set_body): Likewise.
5997
5998 * gimple-iterator.c (update_bb_for_stmts): Update for conversion of
5999 gimple types to a true class hierarchy.
6000 (update_call_edge_frequencies): Likewise.
6001 (gsi_insert_seq_nodes_before): Likewise.
6002 (gsi_insert_seq_nodes_after): Likewise.
6003 (gsi_split_seq_after): Likewise.
6004 (gsi_set_stmt): Likewise.
6005 (gsi_split_seq_before): Likewise.
6006 (gsi_remove): Likewise.
6007 * gimple-iterator.h (gsi_one_before_end_p): Likewise.
6008 (gsi_next): Likewise.
6009 (gsi_prev): Likewise.
6010 * gimple-pretty-print.c (dump_gimple_debug): Likewise.
6011 * gimple-ssa.h (gimple_vuse_op): Likewise.
6012 (gimple_vdef_op): Likewise.
6013 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
6014 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
6015 * gimple.c (gimple_set_code): Likewise.
6016 (gimple_alloc_stat): Likewise.
6017 (gimple_set_subcode): Likewise.
6018 (gimple_build_call_internal_1): Likewise.
6019 (gimple_check_failed): Likewise.
6020 (gimple_call_flags): Likewise.
6021 (gimple_set_bb): Likewise.
6022 * gimple.h (is_a_helper <gimple_statement_asm> (gimple)): New.
6023 (is_a_helper <gimple_statement_bind> (gimple)): Likewise.
6024 (is_a_helper <gimple_statement_call> (gimple)): Likewise.
6025 (is_a_helper <gimple_statement_catch> (gimple)): Likewise.
6026 (is_a_helper <gimple_statement_eh_ctrl> (gimple)): Likewise.
6027 (is_a_helper <gimple_statement_eh_else> (gimple)): Likewise.
6028 (is_a_helper <gimple_statement_eh_filter> (gimple)): Likewise.
6029 (is_a_helper <gimple_statement_eh_mnt> (gimple)): Likewise.
6030 (is_a_helper <gimple_statement_omp_atomic_load> (gimple)): Likewise.
6031 (is_a_helper <gimple_statement_omp_atomic_store> (gimple)): Likewise.
6032 (is_a_helper <gimple_statement_omp_continue> (gimple)): Likewise.
6033 (is_a_helper <gimple_statement_omp_critical> (gimple)): Likewise.
6034 (is_a_helper <gimple_statement_omp_for> (gimple)): Likewise.
6035 (is_a_helper <gimple_statement_omp_parallel> (gimple)): Likewise.
6036 (is_a_helper <gimple_statement_omp_sections> (gimple)): Likewise.
6037 (is_a_helper <gimple_statement_omp_single> (gimple)): Likewise.
6038 (is_a_helper <gimple_statement_omp_task> (gimple)): Likewise.
6039 (is_a_helper <gimple_statement_phi> (gimple)): Likewise.
6040 (is_a_helper <gimple_statement_transaction> (gimple)): Likewise.
6041 (is_a_helper <gimple_statement_try> (gimple)): Likewise.
6042 (is_a_helper <gimple_statement_wce> (gimple)): Likewise.
6043 (is_a_helper <const gimple_statement_asm> (const_gimple)): Likewise.
6044 (is_a_helper <const gimple_statement_bind> (const_gimple)): Likewise.
6045 (is_a_helper <const gimple_statement_call> (const_gimple)): Likewise.
6046 (is_a_helper <const gimple_statement_catch> (const_gimple)): Likewise.
6047 (is_a_helper <const gimple_statement_eh_ctrl> (const_gimple)):
6048 Likewise.
6049 (is_a_helper <const gimple_statement_eh_filter> (const_gimple)):
6050 Likewise.
6051 (is_a_helper <const gimple_statement_omp_atomic_load> (const_gimple)):
6052 Likewise.
6053 (is_a_helper <const gimple_statement_omp_atomic_store>
6054 (const_gimple)): Likewise.
6055 (is_a_helper <const gimple_statement_omp_continue> (const_gimple)):
6056 Likewise.
6057 (is_a_helper <const gimple_statement_omp_critical> (const_gimple)):
6058 Likewise.
6059 (is_a_helper <const gimple_statement_omp_for> (const_gimple)):
6060 Likewise.
6061 (is_a_helper <const gimple_statement_omp_parallel> (const_gimple)):
6062 Likewise.
6063 (is_a_helper <const gimple_statement_omp_sections> (const_gimple)):
6064 Likewise.
6065 (is_a_helper <const gimple_statement_omp_single> (const_gimple)):
6066 Likewise.
6067 (is_a_helper <const gimple_statement_omp_task> (const_gimple)):
6068 Likewise.
6069 (is_a_helper <const gimple_statement_phi> (const_gimple)): Likewise.
6070 (is_a_helper <const gimple_statement_transaction> (const_gimple)):
6071 Likewise.
6072 (gimple_seq_last): Update for conversion of gimple types to a true
6073 class hierarchy.
6074 (gimple_seq_set_last): Likewise.
6075 (gimple_code): Likewise.
6076 (gimple_bb): Likewise.
6077 (gimple_block): Likewise.
6078 (gimple_set_block): Likewise.
6079 (gimple_location): Likewise.
6080 (gimple_location_ptr): Likewise.
6081 (gimple_set_location): Likewise.
6082 (gimple_no_warning_p): Likewise.
6083 (gimple_set_no_warning): Likewise.
6084 (gimple_set_visited): Likewise.
6085 (gimple_visited_p): Likewise.
6086 (gimple_set_plf): Likewise.
6087 (gimple_plf): Likewise.
6088 (gimple_set_uid): Likewise.
6089 (gimple_uid): Likewise.
6090 (gimple_init_singleton): Likewise.
6091 (gimple_modified_p): Likewise.
6092 (gimple_set_modified): Likewise.
6093 (gimple_expr_code): Likewise.
6094 (gimple_has_volatile_ops): Likewise.
6095 (gimple_set_has_volatile_ops): Likewise.
6096 (gimple_omp_subcode): Likewise.
6097 (gimple_omp_set_subcode): Likewise.
6098 (gimple_omp_return_set_nowait): Likewise.
6099 (gimple_omp_section_set_last): Likewise.
6100 (gimple_omp_parallel_set_combined_p): Likewise.
6101 (gimple_omp_atomic_set_need_value): Likewise.
6102 (gimple_omp_atomic_set_seq_cst): Likewise.
6103 (gimple_num_ops): Likewise.
6104 (gimple_set_num_ops): Likewise.
6105 (gimple_assign_nontemporal_move_p): Likewise.
6106 (gimple_assign_set_nontemporal_move): Likewise.
6107 (gimple_assign_rhs_code): Likewise.
6108 (gimple_assign_set_rhs_code): Likewise.
6109 (gimple_call_internal_p): Likewise.
6110 (gimple_call_with_bounds_p): Likewise.
6111 (gimple_call_set_with_bounds): Likewise.
6112 (gimple_call_set_tail): Likewise.
6113 (gimple_call_tail_p): Likewise.
6114 (gimple_call_set_return_slot_opt): Likewise.
6115 (gimple_call_return_slot_opt_p): Likewise.
6116 (gimple_call_set_from_thunk): Likewise.
6117 (gimple_call_from_thunk_p): Likewise.
6118 (gimple_call_set_va_arg_pack): Likewise.
6119 (gimple_call_va_arg_pack_p): Likewise.
6120 (gimple_call_set_nothrow): Likewise.
6121 (gimple_call_set_alloca_for_var): Likewise.
6122 (gimple_call_alloca_for_var_p): Likewise.
6123 (gimple_call_copy_flags): Likewise.
6124 (gimple_cond_code): Likewise.
6125 (gimple_cond_set_code): Likewise.
6126 (gimple_cond_make_false): Likewise.
6127 (gimple_cond_make_true): Likewise.
6128 (gimple_asm_volatile_p): Likewise.
6129 (gimple_asm_set_volatile): Likewise.
6130 (gimple_asm_set_input): Likewise.
6131 (gimple_asm_input_p): Likewise.
6132 (gimple_try_kind): Likewise.
6133 (gimple_try_set_kind): Likewise.
6134 (gimple_try_catch_is_cleanup): Likewise.
6135 (gimple_try_set_catch_is_cleanup): Likewise.
6136 (gimple_wce_cleanup_eh_only): Likewise.
6137 (gimple_wce_set_cleanup_eh_only): Likewise.
6138 (gimple_debug_bind_p): Likewise.
6139 (gimple_debug_source_bind_p): Likewise.
6140 (gimple_omp_for_set_kind): Likewise.
6141 (gimple_omp_for_set_combined_p): Likewise.
6142 (gimple_omp_for_set_combined_into_p): Likewise.
6143 (gimple_omp_target_set_kind): Likewise.
6144 (gimple_transaction_subcode): Likewise.
6145 (gimple_transaction_set_subcode): Likewise.
6146 (gimple_predict_predictor): Likewise.
6147 (gimple_predict_set_predictor): Likewise.
6148 (gimple_predict_outcome): Likewise.
6149 (gimple_predict_set_outcome): Likewise.
6150 (gimple_transaction_set_label): Likewise.
6151 (gimple_transaction_set_body): Likewise.
6152 (gimple_transaction_label_ptr): Likewise.
6153 (gimple_transaction_label): Likewise.
6154 (gimple_transaction_body_ptr): Likewise.
6155 (gimple_omp_continue_set_control_use): Likewise.
6156 (gimple_omp_continue_control_use_ptr): Likewise.
6157 (gimple_omp_continue_control_use): Likewise.
6158 (gimple_omp_continue_set_control_def): Likewise.
6159 (gimple_omp_continue_control_def_ptr): Likewise.
6160 (gimple_omp_continue_control_def): Likewise.
6161 (gimple_omp_atomic_load_rhs_ptr): Likewise.
6162 (gimple_omp_atomic_load_rhs): Likewise.
6163 (gimple_omp_atomic_load_set_rhs): Likewise.
6164 (gimple_omp_atomic_load_lhs_ptr): Likewise.
6165 (gimple_omp_atomic_load_lhs): Likewise.
6166 (gimple_omp_atomic_load_set_lhs): Likewise.
6167 (gimple_omp_atomic_store_val_ptr): Likewise.
6168 (gimple_omp_atomic_store_val): Likewise.
6169 (gimple_omp_atomic_store_set_val): Likewise.
6170 (gimple_omp_for_cond): Likewise.
6171 (gimple_omp_for_set_cond): Likewise.
6172 (gimple_omp_sections_set_control): Likewise.
6173 (gimple_omp_sections_control_ptr): Likewise.
6174 (gimple_omp_sections_control): Likewise.
6175 (gimple_omp_sections_set_clauses): Likewise.
6176 (gimple_omp_sections_clauses_ptr): Likewise.
6177 (gimple_omp_sections_clauses): Likewise.
6178 (gimple_omp_teams_set_clauses): Likewise.
6179 (gimple_omp_teams_clauses_ptr): Likewise.
6180 (gimple_omp_teams_clauses): Likewise.
6181 (gimple_omp_target_set_data_arg): Likewise.
6182 (gimple_omp_target_data_arg_ptr): Likewise.
6183 (gimple_omp_target_data_arg): Likewise.
6184 (gimple_omp_target_set_child_fn): Likewise.
6185 (gimple_omp_target_child_fn_ptr): Likewise.
6186 (gimple_omp_target_child_fn): Likewise.
6187 (gimple_omp_target_set_clauses): Likewise.
6188 (gimple_omp_target_clauses_ptr): Likewise.
6189 (gimple_omp_target_clauses): Likewise.
6190 (gimple_omp_single_set_clauses): Likewise.
6191 (gimple_omp_single_clauses_ptr): Likewise.
6192 (gimple_omp_single_clauses): Likewise.
6193 (gimple_omp_task_set_arg_align): Likewise.
6194 (gimple_omp_task_arg_align_ptr): Likewise.
6195 (gimple_omp_task_arg_align): Likewise.
6196 (gimple_omp_task_set_arg_size): Likewise.
6197 (gimple_omp_task_arg_size_ptr): Likewise.
6198 (gimple_omp_task_arg_size): Likewise.
6199 (gimple_omp_task_set_copy_fn): Likewise.
6200 (gimple_omp_task_copy_fn_ptr): Likewise.
6201 (gimple_omp_task_copy_fn): Likewise.
6202 (gimple_omp_task_set_data_arg): Likewise.
6203 (gimple_omp_task_data_arg_ptr): Likewise.
6204 (gimple_omp_task_data_arg): Likewise.
6205 (gimple_omp_task_set_child_fn): Likewise.
6206 (gimple_omp_task_child_fn_ptr): Likewise.
6207 (gimple_omp_task_child_fn): Likewise.
6208 (gimple_omp_task_set_clauses): Likewise.
6209 (gimple_omp_task_clauses_ptr): Likewise.
6210 (gimple_omp_task_clauses): Likewise.
6211 (gimple_omp_parallel_set_data_arg): Likewise.
6212 (gimple_omp_parallel_data_arg_ptr): Likewise.
6213 (gimple_omp_parallel_data_arg): Likewise.
6214 (gimple_omp_parallel_set_child_fn): Likewise.
6215 (gimple_omp_parallel_child_fn_ptr): Likewise.
6216 (gimple_omp_parallel_child_fn): Likewise.
6217 (gimple_omp_parallel_set_clauses): Likewise.
6218 (gimple_omp_parallel_clauses_ptr): Likewise.
6219 (gimple_omp_parallel_clauses): Likewise.
6220 (gimple_omp_for_set_pre_body): Likewise.
6221 (gimple_omp_for_pre_body_ptr): Likewise.
6222 (gimple_omp_for_set_incr): Likewise.
6223 (gimple_omp_for_incr_ptr): Likewise.
6224 (gimple_omp_for_incr): Likewise.
6225 (gimple_omp_for_set_final): Likewise.
6226 (gimple_omp_for_final_ptr): Likewise.
6227 (gimple_omp_for_final): Likewise.
6228 (gimple_omp_for_set_initial): Likewise.
6229 (gimple_omp_for_initial_ptr): Likewise.
6230 (gimple_omp_for_initial): Likewise.
6231 (gimple_omp_for_set_index): Likewise.
6232 (gimple_omp_for_index_ptr): Likewise.
6233 (gimple_omp_for_index): Likewise.
6234 (gimple_omp_for_collapse): Likewise.
6235 (gimple_omp_for_set_clauses): Likewise.
6236 (gimple_omp_for_clauses_ptr): Likewise.
6237 (gimple_omp_for_clauses): Likewise.
6238 (gimple_omp_critical_set_name): Likewise.
6239 (gimple_omp_critical_name_ptr): Likewise.
6240 (gimple_omp_critical_name): Likewise.
6241 (gimple_eh_dispatch_set_region): Likewise.
6242 (gimple_eh_dispatch_region): Likewise.
6243 (gimple_resx_set_region): Likewise.
6244 (gimple_resx_region): Likewise.
6245 (gimple_phi_set_arg): Likewise.
6246 (gimple_phi_arg): Likewise.
6247 (gimple_phi_set_result): Likewise.
6248 (gimple_phi_result_ptr): Likewise.
6249 (gimple_phi_result): Likewise.
6250 (gimple_phi_num_args): Likewise.
6251 (gimple_phi_capacity): Likewise.
6252 (gimple_wce_set_cleanup): Likewise.
6253 (gimple_wce_cleanup_ptr): Likewise.
6254 (gimple_try_set_cleanup): Likewise.
6255 (gimple_try_set_eval): Likewise.
6256 (gimple_try_cleanup_ptr): Likewise.
6257 (gimple_try_eval_ptr): Likewise.
6258 (gimple_eh_else_set_e_body): Likewise.
6259 (gimple_eh_else_set_n_body): Likewise.
6260 (gimple_eh_else_e_body_ptr): Likewise.
6261 (gimple_eh_else_n_body_ptr): Likewise.
6262 (gimple_eh_must_not_throw_set_fndecl): Likewise.
6263 (gimple_eh_must_not_throw_fndecl): Likewise.
6264 (gimple_eh_filter_set_failure): Likewise.
6265 (gimple_eh_filter_set_types): Likewise.
6266 (gimple_eh_filter_failure_ptr): Likewise.
6267 (gimple_eh_filter_types_ptr): Likewise.
6268 (gimple_eh_filter_types): Likewise.
6269 (gimple_catch_set_handler): Likewise.
6270 (gimple_catch_set_types): Likewise.
6271 (gimple_catch_handler_ptr): Likewise.
6272 (gimple_catch_types_ptr): Likewise.
6273 (gimple_catch_types): Likewise.
6274 (gimple_asm_string): Likewise.
6275 (gimple_asm_set_label_op): Likewise.
6276 (gimple_asm_label_op): Likewise.
6277 (gimple_asm_set_clobber_op): Likewise.
6278 (gimple_asm_clobber_op): Likewise.
6279 (gimple_asm_set_output_op): Likewise.
6280 (gimple_asm_output_op_ptr): Likewise.
6281 (gimple_asm_output_op): Likewise.
6282 (gimple_asm_set_input_op): Likewise.
6283 (gimple_asm_input_op_ptr): Likewise.
6284 (gimple_asm_input_op): Likewise.
6285 (gimple_asm_nlabels): Likewise.
6286 (gimple_asm_nclobbers): Likewise.
6287 (gimple_asm_noutputs): Likewise.
6288 (gimple_asm_ninputs): Likewise.
6289 (gimple_bind_set_block): Likewise.
6290 (gimple_bind_block): Likewise.
6291 (gimple_bind_add_seq): Likewise.
6292 (gimple_bind_add_stmt): Likewise.
6293 (gimple_bind_set_body): Likewise.
6294 (gimple_bind_body_ptr): Likewise.
6295 (gimple_bind_append_vars): Likewise.
6296 (gimple_bind_set_vars): Likewise.
6297 (gimple_bind_vars): Likewise.
6298 (gimple_call_clobber_set): Likewise.
6299 (gimple_call_use_set): Likewise.
6300 (gimple_call_set_internal_fn): Likewise.
6301 (gimple_call_set_fntype): Likewise.
6302 (gimple_call_fntype): Likewise.
6303 (gimple_omp_return_lhs_ptr): Likewise.
6304 (gimple_omp_return_lhs): Likewise.
6305 (gimple_omp_return_set_lhs): Likewise.
6306 (gimple_omp_taskreg_set_data_arg): Likewise.
6307 (gimple_omp_taskreg_data_arg_ptr): Likewise.
6308 (gimple_omp_taskreg_data_arg): Likewise.
6309 (gimple_omp_taskreg_set_child_fn): Likewise.
6310 (gimple_omp_taskreg_child_fn_ptr): Likewise.
6311 (gimple_omp_taskreg_child_fn): Likewise.
6312 (gimple_omp_taskreg_set_clauses): Likewise.
6313 (gimple_omp_taskreg_clauses_ptr): Likewise.
6314 (gimple_omp_taskreg_clauses): Likewise.
6315 (gimple_vuse): Likewise.
6316 (gimple_vdef): Likewise.
6317 (gimple_vuse_ptr): Likewise.
6318 (gimple_vdef_ptr): Likewise.
6319 * tree-inline.c (copy_debug_stmt): Likewise.
6320 * tree-phinodes.c (make_phi_node): Likewise.
6321
6322 * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New.
6323 (is_a_helper <gimple_statement_with_ops>::test): New.
6324 (is_a_helper <const gimple_statement_with_memory_ops>::test): New.
6325 (is_a_helper <gimple_statement_with_memory_ops>::test): New.
6326
6327 * gimple-streamer-in.c (input_gimple_stmt): Port from union
6328 access to use of as_a.
6329 * gimple.c (gimple_build_asm_1): Likewise.
6330 (gimple_build_try): Likewise. Also, return a specific subclass
6331 rather than just gimple.
6332 (gimple_build_resx): Port from union access to use of as_a.
6333 (gimple_build_eh_dispatch): Likewise.
6334 (gimple_build_omp_for): Likewise. Also, convert allocation of iter
6335 now that gengtype no longer provides a typed allocator function.
6336 (gimple_copy): Likewise.
6337 * gimple.h (gimple_build_try): Return a specific subclass rather
6338 than just gimple.
6339 * gimplify.c (gimplify_cleanup_point_expr): Replace union access
6340 with subclass access by making use of new return type of
6341 gimple_build_try.
6342 * tree-phinodes.c: (allocate_phi_node): Return a
6343 "gimple_statement_phi *" rather than just a gimple.
6344 (resize_phi_node): Likewise.
6345 (make_phi_node): Replace union access with subclass access by
6346 making use of new return type of allocate_phi_node.
6347 (reserve_phi_args_for_new_edge): Replace union access with as_a.
6348 (remove_phi_arg_num): Accept a "gimple_statement_phi *" rather
6349 than just a gimple.
6350 (remove_phi_args): Update for change to remove_phi_arg_num.
6351
6352 * gdbhooks.py (GimplePrinter.to_string): Update lookup of
6353 code field to reflect inheritance, rather than embedding of
6354 the base gimple type.
6355
6356 2013-11-19 Richard Biener <rguenther@suse.de>
6357
6358 * cfgloop.h (struct loop_iterator): C++-ify, add constructor
6359 and destructor and make fel_next a member function.
6360 (fel_next): Transform into ...
6361 (loop_iterator::next): ... this.
6362 (fel_init): Transform into ...
6363 (loop_iterator::loop_iterator): ... this.
6364 (loop_iterator::~loop_iterator): New.
6365 (FOR_EACH_LOOP): Remove loop-iterator argument.
6366 (FOR_EACH_LOOP_BREAK): Remove no longer necessary macro.
6367 * cfgloop.c, cfgloopmanip.c, config/mn10300/mn10300.c,
6368 graphite-clast-to-gimple.c, graphite-scop-detection.c,
6369 graphite-sese-to-poly.c, ipa-inline-analysis.c, ipa-pure-const.c,
6370 loop-init.c, loop-invariant.c, loop-unroll.c, loop-unswitch.c,
6371 modulo-sched.c, predict.c, sel-sched-ir.c, tree-cfg.c, tree-data-ref.c,
6372 tree-if-conv.c, tree-loop-distribution.c, tree-parloops.c,
6373 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-dce.c,
6374 tree-ssa-loop-ch.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6375 tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
6376 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
6377 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vrp.c: Adjust
6378 uses of FOR_EACH_LOOP and remove loop_iterator variables. Replace
6379 FOR_EACH_LOOP_BREAK with break.
6380
6381 2013-11-19 Richard Biener <rguenther@suse.de>
6382
6383 PR tree-optimization/59164
6384 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6385 Uncomment assert.
6386 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust check
6387 whether we can create an epilogue loop to reflect thecases where
6388 we create one.
6389
6390 2013-11-19 Andrew MacLeod <amacleod@redhat.com>
6391
6392 * graphite-sese-to-poly.c: Include expr.h.
6393
6394 2013-11-19 Richard Biener <rguenther@suse.de>
6395
6396 PR middle-end/58956
6397 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
6398 loads into stmts that may clobber it.
6399
6400 2013-11-19 Bernd Schmidt <bernds@codesourcery.com>
6401
6402 * cgraphunit.c (symtab_terminator): New variable.
6403 (queued_nodes): Renamed from first. Use symtab_terminator as
6404 initializer.
6405 (analyze_functions): Adjust accordingly.
6406 (cgraph_process_new_functions): Return void.
6407 * cgraph.h (cgraph_process_new_functions): Adjust declaration.
6408
6409 2013-11-19 Marek Polacek <polacek@redhat.com>
6410
6411 * opts.c (common_handle_option): Add -fsanitize=null option.
6412 Turn off -fdelete-null-pointer-checks option when doing the
6413 NULL pointer checking.
6414 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH): Add.
6415 * tree-pass.h (make_pass_ubsan): Declare.
6416 (make_pass_sanopt): Declare.
6417 * timevar.def (TV_TREE_UBSAN): New timevar.
6418 * passes.def: Add pass_sanopt and pass_ubsan.
6419 * ubsan.h (ubsan_null_ckind): New enum.
6420 (ubsan_mismatch_data): New struct.
6421 (ubsan_expand_null_ifn): Declare.
6422 (ubsan_create_data): Adjust declaration.
6423 (ubsan_type_descriptor): Likewise.
6424 * asan.c: Include "ubsan.h".
6425 (pass_data_sanopt): New pass.
6426 (execute_sanopt): New function.
6427 (gate_sanopt): Likewise.
6428 (make_pass_sanopt): Likewise.
6429 (class pass_sanopt): New class.
6430 * ubsan.c: Include tree-pass.h, gimple-ssa.h, gimple-walk.h,
6431 gimple-iterator.h and cfgloop.h.
6432 (PROB_VERY_UNLIKELY): Define.
6433 (tree_type_map_hash): New function.
6434 (ubsan_type_descriptor): Add new parameter.
6435 Improve type name generation.
6436 (ubsan_create_data): Add new parameter. Add pointer data into
6437 ubsan structure.
6438 (ubsan_expand_null_ifn): New function.
6439 (instrument_member_call): Likewise.
6440 (instrument_mem_ref): Likewise.
6441 (instrument_null): Likewise.
6442 (ubsan_pass): Likewise.
6443 (gate_ubsan): Likewise.
6444 (make_pass_ubsan): Likewise.
6445 (ubsan_instrument_unreachable): Adjust ubsan_create_data call.
6446 (class pass_ubsan): New class.
6447 (pass_data_ubsan): New pass.
6448 * flag-types.h (enum sanitize_code): Add SANITIZE_NULL.
6449 * internal-fn.c (expand_UBSAN_NULL): New function.
6450 * cgraphunit.c (varpool_finalize_decl): Call varpool_assemble_decl
6451 even when !flag_toplevel_reorder.
6452 * internal-fn.def (UBSAN_NULL): New.
6453
6454 2013-11-19 Jan Hubicka <jh@suse.cz>
6455
6456 * cgraph.c (cgraph_create_indirect_edge): Use
6457 get_polymorphic_call_info.
6458 * cgraph.h (cgraph_indirect_call_info): Add outer_type,
6459 maybe_in_construction and maybe_derived_type.
6460 * ipa-utils.h (ipa_polymorphic_call_context): New structure.
6461 (ipa_dummy_polymorphic_call_context): New global var.
6462 (possible_polymorphic_call_targets): Add context paramter.
6463 (dump_possible_polymorphic_call_targets): Likewise; update wrappers.
6464 (possible_polymorphic_call_target_p): Likewise.
6465 (get_polymorphic_call_info): New function.
6466 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function.
6467 (add_type_duplicate): Remove forgotten debug output.
6468 (method_class_type): Add sanity check.
6469 (maybe_record_node): Add FINALP parameter.
6470 (record_binfo): Add OUTER_TYPE and OFFSET; walk the inner
6471 by info by get_binfo_at_offset.
6472 (possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET
6473 parameters; pass them to record-binfo.
6474 (polymorphic_call_target_d): Add context and FINAL.
6475 (polymorphic_call_target_hasher::hash): Hash context.
6476 (polymorphic_call_target_hasher::equal): Compare context.
6477 (free_polymorphic_call_targets_hash):
6478 (get_class_context): New function.
6479 (contains_type_p): New function.
6480 (get_polymorphic_call_info): New function.
6481 (walk_bases): New function.
6482 (possible_polymorphic_call_targets): Add context parameter; honnor it.
6483 (dump_possible_polymorphic_call_targets): Dump context.
6484 (possible_polymorphic_call_target_p): Add context.
6485 (update_type_inheritance_graph): Update comment.s
6486 (ipa_set_jf_known_type): Assert that compoentn type is known.
6487 (ipa_note_param_call): Do not tamper with offsets.
6488 (ipa_analyze_indirect_call_uses): When offset is being changed; clear
6489 outer type.
6490 (update_indirect_edges_after_inlining): Likewise.
6491 (ipa_write_indirect_edge_info): Stream new fields.
6492 (ipa_read_indirect_edge_info): Stream in new fields.
6493
6494 2013-11-19 Jan Hubicka <jh@suse.cz>
6495
6496 * tree-pretty-print.c (dump_generic_node): Print class type of
6497 OBJ_TYPE_REF.
6498
6499 2013-11-19 Joey Ye <joey.ye@arm.com>
6500
6501 * config/arm/arm.opt (-marm-pic-data-is-text-relative): New option.
6502 * doc/invoke.texi (-marm-pic-data-is-text-relative): Documentation
6503 for new option.
6504 * config/arm/arm.c (arm_option_override): By default disable
6505 -marm-pic-data-is-text-relative.
6506 (legitimize_pic_address): Use arm_pic_data_is_text_relative.
6507 (arm_assemble_integer): Likewise.
6508 * config/arm/arm.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
6509 New macro to initialize -marm-pic-data-is-text-relative.
6510
6511 2013-11-19 Bin Cheng <bin.cheng@arm.com>
6512
6513 * tree-ssa-loop-ivopts.c (enum ainc_type): New.
6514 (address_cost_data): New field.
6515 (get_address_cost): Compute auto-increment rtx cost in ainc_costs.
6516 Use ainc_costs for auto-increment rtx patterns. Cleanup TWS.
6517
6518 2013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
6519
6520 * config/aarch64/aarch64.md: Remove v8type from all insns.
6521
6522 2013-11-19 Richard Biener <rguenther@suse.de>
6523
6524 PR tree-optimization/57517
6525 * tree-predcom.c (combinable_refs_p): Verify the combination
6526 is always executed when the refs are.
6527
6528 2013-11-19 Jeff Law <law@redhat.com>
6529
6530 * tree-ssa-threadupdate.c: Include ssa-iterators.h
6531 (copy_phi_arg_into_existing_phi): New function.
6532 (any_remaining_duplicated_blocks): Likewise.
6533 (ssa_fix_duplicate_block_edges): Handle multiple duplicated
6534 blocks on a jump threading path.
6535
6536 * tree-ssa-threadupdate.c (thread_through_loop_header): Do not
6537 thread through a joiner which has the latch edge.
6538
6539 2013-11-19 Jan Hubicka <jh@suse.cz>
6540
6541 * md.texi (setmem): Document new parameter.
6542 * optabs.c (maybe_gen_insn): Support 9 operands.
6543 * builtins.c (determine_block_size): Add probable_max_size;
6544 support anti-ranges.
6545 (expand_builtin_memcpy. expand_builtin_memset_args): Pass around
6546 probable_max_size.
6547 * expr.c (emit_block_move_via_movmem, emit_block_move_hints,
6548 emit_block_move, clear_storage_hints, set_storage_via_setmem):
6549 Likewise.
6550 * expr.h (emit_block_move_hints, clear_storage_hints,
6551 set_storage_via_setmem): Update prototype.
6552 * i386.md (setmem, movmem patterns): Add 9th operand.
6553 * i386-protos.h (ix86_expand_set_or_movmem): Update prototype.
6554 * i386.c (ix86_expand_set_or_movmem): Take probable_max_size_exp
6555 argument; pass it to decide_alg.
6556
6557 2013-11-19 David Malcolm <dmalcolm@redhat.com>
6558
6559 * basic-block.h (n_basic_blocks_for_function): Rename macro to...
6560 (n_basic_blocks_for_fn): ...this.
6561
6562 (n_basic_blocks): Eliminate macro as work towards making uses of
6563 cfun be explicit.
6564
6565 * cfgloop.c (init_loops_structure): Update for renaming of
6566 "n_basic_blocks_for_function" to "n_basic_blocks_for_fn".
6567 * graph.c (draw_cfg_nodes_no_loops): Likewise.
6568 * ipa-utils.c (ipa_merge_profiles): Likewise.
6569 * lto-streamer-in.c (make_new_block): Likewise.
6570 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
6571 (dump_function_to_file): Likewise.
6572
6573 * alias.c (init_alias_analysis): Replace usage of "n_basic_blocks"
6574 macro with "n_basic_blocks_for_fn (cfun)".
6575 * bb-reorder.c (partition_hot_cold_basic_blocks): Likewise.
6576 (duplicate_computed_gotos): Likewise.
6577 (reorder_basic_blocks): Likewise.
6578 * bt-load.c (augment_live_range): Likewise.
6579 * cfg.c (expunge_block): Likewise.
6580 (compact_blocks): Likewise.
6581 * cfganal.c (single_pred_before_succ_order): Likewise.
6582 (compute_idf): Likewise.
6583 (flow_dfs_compute_reverse_init): Likewise.
6584 (pre_and_rev_post_order_compute): Likewise.
6585 (pre_and_rev_post_order_compute_fn): Likewise.
6586 (inverted_post_order_compute): Likewise.
6587 (post_order_compute): Likewise.
6588 (print_edge_list): Likewise.
6589 (find_unreachable_blocks): Likewise.
6590 (mark_dfs_back_edges): Likewise.
6591 * cfgcleanup.c (try_optimize_cfg): Likewise.
6592 (try_forward_edges): Likewise.
6593 * cfghooks.c (dump_flow_info): Likewise.
6594 * cfgloop.c (verify_loop_structure): Likewise.
6595 (get_loop_body): Likewise.
6596 (flow_loops_find): Likewise.
6597 * cfgloopmanip.c (add_loop): Likewise.
6598 (remove_path): Likewise.
6599 (find_path): Likewise.
6600 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
6601 (rtl_verify_bb_layout): Likewise.
6602 (entry_of_function): Likewise.
6603 (rtl_create_basic_block): Likewise.
6604 * coverage.c (coverage_compute_cfg_checksum): Likewise.
6605 * cprop.c (one_cprop_pass): Likewise.
6606 (is_too_expensive): Likewise.
6607 * df-core.c (df_compute_cfg_image): Likewise.
6608 (df_compact_blocks): Likewise.
6609 (df_worklist_dataflow_doublequeue): Likewise.
6610 * dominance.c (calculate_dominance_info): Likewise.
6611 (calc_dfs_tree): Likewise.
6612 (calc_dfs_tree_nonrec): Likewise.
6613 (init_dom_info): Likewise.
6614 * domwalk.c (cmp_bb_postorder): Likewise.
6615 * function.c (thread_prologue_and_epilogue_insns): Likewise.
6616 (generate_setjmp_warnings): Likewise.
6617 * fwprop.c (build_single_def_use_links): Likewise.
6618 * gcse.c (is_too_expensive): Likewise.
6619 (one_code_hoisting_pass): Likewise.
6620 (one_pre_gcse_pass): Likewise.
6621 * graphite.c (graphite_initialize): Likewise.
6622 * haifa-sched.c (haifa_sched_init): Likewise.
6623 * ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
6624 * ira.c (split_live_ranges_for_shrink_wrap): Likewise.
6625 * ira-build.c (ira_build): Likewise.
6626 * lcm.c (compute_nearerout): Likewise.
6627 (compute_available): Likewise.
6628 (compute_laterin): Likewise.
6629 (compute_antinout_edge): Likewise.
6630 * lra-lives.c (lra_create_live_ranges): Likewise.
6631 * lra.c (has_nonexceptional_receiver): Likewise.
6632 * mcf.c (create_fixup_graph): Likewise.
6633 * profile.c (branch_prob): Likewise.
6634 * reg-stack.c (convert_regs_2): Likewise.
6635 * regrename.c (regrename_analyze): Likewise.
6636 * reload1.c (has_nonexceptional_receiver): Likewise.
6637 * reorg.c (dbr_schedule): Likewise.
6638 * sched-deps.c (sched_deps_init): Likewise.
6639 * sched-ebb.c (schedule_ebbs): Likewise.
6640 * sched-rgn.c (extend_regions): Likewise.
6641 (schedule_insns): Likewise.
6642 (sched_rgn_init): Likewise.
6643 (extend_rgns): Likewise.
6644 (haifa_find_rgns): Likewise.
6645 * sel-sched-ir.c (recompute_rev_top_order): Likewise.
6646 (sel_recompute_toporder): Likewise.
6647 * sel-sched.c (run_selective_scheduling): Likewise.
6648 * store-motion.c (one_store_motion_pass): Likewise.
6649 (remove_reachable_equiv_notes): Likewise.
6650 * tracer.c (tracer): Likewise.
6651 (tail_duplicate): Likewise.
6652 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
6653 (dump_cfg_stats): Likewise.
6654 (gimple_dump_cfg): Likewise.
6655 (create_bb): Likewise.
6656 (build_gimple_cfg): Likewise.
6657 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
6658 * tree-inline.c (optimize_inline_calls): Likewise.
6659 (fold_marked_statements): Likewise.
6660 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Likewise.
6661 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
6662 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
6663 * tree-ssa-loop-manip.c (compute_live_loop_exits): Likewise.
6664 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6665 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
6666 * tree-ssa-pre.c (do_pre): Likewise.
6667 (init_pre): Likewise.
6668 (compute_avail): Likewise.
6669 * tree-ssa-reassoc.c (init_reassoc): Likewise.
6670 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
6671 * tree-ssa-tail-merge.c (alloc_cluster_vectors): Likewise.
6672 (init_worklist): Likewise.
6673 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
6674 * var-tracking.c (variable_tracking_main_1): Likewise.
6675 (vt_find_locations): Likewise.
6676 (vt_stack_adjustments): Likewise.
6677 * config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
6678 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
6679
6680 2013-11-18 Jan Hubicka <jh@suse.cz>
6681
6682 * profile.c (compute_branch_probabilities): Do not sanity check
6683 run_max.
6684
6685 2013-11-18 Kenneth Zadeck <zadeck@naturalbridge.com>
6686
6687 * tree.c (int_fits_type_p): Change GET_MODE_BITSIZE to
6688 GET_MODE_PRECISION.
6689 * fold-const.c (fold_single_bit_test_into_sign_test)
6690 (fold_binary_loc): Change GET_MODE_BITSIZE to GET_MODE_PRECISION.
6691
6692 2013-11-18 Teresa Johnson <tejohnson@google.com>
6693
6694 * cfgrtl.c (cfg_layout_initialize): Assert if we try to go into
6695 cfglayout after bb reordering.
6696 * passes.def: Move compgotos before bb reordering since it goes into
6697 cfglayout.
6698
6699 2013-11-18 Bernd Schmidt <bernds@codesourcery.com>
6700
6701 * cgraphunit.c (ipa_passes): Don't execute all_lto_gen_passes.
6702 * lto-streamer-out.c (lto_output, produce_asm_for_decls): No longer
6703 static.
6704 (pass_data_ipa_lto_gimple_out, pass_ipa_lto_gimple_out,
6705 make_pass_ipa_lto_gimple_out, pass_data_ipa_lto_finish_out,
6706 pass_ipa_lto_finish_out, make_pass_ipa_lto_finish_out): Remove.
6707 * lto-streamer.h (lto_output, produce_asm_for_decls): Declare.
6708 * pass-manager.h (GCC_PASS_LISTS, class pass_manager):
6709 Remove all_lto_gen_passes.
6710 * passes.c (pass_manager::dump_passes): Remove its use.
6711 (pass_manager::register_pass): Likewise.
6712 (ipa_read_summaries, ipa_read_optimization_summaries): Likewise.
6713 (pass_manager::pass_manager): Don't initialize or use it.
6714 (write_lto): New static function.
6715 (ipa_write_summaries_1, ipa_write_optimization_summaries): Use it
6716 instead of using all_lto_gen_passes.
6717 * passes.def (all_lto_gen_passes, pass_ipa_lto_gimple_out,
6718 pass_ipa_lto_finish_out): Delete.
6719 * tree-pass.h (make_pass_ipa_lto_gimple_out,
6720 make_pass_ipa_lto_finish_out): Don't declare.
6721
6722 2013-11-18 Jeff Law <law@redhat.com>
6723
6724 * tree-ssa-threadupdate.c (redirection_data): Record two
6725 duplicated blocks instead of just one.
6726 (local_info): Explain why we don't create a template for the
6727 second duplicated block in a thread path.
6728 (create_block_for_threading): Accept argument indicating array
6729 index into redirection_data to store its result.
6730 (lookup_redirection_data): Initialize both duplicate blocks.
6731 (ssa_create_duplicates): If a jump threading path needs multiple
6732 blocks duplicated, then duplicate them.
6733 (ssa_fix_duplicate_block_edges): Corresponding changes.
6734 (ssa_fixup_template_block, thread_single_edge): Likewise.
6735
6736 2013-11-18 Marek Polacek <polacek@redhat.com>
6737
6738 * doc/invoke.texi: Extend -fsanitize=undefined documentation.
6739
6740 2013-11-18 Andrew Pinski <apinski@cavium.com>
6741 Steve Ellcey <sellcey@mips.com>
6742
6743 PR target/56552
6744 * config/mips/mips.md (*mov<GPR:mode>_on_<MOVECC:mode>): Remove
6745 type restriction from equality_operator on conditonal move.
6746 (*mov<SCALARF:mode>_on_<MOVECC:mode>): Ditto.
6747 (*mov<GPR:mode>_on_<GPR2:mode>_ne): New.
6748
6749 2013-11-18 Jeff Law <law@redhat.com>
6750
6751 * tree-ssa-threadupdate.c: Fix file block comment.
6752 Fix minor indention issue.
6753
6754 2013-11-18 Uros Bizjak <ubizjak@gmail.com>
6755
6756 * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
6757 ix86_address_subreg_operand. Move subreg checks to
6758 ix86_validate_address_register. Move address override check to
6759 ix86_legitimate_address_p.
6760 (ix86_validate_address_register): New function.
6761 (ix86_legitimate_address_p): Call ix86_validate_address_register
6762 to validate base and index registers. Add address override check
6763 from ix86_decompose_address.
6764 (ix86_decompose_address): Remove.
6765
6766 2013-11-18 Richard Biener <rguenther@suse.de>
6767
6768 PR tree-optimization/59125
6769 PR tree-optimization/54570
6770 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
6771 is not complete do not treat component-references with offset zero
6772 but different fields as equal.
6773 * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
6774 (compute_object_sizes): Apply TLC. Propagate the constant
6775 results into all uses and fold their stmts.
6776 * passes.def (pass_all_optimizations): Move pass_object_sizes
6777 after the first pass_forwprop and before pass_fre.
6778
6779 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6780
6781 * tree.h (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
6782 * tree.c (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
6783 (tree_ctz): Remove cast to unsigned type.
6784 * builtins.c (fold_builtin_memory_op): Likewise.
6785 * dwarf2out.c (descr_info_loc): Likewise.
6786 * godump.c (go_output_typedef): Likewise.
6787 * omp-low.c (expand_omp_simd): Likewise.
6788 * stor-layout.c (excess_unit_span): Likewise.
6789 * tree-object-size.c (addr_object_size): Likewise.
6790 * tree-sra.c (analyze_all_variable_accesses): Likewise.
6791 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
6792 (simplify_rotate): Likewise.
6793 * tree-ssa-strlen.c (adjust_last_stmt, handle_builtin_memcpy)
6794 (handle_pointer_plus): Likewise.
6795 * tree-switch-conversion.c (check_range): Likewise.
6796 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
6797 * tsan.c (instrument_builtin_call): Likewise.
6798 * cfgexpand.c (defer_stack_allocation): Add cast to HOST_WIDE_INT.
6799 * trans-mem.c (tm_log_add): Likewise.
6800 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
6801 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
6802 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
6803 * config/mips/mips.c (r10k_safe_mem_expr_p): Make offset unsigned.
6804
6805 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6806
6807 * tree.h (host_integerp, tree_low_cst): Delete.
6808 * tree.c (host_integerp, tree_low_cst): Delete.
6809
6810 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6811
6812 * expr.h: Update comments to refer to tree_to_[su]hwi rather
6813 than tree_low_cst.
6814 * fold-const.c (fold_binary_loc): Likewise.
6815 * expr.c (store_constructor): Use tree_to_uhwi rather than
6816 tree_low_cst.
6817 * ipa-utils.h (possible_polymorphic_call_target_p): Likewise.
6818 * stmt.c (emit_case_dispatch_table): Likewise.
6819 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
6820
6821 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6822
6823 * alias.c, asan.c, builtins.c, cfgexpand.c, cgraph.c,
6824 config/aarch64/aarch64.c, config/alpha/predicates.md,
6825 config/arm/arm.c, config/darwin.c, config/epiphany/epiphany.c,
6826 config/i386/i386.c, config/iq2000/iq2000.c, config/m32c/m32c-pragma.c,
6827 config/mep/mep-pragma.c, config/mips/mips.c,
6828 config/picochip/picochip.c, config/rs6000/rs6000.c, cppbuiltin.c,
6829 dbxout.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, fold-const.c,
6830 function.c, gimple-fold.c, godump.c, ipa-cp.c, ipa-prop.c, omp-low.c,
6831 predict.c, sdbout.c, stor-layout.c, trans-mem.c, tree-object-size.c,
6832 tree-sra.c, tree-ssa-ccp.c, tree-ssa-forwprop.c,
6833 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c,
6834 tree-ssa-loop-prefetch.c, tree-ssa-strlen.c, tree-stdarg.c,
6835 tree-switch-conversion.c, tree-vect-generic.c, tree-vect-loop.c,
6836 tree-vect-patterns.c, tree-vrp.c, tree.c, tsan.c, ubsan.c, varasm.c:
6837 Replace tree_low_cst (..., 1) with tree_to_uhwi throughout.
6838
6839 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6840
6841 * builtins.c, cilk-common.c, config/aarch64/aarch64.c,
6842 config/alpha/alpha.c, config/arm/arm.c, config/c6x/predicates.md,
6843 config/i386/i386.c, config/ia64/predicates.md, config/s390/s390.c,
6844 coverage.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c, expr.h,
6845 fold-const.c, gimple-fold.c, godump.c, ipa-prop.c, omp-low.c,
6846 predict.c, rtlanal.c, sdbout.c, stmt.c, stor-layout.c, targhooks.c,
6847 tree-cfg.c, tree-data-ref.c, tree-inline.c, tree-ssa-forwprop.c,
6848 tree-ssa-loop-prefetch.c, tree-ssa-phiopt.c, tree-ssa-sccvn.c,
6849 tree-ssa-strlen.c, tree-stdarg.c, tree-vect-data-refs.c,
6850 tree-vect-patterns.c, tree.c, tree.h, var-tracking.c, varasm.c:
6851 Replace tree_low_cst (..., 0) with tree_to_shwi throughout.
6852
6853 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6854
6855 * tree.h (tree_to_shwi, tree_to_uhwi): Declare, with inline expansions.
6856 * tree.c (tree_to_shwi, tree_to_uhwi): New functions.
6857
6858 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6859
6860 * expr.h: Update comments to refer to tree_fits_[su]hwi_p rather
6861 than host_integerp.
6862
6863 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6864
6865 * builtins.c, config/alpha/alpha.c, config/iq2000/iq2000.c,
6866 config/mips/mips.c, dbxout.c, dwarf2out.c, expr.c, fold-const.c,
6867 gimple-fold.c, godump.c, omp-low.c, predict.c, sdbout.c, stor-layout.c,
6868 tree-dfa.c, tree-sra.c, tree-ssa-forwprop.c, tree-ssa-loop-prefetch.c,
6869 tree-ssa-phiopt.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
6870 tree-ssa-structalias.c, tree-vect-data-refs.c, tree-vect-patterns.c,
6871 tree.c, varasm.c, alias.c, cfgexpand.c, config/aarch64/aarch64.c,
6872 config/arm/arm.c, config/epiphany/epiphany.c, config/i386/i386.c,
6873 config/m32c/m32c-pragma.c, config/mep/mep-pragma.c,
6874 config/rs6000/rs6000.c, config/sparc/sparc.c, emit-rtl.c, function.c,
6875 gimplify.c, ipa-prop.c, stmt.c, trans-mem.c, tree-cfg.c,
6876 tree-object-size.c, tree-ssa-ccp.c, tree-ssa-loop-ivcanon.c,
6877 tree-stdarg.c, tree-switch-conversion.c, tree-vect-generic.c,
6878 tree-vrp.c, tsan.c, ubsan.c: Replace host_integerp (..., 1) with
6879 tree_fits_uhwi_p throughout.
6880
6881 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6882
6883 * builtins.c, config/alpha/alpha.c, config/c6x/predicates.md,
6884 config/ia64/predicates.md, config/iq2000/iq2000.c, config/mips/mips.c,
6885 config/s390/s390.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c,
6886 expr.h, fold-const.c, gimple-fold.c, gimple-ssa-strength-reduction.c,
6887 gimple.c, godump.c, graphite-scop-detection.c, graphite-sese-to-poly.c,
6888 omp-low.c, predict.c, rtlanal.c, sdbout.c, simplify-rtx.c,
6889 stor-layout.c, tree-data-ref.c, tree-dfa.c, tree-pretty-print.c,
6890 tree-sra.c, tree-ssa-alias.c, tree-ssa-forwprop.c,
6891 tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c,
6892 tree-ssa-phiopt.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
6893 tree-ssa-strlen.c, tree-ssa-structalias.c, tree-vect-data-refs.c,
6894 tree-vect-patterns.c, tree-vectorizer.h, tree.c, var-tracking.c,
6895 varasm.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
6896 throughout.
6897
6898 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6899
6900 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Declare.
6901 * tree.c (tree_fits_shwi_p, tree_fits_uhwi_p): Define.
6902
6903 2013-11-18 Kirill Yukhin <kirill.yukhin@intel.com>
6904
6905 * config/ia64/ia64.c (ia64_split_tmode_move): Mark load with `dead'
6906 flag if it kills its address, not its post-increment.
6907
6908 2013-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
6909
6910 * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
6911 * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
6912 * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
6913 * gimple.c (gimple_call_get_nobnd_arg_index): Remove.
6914 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
6915 (gimple_call_with_bounds_p): New.
6916 (gimple_call_set_with_bounds): New.
6917 (gimple_call_num_nobnd_args): Remove.
6918 (gimple_call_nobnd_arg): Remove.
6919 * tree.h (CALL_WITH_BOUNDS_P): New.
6920 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
6921
6922 2013-11-18 Trevor Saunders <tsaunders@mozilla.com>
6923
6924 * cgraph.h (symtab_node_asm_name): Rename to symtab_node::asm_name.
6925 (symtab_node_name): Rename to symtab_node::name.
6926 (cgraph_node_asm_name): Remove.
6927 (varpool_node_asm_name): Remove.
6928 * cgraph.c cgraphclones.c cgraphunit.c ipa-cp.c ipa-devirt.c
6929 ipa-inline-analysis.c ipa-inline-transform.c ipa-inline.c
6930 ipa-profile.c ipa-prop.c ipa-pure-const.c ipa-ref.c ipa-reference.c
6931 ipa-utils.c ipa.c symtab.c tree-inline.c tree-sra.c
6932 tree-ssa-structalias.c value-prof.c varpool.c Adjust.
6933
6934 2013-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6935
6936 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): New table.
6937 * config/arm/arm.c (arm_cortex_a53_tune): New.
6938 * config/arm/arm-cores.def (cortex-a53): Use cortex_a53 tuning struct.
6939
6940 2013-11-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
6941
6942 * config.gcc (i[34567]86-*-linux* | ...): Add bdver4.
6943 (case ${target}): Add bdver4.
6944 * config/i386/bdver3.md: Add bdver4.
6945 * config/i386/driver-i386.c: (host_detect_local_cpu): Let
6946 -march=native recognize bdver4 processors.
6947 * config/i386/i386-c.c (ix86_target_macros_internal): Add
6948 bdver4 def_and_undef
6949 * config/i386/i386.c (struct processor_costs bdver4_cost): New.
6950 (m_BDVER4): New definition.
6951 (m_AMD_MULTIPLE): Includes m_BDVER4.
6952 (processor_target_table): Add bdver4 entry.
6953 (static const char *const cpu_names): Add bdver4 entry.
6954 (software_prefetching_beneficial_p): Add bdver3.
6955 (ix86_option_override_internal): Add bdver4 instruction sets.
6956 (ix86_issue_rate): Add bdver4.
6957 (ix86_adjust_cost): Add bdver4.
6958 (ia32_multipass_dfa_lookahead): Add bdver4.
6959 (enum processor_model): Add M_AMDFAM15H_BDVER4.
6960 (struct _arch_names_table): Add M_AMDFAM15H_BDVER4.
6961 (has_dispatch): Add bdver4.
6962 * config/i386/i386.h (TARGET_BDVER4): New definition.
6963 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver4.
6964 (enum processor_type): Add PROCESSOR_BDVER4.
6965 * config/i386/i386.md (define_attr "cpu"): Add bdver4.
6966 * config/i386/i386.opt (flag_dispatch_scheduler): Add bdver4.
6967 * doc/extend.texi: Add details about bdver4.
6968 * doc/invoke.texi: Add details about bdver4. Add
6969 fma4 and fsgsbase for bdver3. Add fma4 for bdver2.
6970
6971 2013-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6972
6973 * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
6974 sdmode_stack_slot also in little-endian mode.
6975
6976 2013-11-17 Jan Hubicka <jh@suse.cz>
6977
6978 * doc/md.texi (setmem, movstr): Update documentation.
6979 * builtins.c (determine_block_size): New function.
6980 (expand_builtin_memcpy): Use it and pass it to emit_block_move_hints.
6981 (expand_builtin_memset_args): Use it and pass it to
6982 set_storage_via_setmem.
6983 * expr.c (emit_block_move_via_movmem): Add min_size/max_size
6984 parameters; update call to expander.
6985 (emit_block_move_hints): Add min_size/max_size parameters.
6986 (clear_storage_hints): Likewise.
6987 (set_storage_via_setmem): Likewise.
6988 (clear_storage): Update.
6989 * expr.h (emit_block_move_hints, clear_storage_hints,
6990 set_storage_via_setmem): Update prototypes.
6991 * i386.c (ix86_expand_set_or_movmem): Add bounds; export.
6992 (ix86_expand_movmem, ix86_expand_setmem): Remove.
6993 (ix86_expand_movmem, ix86_expand_setmem): Remove.
6994 * i386.md (movmem, setmem): Pass parameters.
6995
6996 2013-11-17 Uros Bizjak <ubizjak@gmail.com>
6997
6998 PR target/59153
6999 * config/i386/i386.c (ix86_address_subreg_operand): Do not
7000 reject non-integer subregs.
7001 (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
7002 Move check for invalid x32 constant addresses ...
7003 (ix86_legitimate_address_p): ... here.
7004
7005 2011-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7006
7007 * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
7008 parameter and use it in REG_FRAME_RELATED_EXPR note.
7009 (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
7010 parameter.
7011 (rs6000_emit_prologue): Likewise, but for little endian VSX
7012 stores, pass the source register of the store instead.
7013
7014 2013-11-17 Andrew MacLeod <amacleod@redhat.com>
7015
7016 * gimple.h: Reorder prototypes to match .c declaration order, and
7017 remove protyotypes for functions not in gimple.c.
7018 (LABEL): Move to tree-into-ssa.c.
7019 * gimple.c: Remove unused prototypes.
7020 (get_base_address): Move to tree.c.
7021 * tree.c (get_base_address): Relocate from gimple.c.
7022 * builtins.h (validate_gimple_arglist): Add prototype.
7023 * trans-mem.h (compute_transaction_bits, is_tm_ending): Add prototype.
7024 * cfgexpand.h: New File.
7025 (gimple_assign_rhs_to_tree, estimated_stack_frame_size): Add protoype.
7026 * tree.h (build_addr): Move to tree-nested.h.
7027 * tree-nested.h: New File.
7028 (build_addr, lower_nested_functions, insert_field_into_struct): Add
7029 prototypes.
7030 * tree-inline.h (estimated_stack_frame_size): Remove prototype.
7031 * ipa-inline-analysis.c: Include cfgexpand.h.
7032 * cgraphunit.c: Include tree-nested.h.
7033 * omp-low.c: Likewise.
7034 * tree-parloops.c: Likewise.
7035 * gimple-low.h: Likewise.
7036 * tree-profile.h: Likewise.
7037 * expr.c: Include cfgexpand.h.
7038 * tree-affine.c: Likewise.
7039 * tree-ssa.c: Likewise.
7040 * tree-ssa-loop-im.c: Include trans-mem.h.
7041 * tree-ssa-tail-merge.c: Likewise.
7042 * value-prof.c: Include builtins.h and tree-nested.h.
7043 * tree-into-ssa.c (LABEL): Define here.
7044
7045 2013-11-16 Joern Rennecke <joern.rennecke@embecosm.com>
7046
7047 * config/arc/arc.c (arc_predicate_delay_insns): New function.
7048 (pass_data_arc_predicate_delay_insns): New pass_data instance.
7049 (pass_arc_predicate_delay_insns): New subclass of rtl_opt_class.
7050 (make_pass_arc_predicate_delay_insns): New function.
7051 (arc_init): Register pass_arc_predicate_delay_insns if
7052 flag_delayed_branch is active.
7053
7054 2013-11-16 Joern Rennecke <joern.rennecke@embecosm.com>
7055
7056 * config/arc/constraints.md (Rcq): Simplify register number test.
7057
7058 2013-11-15 Aldy Hernandez <aldyh@redhat.com>
7059
7060 * gimple.h (enum gf_mask): Change the ordering of GF_OMP_* bits.
7061
7062 2013-11-15 Kaz Kojima <kkojima@gcc.gnu.org>
7063
7064 * config/sh/sh.c (barrier_align): Return 0 when barrier_or_label
7065 is null.
7066
7067 2013-11-15 Aldy Hernandez <aldyh@redhat.com>
7068
7069 * Makefile.in (C_COMMON_OBJS): Depend on c-cilkplus.o.
7070 * gimple-pretty-print.c (dump_omp_for): Add case for
7071 GF_OMP_FOR_KIND_CILKSIMD.
7072 * gimple.h (enum gf_mask): Restructure entries to add
7073 GF_OMP_FOR_KIND_CILKSIMD.
7074 * gimplify.c (is_gimple_stmt): Add case for CILK_SIMD.
7075 (gimplify_omp_for): Handle CILK_SIMD.
7076 (gimplify_expr): Add ccase for CILK_SIMD.
7077 * omp-low.c (extract_omp_for_data): Handle CILK_SIMD.
7078 (build_outer_var_ref): Same.
7079 (check_omp_nesting_restrictions): Same.
7080 (lower_rec_input_clauses): Same.
7081 (lower_lastprivate_clauses): Same.
7082 (expand_omp_for): Same.
7083 (execute_expand_omp): Check flag_enable_cilkplus.
7084 (execute_lower_omp): Same.
7085 (diagnose_sb_0): Handle CILK_SIMD.
7086 (diagnose_omp_structured_block_errors): Check flag_enable_cilkplus.
7087 (setjmp_or_longjmp_p): New.
7088 (scan_omp_1_stmt): Error on setjmp/longjmp in a simd construct.
7089 * tree-pretty-print.c (dump_generic_node): Add case for CILK_SIMD.
7090 * tree.def: Add tree code for CILK_SIMD.
7091
7092 2013-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7093
7094 * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
7095 Remove.
7096 (altivec_vperm_<mode>): Revert earlier little endian change.
7097 (*altivec_vperm_<mode>_internal): Remove.
7098 (altivec_vperm_<mode>_uns): Revert earlier little endian change.
7099 (*altivec_vperm_<mode>_uns_internal): Remove.
7100 * config/rs6000/vector.md (vec_realign_load_<mode>): Revise commentary.
7101
7102 2013-11-15 Jeff Law <law@redhat.com>
7103
7104 * basic-block.h (has_abnormal_or_eh_outgoing_edge): Renamed from
7105 has_abnormal_or_outgoing_edge. Check for EH edges as well.
7106 * gimple-ssa-isolate-paths.c
7107 (find_implicit_erroneous_behaviour): Corresponding changes.
7108 Do not check stmt_ends_bb_p or GIMPLE_RETURN anymore.
7109 (find_explicit_erroneous_behaviour): Likewise.
7110
7111 2013-11-15 Jeff Law <law@redhat.com>
7112
7113 * ifcvt.c (find_cond_trap): Properly handle case where
7114 trap_bb == else_bb.
7115
7116 2013-11-15 Andreas Schwab <schwab@linux-m68k.org>
7117
7118 * configure: Regenerate.
7119
7120 2013-11-15 James Greenhalgh <james.greenhalgh@arm.com>
7121
7122 * config/aarch64/aarch64-simd.md: Remove simd_type from all patterns.
7123 * config/aarch64/aarch64.md: Likewise, correct "type" attribute
7124 where it is incorrect or missing.
7125
7126 2013-11-15 Richard Sandiford <rdsandiford@googlemail.com>
7127
7128 * dwarf2out.c (gen_enumeration_type_die): Remove unnecessary
7129 host_integerp test.
7130 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
7131 Use TREE_INT_CST_LOW rather than tree_low_cst when reading the
7132 constant.
7133 * fold-const.c (fold_binary_loc): Replace a host_integerp/tree_low_cst
7134 pair with a TREE_CODE test and TREE_INT_CST_LOW.
7135 * tree-vect-generic.c (expand_vector_divmod): Likewise.
7136
7137 2013-11-15 Richard Biener <rguenther@suse.de>
7138
7139 PR tree-optimization/50262
7140 * tree-ssa-alias.h (struct pt_solution): Split
7141 vars_contains_global into vars_contains_nonlocal,
7142 vars_contains_escaped and vars_contains_escaped_heap.
7143 * tree-ssa-structalias.c (label_visit): Expand comment.
7144 (handle_lhs_call): Adjust comment.
7145 (set_uids_in_ptset): Set the new flags appropriately.
7146 (pt_solution_set): Adjust.
7147 (pt_solution_set_var): Likewise.
7148 (pt_solution_ior_into): Likewise.
7149 (pt_solution_includes_global): Likewise.
7150 (pt_solutions_intersect_1): Optimize escaped handling.
7151 (compute_points_to_sets): Remove heap variable globalization.
7152 (ipa_escaped_pt): Adjust initializer.
7153 (pass_data_ipa_pta): Do not run TODO_update_ssa.
7154 * gimple-pretty-print.c (pp_points_to_solution): Print split flags.
7155 * tree-ssa-alias.c (dump_points_to_solution): Likewise.
7156
7157 2013-11-15 Richard Biener <rguenther@suse.de>
7158
7159 * tree-loop-distribution.c (tree_loop_distribution): Make sure
7160 to distribute all stores.
7161
7162 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7163
7164 * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.
7165
7166 2013-11-15 Joseph Myers <joseph@codesourcery.com>
7167
7168 * acinclude.m4 (GCC_GLIBC_VERSION_GTE_IFELSE): New configure macro.
7169 * configure.ac: Determine target_header_dir earlier.
7170 (--with-glibc-version): New configure option.
7171 Use GCC_GLIBC_VERSION_GTE_IFELSE in enable_gnu_unique_object,
7172 gcc_cv_libc_provides_ssp and gcc_cv_target_ldbl128 tests.
7173 * configure: Regenerate.
7174 * doc/install.texi (--enable-gnu-unique-object): Don't refer to
7175 native toolchains for default.
7176 (--with-glibc-version): Document.
7177
7178 2013-11-15 Eric Botcazou <ebotcazou@adacore.com>
7179
7180 * fold-const.c (fold_binary_loc) <comparisons>: Reuse local variable.
7181
7182 2013-11-15 Uros Bizjak <ubizjak@gmail.com>
7183
7184 * lto-streamer-in.c (input function): Call cgraph_create_node if
7185 cgraph_get_node failed.
7186
7187 2013-11-14 Olivier Hainque <hainque@adacore.com>
7188
7189 * cfgexpand.c (defer_stack_allocation): When optimization is enabled,
7190 defer allocation of DECL_IGNORED_P variables at toplevel unless really
7191 small. Factorize size threshold computation from the existing one.
7192 (expand_used_vars): Refine comment.
7193
7194 2013-11-14 Cong Hou <congh@google.com>
7195
7196 * tree-vectorizer.h (struct dr_with_seg_len): Remove the base
7197 address field as it can be obtained from dr. Rename the struct.
7198 * tree-vect-data-refs.c (comp_dr_with_seg_len_pair): Consider
7199 steps of data references during sort.
7200 (vect_prune_runtime_alias_test_list): Adjust with the change to
7201 struct dr_with_seg_len.
7202 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
7203 Adjust with the change to struct dr_with_seg_len.
7204
7205 2013-11-14 Jeff Law <law@redhat.com>
7206
7207 PR middle-end/59127
7208 * basic-block.h (has_abnormal_outgoing_edge_p): Moved here from...
7209 * tree-inline.c (has_abnormal_outgoing_edge_p): Remove.
7210 * gimple-ssa-isolate-paths.c: Include tree-cfg.h.
7211 (find_implicit_erroneous_behaviour): If a block has abnormal outgoing
7212 edges, then ignore it. If the statement exhibiting erroneous
7213 behaviour ends basic blocks, with the exception of GIMPLE_RETURNs,
7214 then we can not optimize.
7215 (find_explicit_erroneous_behaviour): Likewise.
7216
7217 2013-11-14 Andrew MacLeod <amacleod@redhat.com>
7218
7219 * gimplify-me.h: New file. Add prototypes.
7220 * gimplify.h: Don't include gimple.h.
7221 (struct gimplify_hasher, struct gimplify_ctx, is_gimple_sizepos):
7222 Relocate from gimple.h.
7223 * gimple.h (struct gimplify_hasher, struct gimplify_ctx,
7224 is_gimple_sizepos): Move to gimplify.h.
7225 (gimplify_hasher::hash, gimplify_hasher::equal): Move to gimplify.c.
7226 (enum gsi_iterator_update): Move to gimple-iterator.h.
7227 * gimple-iterator.h (enum gsi_iterator_update): Relocate from gimple.h.
7228 * gimplify-me.c: New File.
7229 (force_gimple_operand_1, force_gimple_operand,
7230 force_gimple_operand_gsi_1, force_gimple_operand_gsi,
7231 gimple_regimplify_operands): Relocate from gimplify.c.
7232 * gimplify.c (force_gimple_operand_1, force_gimple_operand,
7233 force_gimple_operand_gsi_1, force_gimple_operand_gsi,
7234 gimple_regimplify_operands): Move to gimplify-me.c.
7235 (gimplify_hasher::hash, gimplify_hasher::equal): Relocate
7236 from gimple.h.
7237 * Makefile.in (OBJS): Add gimplify-me.o
7238 * asan.c: Include only gimplify.h, gimplify-me.h, and/or gimple.h as
7239 required.
7240 * cfgloopmanip.c: Likewise.
7241 * cgraphunit.c: Likewise.
7242 * cilk-common.c: Likewise.
7243 * fold-const.c: Likewise.
7244 * function.c: Likewise.
7245 * gimple-expr.c: Likewise.
7246 * gimple-fold.c: Likewise.
7247 * gimple-ssa-strength-reduction.c: Likewise.
7248 * gimple.c: Likewise.
7249 * graphite-clast-to-gimple.c: Likewise.
7250 * graphite-sese-to-poly.c: Likewise.
7251 * ipa-prop.c: Likewise.
7252 * ipa-split.c: Likewise.
7253 * ipa.c: Likewise.
7254 * langhooks.c: Likewise.
7255 * omp-low.c: Likewise.
7256 * sese.c: Likewise.
7257 * stor-layout.c: Likewise.
7258 * targhooks.c: Likewise.
7259 * trans-mem.c: Likewise.
7260 * tree-affine.c: Likewise.
7261 * tree-cfg.c: Likewise.
7262 * tree-cfgcleanup.c: Likewise.
7263 * tree-complex.c: Likewise.
7264 * tree-if-conv.c: Likewise.
7265 * tree-inline.c: Likewise.
7266 * tree-loop-distribution.c: Likewise.
7267 * tree-nested.c: Likewise.
7268 * tree-parloops.c: Likewise.
7269 * tree-predcom.c: Likewise.
7270 * tree-profile.c: Likewise.
7271 * tree-scalar-evolution.c: Likewise.
7272 * tree-sra.c: Likewise.
7273 * tree-ssa-address.c: Likewise.
7274 * tree-ssa-ccp.c: Likewise.
7275 * tree-ssa-dce.c: Likewise.
7276 * tree-ssa-forwprop.c: Likewise.
7277 * tree-ssa-ifcombine.c: Likewise.
7278 * tree-ssa-loop-im.c: Likewise.
7279 * tree-ssa-loop-ivopts.c: Likewise.
7280 * tree-ssa-loop-manip.c: Likewise.
7281 * tree-ssa-loop-niter.c: Likewise.
7282 * tree-ssa-loop-prefetch.c: Likewise.
7283 * tree-ssa-loop-unswitch.c: Likewise.
7284 * tree-ssa-math-opts.c: Likewise.
7285 * tree-ssa-phiopt.c: Likewise.
7286 * tree-ssa-phiprop.c: Likewise.
7287 * tree-ssa-pre.c: Likewise.
7288 * tree-ssa-propagate.c: Likewise.
7289 * tree-ssa-reassoc.c: Likewise.
7290 * tree-ssa-sccvn.c: Likewise.
7291 * tree-ssa-strlen.c: Likewise.
7292 * tree-ssa.c: Likewise.
7293 * tree-switch-conversion.c: Likewise.
7294 * tree-tailcall.c: Likewise.
7295 * tree-vect-data-refs.c: Likewise.
7296 * tree-vect-generic.c: Likewise.
7297 * tree-vect-loop-manip.c: Likewise.
7298 * tree-vect-loop.c: Likewise.
7299 * tree-vect-patterns.c: Likewise.
7300 * tree-vect-stmts.c: Likewise.
7301 * tree.c: Likewise.
7302 * tsan.c: Likewise.
7303 * value-prof.c: Likewise.
7304 * config/aarch64/aarch64.c: Likewise.
7305 * config/alpha/alpha.c: Likewise.
7306 * config/darwin.c: Likewise.
7307 * config/i386/i386.c: Likewise.
7308 * config/ia64/ia64.c: Likewise.
7309 * config/mep/mep.c: Likewise.
7310 * config/mips/mips.c: Likewise.
7311 * config/rs6000/rs6000.c: Likewise.
7312 * config/s390/s390.c: Likewise.
7313 * config/sh/sh.c: Likewise.
7314 * config/sparc/sparc.c: Likewise.
7315 * config/spu/spu.c: Likewise.
7316 * config/stormy16/stormy16.c: Likewise.
7317 * config/tilegx/tilegx.c: Likewise.
7318 * config/tilepro/tilepro.c: Likewise.
7319 * config/xtensa/xtensa.c: Likewise.
7320
7321 2013-11-14 Diego Novillo <dnovillo@google.com>
7322
7323 * Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
7324
7325 2013-11-14 Diego Novillo <dnovillo@google.com>
7326
7327 * tree.h: Include fold-const.h.
7328 (aggregate_value_p): Moved to function.h.
7329 (alloca_call_p): Moved to calls.h.
7330 (allocate_struct_function): Moved to function.h.
7331 (apply_tm_attr): Moved to attribs.h.
7332 (array_at_struct_end_p): Moved to expr.h.
7333 (array_ref_element_size): Moved to tree-dfa.h.
7334 (array_ref_low_bound): Moved to tree-dfa.h.
7335 (array_ref_up_bound): Moved to tree.h.
7336 (assemble_alias): Moved to cgraph.h.
7337 (bit_from_pos): Moved to stor-layout.h.
7338 (build_addr): Moved to tree-nested.h.
7339 (build_duplicate_type): Moved to tree-inline.h.
7340 (build_fold_addr_expr): Moved to fold-const.h.
7341 (build_fold_addr_expr_with_type): Moved to fold-const.h.
7342 (build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
7343 (build_fold_indirect_ref): Moved to fold-const.h.
7344 (build_fold_indirect_ref_loc): Moved to fold-const.h.
7345 (build_personality_function): Moved to tree.h.
7346 (build_range_check): Moved to fold-const.h.
7347 (build_simple_mem_ref): Moved to fold-const.h.
7348 (build_simple_mem_ref_loc): Moved to fold-const.h.
7349 (build_tm_abort_call): Moved to trans-mem.h.
7350 (byte_from_pos): Moved to stor-layout.h.
7351 (call_expr_flags): Moved to calls.h.
7352 (can_move_by_pieces): Moved to expr.h.
7353 (categorize_ctor_elements): Moved to expr.h.
7354 (change_decl_assembler_name): Moved to gcc-symtab.h.
7355 (combine_comparisons): Moved to fold-const.h.
7356 (complete_ctor_at_level_p): Moved to tree.h.
7357 (component_ref_field_offset): Moved to tree-dfa.h.
7358 (compute_builtin_object_size): Moved to tree-object-size.h.
7359 (compute_record_mode): Moved to stor-layout.h.
7360 (constant_boolean_node): Moved to fold-const.h.
7361 (constructor_static_from_elts_p): Moved to varasm.h.
7362 (cxx11_attribute_p): Moved to attribs.h.
7363 (debug_body): Moved to print-tree.h.
7364 (debug_find_tree): Moved to tree-inline.h.
7365 (debug_fold_checksum): Moved to fold-const.h.
7366 (debug_head): Moved to print-tree.h.
7367 (debug_head): Moved to print-tree.h.
7368 (debug_raw): Moved to print-tree.h.
7369 (debug_tree): Moved to print-tree.h.
7370 (debug_vec_tree): Moved to print-tree.h.
7371 (debug_verbose): Moved to print-tree.h.
7372 (debug_verbose): Moved to print-tree.h.
7373 (decl_attributes): Moved to attribs.h.
7374 (decl_binds_to_current_def_p): Moved to varasm.h.
7375 (decl_default_tls_model): Moved to varasm.h.
7376 (decl_replaceable_p): Moved to varasm.h.
7377 (div_if_zero_remainder): Moved to fold-const.h.
7378 (double_int mem_ref_offset): Moved to fold-const.h.
7379 (dump_addr): Moved to print-tree.h.
7380 (element_precision): Moved to machmode.h.
7381 (expand_dummy_function_end): Moved to function.h.
7382 (expand_function_end): Moved to function.h.
7383 (expand_function_start): Moved to function.h.
7384 (expand_label): Moved to stmt.h.
7385 (expr_first): Moved to tree-iterator.h.
7386 (expr_last): Moved to tree-iterator.h.
7387 (finalize_size_functions): Moved to stor-layout.h.
7388 (finish_builtin_struct): Moved to stor-layout.h.
7389 (finish_record_layout): Moved to stor-layout.h.
7390 (fixup_signed_type): Moved to stor-layout.h.
7391 (fixup_unsigned_type): Moved to stor-layout.h.
7392 (flags_from_decl_or_type): Moved to calls.h.
7393 (fold): Moved to fold-const.h.
7394 (fold_abs_const): Moved to fold-const.h.
7395 (fold_binary): Moved to fold-const.h.
7396 (fold_binary_loc): Moved to fold-const.h.
7397 (fold_binary_to_constant): Moved to fold-const.h.
7398 (fold_build1): Moved to fold-const.h.
7399 (fold_build1_initializer_loc): Moved to fold-const.h.
7400 (fold_build1_loc): Moved to fold-const.h.
7401 (fold_build1_stat_loc): Moved to fold-const.h.
7402 (fold_build2): Moved to fold-const.h.
7403 (fold_build2_initializer_loc): Moved to fold-const.h.
7404 (fold_build2_loc): Moved to fold-const.h.
7405 (fold_build2_stat_loc): Moved to fold-const.h.
7406 (fold_build3): Moved to fold-const.h.
7407 (fold_build3_loc): Moved to fold-const.h.
7408 (fold_build3_stat_loc): Moved to fold-const.h.
7409 (fold_build_call_array): Moved to fold-const.h.
7410 (fold_build_call_array_initializer): Moved to fold-const.h.
7411 (fold_build_call_array_initializer_loc): Moved to fold-const.h.
7412 (fold_build_call_array_loc): Moved to fold-const.h.
7413 (fold_build_cleanup_point_expr): Moved to fold-const.h.
7414 (fold_convert): Moved to fold-const.h.
7415 (fold_convert_loc): Moved to fold-const.h.
7416 (fold_convertible_p): Moved to fold-const.h.
7417 (fold_defer_overflow_warnings): Moved to fold-const.h.
7418 (fold_deferring_overflow_warnings_p): Moved to fold-const.h.
7419 (fold_fma): Moved to fold-const.h.
7420 (fold_ignored_result): Moved to fold-const.h.
7421 (fold_indirect_ref): Moved to fold-const.h.
7422 (fold_indirect_ref_1): Moved to fold-const.h.
7423 (fold_indirect_ref_loc): Moved to fold-const.h.
7424 (fold_read_from_constant_string): Moved to fold-const.h.
7425 (fold_real_zero_addition_p): Moved to fold-const.h.
7426 (fold_single_bit_test): Moved to fold-const.h.
7427 (fold_strip_sign_ops): Moved to fold-const.h.
7428 (fold_ternary): Moved to fold-const.h.
7429 (fold_ternary_loc): Moved to fold-const.h.
7430 (fold_unary): Moved to tree-data-ref.h.
7431 (fold_unary_ignore_overflow): Moved to fold-const.h.
7432 (fold_unary_ignore_overflow_loc): Moved to fold-const.h.
7433 (fold_unary_loc): Moved to fold-const.h.
7434 (fold_unary_to_constant): Moved to fold-const.h.
7435 (fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
7436 (fold_undefer_overflow_warnings): Moved to fold-const.h.
7437 (folding_initializer): Moved to fold-const.h.
7438 (free_temp_slots): Moved to function.h.
7439 (generate_setjmp_warnings): Moved to function.h.
7440 (get_attribute_name): Moved to attribs.h.
7441 (get_identifier): Moved to stringpool.h.
7442 (get_identifier_with_length): Moved to stringpool.h.
7443 (get_inner_reference): Moved to tree.h.
7444 (gimple_alloca_call_p): Moved to calls.h.
7445 (gimplify_parameters): Moved to function.h.
7446 (highest_pow2_factor): Moved to expr.h.
7447 (indent_to): Moved to print-tree.h.
7448 (init_attributes): Moved to attribs.h.
7449 (init_dummy_function_start): Moved to function.h.
7450 (init_function_start): Moved to function.h.
7451 (init_inline_once): Moved to tree-inline.h.
7452 (init_object_sizes): Moved to tree-object-size.h.
7453 (init_temp_slots): Moved to function.h.
7454 (init_tree_optimization_optabs): Moved to optabs.h.
7455 (initialize_sizetypes): Moved to stor-layout.h.
7456 (initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
7457 (initializer_constant_valid_p): Moved to varasm.h.
7458 (int_const_binop): Moved to fold-const.h.
7459 (internal_reference_types): Moved to stor-layout.h.
7460 (invert_tree_comparison): Moved to fold-const.h.
7461 (invert_truthvalue): Moved to fold-const.h.
7462 (invert_truthvalue_loc): Moved to fold-const.h.
7463 (is_tm_ending_fndecl): Moved to trans-mem.h.
7464 (is_tm_may_cancel_outer): Moved to trans-mem.h.
7465 (is_tm_pure): Moved to trans-mem.h.
7466 (is_tm_safe): Moved to trans-mem.h.
7467 (layout_decl): Moved to stor-layout.h.
7468 (layout_type): Moved to stor-layout.h.
7469 (lookup_attribute_spec): Moved to attribs.h.
7470 (make_accum_type): Moved to stor-layout.h.
7471 (make_decl_one_only): Moved to varasm.h.
7472 (make_decl_rtl): Moved to tree.h.
7473 (make_decl_rtl_for_debug): Moved to varasm.h.
7474 (make_fract_type): Moved to stor-layout.h.
7475 (make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
7476 (make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
7477 (make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
7478 (make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
7479 (make_or_reuse_signed_accum_type): Moved to stor-layout.h.
7480 (make_or_reuse_signed_fract_type): Moved to stor-layout.h.
7481 (make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
7482 (make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
7483 (make_range): Moved to fold-const.h.
7484 (make_range_step): Moved to fold-const.h.
7485 (make_sat_signed_accum_type): Moved to stor-layout.h.
7486 (make_sat_signed_fract_type): Moved to stor-layout.h.
7487 (make_sat_unsigned_accum_type): Moved to stor-layout.h.
7488 (make_sat_unsigned_fract_type): Moved to stor-layout.h.
7489 (make_signed_accum_type): Moved to stor-layout.h.
7490 (make_signed_fract_type): Moved to stor-layout.h.
7491 (make_signed_type): Moved to stor-layout.h.
7492 (make_unsigned_accum_type): Moved to stor-layout.h.
7493 (make_unsigned_fract_type): Moved to stor-layout.h.
7494 (make_unsigned_type): Moved to stor-layout.h.
7495 (mark_decl_referenced): Moved to varasm.h.
7496 (mark_referenced): Moved to varasm.h.
7497 (may_negate_without_overflow_p): Moved to fold-const.h.
7498 (maybe_get_identifier): Moved to stringpool.h.
7499 (merge_ranges): Moved to fold-const.h.
7500 (merge_weak): Moved to varasm.h.
7501 (mode_for_size_tree): Moved to stor-layout.h.
7502 (multiple_of_p): Moved to fold-const.h.
7503 (must_pass_in_stack_var_size): Moved to calls.h.
7504 (must_pass_in_stack_var_size_or_pad): Moved to calls.h.
7505 (native_encode_expr): Moved to fold-const.h.
7506 (native_interpret_expr): Moved to fold-const.h.
7507 (non_lvalue): Moved to fold-const.h.
7508 (non_lvalue_loc): Moved to fold-const.h.
7509 (normalize_offset): Moved to stor-layout.h.
7510 (normalize_rli): Moved to stor-layout.h.
7511 (notice_global_symbol): Moved to varasm.h.
7512 (omit_one_operand): Moved to fold-const.h.
7513 (omit_one_operand_loc): Moved to fold-const.h.
7514 (omit_two_operands): Moved to fold-const.h.
7515 (omit_two_operands_loc): Moved to fold-const.h.
7516 (operand_equal_p): Moved to tree-data-ref.h.
7517 (parse_input_constraint): Moved to stmt.h.
7518 (parse_output_constraint): Moved to stmt.h.
7519 (place_field): Moved to stor-layout.h.
7520 (pop_function_context): Moved to function.h.
7521 (pop_temp_slots): Moved to function.h.
7522 (pos_from_bit): Moved to stor-layout.h.
7523 (preserve_temp_slots): Moved to function.h.
7524 (print_node): Moved to print-tree.h.
7525 (print_node_brief): Moved to print-tree.h.
7526 (print_rtl): Moved to rtl.h.
7527 (process_pending_assemble_externals): Moved to varasm.h.
7528 (ptr_difference_const): Moved to fold-const.h.
7529 (push_function_context): Moved to function.h.
7530 (push_struct_function): Moved to function.h.
7531 (push_temp_slots): Moved to function.h.
7532 (record_tm_replacement): Moved to trans-mem.h.
7533 (relayout_decl): Moved to stor-layout.h.
7534 (resolve_asm_operand_names): Moved to stmt.h.
7535 (resolve_unique_section): Moved to varasm.h.
7536 (rli_size_so_far): Moved to stor-layout.h.
7537 (rli_size_unit_so_far): Moved to stor-layout.h.
7538 (round_down): Moved to fold-const.h.
7539 (round_down_loc): Moved to fold-const.h.
7540 (round_up): Moved to fold-const.h.
7541 (round_up_loc): Moved to fold-const.h.
7542 (set_decl_incoming_rtl): Moved to emit-rtl.h.
7543 (set_decl_rtl): Moved to tree.h.
7544 (set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
7545 (set_user_assembler_name): Moved to varasm.h.
7546 (setjmp_call_p): Moved to calls.h.
7547 (size_binop): Moved to fold-const.h.
7548 (size_binop_loc): Moved to fold-const.h.
7549 (size_diffop): Moved to fold-const.h.
7550 (size_diffop_loc): Moved to fold-const.h.
7551 (size_int_kind): Moved to fold-const.h.
7552 (stack_protect_epilogue): Moved to function.h.
7553 (start_record_layout): Moved to stor-layout.h.
7554 (supports_one_only): Moved to varasm.h.
7555 (swap_tree_comparison): Moved to fold-const.h.
7556 (tm_malloc_replacement): Moved to trans-mem.h.
7557 (tree build_fold_addr_expr_loc): Moved to fold-const.h.
7558 (tree build_invariant_address): Moved to fold-const.h.
7559 (tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
7560 (tree_binary_nonzero_warnv_p): Moved to fold-const.h.
7561 (tree_call_nonnegative_warnv_p): Moved to fold-const.h.
7562 (tree_expr_nonnegative_p): Moved to fold-const.h.
7563 (tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
7564 (tree_output_constant_def): Moved to varasm.h.
7565 (tree_overlaps_hard_reg_set): Moved to stmt.h.
7566 (tree_single_nonnegative_warnv_p): Moved to fold-const.h.
7567 (tree_single_nonzero_warnv_p): Moved to fold-const.h.
7568 (tree_swap_operands_p): Moved to fold-const.h.
7569 (tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
7570 (tree_unary_nonzero_warnv_p): Moved to fold-const.h.
7571 (update_alignment_for_field): Moved to stor-layout.h.
7572 (use_register_for_decl): Moved to function.h.
7573 (variable_size): Moved to rtl.h.
7574 (vector_type_mode): Moved to stor-layout.h.
7575 * cgraph.h: Corresponding changes.
7576 * emit-rtl.h: Corresponding changes.
7577 * expr.h: Corresponding changes.
7578 * function.h: Corresponding changes.
7579 * optabs.h: Corresponding changes.
7580 * trans-mem.h: Corresponding changes.
7581 Protect against multiple inclusion.
7582 * tree-inline.h: Corresponding changes.
7583 * tree-iterator.h: Corresponding changes.
7584 * tree-dfa.h: Include expr.h.
7585 * tree-ssanames.h: Include stringpool.h.
7586 * attribs.h: New file.
7587 * calls.h: New file.
7588 * fold-const.h: New file.
7589 * gcc-symtab.h: New file.
7590 * print-rtl.h: New file.
7591 * print-tree.h: New file.
7592 * stmt.h: New file.
7593 * stor-layout.h: New file.
7594 * strinpool.h: New file.
7595 * tree-nested.h: New file
7596 * tree-object-size.h: New file.
7597 * varasm.h: New file.
7598
7599 2013-11-14 Diego Novillo <dnovillo@google.com>
7600
7601 * alias.c: Include varasm.h.
7602 Include expr.h.
7603 * asan.c: Include calls.h.
7604 Include stor-layout.h.
7605 Include varasm.h.
7606 * attribs.c: Include stringpool.h.
7607 Include attribs.h.
7608 Include stor-layout.h.
7609 * builtins.c: Include stringpool.h.
7610 Include stor-layout.h.
7611 Include calls.h.
7612 Include varasm.h.
7613 Include tree-object-size.h.
7614 * calls.c: Include stor-layout.h.
7615 Include varasm.h.
7616 Include stringpool.h.
7617 Include attribs.h.
7618 * cfgexpand.c: Include stringpool.h.
7619 Include varasm.h.
7620 Include stor-layout.h.
7621 Include stmt.h.
7622 Include print-tree.h.
7623 * cgraph.c: Include varasm.h.
7624 Include calls.h.
7625 Include print-tree.h.
7626 * cgraphclones.c: Include stringpool.h.
7627 Include function.h.
7628 Include emit-rtl.h.
7629 Move inclusion of rtl.h earlier in the file.
7630 * cgraphunit.c: Include varasm.h.
7631 Include stor-layout.h.
7632 Include stringpool.h.
7633 * cilk-common.c: Include stringpool.h.
7634 Include stor-layout.h.
7635 * combine.c: Include stor-layout.h.
7636 * config/aarch64/aarch64-builtins.c: Include stor-layout.h.
7637 Include stringpool.h.
7638 Include calls.h.
7639 * config/aarch64/aarch64.c: Include stringpool.h.
7640 Include stor-layout.h.
7641 Include calls.h.
7642 Include varasm.h.
7643 * config/alpha/alpha.c: Include stor-layout.h.
7644 Include calls.h.
7645 Include varasm.h.
7646 * config/arc/arc.c: Include varasm.h.
7647 Include stor-layout.h.
7648 Include stringpool.h.
7649 Include calls.h.
7650 * config/arm/arm.c: Include stringpool.h.
7651 Include stor-layout.h.
7652 Include calls.h.
7653 Include varasm.h.
7654 * config/avr/avr-c.c: Include stor-layout.h.
7655 * config/avr/avr-log.c: Include print-tree.h.
7656 * config/avr/avr.c: Include print-tree.h.
7657 Include calls.h.
7658 Include stor-layout.h.
7659 Include stringpool.h.
7660 * config/bfin/bfin.c: Include varasm.h.
7661 Include calls.h.
7662 * config/c6x/c6x.c: Include stor-layout.h.
7663 Include varasm.h.
7664 Include calls.h.
7665 Include stringpool.h.
7666 * config/cr16/cr16.c: Include stor-layout.h.
7667 Include calls.h.
7668 * config/cris/cris.c: Include varasm.h.
7669 Include stor-layout.h.
7670 Include calls.h.
7671 Include stmt.h.
7672 * config/darwin.c: Include stringpool.h.
7673 Include varasm.h.
7674 Include stor-layout.h.
7675 * config/epiphany/epiphany.c: Include stor-layout.h.
7676 Include varasm.h.
7677 Include calls.h.
7678 Include stringpool.h.
7679 * config/fr30/fr30.c: Include stor-layout.h.
7680 Include varasm.h.
7681 * config/frv/frv.c: Include varasm.h.
7682 Include stor-layout.h.
7683 Include stringpool.h.
7684 * config/h8300/h8300.c: Include stor-layout.h.
7685 Include varasm.h.
7686 Include calls.h.
7687 Include stringpool.h.
7688 * config/i386/i386.c: Include stringpool.h.
7689 Include attribs.h.
7690 Include calls.h.
7691 Include stor-layout.h.
7692 Include varasm.h.
7693 * config/i386/winnt-cxx.c: Include stringpool.h.
7694 Include attribs.h.
7695 * config/i386/winnt.c: Include stringpool.h.
7696 Include varasm.h.
7697 * config/ia64/ia64-c.c: Include stringpool.h.
7698 * config/ia64/ia64.c: Include stringpool.h.
7699 Include stor-layout.h.
7700 Include calls.h.
7701 Include varasm.h.
7702 * config/iq2000/iq2000.c: Include stor-layout.h.
7703 Include calls.h.
7704 Include varasm.h.
7705 * config/lm32/lm32.c: Include calls.h.
7706 * config/m32c/m32c.c: Include stor-layout.h.
7707 Include varasm.h.
7708 Include calls.h.
7709 * config/m32r/m32r.c: Include stor-layout.h.
7710 Include varasm.h.
7711 Include stringpool.h.
7712 Include calls.h.
7713 * config/m68k/m68k.c: Include calls.h.
7714 Include stor-layout.h.
7715 Include varasm.h.
7716 * config/mcore/mcore.c: Include stor-layout.h.
7717 Include varasm.h.
7718 Include stringpool.h.
7719 Include calls.h.
7720 * config/mep/mep.c: Include varasm.h.
7721 Include calls.h.
7722 Include stringpool.h.
7723 Include stor-layout.h.
7724 * config/microblaze/microblaze.c: Include varasm.h.
7725 Include stor-layout.h.
7726 Include calls.h.
7727 * config/mips/mips.c: Include varasm.h.
7728 Include stringpool.h.
7729 Include stor-layout.h.
7730 Include calls.h.
7731 * config/mmix/mmix.c: Include varasm.h.
7732 Include stor-layout.h.
7733 Include calls.h.
7734 * config/mn10300/mn10300.c: Include stor-layout.h.
7735 Include varasm.h.
7736 Include calls.h.
7737 * config/moxie/moxie.c: Include stor-layout.h.
7738 Include varasm.h.
7739 Include calls.h.
7740 * config/msp430/msp430.c: Include stor-layout.h.
7741 Include calls.h.
7742 * config/nds32/nds32.c: Include stor-layout.h.
7743 Include varasm.h.
7744 Include calls.h.
7745 * config/pa/pa.c: Include stor-layout.h.
7746 Include stringpool.h.
7747 Include varasm.h.
7748 Include calls.h.
7749 * config/pdp11/pdp11.c: Include stor-layout.h.
7750 Include varasm.h.
7751 Include calls.h.
7752 * config/picochip/picochip.c: Include calls.h.
7753 Include stor-layout.h.
7754 Include stringpool.h.
7755 Include varasm.h.
7756 * config/rl78/rl78.c: Include varasm.h.
7757 Include stor-layout.h.
7758 Include calls.h.
7759 * config/rs6000/rs6000-c.c: Include stor-layout.h.
7760 Include stringpool.h.
7761 * config/rs6000/rs6000.c: Include stringpool.h.
7762 Include stor-layout.h.
7763 Include calls.h.
7764 Include print-tree.h.
7765 Include varasm.h.
7766 * config/rx/rx.c: Include varasm.h.
7767 Include stor-layout.h.
7768 Include calls.h.
7769 * config/s390/s390.c: Include print-tree.h.
7770 Include stringpool.h.
7771 Include stor-layout.h.
7772 Include varasm.h.
7773 Include calls.h.
7774 * config/score/score.c: Include stringpool.h.
7775 Include calls.h.
7776 Include varasm.h.
7777 Include stor-layout.h.
7778 * config/sh/sh-c.c: Include stringpool.h.
7779 Include attribs.h.h.
7780 * config/sh/sh.c: Include stringpool.h.
7781 Include stor-layout.h.
7782 Include calls.h.
7783 Include varasm.h.
7784 * config/sol2-c.c: Include stringpool.h.
7785 Include attribs.h.
7786 * config/sol2-cxx.c: Include stringpool.h.
7787 * config/sol2.c: Include stringpool.h.
7788 Include varasm.h.
7789 * config/sparc/sparc.c: Include stringpool.h.
7790 Include stor-layout.h.
7791 Include calls.h.
7792 Include varasm.h.
7793 * config/spu/spu-c.c: Include stringpool.h.
7794 * config/spu/spu.c: Include stringpool.h.
7795 Include stor-layout.h.
7796 Include calls.h.
7797 Include varasm.h.
7798 * config/stormy16/stormy16.c: Include stringpool.h.
7799 Include stor-layout.h.
7800 Include varasm.h.
7801 Include calls.h.
7802 * config/tilegx/tilegx.c: Include stringpool.h.
7803 Include stor-layout.h.
7804 Include varasm.h.
7805 Include calls.h.
7806 * config/tilepro/tilepro.c: Include stringpool.h.
7807 Include stor-layout.h.
7808 Include varasm.h.
7809 Include calls.h.
7810 * config/v850/v850-c.c: Include stringpool.h.
7811 Include attribs.h.
7812 * config/v850/v850.c: Include stringpool.h.
7813 Include stor-layout.h.
7814 Include varasm.h.
7815 Include calls.h.
7816 * config/vax/vax.c: Include calls.h.
7817 Include varasm.h.
7818 * config/vms/vms.c: Include stringpool.h.
7819 * config/vxworks.c: Include stringpool.h.
7820 * config/xtensa/xtensa.c: Include stringpool.h.
7821 Include stor-layout.h.
7822 Include calls.h.
7823 Include varasm.h.
7824 * convert.c: Include stor-layout.h.
7825 * coverage.c: Include stringpool.h.
7826 Include stor-layout.h.
7827 * dbxout.c: Include varasm.h.
7828 Include stor-layout.h.
7829 * dojump.c: Include stor-layout.h.
7830 * dse.c: Include stor-layout.h.
7831 * dwarf2asm.c: Include stringpool.h.
7832 Include varasm.h.
7833 * dwarf2cfi.c: Include stor-layout.h.
7834 * dwarf2out.c: Include rtl.h.
7835 Include stringpool.h.
7836 Include stor-layout.h.
7837 Include varasm.h.
7838 Include function.h.
7839 Include emit-rtl.h.
7840 Move inclusion of rtl.h earlier in the file.
7841 * emit-rtl.c: Include varasm.h.
7842 * except.c: Include stringpool.h.
7843 Include stor-layout.h.
7844 * explow.c: Include stor-layout.h.
7845 * expmed.c: Include stor-layout.h.
7846 * expr.c: Include stringpool.h.
7847 Include stor-layout.h.
7848 Include attribs.h.
7849 Include varasm.h.
7850 * final.c: Include varasm.h.
7851 * fold-const.c: Include stor-layout.h.
7852 Include calls.h.
7853 Include tree-iterator.h.
7854 * function.c: Include stor-layout.h.
7855 Include varasm.h.
7856 Include stringpool.h.
7857 * genattrtab.c (write_header): Emit includes for varasm.h,
7858 stor-layout.h and calls.h.
7859 * genautomata.c (main): Likewise.
7860 * genemit.c: Likewise.
7861 * genopinit.c: Likewise.
7862 * genoutput.c (output_prologue): Likewise.
7863 * genpeep.c: Likewise.
7864 * genpreds.c (write_insn_preds_c): Likewise.
7865 * gengtype.c (open_base_files): Add stringpool.h.
7866 * gimple-expr.c: Include stringpool.h.
7867 Include stor-layout.h.
7868 * gimple-fold.c: Include stringpool.h.
7869 Include expr.h.
7870 Include stmt.h.
7871 Include stor-layout.h.
7872 * gimple-low.c: Include tree-nested.h.
7873 Include calls.h.
7874 * gimple-pretty-print.c: Include stringpool.h.
7875 * gimple-ssa-strength-reduction.c: Include stor-layout.h.
7876 Include expr.h.
7877 * gimple-walk.c: Include stmt.h.
7878 * gimple.c: Include calls.h.
7879 Include stmt.h.
7880 Include stor-layout.h.
7881 * gimplify.c: Include stringpool.h.
7882 Include calls.h.
7883 Include varasm.h.
7884 Include stor-layout.h.
7885 Include stmt.h.
7886 Include print-tree.h.
7887 Include expr.h.
7888 * gimplify-me.c: Include stmt.h
7889 Include stor-layout.h
7890 * internal-fn.c: Include stor-layout.h.
7891 * ipa-devirt.c: Include print-tree.h.
7892 Include calls.h.
7893 * ipa-inline-analysis.c: Include stor-layout.h.
7894 Include stringpool.h.
7895 Include print-tree.h.
7896 * ipa-inline.c: Include trans-mem.h.
7897 Include calls.h.
7898 * ipa-prop.c: Include expr.h.
7899 Include stor-layout.h.
7900 Include print-tree.h.
7901 * ipa-pure-const.c: Include print-tree.h.
7902 Include calls.h.
7903 * ipa-reference.c: Include calls.h.
7904 * ipa-split.c: Include stringpool.h.
7905 Include expr.h.
7906 Include calls.h.
7907 * ipa.c: Include calls.h.
7908 Include stringpool.h.
7909 * langhooks.c: Include stringpool.h.
7910 Include attribs.h.
7911 * lto-cgraph.c: Include stringpool.h.
7912 * lto-streamer-in.c: Include stringpool.h.
7913 * lto-streamer-out.c: Include stor-layout.h.
7914 Include stringpool.h.
7915 * omp-low.c: Include stringpool.h.
7916 Include stor-layout.h.
7917 Include expr.h.
7918 * optabs.c: Include stor-layout.h.
7919 Include stringpool.h.
7920 Include varasm.h.
7921 * passes.c: Include varasm.h.
7922 * predict.c: Include calls.h.
7923 * print-rtl.c: Include print-tree.h.
7924 * print-tree.c: Include varasm.h.
7925 Include print-rtl.h.
7926 Include stor-layout.h.
7927 * realmpfr.c: Include stor-layout.h.
7928 * reg-stack.c: Include varasm.h.
7929 * sdbout.c: Include varasm.h.
7930 Include stor-layout.h.
7931 * simplify-rtx.c: Include varasm.h.
7932 * stmt.c: Include varasm.h.
7933 Include stor-layout.h.
7934 * stor-layout.c: Include stor-layout.h.
7935 Include stringpool.h.
7936 Include varasm.h.
7937 Include print-tree.h.
7938 * symtab.c: Include rtl.h.
7939 Include print-tree.h.
7940 Include varasm.h.
7941 Include function.h.
7942 Include emit-rtl.h.
7943 * targhooks.c: Include stor-layout.h.
7944 Include varasm.h.
7945 * toplev.c: Include varasm.h.
7946 Include tree-inline.h.
7947 * trans-mem.c: Include calls.h.
7948 Include function.h.
7949 Include rtl.h.
7950 Include emit-rtl.h.
7951 * tree-affine.c: Include expr.h.
7952 * tree-browser.c: Include print-tree.h.
7953 * tree-call-cdce.c: Include stor-layout.h.
7954 * tree-cfg.c: Include trans-mem.h.
7955 Include stor-layout.h.
7956 Include print-tree.h.
7957 * tree-complex.c: Include stor-layout.h.
7958 * tree-data-ref.c: Include expr.h.
7959 * tree-dfa.c: Include stor-layout.h.
7960 * tree-eh.c: Include expr.h.
7961 Include calls.h.
7962 * tree-emutls.c: Include stor-layout.h.
7963 Include varasm.h.
7964 * tree-if-conv.c: Include stor-layout.h.
7965 * tree-inline.c: Include stor-layout.h.
7966 Include calls.h.
7967 * tree-loop-distribution.c: Include stor-layout.h.
7968 * tree-nested.c: Include stringpool.h.
7969 Include stor-layout.h.
7970 * tree-object-size.c: Include tree-object-size.h.
7971 * tree-outof-ssa.c: Include stor-layout.h.
7972 * tree-parloops.c: Include stor-layout.h.
7973 Include tree-nested.h.
7974 * tree-pretty-print.c: Include stor-layout.h.
7975 Include expr.h.
7976 * tree-profile.c: Include varasm.h.
7977 Include tree-nested.h.
7978 * tree-scalar-evolution.c: Include expr.h.
7979 * tree-sra.c: Include stor-layout.h.
7980 * tree-ssa-address.c: Include stor-layout.h.
7981 * tree-ssa-ccp.c: Include stor-layout.h.
7982 * tree-ssa-dce.c: Include calls.h.
7983 * tree-ssa-dom.c: Include stor-layout.h.
7984 * tree-ssa-forwprop.c: Include stor-layout.h.
7985 * tree-ssa-ifcombine.c: Include stor-layout.h.
7986 * tree-ssa-loop-ivopts.c: Include stor-layout.h.
7987 * tree-ssa-loop-niter.c: Include calls.h.
7988 Include expr.h.
7989 * tree-ssa-loop-prefetch.c: Include stor-layout.h.
7990 * tree-ssa-math-opts.c: Include stor-layout.h.
7991 * tree-ssa-operands.c: Include stmt.h.
7992 Include print-tree.h.
7993 * tree-ssa-phiopt.c: Include stor-layout.h.
7994 * tree-ssa-reassoc.c: Include stor-layout.h.
7995 * tree-ssa-sccvn.c: Include stor-layout.h.
7996 * tree-ssa-sink.c: Include stor-layout.h.
7997 * tree-ssa-strlen.c: Include stor-layout.h.
7998 * tree-ssa-structalias.c: Include stor-layout.h.
7999 Include stmt.h.
8000 * tree-ssa-tail-merge.c: Include stor-layout.h.
8001 Include trans-mem.h.
8002 * tree-ssa-uncprop.c: Include stor-layout.h.
8003 * tree-ssa.c: Include stor-layout.h.
8004 * tree-ssanames.c: Include stor-layout.h.
8005 * tree-streamer-in.c: Include stringpool.h.
8006 * tree-streamer-out.c: Include stor-layout.h.
8007 * tree-switch-conversion.c: Include varasm.h.
8008 Include stor-layout.h.
8009 * tree-tailcall.c: Include stor-layout.h.
8010 * tree-vect-data-refs.c: Include stor-layout.h.
8011 * tree-vect-generic.c: Include stor-layout.h.
8012 * tree-vect-loop.c: Include stor-layout.h.
8013 * tree-vect-patterns.c: Include stor-layout.h.
8014 * tree-vect-slp.c: Include stor-layout.h.
8015 * tree-vect-stmts.c: Include stor-layout.h.
8016 * tree-vectorizer.c: Include stor-layout.h.
8017 * tree-vrp.c: Include stor-layout.h.
8018 Include calls.h.
8019 * tree.c: Include stor-layout.h.
8020 Include calls.h.
8021 Include attribs.h.
8022 Include varasm.h.
8023 * tsan.c: Include expr.h.
8024 * ubsan.c: Include stor-layout.h.
8025 Include stringpool.h.
8026 * value-prof.c: Include tree-nested.h.
8027 Include calls.h.
8028 * var-tracking.c: Include varasm.h.
8029 Include stor-layout.h.
8030 * varasm.c: Include stor-layout.h.
8031 Include stringpool.h.
8032 Include gcc-symtab.h.
8033 Include varasm.h.
8034 * varpool.c: Include varasm.h.
8035 * vmsdbgout.c: Include varasm.h.
8036 * xcoffout.c: Include varasm.h.
8037
8038 2013-11-14 Joern Rennecke <joern.rennecke@embecosm.com>
8039
8040 * config/arc/arc.md (doloop_begin_i): Remove extra alignment;
8041 use (.&-4) idiom.
8042
8043 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8044
8045 * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
8046
8047 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8048 Alan Modra <amodra@gmail.com>
8049
8050 * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
8051 (RS6000_SAVE_TOC): Remove.
8052 (RS6000_TOC_SAVE_SLOT): New macro.
8053 * config/rs6000/rs6000.c (rs6000_parm_offset): New function.
8054 (rs6000_parm_start): Use it.
8055 (rs6000_function_arg_advance_1): Likewise.
8056 (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
8057 (rs6000_emit_epilogue): Likewise.
8058 (rs6000_call_aix): Likewise.
8059 (rs6000_output_function_prologue): Do not save/restore r11
8060 around calling _mcount for ABI_ELFv2.
8061
8062 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8063 Alan Modra <amodra@gmail.com>
8064
8065 * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
8066 Add prototype.
8067 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
8068 (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
8069 * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
8070 (rs6000_function_parms_need_stack): Likewise.
8071 (rs6000_reg_parm_stack_space): Likewise.
8072 (rs6000_function_arg): Do not replace BLKmode by Pmode when
8073 returning a register argument.
8074
8075 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8076 Michael Gschwind <mkg@us.ibm.com>
8077
8078 * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
8079 (ALTIVEC_ARG_MAX_RETURN): Likewise.
8080 (FUNCTION_VALUE_REGNO_P): Use them.
8081 * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
8082 (rs6000_return_in_msb): New function.
8083 (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
8084 Handle aggregates of up to 16 bytes for ELFv2.
8085 (rs6000_function_value): Handle ELFv2 homogeneous aggregates.
8086
8087 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8088 Michael Gschwind <mkg@us.ibm.com>
8089
8090 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
8091 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
8092 (rs6000_discover_homogeneous_aggregate): Likewise.
8093 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
8094 (rs6000_function_arg_advance_1): Likewise.
8095 (rs6000_function_arg): Likewise.
8096 (rs6000_arg_partial_bytes): Likewise.
8097 (rs6000_psave_function_arg): Handle BLKmode arguments.
8098
8099 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8100 Michael Gschwind <mkg@us.ibm.com>
8101
8102 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
8103 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
8104 (rs6000_discover_homogeneous_aggregate): Likewise.
8105 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
8106 (rs6000_function_arg_advance_1): Likewise.
8107 (rs6000_function_arg): Likewise.
8108 (rs6000_arg_partial_bytes): Likewise.
8109 (rs6000_psave_function_arg): Handle BLKmode arguments.
8110
8111 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8112
8113 * config/rs6000/rs6000.c (machine_function): New member
8114 r2_setup_needed.
8115 (rs6000_emit_prologue): Set r2_setup_needed if necessary.
8116 (rs6000_output_mi_thunk): Set r2_setup_needed.
8117 (rs6000_output_function_prologue): Output global entry point
8118 prologue and local entry point marker if needed for ABI_ELFv2.
8119 Output -mprofile-kernel code here.
8120 (output_function_profiler): Do not output -mprofile-kernel
8121 code here; moved to rs6000_output_function_prologue.
8122 (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.
8123
8124 (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
8125 (rs6000_output_function_entry): Likewise.
8126 (rs6000_assemble_integer): Likewise.
8127 (rs6000_elf_encode_section_info): Likewise.
8128 (rs6000_elf_declare_function_name): Do not create dot symbols
8129 or .opd section for ABI_ELFv2.
8130
8131 (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
8132 (rs6000_trampoline_init): Likewise.
8133 (rs6000_elf_file_end): Call file_end_indicate_exec_stack for ABI_ELFv2.
8134
8135 (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check
8136 for function descriptors in ABI_ELFv2.
8137
8138 * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
8139 on ABI_AIX only, not ABI_ELFv2.
8140 ("*call_value_indirect_aix<mode>"): Likewise.
8141 ("*call_indirect_elfv2<mode>"): New pattern.
8142 ("*call_value_indirect_elfv2<mode>"): Likewise.
8143
8144 * config/rs6000/predicates.md ("symbol_ref_operand"): Do not
8145 check for function descriptors in ABI_ELFv2.
8146 ("current_file_function_operand"): Likewise.
8147
8148 * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
8149 (toc): Undefine.
8150 (FUNC_NAME): Define ELFv2 variant.
8151 (JUMP_TARGET): Likewise.
8152 (FUNC_START): Likewise.
8153 (HIDDEN_FUNC): Likewise.
8154 (FUNC_END): Likeiwse.
8155
8156 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8157
8158 * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
8159 and --with-abi=elfv2.
8160 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
8161 * config/rs6000/rs6000.opt (mabi=elfv1): New option.
8162 (mabi=elfv2): Likewise.
8163 * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
8164 * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
8165 if !RS6000_BI_ARCH.
8166 (ELFv2_ABI_CHECK): New macro.
8167 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
8168 rs6000_current_abi to ABI_AIX or ABI_ELFv2.
8169 (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
8170 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
8171 _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.
8172
8173 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
8174 (debug_stack_info): Likewise.
8175 (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
8176 (rs6000_legitimize_tls_address): Likewise.
8177 (rs6000_conditional_register_usage): Likewise.
8178 (rs6000_emit_move): Likewise.
8179 (init_cumulative_args): Likewise.
8180 (rs6000_function_arg_advance_1): Likewise.
8181 (rs6000_function_arg): Likewise.
8182 (rs6000_arg_partial_bytes): Likewise.
8183 (rs6000_output_function_entry): Likewise.
8184 (rs6000_assemble_integer): Likewise.
8185 (rs6000_savres_strategy): Likewise.
8186 (rs6000_stack_info): Likewise.
8187 (rs6000_function_ok_for_sibcall): Likewise.
8188 (rs6000_emit_load_toc_table): Likewise.
8189 (rs6000_savres_routine_name): Likewise.
8190 (ptr_regno_for_savres): Likewise.
8191 (rs6000_emit_prologue): Likewise.
8192 (rs6000_emit_epilogue): Likewise.
8193 (rs6000_output_function_epilogue): Likewise.
8194 (output_profile_hook): Likewise.
8195 (output_function_profiler): Likewise.
8196 (rs6000_trampoline_size): Likewise.
8197 (rs6000_trampoline_init): Likewise.
8198 (rs6000_elf_output_toc_section_asm_op): Likewise.
8199 (rs6000_elf_encode_section_info): Likewise.
8200 (rs6000_elf_reloc_rw_mask): Likewise.
8201 (rs6000_elf_declare_function_name): Likewise.
8202 (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
8203 except that rs6000_compat_align_parm is always assumed false.
8204 (rs6000_gimplify_va_arg): Likewise.
8205 (rs6000_call_aix): Update comment.
8206 (rs6000_sibcall_aix): Likewise.
8207 * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
8208 Treat ABI_ELFv2 the same as ABI_AIX.
8209 ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
8210 ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
8211 ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
8212 ("load_toc_aix_si"): Likewise.
8213 ("load_toc_aix_di"): Likewise.
8214 ("call"): Likewise.
8215 ("call_value"): Likewise.
8216 ("*call_local_aix<mode>"): Likewise.
8217 ("*call_value_local_aix<mode>"): Likewise.
8218 ("*call_nonlocal_aix<mode>"): Likewise.
8219 ("*call_value_nonlocal_aix<mode>"): Likewise.
8220 ("*call_indirect_aix<mode>"): Likewise.
8221 ("*call_value_indirect_aix<mode>"): Likewise.
8222 ("sibcall"): Likewise.
8223 ("sibcall_value"): Likewise.
8224 ("*sibcall_aix<mode>"): Likewise.
8225 ("*sibcall_value_aix<mode>"): Likewise.
8226 * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
8227 ("current_file_function_operand"): Likewise.
8228
8229 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8230
8231 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
8232 by making use of the fact that for vector / floating point arguments
8233 passed both in VRs/FPRs and in the fixed parameter area, the partial
8234 bytes mechanism is in fact not used.
8235
8236 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8237
8238 * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
8239 (rs6000_finish_function_arg): Likewise.
8240 (rs6000_function_arg): Use rs6000_psave_function_arg and
8241 rs6000_finish_function_arg to handle both vector and floating
8242 point arguments that are also passed in GPRs / the stack.
8243
8244 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8245
8246 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
8247 (USE_ALTIVEC_FOR_ARG_P): Likewise.
8248 (rs6000_darwin64_record_arg_advance_recurse): Update uses.
8249 (rs6000_function_arg_advance_1):Likewise.
8250 (rs6000_darwin64_record_arg_recurse): Likewise.
8251 (rs6000_function_arg): Likewise.
8252 (rs6000_arg_partial_bytes): Likewise.
8253
8254 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8255
8256 * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
8257 "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
8258 (rs6000_savres_strategy): Likewise.
8259 (rs6000_return_addr): Likewise.
8260 (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
8261 testing for ABI_V4 (since ABI_DARWIN is impossible here).
8262 (rs6000_emit_prologue): Likewise.
8263 (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
8264 (rs6000_elf_declare_function_name): Remove duplicated test.
8265 * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
8266 for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
8267 ("load_toc_v4_PIC_1_normal"): Likewise.
8268 ("load_toc_v4_PIC_1_476"): Likewise.
8269 ("load_toc_v4_PIC_1b"): Likewise.
8270 ("load_toc_v4_PIC_1b_normal"): Likewise.
8271 ("load_toc_v4_PIC_1b_476"): Likewise.
8272 ("load_toc_v4_PIC_2"): Likewise.
8273 ("load_toc_v4_PIC_3b"): Likewise.
8274 ("load_toc_v4_PIC_3c"): Likewise.
8275 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
8276 (RS6000_SAVE_AREA): Likewise.
8277 (FP_ARG_MAX_REG): Likewise.
8278 (RETURN_ADDRESS_OFFSET): Likewise.
8279 * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
8280 of ABI_AIX.
8281 (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
8282 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
8283
8284 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8285
8286 * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
8287 (rs6000_call_aix): ... this. Handle both direct and indirect calls.
8288 Create call insn directly instead of via various gen_... routines.
8289 Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
8290 (rs6000_sibcall_aix): New function.
8291 * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
8292 (TOC_SAVE_OFFSET_64BIT): Likewise.
8293 (AIX_FUNC_DESC_TOC_32BIT): Likewise.
8294 (AIX_FUNC_DESC_TOC_64BIT): Likewise.
8295 (AIX_FUNC_DESC_SC_32BIT): Likewise.
8296 (AIX_FUNC_DESC_SC_64BIT): Likewise.
8297 ("call" expander): Call rs6000_call_aix.
8298 ("call_value" expander): Likewise.
8299 ("call_indirect_aix<ptrsize>"): Replace this pattern ...
8300 ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
8301 ("*call_indirect_aix<mode>"): ... by this insn pattern.
8302 ("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
8303 ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
8304 ("*call_value_indirect_aix<mode>"): ... by this insn pattern.
8305 ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
8306 ("*call_nonlocal_aix<mode>"): ... this pattern.
8307 ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
8308 ("*call_value_nonlocal_aix<mode>"): ... by this pattern.
8309 ("*call_local_aix<mode>"): New insn pattern.
8310 ("*call_value_local_aix<mode>"): Likewise.
8311 ("sibcall" expander): Call rs6000_sibcall_aix.
8312 ("sibcall_value" expander): Likewise. Move earlier in file.
8313 ("*sibcall_nonlocal_aix<mode>"): Replace by ...
8314 ("*sibcall_aix<mode>"): ... this pattern.
8315 ("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
8316 ("*sibcall_value_aix<mode>"): ... this pattern.
8317 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
8318 (rs6000_call_aix): Add prototype.
8319 (rs6000_sibcall_aix): Likewise.
8320
8321 2013-11-14 Jakub Jelinek <jakub@redhat.com>
8322
8323 PR sanitizer/59122
8324 * asan.c (asan_emit_stack_protection): Ensure -fsection-anchors
8325 isn't confused by the artificial decl.
8326
8327 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8328
8329 * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
8330 RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
8331 Instead, add USEs of all modified call-saved CR fields to the
8332 insn storing the result to the stack slot, and provide an
8333 appropriate REG_FRAME_RELATED_EXPR for that insn.
8334 * config/rs6000/rs6000.md ("*crsave"): New insn pattern.
8335 * config/rs6000/predicates.md ("crsave_operation"): New predicate.
8336
8337 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8338 Alan Modra <amodra@gmail.com>
8339
8340 * function.c (assign_parms): Use all.reg_parm_stack_space instead
8341 of re-evaluating REG_PARM_STACK_SPACE target macro.
8342 (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it
8343 instead of evaluating target macro REG_PARM_STACK_SPACE every time.
8344 (assign_parm_find_entry_rtl): Update call.
8345 * calls.c (initialize_argument_information): Update call.
8346 (emit_library_call_value_1): Likewise.
8347 * expr.h (locate_and_pad_parm): Update prototype.
8348
8349 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8350
8351 * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
8352 arguments.
8353
8354 2013-11-14 DJ Delorie <dj@redhat.com>
8355
8356 * config/rx/rx.c (rx_mode_dependent_address_p): Allow offsets up
8357 to 16 bits.
8358
8359 2013-11-14 Jeff Law <law@redhat.com>
8360
8361 * tree-ssa-threadedge.c (thread_through_normal_block): Only push the
8362 EDGE_START_JUMP_THREAD marker if the jump threading path is empty.
8363
8364 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
8365
8366 * doc/invoke.texi: Update documentation for AArch64's -mcpu
8367 and -mtune options.
8368
8369 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
8370
8371 * config/aarch64/aarch64-cores.def (example-1): Remove.
8372 (example-2): Likewise.
8373 * config/aarch64/aarch64-tune.md: Regenerate.
8374 * config/aarch64/aarch64.md: Do not include "large.md" or "small.md".
8375 (generic_sched): Remove "large", "small".
8376 * config/aarch64/large.md: Delete.
8377 * config/aarch64/small.md: Delete.
8378
8379 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
8380
8381 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for cortexa15.
8382 * config/aarch64/aarch64-tune.md: Regenerate.
8383 * config/aarch64/aarch64.md: Include cortex-a15 pipeline model.
8384 (generic_sched): "no" if we are tuning for cortexa15.
8385 * config/arm/cortex-a15.md: Include cortex-a15-neon.md by
8386 relative path.
8387
8388 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
8389
8390 * config/aarch64/aarch64-arches.def (armv8-a): Tune for cortex-a53.
8391 * config/aarch64/aarch64.md: Do not include aarch64-generic.md.
8392 * config/aarch64/aarch64.c (aarch64_tune): Initialize to cortexa53.
8393 (all_cores): Use cortexa53 when tuning for "generic".
8394 (aarch64_override_options): Fix comment.
8395 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Set to cortexa53.
8396 * config/aarch64/aarch64-generic.md: Delete.
8397
8398 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
8399
8400 * config/aarch64/aarch64.c (all_architectures): Remove "generic".
8401
8402 2013-11-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8403
8404 * config/aarch64/aarch64.c: Include aarch-cost-tables.h.
8405 (generic_rtx_cost_table): Remove.
8406 (aarch64_rtx_costs): Use fields from cpu_cost_table.
8407 * config/aarch64/aarch64-protos.h (tune_params): Use cpu_cost_table for
8408 insn_extra_cost.
8409 (cpu_rtx_cost_table): Remove.
8410
8411 2013-11-14 Julian Brown <julian@codesourcery.com>
8412 Joey Ye <joey.ye@arm.com>
8413
8414 * config/arm/arm.c (arm_cortex_m_branch_cost): New.
8415 (arm_v7m_tune): New.
8416 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune, arm_9e_tune,
8417 arm_v6t2_tune, arm_cortex_tune, arm_cortex_a15_tune,
8418 arm_cortex_a5_tune, arm_v6m_tune): Add comments for Sched adj cost.
8419 * config/arm/arm-cores.def (cortex-m4, cortex-m3): Use arm_v7m_tune.
8420
8421 2013-11-14 Kirill Yukhin <kirill.yukhin@intel.com>
8422
8423 PR target/57491
8424 * config/ia64/ia64.c (ia64_split_tmode_move): Relax `dead'
8425 flag setting.
8426
8427 2013-11-14 Jakub Jelinek <jakub@redhat.com>
8428 Uros Bizjak <ubizjak@gmail.com>
8429
8430 PR target/59101
8431 * config/i386/i386.md (*anddi_2): Only allow CCZmode if
8432 operands[2] satisfies_constraint_Z that might have bit 31 set.
8433
8434 2013-11-13 Jeff Law <law@redhat.com>
8435
8436 PR tree-optimization/59102
8437 * gimple-ssa-isolate-paths.c
8438 (insert_trap_and_remove_trailing_statments): Ensure STMT is a
8439 gimple assignment before looking at gimple_assign_lhs.
8440
8441 2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
8442
8443 * ira.c: Add comment about threads at the top of file.
8444
8445 2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
8446
8447 * ira-color.c (coalesce_allocnos): Don't allocate and free
8448 sorted_copies.
8449
8450 2013-11-14 Tom de Vries <tom@codesourcery.com>
8451
8452 * tree-ssa-tail-merge.c (gimple_equal_p): Add test for structural
8453 equality for GIMPLE_ASSIGN.
8454
8455 2013-11-14 Tom de Vries <tom@codesourcery.com>
8456
8457 * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Factor new
8458 function out of ...
8459 (gimple_equal_p): ... here.
8460
8461 2013-11-14 Tom de Vries <tom@codesourcery.com>
8462
8463 * trans-mem.c (is_tm_ending): New function.
8464 * gimple.h (is_tm_ending): Declare.
8465 * tree-ssa-tail-merge.c (gimple_equal_p): Remove test on
8466 BUILT_IN_TM_COMMIT.
8467 (find_duplicate): Use is_tm_ending instead of is_tm_ending_fndecl.
8468
8469 2013-11-14 Tom de Vries <tom@codesourcery.com>
8470
8471 * tree-ssa-tail-merge.c (gimple_equal_p): Remove equal variable.
8472
8473 2013-11-13 Andrew MacLeod <amacleod@redhat.com>
8474
8475 * gimple-walk.h: New File. Relocate prototypes from gimple.h.
8476 (struct walk_stmt_info): Relocate here from gimple.h.
8477 * gimple-iterator.h: New File. Relocate prototypes from gimple.h.
8478 (struct gimple_stmt_iterator_d): Relocate here from gimple.h.
8479 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
8480 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
8481 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
8482 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
8483 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Relocate here from gimple.h.
8484 * gimple.h (struct gimple_stmt_iterator_d): Move to gimple-iterator.h.
8485 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
8486 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
8487 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
8488 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
8489 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Move to gimple-iterator.h.
8490 (struct walk_stmt_info): Move to gimple-walk.h.
8491 (gimple_seq_set_location): Move to gimple.c
8492 * gimple-walk.c: New File.
8493 (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, walk_gimple_op,
8494 walk_gimple_stmt, get_base_loadstore, walk_stmt_load_store_addr_ops,
8495 walk_stmt_load_store_ops): Relocate here from gimple.c.
8496 * gimple-iterator.c: Include gimple-iterator.h.
8497 * gimple.c (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm,
8498 walk_gimple_op, walk_gimple_stmt, get_base_loadstore,
8499 walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Move to
8500 gimple-walk.c.
8501 (gimple_seq_set_location): Relocate from gimple.h.
8502 * tree-phinodes.h (set_phi_nodes): Move to tree-phinodes.c.
8503 * tree-phinodes.c (set_phi_nodes): Relocate from tree-phinodes.h.
8504 * gengtype.c (open_base_files): Add gimple-iterator.h to include list.
8505 * Makefile.in (OBJS): Add gimple-walk.o
8506 * asan.c: Update Include list as required for gimple-iterator.h and
8507 gimple-walk.h.
8508 * cfgexpand.c: Likewise.
8509 * cfgloop.c: Likewise.
8510 * cfgloopmanip.c: Likewise.
8511 * cgraph.c: Likewise.
8512 * cgraphbuild.c: Likewise.
8513 * cgraphunit.c: Likewise.
8514 * gimple-fold.c: Likewise.
8515 * gimple-low.c: Likewise.
8516 * gimple-pretty-print.c: Likewise.
8517 * gimple-ssa-isolate-paths.c: Likewise.
8518 * gimple-ssa-strength-reduction.c: Likewise.
8519 * gimple-streamer-in.c: Likewise.
8520 * gimple-streamer-out.c: Likewise.
8521 * gimplify.c: Likewise.
8522 * graphite-blocking.c: Likewise.
8523 * graphite-clast-to-gimple.c: Likewise.
8524 * graphite-dependences.c: Likewise.
8525 * graphite-interchange.c: Likewise.
8526 * graphite-optimize-isl.c: Likewise.
8527 * graphite-poly.c: Likewise.
8528 * graphite-scop-detection.c: Likewise.
8529 * graphite-sese-to-poly.c: Likewise.
8530 * graphite.c: Likewise.
8531 * ipa-inline-analysis.c: Likewise.
8532 * ipa-profile.c: Likewise.
8533 * ipa-prop.c: Likewise.
8534 * ipa-pure-const.c: Likewise.
8535 * ipa-split.c: Likewise.
8536 * lto-streamer-in.c: Likewise.
8537 * lto-streamer-out.c: Likewise.
8538 * omp-low.c: Likewise.
8539 * predict.c: Likewise.
8540 * profile.c: Likewise.
8541 * sese.c: Likewise.
8542 * tracer.c: Likewise.
8543 * trans-mem.c: Likewise.
8544 * tree-call-cdce.c: Likewise.
8545 * tree-cfg.c: Likewise.
8546 * tree-cfgcleanup.c: Likewise.
8547 * tree-complex.c: Likewise.
8548 * tree-data-ref.c: Likewise.
8549 * tree-dfa.c: Likewise.
8550 * tree-eh.c: Likewise.
8551 * tree-emutls.c: Likewise.
8552 * tree-if-conv.c: Likewise.
8553 * tree-inline.c: Likewise.
8554 * tree-into-ssa.c: Likewise.
8555 * tree-loop-distribution.c: Likewise.
8556 * tree-nested.c: Likewise.
8557 * tree-nrv.c: Likewise.
8558 * tree-object-size.c: Likewise.
8559 * tree-outof-ssa.c: Likewise.
8560 * tree-parloops.c: Likewise.
8561 * tree-predcom.c: Likewise.
8562 * tree-profile.c: Likewise.
8563 * tree-scalar-evolution.c: Likewise.
8564 * tree-sra.c: Likewise.
8565 * tree-ssa-ccp.c: Likewise.
8566 * tree-ssa-coalesce.c: Likewise.
8567 * tree-ssa-copy.c: Likewise.
8568 * tree-ssa-copyrename.c: Likewise.
8569 * tree-ssa-dce.c: Likewise.
8570 * tree-ssa-dom.c: Likewise.
8571 * tree-ssa-dse.c: Likewise.
8572 * tree-ssa-forwprop.c: Likewise.
8573 * tree-ssa-ifcombine.c: Likewise.
8574 * tree-ssa-live.c: Likewise.
8575 * tree-ssa-loop-ch.c: Likewise.
8576 * tree-ssa-loop-im.c: Likewise.
8577 * tree-ssa-loop-ivcanon.c: Likewise.
8578 * tree-ssa-loop-ivopts.c: Likewise.
8579 * tree-ssa-loop-manip.c: Likewise.
8580 * tree-ssa-loop-niter.c: Likewise.
8581 * tree-ssa-loop-prefetch.c: Likewise.
8582 * tree-ssa-loop.c: Likewise.
8583 * tree-ssa-math-opts.c: Likewise.
8584 * tree-ssa-phiopt.c: Likewise.
8585 * tree-ssa-phiprop.c: Likewise.
8586 * tree-ssa-pre.c: Likewise.
8587 * tree-ssa-propagate.c: Likewise.
8588 * tree-ssa-reassoc.c: Likewise.
8589 * tree-ssa-sink.c: Likewise.
8590 * tree-ssa-strlen.c: Likewise.
8591 * tree-ssa-structalias.c: Likewise.
8592 * tree-ssa-tail-merge.c: Likewise.
8593 * tree-ssa-ter.c: Likewise.
8594 * tree-ssa-threadedge.c: Likewise.
8595 * tree-ssa-threadupdate.c: Likewise.
8596 * tree-ssa-uncprop.c: Likewise.
8597 * tree-ssa-uninit.c: Likewise.
8598 * tree-ssa.c: Likewise.
8599 * tree-stdarg.c: Likewise.
8600 * tree-switch-conversion.c: Likewise.
8601 * tree-tailcall.c: Likewise.
8602 * tree-vect-data-refs.c: Likewise.
8603 * tree-vect-generic.c: Likewise.
8604 * tree-vect-loop-manip.c: Likewise.
8605 * tree-vect-loop.c: Likewise.
8606 * tree-vect-patterns.c: Likewise.
8607 * tree-vect-slp.c: Likewise.
8608 * tree-vect-stmts.c: Likewise.
8609 * tree-vectorizer.c: Likewise.
8610 * tree-vrp.c: Likewise.
8611 * tree.c: Likewise.
8612 * tsan.c: Likewise.
8613 * value-prof.c: Likewise.
8614 * vtable-verify.c: Likewise.
8615
8616 2013-11-13 Steven Bosscher <steven@gcc.gnu.org>
8617
8618 * gimple-ssa-isolate-paths.c (pass_isolate_erroneous_paths): Comment
8619 fix.
8620
8621 2013-11-13 Jeff Law <law@redhat.com>
8622
8623 * PR middle-end/59119
8624 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour): New
8625 function, extracted from gimple_ssa_isolate_erroneous_paths.
8626 (find_explicit_erroneous_behaviour): Similarly.
8627 (insert_trap_and_remove_trailing_statements): Remove statements
8628 in reverse order.
8629
8630 2013-11-13 Steven Bosscher <steven@gcc.gnu.org>
8631
8632 * cfgrtl.c (can_fallthru): Reorder code to move tablejump check up.
8633 Make that check explicit. BB_HEAD cannot be NULL, remove check for it.
8634 * haifa-sched.c (ready_remove_first_dispatch): Check INSN_P before
8635 looking at INSN_CODE.
8636 * reload1.c (delete_dead_insn) Do not expect JUMP_TABLE_DATA to be an
8637 active_insn_p object, respect basic block boundaries.
8638 * reorg.c (follow_jumps): Use invariant that JUMP_TABLE_DATA always
8639 follows immediately after the jump table data label.
8640 * config/nds32/nds32.c (nds32_output_casesi_pc_relative): Likewise.
8641 * config/sh/sh.c (barrier_align): Likewise. Rearrange code such
8642 that JUMP_TABLE_DATA is not expected to be an active_insn_p object.
8643
8644 2013-11-13 Teresa Johnson <tejohnson@google.com>
8645
8646 PR ipa/58862
8647 * predict.c (drop_profile): Error is currently too strict.
8648 (handle_missing_profiles): Pass call_count to drop_profile.
8649
8650 2013-11-13 Teresa Johnson <tejohnson@google.com>
8651
8652 PR ipa/58862
8653 * ipa-inline.c (edge_badness): Fix overflow.
8654
8655 2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
8656
8657 PR rtl-optimization/59036
8658 * ira-color.c (struct allocno_color_data): Add new members
8659 first_thread_allocno, next_thread_allocno, thread_freq.
8660 (sorted_copies): New static var.
8661 (allocnos_conflict_by_live_ranges_p, copy_freq_compare_func): Move up.
8662 (allocno_thread_conflict_p, merge_threads)
8663 (form_threads_from_copies, form_threads_from_bucket)
8664 (form_threads_from_colorable_allocno, init_allocno_threads): New
8665 functions.
8666 (bucket_allocno_compare_func): Add comparison by thread frequency
8667 and threads.
8668 (add_allocno_to_ordered_bucket): Rename to
8669 add_allocno_to_ordered_colorable_bucket. Remove parameter.
8670 (push_only_colorable): Call form_threads_from_bucket.
8671 (color_pass): Call init_allocno_threads. Use
8672 consideration_allocno_bitmap instead of coloring_allocno_bitmap
8673 for nuillify allocno color data.
8674 (ira_initiate_assign, ira_finish_assign): Allocate/free sorted_copies.
8675 (coalesce_allocnos): Use static sorted copies.
8676
8677 2013-11-13 Jakub Jelinek <jakub@redhat.com>
8678
8679 * passes.c (execute_todo): Don't call do_per_function if
8680 flags are zero.
8681 (execute_one_ipa_transform_pass, execute_one_pass): Don't call
8682 execute_function_dump if dump_file is NULL.
8683
8684 2013-11-13 Martin Jambor <mjambor@suse.cz>
8685
8686 * cgraph.c (cgraph_get_create_node): Do what
8687 cgraph_get_create_real_symbol_node used to do.
8688 (cgraph_get_create_real_symbol_node): Removed. Changed all users to
8689 call cgraph_get_create_node.
8690 * cgraph.h (cgraph_get_create_real_symbol_node): Removed.
8691 * lto-streamer-in.c (input_function): Call cgraph_get_node instead of
8692 cgraph_get_create_node. Assert we get a node.
8693
8694 2013-11-13 Tejas Belagod <tejas.belagod@arm.com>
8695
8696 * config/aarch64/aarch64-simd.md (vec_extract): New.
8697
8698 2013-11-13 Tejas Belagod <tejas.belagod@arm.com>
8699
8700 * config/aarch64/aarch64-simd.md (vec_set<mode>): Add w -> w option to
8701 the constraint.
8702
8703 2013-11-13 Eric Botcazou <ebotcazou@adacore.com>
8704
8705 * cfgexpand.c (expand_used_vars): Allocate space for partitions based
8706 on PARM_DECLs or RESULT_DECLs only if they are ignored for debug info
8707 or if optimization is enabled.
8708 * tree-ssa-coalesce.c (coalesce_ssa_name): If optimization is disabled,
8709 require that all the names based on a PARM_DECL or a RESULT_DECL that
8710 isn't ignored for debug info be coalesced.
8711
8712 2013-11-13 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8713
8714 * config/c6x/c6x.c: Include "gimple-expr.h".
8715
8716 2013-11-13 Richard Biener <rguenther@suse.de>
8717
8718 * gimple-streamer-out.c (output_gimple_stmt): Also wrap
8719 decls in ADDR_EXPR operands inside a MEM_REF and optimize that.
8720 * gimple-streamer-in.c (input_gimple_stmt): Remove now dead code
8721 dealing with type mismatches inside component reference chains.
8722
8723 2013-11-13 Marc Glisse <marc.glisse@inria.fr>
8724
8725 PR tree-optimization/59077
8726 * ipa-pure-const.c (better_state): Update *state.
8727
8728 2013-11-13 Christophe Lyon <christophe.lyon@linaro.org>
8729
8730 * config/aarch64/aarch64.h (FRAME_GROWS_DOWNWARD): Define to 1.
8731 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
8732 Update offset calculations.
8733
8734 2013-11-13 Eric Botcazou <ebotcazou@adacore.com>
8735
8736 PR ada/35998
8737 * dwarf2out.c (add_byte_size_attribute): Also use int_size_in_bytes
8738 for fields. Do not add the attribute if the size is negative.
8739
8740 2013-11-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8741
8742 * config/arm/arm.c: Include aarch-cost-tables.h.
8743 (generic_extra_costs): Move from here...
8744 * config/arm/aarch-cost-tables.h: ... To here. New file.
8745
8746 2013-11-13 Alexander Ivchenko <alexander.ivchenko@intel.com>
8747 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8748 Sergey Lega <sergey.s.lega@intel.com>
8749 Anna Tikhonova <anna.tikhonova@intel.com>
8750 Ilya Tocar <ilya.tocar@intel.com>
8751 Andrey Turetskiy <andrey.turetskiy@intel.com>
8752 Ilya Verbin <ilya.verbin@intel.com>
8753 Kirill Yukhin <kirill.yukhin@intel.com>
8754 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8755
8756 * config/i386/i386.c (ix86_print_operand): Support z-masking.
8757 * config/i386/predicate.md (const_0_to_4_operand): New.
8758 (const_0_to_5_operand): Ditto.
8759 * config/i386/sse.md (UNSPEC_COMPRESS): New.
8760 (UNSPEC_COMPRESS_STORE): Ditto.
8761 (UNSPEC_EXPAND): Ditto.
8762 (UNSPEC_EMBEDDED_ROUNDING): Ditto.
8763 (define_mode_attr ssescalarsize): Ditto.
8764 (avx512f_load<mode>_mask): Ditto.
8765 (avx512f_store<mode>_mask): Ditto.
8766 (avx512f_storedqu<mode>_mask): Ditto.
8767 (avx512f_vmcmp<mode>3_mask): Ditto.
8768 (avx512f_fmadd_<mode>_mask): Ditto.
8769 (avx512f_fmadd_<mode>_mask3): Ditto.
8770 (avx512f_fmsub_<mode>_mask): Ditto.
8771 (avx512f_fmsub_<mode>_mask3): Ditto.
8772 (avx512f_fnmadd_<mode>_mask): Ditto.
8773 (avx512f_fnmadd_<mode>_mask3): Ditto.
8774 (avx512f_fnmsub_<mode>_mask): Ditto.
8775 (avx512f_fnmsub_<mode>_mask3): Ditto.
8776 (avx512f_fmaddsub_<mode>_mask): Ditto.
8777 (avx512f_fmaddsub_<mode>_mask3): Ditto.
8778 (avx512f_fmsubadd_<mode>_mask): Ditto.
8779 (avx512f_fmsubadd_<mode>_mask3): Ditto.
8780 (vec_unpacku_float_lo_v16si): Ditto.
8781 (avx512f_vextract<shuffletype>32x4_mask): Ditto.
8782 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
8783 (avx512f_vextract<shuffletype>64x4_mask): Ditto.
8784 (vec_extract_lo_<mode>_maskm): Ditto.
8785 (vec_extract_hi_<mode>_maskm): Ditto.
8786 (avx512f_vternlog<mode>_mask): Ditto.
8787 (avx512f_shufps512_mask): Ditto.
8788 (avx512f_fixupimm<mode>_mask): Ditto.
8789 (avx512f_shufpd512_mask): Ditto.
8790 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
8791 (avx512f_<code>v8div16qi2_mask/trunc): Ditto.
8792 (*avx512f_<code>v8div16qi2_store_mask): Ditto.
8793 (ashr<mode>3<mask_name>): Ditto.
8794 (avx512f_vinsert<shuffletype>32x4_mask): Ditto.
8795 (avx512f_vinsert<shuffletype>64x4_mask): Ditto.
8796 (avx512f_shuf_<shuffletype>64x2_mask): Ditto.
8797 (avx512f_shuf_<shuffletype>32x4_mask): Ditto.
8798 (avx512f_pshufdv3_mask): Ditto.
8799 (avx512f_perm<mode>_mask): Ditto.
8800 (avx512f_vpermi2var<mode>3_mask): Ditto.
8801 (avx512f_vpermt2var<mode>3_mask): Ditto.
8802 (avx512f_compress<mode>_mask): Ditto.
8803 (avx512f_compressstore<mode>_mask): Ditto.
8804 (avx512f_expand<mode>_mask): Ditto.
8805 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Extend
8806 to support masking.
8807 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
8808 (<plusminus_insn><mode>3<mask_name>): Ditto.
8809 (*<plusminus_insn><mode>3<mask_name>): Ditto.
8810 (mul<mode>3<mask_name>): Ditto.
8811 (*mul<mode>3<mask_name>): Ditto.
8812 (<sse>_div<mode>3<mask_name>): Ditto.
8813 (<mask_codefor>rcp14<mode><mask_name>): Ditto.
8814 (<sse>_sqrt<mode>2<mask_name>): Ditto.
8815 (<mask_codefor>rsqrt14<mode><mask_name>): Ditto.
8816 (<code><mode>3<mask_name>/smaxmin): Ditto.
8817 (*<code><mode>3_finite<mask_name>/smaxmin): Ditto.
8818 (*<code><mode>3<mask_name>/smaxmin): Ditto.
8819 (float<sseintvecmodelower><mode>2<mask_name>): Ditto.
8820 (ufloatv16siv16sf2<mask_name>): Ditto.
8821 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name>): Ditto.
8822 (<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name>): Ditto.
8823 (<fixsuffix>fix_truncv16sfv16si2<mask_name>): Ditto.
8824 (float<si2dfmodelower><mode>2<mask_name>): Ditto.
8825 (ufloatv8siv8df<mask_name>): Ditto.
8826 (<mask_codefor>avx512f_cvtpd2dq512<mask_name>): Ditto.
8827 (avx512f_ufix_notruncv8dfv8si<mask_name>): Ditto.
8828 (<fixsuffix>fix_truncv8dfv8si2<mask_name>): Ditto.
8829 (<mask_codefor>avx512f_cvtpd2ps512<mask_name>): Ditto.
8830 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix><mask_name>): Ditto.
8831 (<mask_codefor>avx512f_unpckhps512<mask_name>): Ditto.
8832 (<mask_codefor>avx512f_unpcklps512<mask_name>): Ditto.
8833 (<mask_codefor>avx512f_movshdup512<mask_name>): Ditto.
8834 (<mask_codefor>avx512f_movsldup512<mask_name>): Ditto.
8835 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
8836 (vec_extract_lo_<mode><mask_name>): Ditto.
8837 (vec_extract_hi_<mode><mask_name>): Ditto.
8838 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
8839 (avx512f_movddup512<mask_name>): Ditto.
8840 (avx512f_unpcklpd512<mask_name>): Ditto.
8841 (*avx512f_unpcklpd512<mask_name>): Ditto.
8842 (*avx512f_vmscalef<mode>): Ditto.
8843 (avx512f_scalef<mode><mask_name>): Ditto.
8844 (avx512f_getexp<mode><mask_name>): Ditto.
8845 (<mask_codefor>avx512f_align<mode><mask_name>): Ditto.
8846 (avx512f_rndscale<mode><mask_name>): Ditto.
8847 (avx512f_shufps512_1<mask_name>): Ditto.
8848 (avx512f_shufpd512_1<mask_name>): Ditto.
8849 (<plusminus_insn><mode>3<mask_name>): Ditto.
8850 (*<plusminus_insn><mode>3<mask_name>): Ditto.
8851 (vec_widen_umult_even_v16si<mask_name>): Ditto.
8852 (*vec_widen_umult_even_v16si<mask_name>): Ditto.
8853 (vec_widen_smult_even_v16si<mask_name>): Ditto.
8854 (*vec_widen_smult_even_v16si<mask_name>): Ditto.
8855 (mul<mode>3<mask_name>): Ditto.
8856 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto.
8857 (<shift_insn><mode>3<mask_name>): Ditto.
8858 (avx512f_<rotate>v<mode><mask_name>/rotate): Ditto.
8859 (avx512f_<rotate><mode><mask_name>): Ditto.
8860 (<code><mode>3<mask_name>/maxmin): Ditto.
8861 (*avx2_<code><mode>3<mask_name>/maxmin): Ditto.
8862 (<sse2_avx2>_andnot<mode>3<mask_name>): Ditto.
8863 (*andnot<mode>3<mask_name>): Ditto.
8864 (<mask_codefor><code><mode>3<mask_name>/any_logic): Ditto.
8865 (<mask_codefor>avx512f_interleave_highv16si<mask_name>): Ditto.
8866 (<mask_codefor>avx512f_interleave_lowv16si<mask_name>): Ditto.
8867 (<mask_codefor>avx512f_vinsert<shuffletype>32x4_1<mask_name>): Ditto.
8868 (vec_set_lo_<mode><mask_name>): Ditto.
8869 (vec_set_hi_<mode><mask_name>): Ditto.
8870 (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto.
8871 (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
8872 (avx512f_pshufd_1<mask_name>): Ditto.
8873 (<mask_codefor>abs<mode>2<mask_name>): Ditto.
8874 (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto.
8875 (avx512f_<code>v16hiv16si2<mask_name>/any_extend): Ditto.
8876 (avx512f_<code>v8qiv8di2<mask_name>/any_extend): Ditto.
8877 (avx512f_<code>v8hiv8di2<mask_name>/any_extend): Ditto.
8878 (avx512f_<code>v8siv8di2<mask_name>/any_extend): Ditto.
8879 (avx512er_exp2<mode><mask_name>): Ditto.
8880 (<mask_codefor>avx512er_rcp28<mode><mask_name>): Ditto.
8881 (<mask_codefor>avx512er_rsqrt28<mode><mask_name>): Ditto.
8882 (<avx2_avx512f>_permvar<mode><mask_name>): Ditto.
8883 (<avx2_avx512f>_perm<mode>_1<mask_name>): Ditto.
8884 (<mask_codefor>avx512f_vec_dup<mode><mask_name>): Ditto.
8885 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V16FI): Ditto.
8886 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V8FI): Ditto.
8887 (<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>): Ditto.
8888 (<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>): Ditto.
8889 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF2): Ditto.
8890 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF1): Ditto.
8891 (*<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto.
8892 (<sse2_avx_avx512f>_vpermilvar<mode>3<mask_name>): Ditto.
8893 (<avx2_avx512f>_ashrv<mode><mask_name>): Ditto.
8894 (<avx2_avx512f>_<shift_insn>v<mode><mask_name>): Ditto.
8895 (<mask_codefor>avx512f_vcvtph2ps512<mask_name>): Ditto.
8896 (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
8897 (avx512f_getmant<mode><mask_name>): Ditto.
8898 (clz<mode>2<mask_name>): Ditto.
8899 (<mask_codefor>conflict<mode><mask_name>): Ditto.
8900 (*srcp14<mode>): Remove visibility.
8901 (*rsqrt14<mode>): Ditto.
8902 (*fma_fmsub_<mode>): Ditto.
8903 (*fma_fnmadd_<mode>): Ditto.
8904 (*avx512f_rndscale<mode>): Ditto.
8905 * config/i386/subst.md: New file.
8906
8907 2013-11-13 Joseph Myers <joseph@codesourcery.com>
8908
8909 * doc/extend.texi (Statement Exprs, Typeof): Discuss __auto_type.
8910 * ginclude/stdatomic.h (kill_dependency, atomic_store_explicit)
8911 (atomic_load_explicit, atomic_exchange_explicit)
8912 (atomic_compare_exchange_strong_explicit)
8913 (atomic_compare_exchange_weak_explicit): Use __auto_type to
8914 declare variable initialized with PTR argument.
8915
8916 2013-11-12 Jeff Law <law@redhat.com>
8917
8918 * tree-ssa-threadedge.c (thread_around_empty_blocks): New argument
8919 backedge_seen_p. Set, use and pass it to children appropriately.
8920 (thread_through_normal_block): Similarly.
8921 (thread_across_edge): Similarly.
8922
8923 * gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered
8924 memory references as volatile.
8925 (insert_trap_and_remove_trailing_statements): Fix comment.
8926
8927 2013-11-12 Vladimir Makarov <vmakarov@redhat.com>
8928
8929 PR other/58712
8930 * ira-costs.c (record_operand_costs): Check operands number for
8931 the single set.
8932
8933 2013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8934
8935 PR target/59054
8936 * config/rs6000/rs6000.md (movdi_internal32): Eliminate
8937 constraints that would allow DImode into the traditional Altivec
8938 registers, but cause undesirable code generation when loading 0 as
8939 a constant.
8940 (movdi_internal64): Likewise.
8941 (cmp<mode>_fpr): Do not use %x for CR register output.
8942 (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
8943 -mallow-upper-sf debug switches are used.
8944
8945 2013-11-12 Andrew MacLeod <amacleod@redhat.com>
8946
8947 * gimple-expr.h (create_tmp_var_name, create_tmp_var_raw,
8948 create_tmp_var, create_tmp_reg, mark_addressable, is_gimple_reg_rhs):
8949 Relocate prototypes from gimple.h.
8950 * gimplify.h: New File. Relocate some prototypes from gimple.h here.
8951 (gimple_predicate, enum fallback, enum gimplify_status): Relocate
8952 from gimple.h.
8953 * gimple.h: Move some prototypes to gimplify.h.
8954 (gimple_predicate, enum fallback, enum gimplify_status): Move to
8955 gimplify.h.
8956 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location):
8957 Relocate from gimpify.c.
8958 * gimple-expr.c (remove_suffix, tmp_var_id_num, create_tmp_var_name,
8959 create_tmp_var_raw, create_tmp_var, create_tmp_reg, mark_addressable,
8960 is_gimple_reg_rhs) Relocate from gimplify.c.
8961 * gimplify.c (mark_addressable): Move to gimple-expr.c.
8962 (gimple_seq_add_stmt_without_update): Move to gimple.c.
8963 (remove_suffix, tmp_var_id_num, create_tmp_var_name,
8964 create_tmp_var_raw, create_tmp_var, create_tmp_reg,
8965 is_gimple_reg_rhs): Move to gimple-expr.c.
8966 (should_carry_location_p): Move to gimple.c.
8967 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location): Move
8968 to gimple.h.
8969 (annotate_one_with_location, annotate_all_with_location_after,
8970 annotate_all_with_location): Move to gimple.c.
8971 (compare_case_labels, sort_case_labels,
8972 preprocess_case_label_vec_for_gimple): Move to gimple.c.
8973 (rhs_predicate_for): Make static.
8974 (gimplify_assign): Relocate from gimple.c.
8975 * gimple.c (gimplify_assign): Move to gimplify.c.
8976 (gimple_seq_add_stmt_without_update, should_carry_location_p,
8977 annotate_one_with_location, annotate_all_with_location_after,
8978 annotate_all_with_location, compare_case_labels, sort_case_labels,
8979 preprocess_case_label_vec_for_gimple): Relocate from gimplify.c.
8980 * tree.h (unshare_expr, unshare_expr_without_location,
8981 mark_addressable): Move prototypes to gimplify.h.
8982 * Makefile.in (GTFILES): gimple-expr.c now has the GTY tag for
8983 tmp_var_id_num
8984 * asan.c: Include gimplify.h rather than gimple.h.
8985 * cfgloopmanip.c: Likewise.
8986 * cgraphunit.c: Likewise.
8987 * cilk-common.c: Likewise.
8988 * dwarf2out.c: Dont include gimple.h.
8989 * fold-const.c: Include gimplify.h rather than gimple.h.
8990 * function.c: Likewise.
8991 * gimple-fold.c: Likewise.
8992 * gimple-ssa-strength-reduction.c: Likewise.
8993 * graphite-clast-to-gimple.c: Likewise.
8994 * graphite-sese-to-poly.c: Likewise.
8995 * ipa-prop.c: Likewise.
8996 * ipa-split.c: Likewise.
8997 * ipa.c: Likewise.
8998 * langhooks.c: Dont include gimple.h.
8999 * loop-init.c: Include gimplify.h rather than gimple.h.
9000 * omp-low.c: Likewise.
9001 * sese.c: Likewise.
9002 * stor-layout.c: Likewise.
9003 * targhooks.c: Likewise.
9004 * trans-mem.c: Likewise.
9005 * tree-affine.c: Likewise.
9006 * tree-cfg.c: Likewise.
9007 * tree-cfgcleanup.c: Likewise.
9008 * tree-complex.c: Likewise.
9009 * tree-if-conv.c: Likewise.
9010 * tree-inline.c: Likewise.
9011 * tree-iterator.c: Likewise.
9012 * tree-loop-distribution.c: Likewise.
9013 * tree-nested.c: Likewise.
9014 * tree-parloops.c: Likewise.
9015 * tree-predcom.c: Likewise.
9016 * tree-profile.c: Likewise.
9017 * tree-scalar-evolution.c: Likewise.
9018 * tree-sra.c: Likewise.
9019 * tree-ssa-address.c: Likewise.
9020 * tree-ssa-ccp.c: Likewise.
9021 * tree-ssa-dce.c: Likewise.
9022 * tree-ssa-forwprop.c: Likewise.
9023 * tree-ssa-ifcombine.c: Likewise.
9024 * tree-ssa-loop-im.c: Likewise.
9025 * tree-ssa-loop-ivopts.c: Likewise.
9026 * tree-ssa-loop-manip.c: Likewise.
9027 * tree-ssa-loop-niter.c: Likewise.
9028 * tree-ssa-loop-prefetch.c: Likewise.
9029 * tree-ssa-loop-unswitch.c: Likewise.
9030 * tree-ssa-math-opts.c: Likewise.
9031 * tree-ssa-phiopt.c: Likewise.
9032 * tree-ssa-phiprop.c: Likewise.
9033 * tree-ssa-pre.c: Likewise.
9034 * tree-ssa-propagate.c: Likewise.
9035 * tree-ssa-reassoc.c: Likewise.
9036 * tree-ssa-sccvn.c: Likewise.
9037 * tree-ssa-strlen.c: Likewise.
9038 * tree-ssa.c: Likewise.
9039 * tree-switch-conversio: Likewise.n.c
9040 * tree-tailcall.c: Likewise.
9041 * tree-vect-data-refs.c: Likewise.
9042 * tree-vect-generic.c: Likewise.
9043 * tree-vect-loop-manip.c: Likewise.
9044 * tree-vect-loop.c: Likewise.
9045 * tree-vect-patterns.c: Likewise.
9046 * tree-vect-stmts.c: Likewise.
9047 * tsan.c: Likewise.
9048 * value-prof.c: Likewise.
9049 * config/aarch64/aarch64.c: Include gimplify.h instead of gimple.h.
9050 * config/alpha/alpha.c: Likewise.
9051 * config/darwin.c: Likewise.
9052 * config/i386/i386.c: Likewise.
9053 * config/ia64/ia64.c: Likewise.
9054 * config/mep/mep.c: Likewise.
9055 * config/mips/mips.c: Likewise.
9056 * config/rs6000/rs6000.c: Likewise.
9057 * config/s390/s390.c: Likewise.
9058 * config/sh/sh.c: Likewise.
9059 * config/sparc/sparc.c: Likewise.
9060 * config/spu/spu.c: Likewise.
9061 * config/stormy16/stormy16.c: Likewise.
9062 * config/tilegx/tilegx.c: Likewise.
9063 * config/tilepro/tilepro.c: Likewise.
9064 * config/xtensa/xtensa.c: Likewise.
9065
9066 2013-11-12 Adam Butcher <adam@jessamine.co.uk>
9067
9068 * tree.c (grow_tree_vec_stat): New function ...
9069 * tree.h (grow_tree_vec_stat) (grow_tree_vec): ... and its declaration
9070 and macro front-end.
9071
9072 2013-11-12 Marek Polacek <polacek@redhat.com>
9073
9074 * final.c (update_alignments): Initialize label to NULL_RTX.
9075
9076 2013-11-12 Jeff Law <law@redhat.com>
9077
9078 * gimple-ssa-isolate-paths.c (check_loadstore): New function.
9079 (insert_trap_and_remove_trailing_statements): New argument OP which
9080 is the NULL pointer. Emit the trap after the load/store through
9081 the NULL pointer. Simplify the RHS of a store through a NULL pointer
9082 when trivial to do so.
9083 (isolate_path): Corresponding changes.
9084 (gimple_ssa_isolate_erroneous_path): Likewise.
9085
9086 2013-11-12 Teresa Johnson <tejohnson@google.com>
9087 Jan Hubicka <jh@suse.cz>
9088
9089 * predict.c (drop_profile): New function.
9090 (handle_missing_profiles): Ditto.
9091 (counts_to_freqs): Don't overwrite estimated frequencies
9092 when function has no profile counts.
9093 * predict.h (handle_missing_profiles): Declare.
9094 * tree-inline.c (freqs_to_counts): New function.
9095 (copy_cfg_body): Invoke freqs_to_counts as needed.
9096 * tree-profile.c (tree_profiling): Invoke handle_missing_profiles.
9097
9098 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
9099
9100 PR target/59088
9101 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL):
9102 Set for m_HASWELL.
9103 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Set for m_HASWELL.
9104
9105 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
9106
9107 PR target/59084
9108 * config/i386/i386.c (ix86_option_override_internal): Check
9109 X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL and
9110 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL for
9111 MASK_AVX256_SPLIT_UNALIGNED_LOAD and
9112 MASK_AVX256_SPLIT_UNALIGNED_STORE.
9113
9114 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
9115 Clear m_COREI7_AVX and update comments.
9116 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Likewise.
9117
9118 2013-11-12 Martin Jambor <mjambor@suse.cz>
9119
9120 PR rtl-optimization/10474
9121 * ira.c (interesting_dest_for_shprep): New function.
9122 (split_live_ranges_for_shrink_wrap): Likewise.
9123 (find_moveable_pseudos): Move calculation of dominance info,
9124 df_analysios and the final anlyses to...
9125 (ira): ...here, call split_live_ranges_for_shrink_wrap.
9126
9127 2013-11-12 Bin Cheng <bin.cheng@arm.com>
9128
9129 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Refactor the code.
9130 Handle type conversion.
9131
9132 2013-11-11 Martin Liska <marxin.liska@gmail.com>
9133 Jan Hubicka <jh@suse.cz>
9134
9135 * cgraph.c (dump_cgraph_node): Profile dump added.
9136 * cgraph.h (struct cgraph_node): New time profile variable added.
9137 * cgraphclones.c (cgraph_clone_node): Time profile is cloned.
9138 * gcov-io.h (gcov_type): New profiler type introduced.
9139 * ipa-profile.c (lto_output_node): Streaming for time profile added.
9140 (input_node): Time profiler is read from LTO stream.
9141 * predict.c (maybe_hot_count_p): Hot prediction changed.
9142 * profile.c (instrument_values): New case for time profiler added.
9143 (compute_value_histograms): Read of time profile.
9144 * tree-pretty-print.c (dump_function_header): Time profiler is dumped.
9145 * tree-profile.c (init_ic_make_global_vars): Time profiler
9146 function added.
9147 (gimple_init_edge_profiler): TP function instrumentation.
9148 (gimple_gen_time_profiler): New.
9149 * value-prof.c (gimple_add_histogram_value): Support for time profiler
9150 added.
9151 (dump_histogram_value): TP type added to dumps.
9152 (visit_hist): More sensitive check that takes TP into account.
9153 (gimple_find_values_to_profile): TP instrumentation.
9154 * value-prof.h (hist_type): New histogram type added.
9155 (struct histogram_value_t): Pointer to struct function added.
9156 * libgcc/Makefile.in: New GCOV merge function for TP added.
9157 * libgcov.c: function_counter variable introduced.
9158 (_gcov_merge_time_profile): New.
9159 (_gcov_time_profiler): New.
9160
9161 2013-11-11 Marc Glisse <marc.glisse@inria.fr>
9162 Jeff Law <law@redhat.com>
9163
9164 * tree-ssa-alias.c (stmt_kills_ref_p_1): Use
9165 ao_ref_init_from_ptr_and_size for builtins.
9166
9167 2013-11-11 Uros Bizjak <ubizjak@gmail.com>
9168 H.J. Lu <hongjiu.lu@intel.com>
9169
9170 PR target/58853
9171 * config/i386/x86-tune.def
9172 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
9173 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES.
9174 * config/i386/i386.h
9175 (TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
9176 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES. Update for renamed
9177 X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES.
9178 * config/i386/i386.c (ix86_expand_set_or_movmem): Use
9179 TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES to calculate
9180 misaligned_prologue_used. Check that
9181 desired_aling <= epilogue_size_needed.
9182
9183 2013-11-11 Cong Hou <congh@google.com>
9184
9185 PR tree-optimization/59050
9186 * tree-vect-data-refs.c (comp_dr_addr_with_seg_len_pair): Bug fix.
9187
9188 2013-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
9189
9190 PR middle-end/59049
9191 * expmed.c (emit_store_flag): Fail for const-const comparison.
9192
9193 2013-11-11 Tristan Gingold <gingold@adacore.com>
9194 Eric Botcazou <ebotcazou@adacore.com>
9195
9196 * tree.h (CONSTRUCTOR_NO_CLEARING): Define.
9197 * tree-core.h (CONSTRUCTOR_NO_CLEARING): Document it.
9198 * tree.def (CONSTRUCTOR): Likewise.
9199 * doc/generic.texi (CONSTRUCTOR): Likewise. Update description.
9200 * gimplify.c (gimplify_init_constructor): Do not clear the object when
9201 the constructor is incomplete and CONSTRUCTOR_NO_CLEARING is set.
9202
9203 2013-11-11 Basile Starynkevitch <basile@starynkevitch.net>
9204
9205 * toplev.c (toplev_main): Move PLUGIN_FINISH invocation before
9206 diagnostic_finish.
9207
9208 2013-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9209
9210 * config/arm/arm.c (arm_new_rtx_costs): Return after handling
9211 comparisons.
9212
9213 2013-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
9214
9215 * config/arc/arc.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
9216
9217 2013-11-08 Jeff Law <law@redhat.com>
9218
9219 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
9220 threading paths first, then perform PHI node checks if applicable.
9221
9222 2013-11-10 Karlson2k <k2k@narod.ru>
9223 Kai Tietz <ktietz@redhat.com>
9224
9225 PR plugin/52872
9226 * configure.ac: Adding for exported symbols check
9227 and for rdynamic-check executable-extension.
9228 * configure: Regenerated.
9229
9230 2013-11-10 Uros Bizjak <ubizjak@gmail.com>
9231
9232 * mode-switching.c (optimize_mode_switching): Mark block as
9233 nontransparent, if last_mode at block exit is different from no_mode.
9234
9235 2013-11-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9236
9237 * function.c (NAME__MAIN): Move to...
9238 * cfgexpand.c (NAME__MAIN): ...here.
9239
9240 2013-11-09 Richard Sandiford <rdsandiford@googlemail.com>
9241
9242 * target.def (can_use_doloop_p): New hook.
9243 * doc/tm.texi.in (TARGET_CAN_USE_DOLOOP_P): Add.
9244 * doc/tm.texi: Regenerate.
9245 * doc/md.texi (doloop_begin, doloop_end): Update documentation.
9246 * hooks.h (hook_bool_dint_dint_uint_true): Declare.
9247 * hooks.c (hook_bool_dint_dint_uint_true): New function.
9248 * targhooks.h (can_use_doloop_if_innermost): Declare.
9249 * targhooks.c (can_use_doloop_if_innermost): New function.
9250 * target.h: Include double-int.h.
9251 * loop-doloop.c (doloop_optimize): Call targetm.can_use_doloop_p.
9252 Remove iteration count, maximum iteration count, loop depth and
9253 enter-at-top inputs from doloop_begin and doloop_end.
9254 * config/arc/arc.md (doloop_begin, doloop_end): Update for new
9255 interface.
9256 * config/arc/arc.c (arc_can_use_doloop_p): New function.
9257 (TARGET_CAN_USE_DOLOOP_P): Define.
9258 * config/arm/thumb2.md (doloop_end): Update for new interface.
9259 * config/arm/arm.c (TARGET_CAN_USE_DOLOOP_P): Define.
9260 * config/bfin/bfin.md (doloop_end): Update for new interface.
9261 * config/bfin/bfin.c (bfin_can_use_doloop_p): New function.
9262 (TARGET_CAN_USE_DOLOOP_P): Define.
9263 * config/c6x/c6x.md (doloop_end): Update for new interface.
9264 * config/ia64/ia64.md (doloop_end): Update for new interface.
9265 * config/ia64/ia64.c (TARGET_CAN_USE_DOLOOP_P): Define.
9266 * config/mep/mep.md (doloop_begin, doloop_end): Update for new
9267 interface.
9268 * config/mep/mep.c (mep_emit_doloop): Likewise.
9269 (TARGET_CAN_USE_DOLOOP_P): Define.
9270 * config/rs6000/rs6000.md (doloop_end): Update for new interface.
9271 * config/rs6000/rs6000.c (TARGET_CAN_USE_DOLOOP_P): Define.
9272 * config/s390/s390.md (doloop_end): Update for new interface.
9273 * config/sh/sh.md (doloop_end): Likewise.
9274 * config/spu/spu.md (doloop_end): Likewise.
9275 * config/spu/spu.c (TARGET_CAN_USE_DOLOOP_P): Define.
9276 * config/tilegx/tilegx.md (doloop_end): Update for new interface.
9277 * config/tilegx/tilegx.c (TARGET_CAN_USE_DOLOOP_P): Define.
9278 * config/tilepro/tilepro.md (doloop_end): Update for new interface.
9279 * config/tilepro/tilepro.c (TARGET_CAN_USE_DOLOOP_P): Define.
9280 * config/v850/v850.md (doloop_begin, doloop_end): Update for new
9281 interface.
9282 * config/v850/v850.c (TARGET_CAN_USE_DOLOOP_P): Define.
9283
9284 2013-11-08 H.J. Lu <hongjiu.lu@intel.com>
9285
9286 PR other/59055
9287 * doc/extend.texi: Move Cilk Plus Builtins node before Other
9288 Builtins node.
9289
9290 2013-11-08 Andrew MacLeod <amacleod@redhat.com>
9291 Joseph Myers <joseph@codesourcery.com>
9292
9293 * ginclude/stdatomic.h: New file.
9294 * Makefile.in (USER_H): Add stdatomic.h.
9295
9296 2013-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9297
9298 * config/arm/arm.c (arm_new_rtx_costs): Break after handling
9299 comparisons.
9300
9301 2013-11-08 Jeff Law <law@redhat.com>
9302
9303 * tree-ssa-threadupdate.h (delete_thread_path): Declare.
9304 * tree-ssa-threadupdate.c (delete_thread_path): New function.
9305 (ssa_redirect_edges, thread_block_1): Use it.
9306 (thread_through_loop_header, mark_threaded_blocks): Likewise.
9307 (thread_through_all_blocks, register_jump_thread): Likewise.
9308 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
9309
9310 2013-11-08 James Greenhalgh <james.greenhalgh@arm.com>
9311
9312 * config/arm/aarch-common.c
9313 (search_term): New typedef.
9314 (shift_rtx_costs): New array.
9315 (arm_rtx_shift_left_p): New.
9316 (arm_find_sub_rtx_with_search_term): Likewise.
9317 (arm_find_sub_rtx_with_code): Likewise.
9318 (arm_early_load_addr_dep): Add sanity checking.
9319 (arm_no_early_alu_shift_dep): Likewise.
9320 (arm_no_early_alu_shift_value_dep): Likewise.
9321 (arm_no_early_mul_dep): Likewise.
9322 (arm_no_early_store_addr_dep): Likewise.
9323
9324 2013-11-08 Richard Biener <rguenther@suse.de>
9325
9326 PR tree-optimization/59047
9327 * tree-predcom.c (ref_at_iteration): Handle bitfield accesses properly.
9328
9329 2013-11-08 Ilya Enkovich <ilya.enkovich@intel.com>
9330
9331 * common.opt (fcheck-pointer-bounds): Move to ...
9332 * c-family/c.opt: ... here.
9333 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
9334 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
9335 * langhooks.h (lang_hooks): Remove chkp_supported field.
9336 * toplev.c (process_options): Remove chkp_supported check.
9337
9338 2013-11-08 Richard Biener <rguenther@suse.de>
9339
9340 PR tree-optimization/59038
9341 PR tree-optimization/58955
9342 * tree-loop-distribution.c (pg_add_dependence_edges): Revert
9343 previous change. Handle known dependences correctly.
9344
9345 2013-11-08 Tom de Vries <tom@codesourcery.com>
9346
9347 * config/rs6000/t-xilinx: Remove duplicate contents.
9348
9349 2013-11-07 Andrew MacLeod <amacleod@redhat.com>
9350 Joseph Myers <joseph@codesourcery.com>
9351
9352 * tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
9353 (enum tree_index): Add TI_ATOMICQI_TYPE, TI_ATOMICHI_TYPE,
9354 TI_ATOMICSI_TYPE, TI_ATOMICDI_TYPE and TI_ATOMICTI_TYPE.
9355 (struct tree_base): Add atomic_flag field.
9356 * tree.h (TYPE_ATOMIC): New accessor macro.
9357 (TYPE_QUALS, TYPE_QUALS_NO_ADDR_SPACE): Add TYPE_QUAL_ATOMIC.
9358 (TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC): New macro.
9359 (atomicQI_type_node, atomicHI_type_node, atomicSI_type_node)
9360 (atomicDI_type_node, atomicTI_type_node): New macros for type nodes.
9361 * tree.c (set_type_quals): Set TYPE_ATOMIC.
9362 (find_atomic_core_type): New function.
9363 (build_qualified_type): Adjust alignment for qualified types.
9364 (build_atomic_base): New function
9365 (build_common_tree_nodes): Build atomicQI_type_node,
9366 atomicHI_type_node, atomicSI_type_node, atomicDI_type_node and
9367 atomicTI_type_node.
9368 * print-tree.c (print_node): Print atomic qualifier.
9369 * tree-pretty-print.c (dump_generic_node): Print atomic type attribute.
9370 * target.def (atomic_assign_expand_fenv): New hook.
9371 * doc/tm.texi.in (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New @hook.
9372 * doc/tm.texi: Regenerate.
9373 * targhooks.c (default_atomic_assign_expand_fenv): New function.
9374 * targhooks.h (default_atomic_assign_expand_fenv): Declare.
9375 * sync-builtins.def (__atomic_feraiseexcept): New built-in function.
9376 * config/i386/i386-builtin-types.def (VOID_FTYPE_PUSHORT): New
9377 function type.
9378 * config/i386/i386.c (enum ix86_builtins): Add
9379 IX86_BUILTIN_FNSTENV, IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW and
9380 IX86_BUILTIN_FNCLEX.
9381 (bdesc_special_args): Add __builtin_ia32_fnstenv,
9382 __builtin_ia32_fldenv, __builtin_ia32_fnstsw and __builtin_ia32_fnclex.
9383 (ix86_expand_builtin): Handle the new built-in functions.
9384 (ix86_atomic_assign_expand_fenv): New function.
9385 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New macro.
9386 * config/i386/i386.md (UNSPECV_FNSTENV, UNSPECV_FLDENV)
9387 (UNSPECV_FNSTSW, UNSPECV_FNCLEX): New unspecs.
9388 (fnstenv, fldenv, fnstsw, fnclex): New insns.
9389
9390 2013-11-07 Steve Ellcey <sellcey@mips.com>
9391
9392 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory.
9393 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add -mfp64 flag.
9394 (MULTILIB_DIRNAMES): Add fp64 directory.
9395 (MULTILIB_EXCEPTIONS): Add new exclusions.
9396
9397 2013-11-07 Aldy Hernandez <aldyh@redhat.com>
9398
9399 * gimplify.c (gimple_regimplify_operands): Do not set
9400 SSA_NAME_DEF_STMT.
9401 * graphite-sese-to-poly.c (remove_simple_copy_phi): Same.
9402 (rewrite_close_phi_out_of_ssa): Same.
9403 (rewrite_phi_out_of_ssa): Same.
9404 (rewrite_degenerate_phi): Same.
9405 (handle_scalar_deps_crossing_scop_limits): Same.
9406 * tree-if-conv.c (predicate_scalar_phi): Same.
9407 * tree-parloops.c (create_loads_for_reductions): Same.
9408 (create_final_loads_for_reduction): Same.
9409 (create_loads_and_stores_for_name): Same.
9410 (transform_to_exit_first_loop): Same.
9411 (create_parallel_loop): Same.
9412 * tree-ssa-loop-im.c
9413 (move_computations_dom_walker::before_dom_children): Same.
9414 * tree-ssa-loop-manip.c (rewrite_phi_with_iv): Same.
9415 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Same.
9416 * tree-ssa-propagate.c (substitute_and_fold): Same.
9417 * tree-vect-loop.c (vect_finalize_reduction): Same.
9418 * tree-vect-stmts.c (vectorizable_call): Same.
9419
9420 2013-11-07 Mike Stump <mikestump@comcast.net>
9421
9422 * config/pdp11/pdp11.c: Include dbxout.h.
9423 * config/picochip/picochip.c: Likewise.
9424
9425 2013-11-07 Cong Hou <congh@google.com>
9426
9427 PR tree-optimization/56764
9428 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9429 Combine alias checks if it is possible to amortize the runtime
9430 overhead. Return the number of alias checks after merging.
9431 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9432 Use the function vect_create_cond_for_alias_checks () to check
9433 the number of alias checks.
9434
9435 2013-11-07 Jeff Law <law@redhat.com>
9436
9437 * varpool.c (ctor_for_folding): Fix typo in comment.
9438
9439 2013-11-07 Joern Rennecke <joern.rennecke@embecosm.com>
9440
9441 * config/arc/arc.c (arc_ifcvt): Use commutativity, e.g.:
9442 reg_a := reg_b + reg_a ==> reg_a := reg_a + reg_b
9443
9444 2013-11-07 Jeff Law <law@redhat.com>
9445
9446 * doc/invoke.texi (-fisolate-erroneous-paths): Document.
9447
9448 * gimple-ssa-isolate-paths.c (gate_isolate_erroneous_paths):
9449 No longer check if we have __builtin_trap, assume it's available.
9450
9451 2013-11-07 Diego Novillo <dnovillo@google.com>
9452
9453 * attribs.c (lookup_scoped_attribute_spec): Make static.
9454 (get_attribute_namespace): Likewise.
9455 * builtins.c (more_const_call_expr_args_p): Move from tree.h.
9456 (validate_arglist): Move earlier in the file. Make static.
9457 (expand_stack_restore): Move from stmt.c
9458 (expand_stack_save): Move from stmt.c
9459 (rewrite_call_expr_array): Move earlier in the file.
9460 (rewrite_call_expr_valist): Likewise.
9461 * cfgexpand.c: Include hard-reg-set.h before tree.h
9462 Include recog.h.
9463 Include output.h.
9464 (expand_asm_loc): Move from stmt.c.
9465 (n_occurrences): Move from stmt.c.
9466 (check_operand_nalternatives): Move from stmt.c.
9467 (tree_conflicts_with_clobbers_p): Move from stmt.c.
9468 (expand_asm_operands): Move from stmt.c
9469 (expand_asm_stmt): Move from stmt.c
9470 (expand_computed_goto): Move from stmt.c
9471 (expand_goto): Move from stmt.c
9472 (expand_null_return_1): Move from stmt.c
9473 (expand_null_return): Move from stmt.c
9474 (expand_value_return): Move from stmt.c
9475 (expand_return): Move from stmt.c
9476 (expand_main_function): Move from function.c
9477 (stack_protect_prologue): Move from function.c
9478 * cgraphclones.c (build_function_type_skip_args): Move from tree.c.
9479 (build_function_decl_skip_args): Move from tree.c.
9480 * explow.c (tree_expr_size): Move from tree.c.
9481 * expr.c (addr_expr_of_non_mem_decl_p): Remove.
9482 (fields_length): Move from tree.c.
9483 * fold-const.c (size_low_cst): Move from tree.c.
9484 (tree_expr_nonzero_warnv_p): Make static. Move earlier in the file.
9485 (tree_expr_nonzero_p): Make static. Move earlier in the file.
9486 (fold_build3_initializer_loc): Remove.
9487 (tree_invalid_nonnegative_warnv_p): Make static.
9488 * function.c (expand_main_function): Move to cfgexpand.c.
9489 (stack_protect_prologue): Move to cfgexpand.c.
9490 (set_insn_locations): Move earlier in the file.
9491 * gimple-fold.c: Include langhooks.h.
9492 (truth_type_for): Move from tree.c.
9493 * print-tree.c (print_vec_tree): Remove.
9494 * stmt.c (expand_computed_goto): Move to cfgexpand.c.
9495 (expand_goto): Move to cfgexpand.c.
9496 (n_occurrences): Move to cfgexpand.c.
9497 (expand_asm_loc): Move to cfgexpand.c
9498 (tree_conflicts_with_clobbers_p): Move to cfgexpand.c.
9499 (expand_asm_operands): Move to cfgexpand.c.
9500 (expand_asm_stmt): Move to cfgexpand.c.
9501 (check_operand_nalternatives): Move to cfgexpand.c
9502 (expand_null_return): Move to cfgexpand.c.
9503 (expand_value_return): Move to cfgexpand.c.
9504 (expand_null_return_1): Move to cfgexpand.c.
9505 (expand_return): Move to cfgexpand.c.
9506 (expand_stack_save): Move to builtins.c.
9507 (expand_stack_restore): Move to builtins.c
9508 * symtab.c: Include output.h.
9509 (decl_assembler_name_hash): Move from tree.c.
9510 (decl_assembler_name_equal): Move from tree.c.
9511 * trans-mem.c (is_tm_safe_or_pure): Move from tree.h.
9512 * tree-eh.c (in_array_bounds_p): Move from tree.c.
9513 (range_in_array_bounds_p): Move from tree.c.
9514 * tree-object-size.c (fini_object_sizes): Make static.
9515 * tree-ssa-dom.c (iterative_hash_exprs_commutative): Move from tree.h.
9516 * tree-vrp.c (ssa_name_nonnegative_p): Remove.
9517 * tree.c (decl_assembler_name_equal): Move to symtab.c.
9518 (tree_expr_size): Move to explow.c.
9519 (decl_assembler_name_hash): Move to symtab.c.
9520 (real_twop): Remove.
9521 (tree_expr_size): Move to explow.c.
9522 (stabilize_reference_1): Move earlier in the file. Make static.
9523 (omp_remove_redundant_declare_simd_attrs): Remove.
9524 (simple_cst_list_equal): Move earlier in the file. Make static.
9525 (size_low_cst): Move to fold-const.c.
9526 (build_type_no_quals): Remove.
9527 (build_function_type_skip_args): Move to cgraphclones.c.
9528 (build_function_decl_skip_args): Move to cgraphclones.c.
9529 (in_array_bounds_p): Move to tree-eh.c.
9530 (range_in_array_bounds_p): Move to tree-eh.c.
9531 (truth_type_for): Move to gimple-fold.c.
9532 (list_equal_p): Remove.
9533 * tree.h (decl_assembler_name_equal): Remove.
9534 (decl_assembler_name_hash): Remove.
9535 (truth_type_for): Remove.
9536 (build_type_no_quals): Remove.
9537 (build_function_decl_skip_args): Remove.
9538 (in_array_bounds_p): Remove.
9539 (range_in_array_bounds_p): Remove.
9540 (size_low_cst): Remove.
9541 (omp_remove_redundant_declare_simd_attrs): Remove.
9542 (tree_expr_size): Remove.
9543 (fields_length): Remove.
9544 (stabilize_reference_1): Remove.
9545 (expand_goto): Remove.
9546 (expand_stack_save): Remove.
9547 (expand_stack_restore): Remove.
9548 (expand_return): Remove.
9549 (fold_build3_initializer_loc): Remove.
9550 (tree_expr_nonzero_p): Remove.
9551 (tree_invalid_nonnegative_warnv_p): Remove.
9552 (tree_expr_nonzero_warnv_p): Remove.
9553 (fold_builtin_snprintf_chk): Remove.
9554 (validate_arglist): Remove.
9555 (iterative_hash_exprs_commutative): Move to tree-ssa-dom.c.
9556 (simple_cst_list_equal): Remove.
9557 (real_twop): Remove.
9558 (expand_main_function): Remove.
9559 (stack_protect_prologue): Remove.
9560 (print_vec_tree): Remove.
9561 (lookup_scoped_attribute_spec): Remove.
9562 (get_attribute_namespace): Remove.
9563 (expand_computed_goto): Remove.
9564 (expand_asm_stmt): Remove.
9565 (list_equal_p): Remove.
9566 (ssa_name_nonnegative_p): Remove.
9567 (fini_object_sizes): Remove.
9568 (addr_expr_of_non_mem_decl_p): Remove.
9569 (is_tm_safe_or_pure): Move to trans-mem.c.
9570 (more_const_call_expr_args_p): Remove.
9571 (save_vtable_map_decl): Remove.
9572
9573 2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
9574
9575 * doc/sourcebuild.texi (Top Level) <lto-plugin>: GNU ld can use
9576 linker plugins, too.
9577
9578 * config/arc/arc.h (LINK_COMMAND_SPEC): For -ftree-parallelize-loops=*,
9579 link to libgomp and its dependencies.
9580 * config/ia64/hpux.h (LIB_SPEC): Likewise.
9581 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9582 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
9583 * gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's dependencies.
9584
9585 2013-11-07 Jakub Jelinek <jakub@redhat.com>
9586
9587 * tree-ssa-loop-niter.c: Include tree-ssanames.h.
9588 (determine_value_range): Add loop argument. Use get_range_info to
9589 improve range.
9590 (bound_difference): Adjust caller.
9591
9592 2013-11-07 Richard Biener <rguenther@suse.de>
9593 Jakub Jelinek <jakub@redhat.com>
9594
9595 * tree-vrp.c (find_assert_locations): Pre-seed live bitmaps for loop
9596 latches from header PHI arguments from the latch edge.
9597
9598 2013-11-07 Paolo Carlini <paolo.carlini@oracle.com>
9599
9600 PR c++/58176
9601 * varasm.c (output_constant): Handle NULLPTR_TYPE.
9602
9603 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
9604
9605 * config/i386/i386.c (ix86_expand_set_or_movmem): Don't set
9606 misaligned_prologue_used when it has been set.
9607
9608 2013-11-07 Yury Gribov <y.gribov@samsung.com>
9609 Jakub Jelinek <jakub@redhat.com>
9610
9611 PR sanitizer/59029
9612 * asan.c (get_mem_refs_of_builtin_call): Allow
9613 integer literals as addresses in instrumented builtins.
9614
9615 2013-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9616
9617 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
9618 Explain why plus_constant is not used.
9619
9620 2013-11-07 Richard Biener <rguenther@suse.de>
9621
9622 * tree-ssa-ccp.c (canonicalize_float_value): Rename to ...
9623 (canonicalize_value): ... this. Also handle stripping of
9624 TREE_OVERFLOW.
9625 (get_value, set_lattice_value, get_value_for_expr): Adjust.
9626 * gimple-fold.c (canonicalize_constructor_val): Strip TREE_OVERFLOW.
9627 * tree-ssa-threadedge.c (set_ssa_name_value): Likewise.
9628
9629 2013-11-07 Richard Biener <rguenther@suse.de>
9630
9631 * tree-dfa.c (get_ref_base_and_extent): Fix casting.
9632
9633 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
9634
9635 PR target/59034
9636 * config/i386/i386.md (push peepholer/splitter): Use Pmode
9637 with stack_pointer_rtx.
9638
9639 2013-11-07 Bin Cheng <bin.cheng@arm.com>
9640
9641 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Check equality
9642 using operand_equal_p.
9643
9644 2013-11-07 Bin Cheng <bin.cheng@arm.com>
9645
9646 * tree-ssa-loop-ivopts.c (alloc_iv): Lower address expressions.
9647 * tree-affine.c (get_inner_reference_aff): Return base.
9648 * tree-affine.h (get_inner_reference_aff): Change prototype.
9649
9650 2013-11-06 Tobias Burnus <burnus@net-b.de>
9651
9652 * doc/invoke.texi (Wdate-time): Fix typo.
9653
9654 2013-11-06 Oleg Endo <olegendo@gcc.gnu.org>
9655
9656 * config/sh/sh.md (addsf3, divsf3, divsf3_i, rsqrtsf2, cmpgtdf_t,
9657 cmpeqdf_t, *ieee_ccmpeqdf_t, negdf2, sqrtdf2, absdf2): Use
9658 fp_arith_reg_operand instead of arith_reg_operand.
9659
9660 2013-11-06 Oleg Endo <olegendo@gcc.gnu.org>
9661
9662 * config/sh/sh.md (adddi3): Remove empty constraints.
9663 Remove can_create_pseudo_p and arith_reg_operand check.
9664 (adddi3_compact, subdi3_compact, *negdi2): Remove constraints.
9665 Split before reload.
9666
9667 2013-11-06 Jeff Law <law@redhat.com>
9668 Tom Tromey <tromey@redhat.com>
9669
9670 * gdbinit.in: Disable strict type checking.
9671
9672 2013-11-06 Vladimir Makarov <vmakarov@redhat.com>
9673
9674 * tree-pass.h (make_pass_live_range_shrinkage): New external.
9675 * timevar.def (TV_LIVE_RANGE_SHRINKAGE): New.
9676 * sched-rgn.c (gate_handle_live_range_shrinkage): New.
9677 (rest_of_handle_live_range_shrinkage): Ditto
9678 (class pass_live_range_shrinkage): Ditto.
9679 (pass_data_live_range_shrinkage): Ditto.
9680 (make_pass_live_range_shrinkage): Ditto.
9681 * sched-int.h (initialize_live_range_shrinkage): New prototype.
9682 (finish_live_range_shrinkage): Ditto.
9683 * sched-deps.c (create_insn_reg_set): Make void return value.
9684 * passes.def: Add pass_live_range_shrinkage.
9685 * ira.c (update_equiv_regs): Don't move if flag_live_range_shrinkage.
9686 * haifa-sched.c (live_range_shrinkage_p): New.
9687 (initialize_live_range_shrinkage, finish_live_range_shrinkage):
9688 New functions.
9689 (rank_for_schedule): Add code for pressure relief through live
9690 range shrinkage.
9691 (schedule_insn): Print more debug info.
9692 (sched_init): Setup SCHED_PRESSURE_WEIGHTED for pressure relief
9693 through live range shrinkage.
9694 * doc/invoke.texi (-flive-range-shrinkage): New.
9695 * common.opt (flive-range-shrinkage): New.
9696
9697 2013-11-06 Uros Bizjak <ubizjak@gmail.com>
9698
9699 PR target/59021
9700 * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
9701 AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
9702 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
9703 RTXes that return in AVX256 register.
9704
9705 2013-11-06 Richard Biener <rguenther@suse.de>
9706
9707 PR tree-optimization/58653
9708 * tree-predcom.c (ref_at_iteration): Rewrite to generate a MEM_REF.
9709 (prepare_initializers_chain): Adjust.
9710
9711 2013-11-06 Andrew MacLeod <amacleod@redhat.com>
9712
9713 * gimple.h (block_in_transaction): Move to basic-block.h and rename.
9714 (gimple_in_transaction): Use bb_in_transaction.
9715 * basic-block.h (bb_in_transaction): Relocate here and rename.
9716 * tree-ssa-loop-im.c (execute_sm): Use bb_in_transaction.
9717
9718 2013-11-06 Richard Biener <rguenther@suse.de>
9719
9720 * tree.c (drop_tree_overflow): New function.
9721 * tree.h (drop_tree_overflow): Declare.
9722 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW.
9723 * tree-vrp.c (range_int_cst_singleton_p): Use
9724 is_overflow_infinity instead of testing TREE_OVERFLOW.
9725 (extract_range_from_assert): Likewise.
9726 (zero_nonzero_bits_from_vr): Likewise.
9727 (extract_range_basic): Likewise.
9728 (register_new_assert_for): Use drop_tree_overflow.
9729 (vrp_visit_phi_node): Likewise.
9730
9731 2013-11-06 Eric Botcazou <ebotcazou@adacore.com>
9732
9733 * config/i386/i386.c (ix86_expand_prologue): Optimize stack
9734 checking for leaf functions without dynamic stack allocation.
9735 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust.
9736 (ia64_expand_prologue): Likewise.
9737 * config/mips/mips.c (mips_expand_prologue): Likewise.
9738 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
9739 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
9740 (sparc_flat_expand_prologue): Likewise.
9741
9742 2013-11-06 James Greenhalgh <james.greenhalgh@arm.com>
9743
9744 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Better model data size.
9745 (__ST3_LANE_FUNC): Likewise.
9746 (__ST4_LANE_FUNC): Likewise.
9747
9748 2013-11-06 Nick Clifton <nickc@redhat.com>
9749
9750 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define the
9751 name returned by msp430_mcu_name.
9752 (LIB_SPEC): If a -T option has not been specified then set a
9753 default, mcu-specific, linker script.
9754 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more mcu names.
9755 * config/msp430/msp430.c (msp430x_names): Likewise.
9756 Alpha sort the names for ease of comparison.
9757 (msp430_mcu_name): New function: Returns a string suitable for
9758 use as a C preprocessor symbol based upon the name of the MCU
9759 being targeted.
9760 (msp430_option_override): Accept msp430x and msp430xv2 as generic
9761 mcu names.
9762 * config/msp430/msp430-protos.h (msp430_mcu_name): Prototype.
9763
9764 * gcc.c (do_spec_1): Do not insert a space after a %* substitution
9765 unless it is the last part of a spec substring.
9766 * doc/invoke.texi (Spec Files): Document space insertion
9767 behaviour of %*.
9768
9769 2013-11-06 Christian Bruel <christian.bruel@st.com>
9770
9771 * config/sh/sh-mem.cc (sh_expand_cmpnstr, sh_expand_cmpstr):
9772 Factorize probabilities, Use adjust_address instead of
9773 adjust_automodify_address when possible. Enable for optimize.
9774 (sh_expand_strlen): New function.
9775 * config/sh/sh-protos.h (sh_expand_strlen): Declare.
9776 * config/sh/sh.md (strlensi): New pattern.
9777 (UNSPEC_BUILTIN_STRLEN): Define.
9778
9779 2013-11-06 Jakub Jelinek <jakub@redhat.com>
9780
9781 PR middle-end/58970
9782 * expr.c (get_bit_range): Handle *offset == NULL_TREE.
9783 (expand_assignment): If *bitpos is negative, set *offset
9784 and adjust *bitpos, so that it is not negative.
9785
9786 2013-11-06 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
9787
9788 * config/i386/bdver3.md : Added two additional decoder units
9789 to support issue rate of 4 and remodeled vector unit.
9790 * config/i386/i386.c (ix86_issue_rate): Issue rate for BD
9791 architectures is set to 4.
9792 * config/i386/i386.c (ia32_multipass_dfa_lookahead): DFA
9793 lookahead is set to 4 for BD architectures.
9794
9795 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9796
9797 * config/rs6000/rs6000.c (rs6000_option_override_internal):
9798 Remove restriction against use of VSX instructions when generating
9799 code for little endian mode.
9800
9801 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9802
9803 * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
9804 for both big and little endian.
9805 (mulv8hi3): Swap input operands for merge high and merge low
9806 instructions for little endian.
9807
9808 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9809
9810 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
9811 define_insn to define_expand that uses even patterns for big
9812 endian and odd patterns for little endian.
9813 (vec_widen_smult_even_v16qi): Likewise.
9814 (vec_widen_umult_even_v8hi): Likewise.
9815 (vec_widen_smult_even_v8hi): Likewise.
9816 (vec_widen_umult_odd_v16qi): Likewise.
9817 (vec_widen_smult_odd_v16qi): Likewise.
9818 (vec_widen_umult_odd_v8hi): Likewise.
9819 (vec_widen_smult_odd_v8hi): Likewise.
9820 (altivec_vmuleub): New define_insn.
9821 (altivec_vmuloub): Likewise.
9822 (altivec_vmulesb): Likewise.
9823 (altivec_vmulosb): Likewise.
9824 (altivec_vmuleuh): Likewise.
9825 (altivec_vmulouh): Likewise.
9826 (altivec_vmulesh): Likewise.
9827 (altivec_vmulosh): Likewise.
9828
9829 2013-11-05 Mike Stump <mikestump@comcast.net>
9830
9831 * Makefile.in (mostlyclean): Remove c-family objects.
9832
9833 2013-11-05 Ian Lance Taylor <iant@google.com>
9834
9835 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
9836 If possible, add .cfi directives to record change to bx.
9837 * config/i386/i386.c (ix86_emit_cfi): New function.
9838 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
9839
9840 2013-11-05 Steven Bosscher <steven@gcc.gnu.org>
9841
9842 * rtlanal.c (tablejump_p): Expect a JUMP_TABLE_DATA to always follow
9843 immediately after a label for a tablejump pattern.
9844
9845 * config/arm/arm.c (is_jump_table): Remove.
9846 (create_fix_barrier): Use tablejump_p instead.
9847 (arm_reorg): Likewise.
9848 (thumb1_output_casesi): Expect JUMP_TABLE_DATA to always be NEXT_INSN.
9849 (thumb2_output_casesi): Likewise.
9850 * config/aarch64/aarch64.c (aarch64_output_casesi): Likewise.
9851 * config/sh/sh.md (casesi_worker_1, casesi_worker_2,
9852 casesi_shift_media, casesi_load_media): Likewise.
9853 * config/iq2000/iq2000.md: Likewise (in anonymous define_insn).
9854 * config/microblaze/microblaze.md: Likewise.
9855
9856 2013-11-05 Tobias Burnus <burnus@net-b.de>
9857
9858 * doc/invoke.texi (-Wdate-time): Document.
9859
9860 2013-11-05 Richard Sandiford <rdsandiford@googlemail.com>
9861
9862 * double-int.c (lshift_double, rshift_double): Remove
9863 SHIFT_COUNT_TRUNCATED handling.
9864
9865 2013-11-05 Jeff Law <law@redhat.com>
9866
9867 * Makefile.in (OBJS): Add gimple-ssa-isolate-paths.o
9868 * common.opt (-fisolate-erroneous-paths): Add option and documentation.
9869 * gimple-ssa-isolate-paths.c: New file.
9870 * gimple.c (check_loadstore): New function.
9871 (infer_nonnull_range): Moved into gimple.c from tree-vrp.c
9872 Verify OP is in the argument list and the argument corresponding
9873 to OP is a pointer type. Use operand_equal_p rather than
9874 pointer equality when testing if OP is on the nonnull list.
9875 Use check_loadstore rather than count_ptr_derefs. Handle
9876 GIMPLE_RETURN statements.
9877 * tree-vrp.c (infer_nonnull_range): Remove.
9878 * gimple.h (infer_nonnull_range): Declare.
9879 * opts.c (default_options_table): Add OPT_fisolate_erroneous_paths.
9880 * passes.def: Add pass_isolate_erroneous_paths.
9881 * timevar.def (TV_ISOLATE_ERRONEOUS_PATHS): New timevar.
9882 * tree-pass.h (make_pass_isolate_erroneous_paths): Declare.
9883 * tree-ssa.c (struct count_ptr_d): Remove.
9884 (count_ptr_derefs, count_uses_and_derefs): Remove.
9885 * tree-ssa.h (count_uses_and_derefs): Remove.
9886
9887 2013-11-05 Jakub Jelinek <jakub@redhat.com>
9888
9889 PR rtl-optimization/58997
9890 * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
9891 get_iv_value to be in iv->mode rather than iv->extend_mode.
9892 (iv_extend): Likewise. Otherwise, if iv->extend != extend,
9893 use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
9894 * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
9895 mode.
9896
9897 2013-11-05 Andrew MacLeod <amacleod@redhat.com>
9898
9899 * gimple.h: Move some prototypes to gimple-expr.h and add to include
9900 list.
9901 (extract_ops_from_tree, gimple_call_addr_fndecl, is_gimple_reg_type):
9902 Move to gimple-expr.h.
9903 * gimple-expr.h: New file. Relocate some prototypes from gimple.h.
9904 (types_compatible_p, is_gimple_reg_type, is_gimple_variable,
9905 is_gimple_id, virtual_operand_p, is_gimple_addressable,
9906 is_gimple_constant, extract_ops_from_tree, gimple_call_addr_fndecl):
9907 Relocate here.
9908 * gimple.c (extract_ops_from_tree_1, gimple_cond_get_ops_from_tree,
9909 gimple_set_body, gimple_body, gimple_has_body_p, is_gimple_lvalue,
9910 is_gimple_condexpr, is_gimple_addressable, is_gimple_constant,
9911 is_gimple_address, is_gimple_invariant_address,
9912 is_gimple_ip_invariant_address, is_gimple_min_invariant,
9913 is_gimple_ip_invariant, is_gimple_variable, is_gimple_id,
9914 virtual_operand_p, is_gimple_reg, is_gimple_val, is_gimple_asm_val,
9915 is_gimple_min_lval, is_gimple_call_addr, is_gimple_mem_ref_addr,
9916 gimple_decl_printable_name, useless_type_conversion_p,
9917 types_compatible_p, gimple_can_coalesce_p, copy_var_decl): Move to
9918 gimple-expr.[ch].
9919 * gimple-expr.c: New File.
9920 (useless_type_conversion_p, gimple_set_body, gimple_body,
9921 gimple_has_body_p, gimple_decl_printable_name, copy_var_decl,
9922 gimple_can_coalesce_p, extract_ops_from_tree_1,
9923 gimple_cond_get_ops_from_tree, is_gimple_lvalue, is_gimple_condexpr,
9924 is_gimple_address, is_gimple_invariant_address,
9925 is_gimple_ip_invariant_address, is_gimple_min_invariant,
9926 is_gimple_ip_invariant, is_gimple_reg, is_gimple_val,
9927 is_gimple_asm_val, is_gimple_min_lval, is_gimple_call_addr,
9928 is_gimple_mem_ref_addr): Relocate here.
9929 * Makefile.in (OBJS): Add gimple-expr.o.
9930
9931 2013-11-05 David Malcolm <dmalcolm@redhat.com>
9932
9933 * gengtype-parse.c (struct_field_seq): Support empty structs.
9934
9935 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
9936
9937 * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
9938
9939 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
9940
9941 * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT
9942 for !TARGET_80387.
9943 * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define
9944 _SOFT_FLOAT here.
9945 (LONG_DOUBLE_TYPE_SIZE): New define.
9946 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto.
9947
9948 2013-11-05 Paolo Carlini <paolo.carlini@oracle.com>
9949
9950 PR c++/58724
9951 * doc/extend.texi [visibility ("visibility_type")]: Add example
9952 about visibility attribute on namespace declaration.
9953
9954 2013-11-05 Richard Biener <rguenther@suse.de>
9955
9956 PR ipa/58492
9957 * passes.def (all_passes): Start with pass_fixup_cfg again.
9958
9959 2013-11-05 Richard Biener <rguenther@suse.de>
9960
9961 PR tree-optimization/58955
9962 * tree-loop-distribution.c (pg_add_dependence_edges): Fix
9963 edge direction.
9964
9965 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9966
9967 * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
9968 little endian.
9969 (vec_pack_ufix_trunc_v2df): Likewise.
9970
9971 2013-11-05 H.J. Lu <hongjiu.lu@intel.com>
9972
9973 PR middle-end/58981
9974 * doc/md.texi (@code{movmem@var{m}}): Specify Pmode as mode of
9975 pattern, instead of word_mode.
9976
9977 * expr.c (emit_block_move_via_movmem): Don't use mode wider than
9978 Pmode for size.
9979 (set_storage_via_setmem): Likewise.
9980
9981 2013-11-05 Andrew MacLeod <amacleod@redhat.com>
9982
9983 * tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from
9984 gimple.h and the rest of the condition in eliminate_build.
9985 (eliminate_build): Call new routine.
9986 * gimple.h (phi_ssa_name_p): Delete.
9987
9988 2013-11-05 Trevor Saunders <tsaunders@mozilla.com>
9989
9990 * vec.c (vec_prefix::calculate_allocation): Don't try to handle the
9991 case of no prefix and reserving zero slots, because when that's the
9992 case we'll never get here.
9993 * vec.h (va_heap::reserve): Don't try and handle
9994 vec_prefix::calculate_allocation returning zero because that should
9995 never happen.
9996
9997 2013-11-05 Richard Biener <rguenther@suse.de>
9998
9999 PR middle-end/58941
10000 * tree-dfa.c (get_ref_base_and_extent): Merge common code
10001 in MEM_REF and TARGET_MEM_REF handling. Make sure to
10002 process trailing array detection before diving into the
10003 view-converted object (and possibly apply some extra offset).
10004
10005 2013-11-05 Joseph Myers <joseph@codesourcery.com>
10006
10007 * config/i386/i386.c (ix86_float_exceptions_rounding_supported_p):
10008 New function.
10009 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Define.
10010
10011 2013-11-05 Marc Glisse <marc.glisse@inria.fr>
10012
10013 PR tree-optimization/58958
10014 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Use
10015 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
10016
10017 2013-11-05 Marc Glisse <marc.glisse@inria.fr>
10018
10019 * tree-ssa-alias.h (ranges_overlap_p): Handle negative offsets.
10020 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
10021
10022 2013-11-05 Jakub Jelinek <jakub@redhat.com>
10023
10024 PR tree-optimization/58984
10025 * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
10026 set *SIZE_P if non-NULL on success.
10027 (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
10028 callers.
10029 (ipcp_transform_function): Likewise. Punt if size of access
10030 is different from TYPE_SIZE on v->value's type.
10031
10032 2013-11-05 Tobias Burnus <burnus@net-b.de>
10033
10034 * doc/invoke.texi (-fopenmp-simd): Document new option.
10035 * gimplify.c (gimplify_body): Accept -fopenmp-simd.
10036 * omp-low.c (execute_expand_omp, execute_lower_omp): Ditto.
10037 * tree.c (attribute_value_equal): Ditto.
10038
10039 2013-11-04 Wei Mi <wmi@google.com>
10040
10041 * sched-rgn.c (add_branch_dependences): Keep insns in
10042 a SCHED_GROUP at the end of BB to remain their location.
10043
10044 2013-11-04 Wei Mi <wmi@google.com>
10045
10046 * config/i386/i386.c (memory_address_length): Extract a part
10047 of code to rip_relative_addr_p.
10048 (rip_relative_addr_p): New Function.
10049 (ix86_macro_fusion_p): Ditto.
10050 (ix86_macro_fusion_pair_p): Ditto.
10051 * config/i386/i386.h: Add new tune features about macro-fusion.
10052 * config/i386/x86-tune.def (DEF_TUNE): Ditto.
10053 * doc/tm.texi: Generated.
10054 * doc/tm.texi.in: Ditto.
10055 * haifa-sched.c (try_group_insn): New Function.
10056 (group_insns_for_macro_fusion): Ditto.
10057 (sched_init): Call group_insns_for_macro_fusion.
10058 * target.def: Add two hooks: macro_fusion_p and
10059 macro_fusion_pair_p.
10060
10061 2013-11-04 Kostya Serebryany <kcc@google.com>
10062
10063 Update to match the changed asan API.
10064 * asan.c (asan_function_start): New function.
10065 (asan_emit_stack_protection): Update the string stored in the
10066 stack red zone to match new API. Store the PC of the current
10067 function in the red zone.
10068 (asan_global_struct): Update the __asan_global definition to match
10069 the new API.
10070 (asan_add_global): Ditto.
10071 * asan.h (asan_function_start): New prototype.
10072 * final.c (final_start_function): Call asan_function_start.
10073 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v1
10074 to __asan_init_v3.
10075
10076 2013-11-04 Wei Mi <wmi@google.com>
10077
10078 * config/i386/i386-c.c (ix86_target_macros_internal): Separate
10079 PROCESSOR_COREI7_AVX out from PROCESSOR_COREI7.
10080 * config/i386/i386.c (ix86_option_override_internal): Ditto.
10081 (ix86_issue_rate): Ditto.
10082 (ix86_adjust_cost): Ditto.
10083 (ia32_multipass_dfa_lookahead): Ditto.
10084 (ix86_sched_init_global): Ditto.
10085 (get_builtin_code_for_version): Ditto.
10086 * config/i386/i386.h (enum target_cpu_default): Ditto.
10087 (enum processor_type): Ditto.
10088 * config/i386/x86-tune.def (DEF_TUNE): Ditto.
10089
10090 2013-11-04 Vladimir Makarov <vmakarov@redhat.com>
10091
10092 PR rtl-optimization/58967
10093 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
10094 !lra_in_progress for mode sizes bigger word.
10095
10096 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10097
10098 * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
10099 arguments to merge instruction for little endian.
10100 (vec_widen_umult_lo_v16qi): Likewise.
10101 (vec_widen_smult_hi_v16qi): Likewise.
10102 (vec_widen_smult_lo_v16qi): Likewise.
10103 (vec_widen_umult_hi_v8hi): Likewise.
10104 (vec_widen_umult_lo_v8hi): Likewise.
10105 (vec_widen_smult_hi_v8hi): Likewise.
10106 (vec_widen_smult_lo_v8hi): Likewise.
10107
10108 2013-11-04 Ian Lance Taylor <iant@google.com>
10109
10110 * builtins.def (ATTR_NOTHROWCALL_LEAF_LIST): Define.
10111 * sync-builtins.def: Use ATTR_NOTHROWCALL_LEAF_LIST for all sync
10112 builtins that take pointers.
10113 * lto-opts.c (lto_write_options): Write -fnon-call-exceptions if set.
10114 * lto-wrapper.c (merge_and_complain): Collect OPT_fnon_call_exceptions.
10115 (run_gcc): Pass -fnon-call-exceptions.
10116
10117 2013-11-04 Jakub Jelinek <jakub@redhat.com>
10118
10119 * optabs.c (expand_vec_perm): Revert one incorrect line from
10120 2013-10-31 change.
10121
10122 PR tree-optimization/58978
10123 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): Don't modify
10124 use_stmt by single_imm_use directly. Only call single_imm_use
10125 on SSA_NAMEs.
10126
10127 2013-11-04 Vladimir Makarov <vmakarov@redhat.com>
10128
10129 PR rtl-optimization/58968
10130 * lra-spills.c (return_regno_p): New function.
10131 (lra_final_code_change): Use it.
10132
10133 2013-11-04 Joseph Myers <joseph@codesourcery.com>
10134
10135 * doc/cpp.texi (__GCC_IEC_559, __GCC_IEC_559_COMPLEX): Document macros.
10136 * target.def (float_exceptions_rounding_supported_p): New hook.
10137 * targhooks.c (default_float_exceptions_rounding_supported_p): New
10138 function.
10139 * targhooks.h (default_float_exceptions_rounding_supported_p): Declare.
10140 * doc/tm.texi.in (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P):
10141 New @hook.
10142 * doc/tm.texi: Regenerate.
10143 * config.gcc (powerpc*-*-linux*): Set extra_objs.
10144 * config/rs6000/rs6000-linux.c: New file.
10145 * config/rs6000/rs6000-protos.h
10146 (rs6000_linux_float_exceptions_rounding_supported_p): Declare.
10147 * config/rs6000/linux.h
10148 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): New macro.
10149 * config/rs6000/linux64.h
10150 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Likewise.
10151 * config/rs6000/t-linux (rs6000-linux.o): New rule.
10152 * config/rs6000/t-linux64 (rs6000-linux.o): Likewise.
10153
10154 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10155
10156 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
10157 Replace the define_insn_and_split with a define_insn and two
10158 define_splits, with the split after reload re-permuting the source
10159 register to its original value.
10160 (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
10161 (*vsx_le_perm_store_v8hi): Likewise.
10162 (*vsx_le_perm_store_v16qi): Likewise.
10163
10164 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10165
10166 * config/rs6000/vector.md (vec_pack_trunc_v2df): Adjust for
10167 little endian.
10168
10169 2013-11-04 Jakub Jelinek <jakub@redhat.com>
10170
10171 PR tree-optimization/58946
10172 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Update all
10173 bbs with bbinfo[idx].op != NULL before all blocks with
10174 bbinfo[idx].op == NULL.
10175
10176 2013-11-04 Richard Sandiford <rdsandiford@googlemail.com>
10177
10178 * config/avr/avr-log.c (avr_double_int_pop_digit): Delete.
10179 (avr_dump_double_int_hex): Likewise.
10180 (avr_log_vadump): Remove %D and %X handling.
10181 * config/avr/avr.c (avr_double_int_push_digit): Delete.
10182 (avr_map_op_t): Change map from double_int to unsigned int.
10183 (avr_map_op): Update accordingly.
10184 (avr_map, avr_map_metric, avr_has_nibble_0xf, avr_map_decompose)
10185 (avr_move_bits, avr_out_insert_bits, avr_fold_builtin): Operate on
10186 unsigned ints rather than double_ints.
10187
10188 2013-11-03 Marek Polacek <polacek@redhat.com>
10189
10190 Implement -fsanitize=vla-bound.
10191 * opts.c (common_handle_option): Handle vla-bound.
10192 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE): Define.
10193 * flag-types.h (enum sanitize_code): Add SANITIZE_VLA.
10194 * asan.c (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR.
10195
10196 2013-11-02 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10197
10198 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
10199 little endian.
10200
10201 2013-11-02 Uros Bizjak <ubizjak@gmail.com>
10202
10203 * config/i386/constraints.md (Ts, Tv): New address constrains.
10204 * config/i386/i386.md (*lea<mode>, *<mode>_<bndcheck>): Use Ts
10205 constraint for address_no_seg_operand.
10206 * config/i386/sse.md (*avx512pf_gatherpf<mode>_mask)
10207 (*avx512pf_gatherpf<mode>, *avx512pf_scatterpf<mode>_mask)
10208 (*avx512pf_scatterpf<mode>, *avx2_gathersi<mode>)
10209 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>_2)
10210 (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4)
10211 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2)
10212 (*avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2)
10213 (*avx512f_scattersi<mode> *avx512f_scatterdi<mode>): Use Tv
10214 constraint for vsib_address_operand.
10215
10216 2013-11-02 Steven Bosscher <steven@gcc.gnu.org>
10217
10218 * gcse.c (pre_delete): Remove references to regmove from comments.
10219 * recog.c: (validate_replace_rtx_1): Likewise.
10220 * config/rl78/rl78.c: Likewise.
10221 * config/v850/v850.h: Likewise, and remove unused ENABLE_REGMOVE_PASS.
10222 * common/config/m32r/m32r-common.c: Don't manipulate OPT_fregmove.
10223 * common/config/mmix/mmix-common.c: Likewise.
10224
10225 2013-11-01 Trevor Saunders <tsaunders@mozilla.com>
10226
10227 * function.c (reorder_blocks): Convert block_stack to a stack_vec.
10228 * gimplify.c (gimplify_compound_lval): Likewise.
10229 * graphite-clast-to-gimple.c (gloog): Likewise.
10230 * graphite-dependences.c (loop_is_parallel_p): Likewise.
10231 * graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
10232 (limit_scop); Likewise.
10233 (build_scops): Likewise.
10234 (dot_scop): Likewise.
10235 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
10236 (build_scop_drs): Likewise.
10237 (insert_stmts): Likewise.
10238 (insert_out_of_ssa_copy): Likewise.
10239 (remove_phi): Likewise.
10240 (rewrite_commutative_reductions_out_of_ssa_close_phi): Likewise.
10241 * hw-doloop.c (discover_loop): Likewise.
10242 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Likewise.
10243 * tree-dfa.c (dump_enumerated_decls): Likewise.
10244 * tree-if-conv.c (if_convertable_loop_p): Likewise.
10245 * tree-inline.c (tree_function_versioning): Likewise.
10246 * tree-loop-distribution.c (build_rdg): Likewise.
10247 (rdg_flag_vertex_and_dependent): Likewise.
10248 (distribute_loop): Likewise.
10249 * tree-parloops.c (loop_parallel_p): Likewise.
10250 (eliminate_local_variables): Likewise.
10251 (separate_decls_in_region): Likewise.
10252 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
10253 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
10254 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
10255 * tree-vect-loop.c (vect_analyze_scaler_cycles_1): Likewise.
10256 * tree-vect-patterns.c (vect_pattern_recog): Likewise.
10257 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
10258 (vectorizable_condition): Likewise.
10259
10260 2013-11-01 Uros Bizjak <ubizjak@gmail.com>
10261
10262 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): Always define as 0/1.
10263 * configure: Regenerate.
10264 * config/i386/i386.md (*movdi_internal): Change
10265 HAVE_AS_IX86_INTERUNIT_MOVQ to runtime check.
10266 (*movdf_internal): Ditto.
10267 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
10268 * config/i386/sse.md (vec_concatv2di): Output interunit movq
10269 for HAVE_AS_IX86_INTERUNIT_MOVQ targets.
10270
10271 2013-10-31 Robert Suchanek <Robert.Suchanek@imgtec.com>
10272
10273 * lra-spills.c (assign_spill_hard_regs): Remove statement terminator
10274 after comment.
10275
10276 2013-10-31 David Malcolm <dmalcolm@redhat.com>
10277
10278 Automated part of renaming of symtab_node_base to symtab_node.
10279
10280 Patch autogenerated by rename_symtab.py from
10281 https://github.com/davidmalcolm/gcc-refactoring-scripts
10282 revision 58bb219cc090b2f4516a9297d868c245495ee622
10283 with ChangeLog entry fixed up by hand.
10284
10285 * cgraph.c (x_cgraph_nodes_queue): Rename symtab_node_base to
10286 symtab_node.
10287 (cgraph_node_for_asm): Likewise.
10288 * cgraph.h (symtab_node_base): Likewise.
10289 (cgraph_node): Likewise.
10290 (varpool_node): Likewise.
10291 (is_a_helper <cgraph_node>::test): Likewise.
10292 (is_a_helper <varpool_node>::test): Likewise.
10293 (symtab_nodes): Likewise.
10294 (symtab_register_node): Likewise.
10295 (symtab_unregister_node): Likewise.
10296 (symtab_remove_node): Likewise.
10297 (symtab_get_node): Likewise.
10298 (symtab_node_for_asm): Likewise.
10299 (symtab_node_asm_name): Likewise.
10300 (symtab_node_name): Likewise.
10301 (symtab_insert_node_to_hashtable): Likewise.
10302 (symtab_add_to_same_comdat_group): Likewise.
10303 (symtab_dissolve_same_comdat_group_list): Likewise.
10304 (dump_symtab_node): Likewise.
10305 (debug_symtab_node): Likewise.
10306 (dump_symtab_base): Likewise.
10307 (verify_symtab_node): Likewise.
10308 (verify_symtab_base): Likewise.
10309 (symtab_used_from_object_file_p): Likewise.
10310 (symtab_alias_ultimate_target): Likewise.
10311 (symtab_resolve_alias): Likewise.
10312 (fixup_same_cpp_alias_visibility): Likewise.
10313 (symtab_for_node_and_aliases): Likewise.
10314 (symtab_nonoverwritable_alias): Likewise.
10315 (availability symtab_node_availability): Likewise.
10316 (symtab_semantically_equivalent_p): Likewise.
10317 (fixup_same_cpp_alias_visibility): Likewise.
10318 (symtab_prevail_in_asm_name_hash): Likewise.
10319 (cgraph): Likewise.
10320 (varpool): Likewise.
10321 (varpool_first_variable): Likewise.
10322 (varpool_next_variable): Likewise.
10323 (varpool_first_static_initializer): Likewise.
10324 (varpool_next_static_initializer): Likewise.
10325 (varpool_first_defined_variable): Likewise.
10326 (varpool_next_defined_variable): Likewise.
10327 (cgraph_first_defined_function): Likewise.
10328 (cgraph_next_defined_function): Likewise.
10329 (cgraph_first_function): Likewise.
10330 (cgraph_next_function): Likewise.
10331 (cgraph_first_function_with_gimple_body): Likewise.
10332 (cgraph_next_function_with_gimple_body): Likewise.
10333 (symtab_alias_target): Likewise.
10334 (symtab_real_symbol_p): Likewise.
10335 (symtab_can_be_discarded): Likewise.
10336 * cgraphbuild.c (mark_address): Likewise.
10337 (mark_load): Likewise.
10338 (mark_store): Likewise.
10339 * cgraphunit.c (decide_is_symbol_needed): Likewise.
10340 (first): Likewise.
10341 (enqueue_node): Likewise.
10342 (referred_to_p): Likewise.
10343 (cgraph_process_same_body_aliases): Likewise.
10344 (analyze_functions): Likewise.
10345 (handle_alias_pairs): Likewise.
10346 (output_weakrefs): Likewise.
10347 (compile): Likewise.
10348 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
10349 * ipa-inline-analysis.c (inline_write_summary): Likewise.
10350 * ipa-prop.c (remove_described_reference): Likewise.
10351 (try_decrement_rdesc_refcount): Likewise.
10352 (ipa_edge_duplication_hook): Likewise.
10353 * ipa-ref.c (ipa_record_reference): Likewise.
10354 (ipa_maybe_record_reference): Likewise.
10355 (ipa_clone_ref): Likewise.
10356 (ipa_clone_references): Likewise.
10357 (ipa_clone_referring): Likewise.
10358 (ipa_find_reference): Likewise.
10359 (ipa_remove_stmt_references): Likewise.
10360 (ipa_clear_stmts_in_references): Likewise.
10361 * ipa-ref.h (symtab_node_base): Likewise.
10362 (ipa_ref): Likewise.
10363 (ipa_record_reference): Likewise.
10364 (ipa_maybe_record_reference): Likewise.
10365 (ipa_clone_references): Likewise.
10366 (ipa_clone_referring): Likewise.
10367 (ipa_clone_ref): Likewise.
10368 (ipa_find_reference): Likewise.
10369 (ipa_remove_stmt_references): Likewise.
10370 (ipa_clear_stmts_in_references): Likewise.
10371 * ipa-reference.c (ipa_reference_write_optimization_summary):
10372 Likewise.
10373 * ipa.c (enqueue_node): Likewise.
10374 (process_references): Likewise.
10375 (walk_polymorphic_call_targets): Likewise.
10376 (symtab_remove_unreachable_nodes): Likewise.
10377 (address_taken_from_non_vtable_p): Likewise.
10378 (comdat_can_be_unshared_p_1): Likewise.
10379 (comdat_can_be_unshared_p): Likewise.
10380 (can_replace_by_local_alias): Likewise.
10381 (function_and_variable_visibility): Likewise.
10382 * is-a.h: Likewise (within example in comment).
10383 * lto-cgraph.c (input_cgraph_opt_summary): Likewise.
10384 (lto_symtab_encoder_encode): Likewise.
10385 (lto_symtab_encoder_delete_node): Likewise.
10386 (lto_symtab_encoder_in_partition_p): Likewise.
10387 (lto_set_symtab_encoder_in_partition): Likewise.
10388 (output_refs): Likewise.
10389 (compute_ltrans_boundary): Likewise.
10390 (output_symtab): Likewise.
10391 (input_node): Likewise.
10392 (input_ref): Likewise.
10393 (input_edge): Likewise.
10394 (input_cgraph_1): Likewise.
10395 (input_refs): Likewise.
10396 (output_cgraph_opt_summary): Likewise.
10397 (input_node_opt_summary): Likewise.
10398 (input_cgraph_opt_section): Likewise.
10399 * lto-section-in.c (lto_free_function_in_decl_state_for_node):
10400 Likewise.
10401 * lto-streamer-out.c (lto_output): Likewise.
10402 (output_symbol_p): Likewise.
10403 (produce_symtab): Likewise.
10404 * lto-streamer.h (lto_encoder_entry): Likewise.
10405 (lto_free_function_in_decl_state_for_node): Likewise.
10406 (lto_symtab_encoder_encode): Likewise.
10407 (lto_symtab_encoder_delete_node): Likewise.
10408 (lto_symtab_encoder_in_partition_p): Likewise.
10409 (lto_set_symtab_encoder_in_partition): Likewise.
10410 (lto_symtab_encoder_lookup): Likewise.
10411 (lsei_node): Likewise.
10412 (lto_symtab_encoder_deref): Likewise.
10413 * symtab.c (symtab_hash): Likewise.
10414 (assembler_name_hash): Likewise.
10415 (symtab_nodes): Likewise.
10416 (hash_node): Likewise.
10417 (eq_node): Likewise.
10418 (hash_node_by_assembler_name): Likewise.
10419 (eq_assembler_name): Likewise.
10420 (insert_to_assembler_name_hash): Likewise.
10421 (unlink_from_assembler_name_hash): Likewise.
10422 (symtab_prevail_in_asm_name_hash): Likewise.
10423 (symtab_register_node): Likewise.
10424 (symtab_insert_node_to_hashtable): Likewise.
10425 (symtab_unregister_node): Likewise.
10426 (symtab_get_node): Likewise.
10427 (symtab_remove_node): Likewise.
10428 (symtab_initialize_asm_name_hash): Likewise.
10429 (symtab_node_for_asm): Likewise.
10430 (symtab_add_to_same_comdat_group): Likewise.
10431 (symtab_dissolve_same_comdat_group_list): Likewise.
10432 (symtab_node_asm_name): Likewise.
10433 (symtab_node_name): Likewise.
10434 (dump_symtab_base): Likewise.
10435 (dump_symtab_node): Likewise.
10436 (dump_symtab): Likewise.
10437 (debug_symtab_node): Likewise.
10438 (verify_symtab_base): Likewise.
10439 (verify_symtab_node): Likewise.
10440 (verify_symtab): Likewise.
10441 (symtab_used_from_object_file_p): Likewise.
10442 (symtab_node_availability): Likewise.
10443 (symtab_alias_ultimate_target): Likewise.
10444 (fixup_same_cpp_alias_visibility): Likewise.
10445 (symtab_resolve_alias): Likewise.
10446 (symtab_for_node_and_aliases): Likewise.
10447 (symtab_for_node_and_aliases): Likewise.
10448 (symtab_nonoverwritable_alias_1): Likewise.
10449 (symtab_nonoverwritable_alias): Likewise.
10450 (symtab_semantically_equivalent_p): Likewise.
10451 * value-prof.c (init_node_map): Likewise.
10452 * varasm.c (find_decl): Likewise.
10453 * varpool.c (varpool_node_for_asm): Likewise.
10454 (varpool_remove_unreferenced_decls): Likewise.
10455
10456 2013-10-31 David Malcolm <dmalcolm@redhat.com>
10457
10458 Manual part of renaming of symtab_node_base to symtab_node.
10459
10460 * ipa-ref.h (symtab_node): Remove typedef to pointer type, as it
10461 clashes with the preferred name for the base class.
10462 (const_symtab_node): Remove redundant typedef.
10463
10464 2013-10-31 Jakub Jelinek <jakub@redhat.com>
10465
10466 * optabs.c (expand_vec_perm): Avoid vector mode punning
10467 SUBREGs in SET_DEST.
10468 * expmed.c (store_bit_field_1): Likewise.
10469 * config/i386/sse.md (movdi_to_sse, vec_pack_sfix_trunc_v2df,
10470 vec_pack_sfix_v2df, vec_shl_<mode>, vec_shr_<mode>,
10471 vec_interleave_high<mode>, vec_interleave_low<mode>): Likewise.
10472 * config/i386/i386.c (ix86_expand_vector_move_misalign,
10473 ix86_expand_sse_movcc, ix86_expand_int_vcond, ix86_expand_vec_perm,
10474 ix86_expand_sse_unpack, ix86_expand_args_builtin,
10475 ix86_expand_vector_init_duplicate, ix86_expand_vector_set,
10476 emit_reduc_half, expand_vec_perm_blend, expand_vec_perm_pshufb,
10477 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
10478 expand_vec_perm_vpshufb2_vpermq,
10479 expand_vec_perm_vpshufb2_vpermq_even_odd, expand_vec_perm_even_odd_1,
10480 expand_vec_perm_broadcast_1, expand_vec_perm_vpshufb4_vpermq2,
10481 ix86_expand_sse2_mulv4si3, ix86_expand_pinsr): Likewise.
10482 (expand_vec_perm_palignr): Likewise. Modify a copy of *d rather
10483 than *d itself.
10484
10485 2013-10-31 Uros Bizjak <ubizjak@gmail.com>
10486
10487 * config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments.
10488 Use gcc_unreachable for unhandled modes. Do not check results of
10489 expand_simple_binop. If not expanded to target, move the result.
10490
10491 2013-10-31 Chung-Ju Wu <jasonwucj@gmail.com>
10492 Shiva Chen <shiva0217@gmail.com>
10493
10494 * config.gcc (nds32*-*-*): Add nds32 target.
10495 * config/nds32/nds32.c: New file.
10496 * config/nds32/nds32.h: New file.
10497 * config/nds32/nds32.md: New file.
10498 * config/nds32/constants.md: New file.
10499 * config/nds32/constraints.md: New file.
10500 * config/nds32/iterators.md: New file.
10501 * config/nds32/nds32-doubleword.md: New file.
10502 * config/nds32/nds32-intrinsic.md: New file.
10503 * config/nds32/nds32_intrinsic.h: New file.
10504 * config/nds32/nds32-modes.def: New file.
10505 * config/nds32/nds32-multiple.md: New file.
10506 * config/nds32/nds32.opt: New file.
10507 * config/nds32/nds32-opts.h: New file.
10508 * config/nds32/nds32-protos.h: New file.
10509 * config/nds32/nds32-peephole2.md: New file.
10510 * config/nds32/pipelines.md: New file.
10511 * config/nds32/predicates.md: New file.
10512 * config/nds32/t-mlibs: New file.
10513 * common/config/nds32: New directory and files.
10514
10515 * doc/invoke.texi (NDS32 options): Document nds32 specific options.
10516 * doc/md.texi (NDS32 family): Document nds32 specific constraints.
10517 * doc/install.texi (Cross-Compiler-Specific Options): Document
10518 --with-nds32-lib for nds32 target.
10519 * doc/extend.texi (Function Attributes, Target Builtins): Document
10520 nds32 specific attributes.
10521
10522 2013-10-31 Vladimir Makarov <vmakarov@redhat.com>
10523
10524 * lra-constraints (process_alt_operands): Use the result
10525 elimination register for operand when matching constraints.
10526
10527 2013-10-31 Jakub Jelinek <jakub@redhat.com>
10528
10529 * tree-vrp.c (maybe_set_nonzero_bits): New function.
10530 (remove_range_assertions): Call it.
10531
10532 * tree.c (tree_ctz): New function.
10533 * tree.h (tree_ctz): New prototype.
10534 * tree-ssanames.h (get_range_info, get_nonzero_bits): Change
10535 first argument from tree to const_tree.
10536 * tree-ssanames.c (get_range_info, get_nonzero_bits): Likewise.
10537 * tree-vectorizer.h (vect_generate_tmps_on_preheader): New prototype.
10538 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): No longer
10539 static.
10540 * expr.c (highest_pow2_factor): Reimplemented using tree_ctz.
10541 * tree-vect-loop.c (vect_analyze_loop_operations,
10542 vect_transform_loop): Don't force scalar loop for bound just because
10543 number of iterations is unknown, only do it if it is not known to be
10544 a multiple of vectorization_factor.
10545 * builtins.c (get_object_alignment_2): Use tree_ctz on offset.
10546
10547 * gimple-pretty-print.c (dump_ssaname_info): Print newline also
10548 in case of VR_VARYING. Print get_nonzero_bits if not all ones.
10549 * tree-ssanames.h (struct range_info_def): Add nonzero_bits field.
10550 (set_nonzero_bits, get_nonzero_bits): New prototypes.
10551 * tree-ssa-ccp.c (get_default_value): Use get_range_info to see if
10552 a default def isn't partially constant.
10553 (ccp_finalize): If after IPA, set_range_info if integral SSA_NAME
10554 is known to be partially zero.
10555 (evaluate_stmt): If we'd return otherwise VARYING, use get_range_info
10556 to see if a default def isn't partially constant.
10557 * tree-ssanames.c (set_range_info): Initialize nonzero_bits upon
10558 creation of a range, if VR_RANGE, try to improve nonzero_bits from
10559 the range.
10560 (set_nonzero_bits, get_nonzero_bits): New functions.
10561
10562 * tree-cfg.c (assert_unreachable_fallthru_edge_p): New function.
10563 * tree-cfg.h (assert_unreachable_fallthru_edge_p): New prototype.
10564 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): New function.
10565 (remove_range_assertions): If ASSERT_EXPR_VAR has no other immediate
10566 uses but in the condition and ASSERT_EXPR and the other successor of
10567 the predecessor bb is __builtin_unreachable (), set_range_info of the
10568 ASSERT_EXPR_VAR to the range info of the ASSERT_EXPR's lhs.
10569
10570 2013-10-31 Martin Jambor <mjambor@suse.cz>
10571
10572 PR rtl-optimization/58934
10573 Revert:
10574 2013-10-30 Martin Jambor <mjambor@suse.cz>
10575 PR rtl-optimization/10474
10576 * ira.c (find_moveable_pseudos): Do not calculate dominance info
10577 nor df analysis.
10578 (interesting_dest_for_shprep): New function.
10579 (split_live_ranges_for_shrink_wrap): Likewise.
10580 (ira): Calculate dominance info and df analysis. Call
10581 split_live_ranges_for_shrink_wrap.
10582
10583 2013-10-31 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
10584 Yury Gribov <y.gribov@samsung.com>
10585
10586 PR sanitizer/58543
10587 * asan.c (asan_clear_shadow): Allocate a new vreg for temporary
10588 shadow pointer to avoid clobbering the main one.
10589
10590 2013-10-31 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10591
10592 * lower-subreg.c (resolve_simple_move): Copy REG_INC note.
10593
10594 2013-10-30 Vladimir Makarov <vmakarov@redhat.com>
10595
10596 PR bootstrap/58933
10597 * ira-color.c (update_costs_from_copies): Add new parameter. Use
10598 it for calling update_costs_from_allocno.
10599 (assign_hard_reg): Call restore_costs_from_copies only for
10600 !retry_p. Pass new argument to update_costs_from_copies.
10601 (color_pass): Pass new argument to update_costs_from_copies.
10602 (ira_mark_allocation_change): Ditto.
10603
10604 2013-10-30 Sharad Singhai <singhai@google.com>
10605
10606 PR middle-end/58134
10607 * opts.c (common_handle_option): Remove deprecated option
10608 -ftree-vectorizer-verbose.
10609 * doc/invoke.texi (Debugging Options): Ditto.
10610 * opts-global.c (handle_common_deferred_options): Ditto.
10611 (dump_remap_tree_vectorizer_verbose): Delete.
10612 * common.opt: Set -ftree-vectorizer-verbose as an ignored option.
10613
10614 2013-10-30 DJ Delorie <dj@redhat.com>
10615
10616 * config/rx/rx.c (ADD_RX_BUILTIN0): New macro, used for builtins
10617 that take no arguments.
10618
10619 2013-10-30 Joern Rennecke <joern.rennecke@embecosm.com>
10620
10621 PR other/58545
10622 * reload1.c (update_eliminables_and_spill): New function, broken
10623 out of reload.
10624 (reload): Use it. Check for frame size change after frame size
10625 alignment, and call update_eliminables_and_spill first if continue-ing.
10626
10627 2013-10-30 Cong Hou <congh@google.com>
10628
10629 PR target/58762
10630 * config/i386/i386-protos.h (ix86_expand_sse2_abs): New function.
10631 * config/i386/i386.c (ix86_expand_sse2_abs): New function.
10632 * config/i386/sse.md: Add SSE2 support to abs (8/16/32-bit-int).
10633
10634 2013-10-18 Mikael Pettersson <mikpelinux@gmail.com>
10635
10636 PR rtl-optimization/58369
10637 * reload1.c (compute_reload_subreg_offset): New function.
10638 (choose_reload_regs): Use it to pass endian-correct
10639 offset to subreg_regno_offset.
10640
10641 2013-10-30 Tobias Burnus <burnus@net-b.de>
10642
10643 PR other/33426
10644 * tree-cfg.c (replace_loop_annotate): Replace warning by
10645 warning_at.
10646
10647 2013-10-30 Jason Merrill <jason@redhat.com>
10648
10649 * configure.ac (loose_warn): Add -Wno-format if
10650 --disable-build-format-warnings.
10651
10652 2013-10-30 David Malcolm <dmalcolm@redhat.com>
10653
10654 * cgraphunit.c (analyze_functions): Split symtab_node declarations
10655 onto multiple lines to make things easier for rename_symtab.py.
10656
10657 * symtab.c (symtab_dissolve_same_comdat_group_list): Likewise.
10658 (symtab_semantically_equivalent_p): Likewise.
10659
10660 2013-10-30 Vladimir Makarov <vmakarov@redhat.com>
10661
10662 PR target/58784
10663 * lra.c (check_rtl): Remove address check before LRA work.
10664
10665 2013-10-30 Marc Glisse <marc.glisse@inria.fr>
10666
10667 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for a
10668 POINTER_PLUS_EXPR in the defining statement.
10669
10670 2013-10-30 Vladimir Makarov <vmakarov@redhat.com>
10671
10672 * regmove.c: Remove.
10673 * tree-pass.h (make_pass_regmove): Remove.
10674 * timevar.def (TV_REGMOVE): Remove.
10675 * passes.def (pass_regmove): Remove.
10676 * opts.c (default_options_table): Remove entry for regmove.
10677 * doc/passes.texi: Remove regmove pass description.
10678 * doc/invoke.texi (-foptimize-register-move, -fregmove): Remove
10679 options.
10680 (-fdump-rtl-regmove): Ditto.
10681 * common.opt (foptimize-register-move, fregmove): Ignore.
10682 * Makefile.in (OBJS): Remove regmove.o.
10683 * regmove.c: Remove.
10684 * ira-int.h (struct ira_allocno_pref, ira_pref_t): New structure
10685 and type.
10686 (struct ira_allocno) New member allocno_prefs.
10687 (ALLOCNO_PREFS): New macro.
10688 (ira_prefs, ira_prefs_num): New external vars.
10689 (ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New prototypes.
10690 (ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref): Ditto.
10691 (ira_add_allocno_pref, ira_remove_pref, ira_remove_allocno_prefs):
10692 Ditto.
10693 (ira_add_allocno_copy_to_list): Remove prototype.
10694 (ira_swap_allocno_copy_ends_if_necessary): Ditto.
10695 (ira_pref_iterator): New type.
10696 (ira_pref_iter_init, ira_pref_iter_cond): New functions.
10697 (FOR_EACH_PREF): New macro.
10698 * ira.c (commutative_constraint_p): Move from ira-conflicts.c.
10699 (ira_get_dup_out_num): Ditto. Rename from get_dup_num. Modify the
10700 code.
10701 (ira_setup_alts): New function.
10702 (decrease_live_ranges_number): New function.
10703 (ira): Call the above function.
10704 * ira-build.c (ira_prefs, ira_prefs_num): New global vars.
10705 (ira_create_allocno): Initialize allocno prefs.
10706 (pref_pool, pref_vec): New static vars.
10707 (initiate_prefs, find_allocno_pref, ira_create_pref): New
10708 functions.
10709 (add_allocno_pref_to_list, ira_add_allocno_pref, print_pref): Ditto.
10710 (ira_debug_pref, print_prefs, ira_debug_prefs): Ditto.
10711 (print_allocno_prefs, ira_debug_allocno_prefs, finish_pref): Ditto.
10712 (ira_remove_pref, ira_remove_allocno_prefs, finish_prefs): Ditto.
10713 (ira_add_allocno_copy_to_list): Make static. Rename to
10714 add_allocno_copy_to_list.
10715 (ira_swap_allocno_copy_ends_if_necessary): Make static. Rename to
10716 swap_allocno_copy_ends_if_necessary.
10717 (remove_unnecessary_allocnos, remove_low_level_allocnos): Call
10718 ira_remove_allocno_prefs.
10719 (ira_flattening): Ditto.
10720 (ira_build): Call initiate_prefs, print_prefs.
10721 (ira_destroy): Call finish_prefs.
10722 * ira-color.c (struct update_cost_record): New.
10723 (struct allocno_color_data): Add new member update_cost_records.
10724 (update_cost_record_pool): New static var.
10725 (init_update_cost_records, get_update_cost_record): New functions.
10726 (free_update_cost_record_list, finish_update_cost_records): Ditto.
10727 (struct update_cost_queue_elem): Add member from.
10728 (initiate_cost_update): Call init_update_cost_records.
10729 (finish_cost_update): Call finish_update_cost_records.
10730 (queue_update_cost, get_next_update_cost): Add new param from.
10731 (Update_allocno_cost, update_costs_from_allocno): New functions.
10732 (update_costs_from_prefs): Ditto.
10733 (update_copy_costs): Rename to update_costs_from_copies.
10734 (restore_costs_from_copies): New function.
10735 (update_conflict_hard_regno_costs): Don't go back.
10736 (assign_hard_reg): Call restore_costs_from_copies. Add printing
10737 more debug info.
10738 (pop_allocnos): Add priniting more debug info.
10739 (color_allocnos): Remove prefs for conflicting hard regs.
10740 Call update_costs_from_prefs.
10741 * ira-conflicts.c (commutative_constraint_p): Move to ira.c
10742 (get_dup_num): Rename, modify, and move to ira.c
10743 (process_regs_for_copy): Add prefs.
10744 (add_insn_allocno_copies): Put src as first arg of
10745 process_regs_for_copy. Remove dead code. Call ira_setup_alts.
10746 * ira-costs.c (record_reg_classes): Modify and move code into
10747 record_operands_costs.
10748 (find_costs_and_classes): Create prefs for the hard reg of small
10749 reg class.
10750 (process_bb_node_for_hard_reg_moves): Add prefs.
10751
10752 2013-10-30 Richard Biener <rguenther@suse.de>
10753
10754 PR middle-end/57100
10755 * basic-block.h (pre_and_rev_post_order_compute_fn): New function.
10756 * cfganal.c (pre_and_rev_post_order_compute_fn): New function
10757 as worker for ...
10758 (pre_and_rev_post_order_compute): ... which now wraps it.
10759 * graph.c (draw_cfg_nodes_no_loops): Use
10760 pre_and_rev_post_order_compute_fn to avoid ICEing and dependence
10761 on cfun.
10762
10763 2013-10-30 Christian Bruel <christian.bruel@st.com>
10764
10765 * config/sh/sh-mem.cc (sh_expand_cmpnstr): New function.
10766 (sh_expand_cmpstr): Handle known align and schedule improvements.
10767 * config/sh/sh-protos.h (sh_expand_cmpstrn): Declare.
10768 * config/sh/sh.md (cmpstrnsi): New pattern.
10769
10770 2013-10-30 Martin Jambor <mjambor@suse.cz>
10771
10772 PR rtl-optimization/10474
10773 * ira.c (find_moveable_pseudos): Do not calculate dominance info
10774 nor df analysis.
10775 (interesting_dest_for_shprep): New function.
10776 (split_live_ranges_for_shrink_wrap): Likewise.
10777 (ira): Calculate dominance info and df analysis. Call
10778 split_live_ranges_for_shrink_wrap.
10779
10780 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10781
10782 PR target/58854
10783 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage.
10784
10785 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
10786
10787 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
10788 * tree.h (POINTER_BOUNDS_P): New.
10789 (BOUNDED_TYPE_P): New.
10790 (BOUNDED_P): New.
10791 (pointer_bounds_type_node): New.
10792 * tree.c (build_common_tree_nodes): Initialize
10793 pointer_bounds_type_node.
10794 * gimple.h (gimple_call_get_nobnd_arg_index): New.
10795 (gimple_call_num_nobnd_args): New.
10796 (gimple_call_nobnd_arg): New.
10797 (gimple_return_retbnd): New.
10798 (gimple_return_set_retbnd): New
10799 * gimple.c (gimple_build_return): Increase number of ops
10800 for return statement.
10801 (gimple_call_get_nobnd_arg_index): New.
10802 * gimple-pretty-print.c (dump_gimple_return): Print second op.
10803
10804 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
10805
10806 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
10807 with "chkp ctor" and "bnd_legacy" attributes.
10808 * gimplify.c (gimplify_init_constructor): Avoid infinite
10809 loop during gimplification of bounds initializer.
10810
10811 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
10812
10813 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
10814 (handle_bnd_legacy): New.
10815 (c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
10816 * doc/extend.texi: Document bnd_variable_size and bnd_legacy
10817 attributes.
10818
10819 2013-10-29 Ilya Enkovich <ilya.enkovich@intel.com>
10820
10821 * builtin-types.def (BT_FN_VOID_CONST_PTR): New.
10822 (BT_FN_PTR_CONST_PTR): New.
10823 (BT_FN_CONST_PTR_CONST_PTR): New.
10824 (BT_FN_PTR_CONST_PTR_SIZE): New.
10825 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
10826 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
10827 (BT_FN_VOID_CONST_PTR_SIZE): New.
10828 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
10829 * chkp-builtins.def: New.
10830 * builtins.def: include chkp-builtins.def.
10831 (DEF_CHKP_BUILTIN): New.
10832 * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
10833 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
10834 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
10835 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
10836 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
10837 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
10838 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
10839 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
10840 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
10841 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
10842 * common.opt (fcheck-pointer-bounds): New.
10843 * toplev.c (process_options): Check Pointer Bounds Checker is
10844 supported.
10845 * doc/extend.texi: Document Pointer Bounds Checker built-in functions.
10846
10847 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
10848
10849 * target.def (builtin_chkp_function): New.
10850 (chkp_bound_type): New.
10851 (chkp_bound_mode): New.
10852 (fn_abi_va_list_bounds_size): New.
10853 (load_bounds_for_arg): New.
10854 (store_bounds_for_arg): New.
10855 * targhooks.h (default_load_bounds_for_arg): New.
10856 (default_store_bounds_for_arg): New.
10857 (default_fn_abi_va_list_bounds_size): New.
10858 (default_chkp_bound_type): New.
10859 (default_chkp_bound_mode): New.
10860 (default_builtin_chkp_function): New.
10861 * targhooks.c (default_load_bounds_for_arg): New.
10862 (default_store_bounds_for_arg): New.
10863 (default_fn_abi_va_list_bounds_size): New.
10864 (default_chkp_bound_type): New.
10865 (default_chkp_bound_mode); New.
10866 (default_builtin_chkp_function): New.
10867 * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
10868 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
10869 (TARGET_STORE_BOUNDS_FOR_ARG): New.
10870 (TARGET_BUILTIN_CHKP_FUNCTION): New.
10871 (TARGET_CHKP_BOUND_TYPE): New.
10872 (TARGET_CHKP_BOUND_MODE): New.
10873 * doc/tm.texi: Regenerated.
10874 * langhooks.h (lang_hooks): Add chkp_supported field.
10875 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
10876 (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.
10877
10878 2013-10-29 Andrew Pinski <apinski@cavium.com>
10879
10880 * tree-ssa-ifcombine.c: Include rtl.h and tm_p.h.
10881 (ifcombine_ifandif): Handle cases where maybe_fold_and_comparisons
10882 fails, combining the branches anyways.
10883 (tree_ssa_ifcombine): Inverse the order of the basic block walk,
10884 increases the number of combinings.
10885 * gimple.h (gsi_start_nondebug_after_labels_bb): New function.
10886
10887 2013-10-29 Mike Stump <mikestump@comcast.net>
10888
10889 * machmode.def (PARTIAL_INT_MODE): Add precision and name.
10890 * genmodes.c (PARTIAL_INT_MODE): Add precision and name.
10891 (make_vector_mode): Increase namebuf to 16.
10892 (emit_insn_modes_h): When processing BImode, don't
10893 also match partial int modes.
10894 (emit_class_narrowest_mode): Likewise.
10895
10896 * config/bfin/bfin-modes.def: Add precision to PDI.
10897 * config/m32c/m32c-modes.def: Add precision to PSI.
10898 * config/msp430/msp430-modes.def: Add precision to PSI.
10899 * config/rs6000/rs6000-modes.def: Add precision to PTI.
10900 * config/sh/sh-modes.def: Add precision to PSI and PDI.
10901
10902 2013-10-29 Oleg Endo <olegendo@gcc.gnu.org>
10903
10904 PR target/54236
10905 * config/sh/sh.md (*addc): Rename existing variations to ...
10906 (*addc_r_r_1, *addc_2r_1, *addc_r_1): ... these.
10907 (*addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_2r_lsb, *addc_r_msb,
10908 *addc_r_r_msb, *addc_2r_msb): New insn_and_split patterns.
10909 * config/sh/sh.c (addsubcosts): Handle some addc special cases.
10910
10911 2013-10-29 Teresa Johnson <tejohnson@google.com>
10912
10913 PR ipa/58862
10914 * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile
10915 insanities when updating probabilities.
10916
10917 2013-10-29 David Malcolm <dmalcolm@redhat.com>
10918
10919 * gdbhooks.py (CGraphNodePrinter.to_string): Update gdb
10920 prettyprinter for cgraph_node to reflect the conversion of the
10921 symtable types to a C++ class hierarchy: it now *is* a
10922 symtab_node_base, rather than having one (named "symbol").
10923
10924 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
10925
10926 * builtins.c (is_builtin_name): Added a check for __cilkrts_detach and
10927 __cilkrts_pop_frame. If matched, then return true for built-in
10928 function name.
10929 (expand_builtin): Added BUILT_IN_CILK_DETACH and
10930 BUILT_IN_CILK_POP_FRAME case.
10931 * langhooks-def.h (lhd_install_body_with_frame_cleanup): New prototype.
10932 (lhs_cilk_detect_spawn): Likewise.
10933 (LANG_HOOKS_DECLS): Added LANG_HOOKS_CILKPLUS.
10934 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): New #define.
10935 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
10936 (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
10937 (LANG_HOOKS_CILKPLUS): Likewise.
10938 * tree.h (CILK_SPAWN_FN): Likewise.
10939 * builtin.def (DEF_CILK_BUILTIN_STUB): Likewise.
10940 * Makefile.in (C_COMMON_OBJS): Added c-family/cilk.o.
10941 (OBJS): Added cilk-common.o.
10942 (BUILTINS_DEF): Added cilk-builtins.def.
10943 * langhooks.c (lhd_install_body_with_frame_cleanup): New function.
10944 (lhd_cilk_detect_spawn): Likewise.
10945 * langhooks.h (lang_hooks_for_cilkplus): New struct.
10946 (struct lang_hooks): Added new field called "cilkplus."
10947 * cilk-common.c: New file.
10948 * cilk.h: Likewise.
10949 * cilk-builtins.def: Likewise.
10950 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Added
10951 "__cilk" macro and set it to 200.
10952 * function.h (struct function::cilk_frame_decl): New field.
10953 (struct function::is_cilk_function): Likewise.
10954 (struct function::calls_cilk_spawn): Likewise.
10955 * gimplify.c (gimplify_call_expr): Added a check if the function call
10956 being gimplified is a spawn detach point. If so, then add pop_frame
10957 and detach function calls.
10958 (gimplify_expr): Added a CILK_SPAWN_STMT and CILK_SYNC_STMT case
10959 for gimplifying _Cilk_spawn and _Cilk_sync statements.
10960 (gimplify_return_expr): Added a check for _Cilk_spawn usage in
10961 function. If so, added a _Cilk_sync and gimplified it.
10962 (gimplify_modify_expr): Added a check for _Cilk_spawn in MODIFY and
10963 INIT_EXPRs. If so, then call gimplify_cilk_spawn.
10964 * ipa-inline-analysis (initialize_inline_failed): Prevent inlining of
10965 spawner function.
10966 (can_inline_edge_p): Prevent inling of spawnee function.
10967 * ira.c (ira_setup_eliminable_regset): Force usage of frame pointer
10968 for functions that use Cilk keywords.
10969 * tree-inline.h (struct copy_body_data::remap_var_for_cilk): New field.
10970 * tree-pretty-print.c (dump_generic_node): Added CILK_SPAWN_STMT and
10971 CILK_SYNC_STMT cases.
10972 * tree.def (DEFTREECODE): Added CILK_SPAWN_STMT and CILK_SYNC_STMT
10973 trees.
10974 * generic.texi (CILK_SPAWN_STMT): Added documentation for _Cilk_spawn.
10975 (CILK_SYNC_STMT): Added documentation for _Cilk_sync.
10976 * passes.texi (Cilk Keywords): New section that describes the compiler
10977 code changes for handling Cilk Keywords.
10978
10979 2013-10-29 David Malcolm <dmalcolm@redhat.com>
10980
10981 Patch autogenerated by refactor_symtab.py from
10982 https://github.com/davidmalcolm/gcc-refactoring-scripts
10983 revision 58bb219cc090b2f4516a9297d868c245495ee622
10984
10985 * asan.c (asan_finish_file): Update for conversion of symtab types to
10986 a true class hierarchy.
10987 * cfgexpand.c (estimated_stack_frame_size): Likewise.
10988 * cgraph.c (cgraph_get_body): Likewise.
10989 (cgraph_get_create_real_symbol_node): Likewise.
10990 (verify_cgraph_node): Likewise.
10991 (verify_edge_corresponds_to_fndecl): Likewise.
10992 (verify_edge_count_and_frequency): Likewise.
10993 (cgraph_will_be_removed_from_program_if_no_direct_calls): Likewise.
10994 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
10995 (cgraph_can_remove_if_no_direct_calls_and_refs_p): Likewise.
10996 (cgraph_node_cannot_return): Likewise.
10997 (cgraph_set_pure_flag_1): Likewise.
10998 (cgraph_set_const_flag_1): Likewise.
10999 (cgraph_set_nothrow_flag_1): Likewise.
11000 (cgraph_make_node_local_1): Likewise.
11001 (cgraph_for_node_and_aliases): Likewise.
11002 (cgraph_for_node_thunks_and_aliases): Likewise.
11003 (cgraph_node_can_be_local_p): Likewise.
11004 (cgraph_node_cannot_be_local_p_1): Likewise.
11005 (cgraph_function_body_availability): Likewise.
11006 (dump_cgraph_node): Likewise.
11007 (cgraph_rtl_info): Likewise.
11008 (cgraph_mark_address_taken_node): Likewise.
11009 (cgraph_remove_node): Likewise.
11010 (cgraph_release_function_body): Likewise.
11011 (cgraph_update_edges_for_call_stmt_node): Likewise.
11012 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
11013 (cgraph_make_edge_direct): Likewise.
11014 (cgraph_resolve_speculation): Likewise.
11015 (cgraph_speculative_call_info): Likewise.
11016 (cgraph_turn_edge_to_speculative): Likewise.
11017 (cgraph_create_edge_1): Likewise.
11018 (cgraph_set_call_stmt): Likewise.
11019 (cgraph_node_for_asm): Likewise.
11020 (cgraph_add_thunk): Likewise.
11021 (cgraph_same_body_alias): Likewise.
11022 (cgraph_create_function_alias): Likewise.
11023 (cgraph_create_node): Likewise.
11024 (cgraph_create_empty_node): Likewise.
11025 (record_function_versions): Likewise.
11026 (used_from_object_file_p): Likewise.
11027 * cgraph.h (symtab_can_be_discarded): Likewise.
11028 (symtab_real_symbol_p): Likewise.
11029 (cgraph_mark_force_output_node): Likewise.
11030 (cgraph_edge_recursive_p): Likewise.
11031 (symtab_alias_target): Likewise.
11032 (varpool_all_refs_explicit_p): Likewise.
11033 (varpool_can_remove_if_no_refs): Likewise.
11034 (cgraph_only_called_directly_or_aliased_p): Likewise.
11035 (cgraph_next_function_with_gimple_body): Likewise.
11036 (cgraph_first_function_with_gimple_body): Likewise.
11037 (cgraph_function_with_gimple_body_p): Likewise.
11038 (cgraph_next_function): Likewise.
11039 (cgraph_first_function): Likewise.
11040 (cgraph_next_defined_function): Likewise.
11041 (cgraph_first_defined_function): Likewise.
11042 (varpool_next_defined_variable): Likewise.
11043 (varpool_first_defined_variable): Likewise.
11044 (varpool_next_static_initializer): Likewise.
11045 (varpool_first_static_initializer): Likewise.
11046 (varpool_next_variable): Likewise.
11047 (varpool_first_variable): Likewise.
11048 (varpool_node_name): Likewise.
11049 (varpool): Likewise.
11050 (cgraph): Likewise.
11051 (is_a_helper <varpool_node>::test): Likewise.
11052 (is_a_helper <cgraph_node>::test): Likewise.
11053 (varpool_variable_node): Likewise.
11054 (cgraph_function_or_thunk_node): Likewise.
11055 (varpool_alias_target): Likewise.
11056 (cgraph_alias_target): Likewise.
11057 (cgraph_node_name): Likewise.
11058 (varpool_node_asm_name): Likewise.
11059 (cgraph_node_asm_name): Likewise.
11060 * cgraphbuild.c (remove_cgraph_callee_edges): Likewise.
11061 (cgraph_rebuild_references): Likewise.
11062 (rebuild_cgraph_edges): Likewise.
11063 (record_eh_tables): Likewise.
11064 (build_cgraph_edges): Likewise.
11065 (mark_store): Likewise.
11066 (mark_load): Likewise.
11067 (mark_address): Likewise.
11068 (record_type_list): Likewise.
11069 (record_reference): Likewise.
11070 * cgraphclones.c (cgraph_materialize_all_clones): Likewise.
11071 (cgraph_materialize_clone): Likewise.
11072 (cgraph_function_versioning): Likewise.
11073 (cgraph_copy_node_for_versioning): Likewise.
11074 (update_call_expr): Likewise.
11075 (cgraph_find_replacement_node): Likewise.
11076 (cgraph_create_virtual_clone): Likewise.
11077 (cgraph_clone_node): Likewise.
11078 * cgraphunit.c (compile): Likewise.
11079 (output_weakrefs): Likewise.
11080 (output_in_order): Likewise.
11081 (expand_function): Likewise.
11082 (assemble_thunks_and_aliases): Likewise.
11083 (expand_thunk): Likewise.
11084 (mark_functions_to_output): Likewise.
11085 (handle_alias_pairs): Likewise.
11086 (analyze_functions): Likewise.
11087 (walk_polymorphic_call_targets): Likewise.
11088 (varpool_finalize_decl): Likewise.
11089 (process_function_and_variable_attributes): Likewise.
11090 (cgraph_process_same_body_aliases): Likewise.
11091 (analyze_function): Likewise.
11092 (cgraph_add_new_function): Likewise.
11093 (cgraph_finalize_function): Likewise.
11094 (referred_to_p): Likewise.
11095 (cgraph_reset_node): Likewise.
11096 (cgraph_process_new_functions): Likewise.
11097 (enqueue_node): Likewise.
11098 (decide_is_symbol_needed): Likewise.
11099 * coverage.c (coverage_compute_profile_id): Likewise.
11100 * dbxout.c (dbxout_expand_expr): Likewise.
11101 * dwarf2out.c (premark_types_used_by_global_vars_helper): Likewise.
11102 (reference_to_unused): Likewise.
11103 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
11104 * gimplify.c (unvisit_body): Likewise.
11105 (unshare_body): Likewise.
11106 * ipa-cp.c (ipcp_generate_summary): Likewise.
11107 (ipcp_decision_stage): Likewise.
11108 (identify_dead_nodes): Likewise.
11109 (decide_whether_version_node): Likewise.
11110 (decide_about_value): Likewise.
11111 (perhaps_add_new_callers): Likewise.
11112 (create_specialized_node): Likewise.
11113 (update_profiling_info): Likewise.
11114 (ipcp_propagate_stage): Likewise.
11115 (estimate_local_effects): Likewise.
11116 (good_cloning_opportunity_p): Likewise.
11117 (devirtualization_time_bonus): Likewise.
11118 (propagate_constants_accross_call): Likewise.
11119 (initialize_node_lattices): Likewise.
11120 (ipcp_cloning_candidate_p): Likewise.
11121 (determine_versionability): Likewise.
11122 (print_all_lattices): Likewise.
11123 (print_lattice): Likewise.
11124 (ipcp_discover_new_direct_edges): Likewise.
11125 * ipa-devirt.c (ipa_devirt): Likewise.
11126 (likely_target_p): Likewise.
11127 (update_type_inheritance_graph): Likewise.
11128 (possible_polymorphic_call_target_p): Likewise.
11129 (dump_possible_polymorphic_call_targets): Likewise.
11130 (devirt_variable_node_removal_hook): Likewise.
11131 (record_binfo): Likewise.
11132 (maybe_record_node): Likewise.
11133 (build_type_inheritance_graph): Likewise.
11134 * ipa-inline-analysis.c (inline_write_summary): Likewise.
11135 (inline_generate_summary): Likewise.
11136 (inline_analyze_function): Likewise.
11137 (do_estimate_growth): Likewise.
11138 (simple_edge_hints): Likewise.
11139 (estimate_node_size_and_time): Likewise.
11140 (estimate_edge_devirt_benefit): Likewise.
11141 (compute_inline_parameters): Likewise.
11142 (estimate_function_body_sizes): Likewise.
11143 (compute_bb_predicates): Likewise.
11144 (initialize_inline_failed): Likewise.
11145 (dump_inline_summary): Likewise.
11146 (dump_inline_edge_summary): Likewise.
11147 * ipa-inline-transform.c (inline_transform): Likewise.
11148 (preserve_function_body_p): Likewise.
11149 (save_inline_function_body): Likewise.
11150 (inline_call): Likewise.
11151 (clone_inlined_nodes): Likewise.
11152 (can_remove_node_now_p): Likewise.
11153 (can_remove_node_now_p_1): Likewise.
11154 * ipa-inline.c (early_inliner): Likewise.
11155 (early_inline_small_functions): Likewise.
11156 (inline_always_inline_functions): Likewise.
11157 (ipa_inline): Likewise.
11158 (flatten_function): Likewise.
11159 (inline_small_functions): Likewise.
11160 (speculation_useful_p): Likewise.
11161 (recursive_inlining): Likewise.
11162 (update_caller_keys): Likewise.
11163 (reset_edge_caches): Likewise.
11164 (update_edge_key): Likewise.
11165 (edge_badness): Likewise.
11166 (relative_time_benefit): Likewise.
11167 (want_inline_self_recursive_call_p): Likewise.
11168 (want_inline_small_function_p): Likewise.
11169 (want_early_inline_function_p): Likewise.
11170 (num_calls): Likewise.
11171 (can_early_inline_edge_p): Likewise.
11172 (can_inline_edge_p): Likewise.
11173 (report_inline_failed_reason): Likewise.
11174 * ipa-profile.c (ipa_profile): Likewise.
11175 (ipa_propagate_frequency): Likewise.
11176 (ipa_propagate_frequency_1): Likewise.
11177 (ipa_profile_generate_summary): Likewise.
11178 * ipa-prop.c (ipcp_transform_function): Likewise.
11179 (read_replacements_section): Likewise.
11180 (ipa_prop_read_section): Likewise.
11181 (ipa_modify_call_arguments): Likewise.
11182 (ipa_print_node_params): Likewise.
11183 (propagate_controlled_uses): Likewise.
11184 (update_indirect_edges_after_inlining): Likewise.
11185 (remove_described_reference): Likewise.
11186 (ipa_make_edge_direct_to_target): Likewise.
11187 (ipa_analyze_node): Likewise.
11188 (ipa_analyze_params_uses): Likewise.
11189 (ipa_compute_jump_functions): Likewise.
11190 (ipa_get_callee_param_type): Likewise.
11191 (ipa_print_node_jump_functions): Likewise.
11192 (ipa_initialize_node_params): Likewise.
11193 (ipa_populate_param_decls): Likewise.
11194 (ipa_func_spec_opts_forbid_analysis_p): Likewise.
11195 (write_agg_replacement_chain): Likewise.
11196 (ipa_write_node_info): Likewise.
11197 (ipa_edge_duplication_hook): Likewise.
11198 (try_decrement_rdesc_refcount): Likewise.
11199 * ipa-pure-const.c (propagate_nothrow): Likewise.
11200 (propagate_pure_const): Likewise.
11201 (pure_const_read_summary): Likewise.
11202 (pure_const_write_summary): Likewise.
11203 (analyze_function): Likewise.
11204 * ipa-ref-inline.h (ipa_ref_referred_ref_list): Likewise.
11205 (ipa_ref_referring_ref_list): Likewise.
11206 * ipa-ref.c (ipa_clear_stmts_in_references): Likewise.
11207 (ipa_remove_stmt_references): Likewise.
11208 (ipa_find_reference): Likewise.
11209 (ipa_dump_referring): Likewise.
11210 (ipa_dump_references): Likewise.
11211 (ipa_record_reference): Likewise.
11212 * ipa-reference.c (ipa_reference_read_optimization_summary): Likewise.
11213 (ipa_reference_write_optimization_summary): Likewise.
11214 (write_node_summary_p): Likewise.
11215 (propagate): Likewise.
11216 (read_write_all_from_decl): Likewise.
11217 (generate_summary): Likewise.
11218 (analyze_function): Likewise.
11219 (propagate_bits): Likewise.
11220 (ipa_reference_get_not_written_global): Likewise.
11221 (ipa_reference_get_not_read_global): Likewise.
11222 * ipa-split.c (execute_split_functions): Likewise.
11223 (split_function): Likewise.
11224 * ipa-utils.c (ipa_merge_profiles): Likewise.
11225 (dump_cgraph_node_set): Likewise.
11226 (ipa_reverse_postorder): Likewise.
11227 (ipa_edge_within_scc): Likewise.
11228 (ipa_get_nodes_in_cycle): Likewise.
11229 (ipa_free_postorder_info): Likewise.
11230 (ipa_reduced_postorder): Likewise.
11231 (searchc): Likewise.
11232 (recursive_call_p): Likewise.
11233 * ipa.c (ipa_cdtor_merge): Likewise.
11234 (record_cdtor_fn): Likewise.
11235 (function_and_variable_visibility): Likewise.
11236 (varpool_externally_visible_p): Likewise.
11237 (cgraph_externally_visible_p): Likewise.
11238 (comdat_can_be_unshared_p): Likewise.
11239 (comdat_can_be_unshared_p_1): Likewise.
11240 (address_taken_from_non_vtable_p): Likewise.
11241 (ipa_discover_readonly_nonaddressable_vars): Likewise.
11242 (symtab_remove_unreachable_nodes): Likewise.
11243 (walk_polymorphic_call_targets): Likewise.
11244 (process_references): Likewise.
11245 (enqueue_node): Likewise.
11246 (has_addr_references_p): Likewise.
11247 (cgraph_non_local_node_p_1): Likewise.
11248 * is-a.h (varpool_analyze_node): Likewise.
11249 * lto-cgraph.c (input_symtab): Likewise.
11250 (merge_profile_summaries): Likewise.
11251 (input_cgraph_1): Likewise.
11252 (input_edge): Likewise.
11253 (input_varpool_node): Likewise.
11254 (input_node): Likewise.
11255 (input_overwrite_node): Likewise.
11256 (compute_ltrans_boundary): Likewise.
11257 (output_refs): Likewise.
11258 (lto_output_varpool_node): Likewise.
11259 (lto_output_node): Likewise.
11260 (reachable_from_other_partition_p): Likewise.
11261 (referenced_from_other_partition_p): Likewise.
11262 (lto_output_edge): Likewise.
11263 (output_node_opt_summary): Likewise.
11264 (add_node_to): Likewise.
11265 (reachable_from_this_partition_p): Likewise.
11266 (lto_set_symtab_encoder_in_partition): Likewise.
11267 (lto_symtab_encoder_in_partition_p): Likewise.
11268 (lto_set_symtab_encoder_encode_initializer): Likewise.
11269 (lto_symtab_encoder_encode_initializer_p): Likewise.
11270 (lto_set_symtab_encoder_encode_body): Likewise.
11271 (lto_symtab_encoder_encode_body_p): Likewise.
11272 * lto-section-in.c (lto_free_function_in_decl_state_for_node):
11273 Likewise.
11274 * lto-streamer-in.c (lto_read_body): Likewise.
11275 (fixup_call_stmt_edges): Likewise.
11276 (fixup_call_stmt_edges_1): Likewise.
11277 * lto-streamer-out.c (produce_symtab): Likewise.
11278 (output_symbol_p): Likewise.
11279 (write_symbol): Likewise.
11280 (lto_output): Likewise.
11281 (copy_function): Likewise.
11282 (output_function): Likewise.
11283 * passes.c (function_called_by_processed_nodes_p): Likewise.
11284 (ipa_write_optimization_summaries): Likewise.
11285 (ipa_write_summaries): Likewise.
11286 (do_per_function_toporder): Likewise.
11287 (do_per_function): Likewise.
11288 (dump_passes): Likewise.
11289 * symtab.c (symtab_semantically_equivalent_p): Likewise.
11290 (symtab_nonoverwritable_alias): Likewise.
11291 (symtab_nonoverwritable_alias_1): Likewise.
11292 (symtab_for_node_and_aliases): Likewise.
11293 (symtab_resolve_alias): Likewise.
11294 (fixup_same_cpp_alias_visibility): Likewise.
11295 (symtab_alias_ultimate_target): Likewise.
11296 (symtab_used_from_object_file_p): Likewise.
11297 (verify_symtab_base): Likewise.
11298 (dump_symtab_base): Likewise.
11299 (symtab_node_name): Likewise.
11300 (symtab_node_asm_name): Likewise.
11301 (symtab_dissolve_same_comdat_group_list): Likewise.
11302 (symtab_add_to_same_comdat_group): Likewise.
11303 (symtab_unregister_node): Likewise.
11304 (symtab_insert_node_to_hashtable): Likewise.
11305 (symtab_register_node): Likewise.
11306 (unlink_from_assembler_name_hash): Likewise.
11307 (insert_to_assembler_name_hash): Likewise.
11308 (eq_assembler_name): Likewise.
11309 (hash_node_by_assembler_name): Likewise.
11310 (eq_node): Likewise.
11311 (hash_node): Likewise.
11312 * toplev.c (wrapup_global_declaration_2): Likewise.
11313 * trans-mem.c (ipa_tm_execute): Likewise.
11314 (ipa_tm_transform_clone): Likewise.
11315 (ipa_tm_transform_transaction): Likewise.
11316 (ipa_tm_transform_calls_redirect): Likewise.
11317 (ipa_tm_insert_gettmclone_call): Likewise.
11318 (ipa_tm_insert_irr_call): Likewise.
11319 (ipa_tm_create_version): Likewise.
11320 (ipa_tm_create_version_alias): Likewise.
11321 (ipa_tm_mark_forced_by_abi_node): Likewise.
11322 (ipa_tm_mark_force_output_node): Likewise.
11323 (ipa_tm_diagnose_tm_safe): Likewise.
11324 (ipa_tm_mayenterirr_function): Likewise.
11325 (ipa_tm_scan_irr_function): Likewise.
11326 (ipa_tm_note_irrevocable): Likewise.
11327 (ipa_tm_scan_calls_clone): Likewise.
11328 (get_cg_data): Likewise.
11329 * tree-eh.c (tree_could_trap_p): Likewise.
11330 * tree-emutls.c (ipa_lower_emutls): Likewise.
11331 (create_emultls_var): Likewise.
11332 (lower_emutls_function_body): Likewise.
11333 (gen_emutls_addr): Likewise.
11334 (emutls_decl): Likewise.
11335 (new_emutls_decl): Likewise.
11336 * tree-inline.c (tree_function_versioning): Likewise.
11337 (optimize_inline_calls): Likewise.
11338 (expand_call_inline): Likewise.
11339 (estimate_num_insns): Likewise.
11340 (copy_bb): Likewise.
11341 (delete_unreachable_blocks_update_callgraph): Likewise.
11342 * tree-nested.c (gimplify_all_functions): Likewise.
11343 (create_nesting_tree): Likewise.
11344 (check_for_nested_with_variably_modified): Likewise.
11345 * tree-pretty-print.c (dump_function_header): Likewise.
11346 * tree-profile.c (tree_profiling): Likewise.
11347 * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
11348 (modify_function): Likewise.
11349 (convert_callers): Likewise.
11350 (convert_callers_for_node): Likewise.
11351 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
11352 (associate_varinfo_to_alias): Likewise.
11353 (create_variable_info_for): Likewise.
11354 (get_constraint_for_ssa_var): Likewise.
11355 * tree-vectorizer.c (increase_alignment): Likewise.
11356 * tree.c (find_decls_types_in_var): Likewise.
11357 (find_decls_types_in_node): Likewise.
11358 (free_lang_data_in_decl): Likewise.
11359 * value-prof.c (gimple_ic_transform): Likewise.
11360 (gimple_ic): Likewise.
11361 (check_ic_target): Likewise.
11362 (init_node_map): Likewise.
11363 * varasm.c (decl_binds_to_current_def_p): Likewise.
11364 (default_binds_local_p_1): Likewise.
11365 (dump_tm_clone_pairs): Likewise.
11366 (assemble_alias): Likewise.
11367 (find_decl): Likewise.
11368 (mark_decl_referenced): Likewise.
11369 * varpool.c (varpool_for_node_and_aliases): Likewise.
11370 (varpool_extra_name_alias): Likewise.
11371 (varpool_create_variable_alias): Likewise.
11372 (add_new_static_var): Likewise.
11373 (varpool_finalize_named_section_flags): Likewise.
11374 (varpool_remove_unreferenced_decls): Likewise.
11375 (enqueue_node): Likewise.
11376 (varpool_assemble_decl): Likewise.
11377 (assemble_aliases): Likewise.
11378 (varpool_analyze_node): Likewise.
11379 (cgraph_variable_initializer_availability): Likewise.
11380 (varpool_add_new_variable): Likewise.
11381 (ctor_for_folding): Likewise.
11382 (dump_varpool_node): Likewise.
11383 (varpool_remove_initializer): Likewise.
11384 (varpool_remove_node): Likewise.
11385 (varpool_node_for_decl): Likewise.
11386 (varpool_create_empty_node): Likewise.
11387 * config/i386/i386.c (ix86_generate_version_dispatcher_body): Likewise.
11388 (ix86_get_function_versions_dispatcher): Likewise.
11389
11390 2013-10-29 David Malcolm <dmalcolm@redhat.com>
11391
11392 * cgraph.h (symtab_node_base): Convert to a class;
11393 add GTY((desc ("%h.type"), tag ("SYMTAB_SYMBOL"))), and take
11394 chain_next/prev from symtab_node_def.
11395 (cgraph_node): Inherit from symtab_node; add GTY option
11396 tag ("SYMTAB_FUNCTION").
11397 (varpool_node): Inherit from symtab_node; add GTY option
11398 tag ("SYMTAB_VARIABLE").
11399 (symtab_node_def): Remove.
11400 (is_a_helper <cgraph_node>::test (symtab_node_def *)): Convert to...
11401 (is_a_helper <cgraph_node>::test (symtab_node_base *)): ...this.
11402 (is_a_helper <varpool_node>::test (symtab_node_def *)): Convert to...
11403 (is_a_helper <varpool_node>::test (symtab_node_base *)): ...this.
11404
11405 * ipa-ref.h (symtab_node_def): Drop.
11406 (symtab_node): Change underlying type from symtab_node_def to
11407 symtab_node_base.
11408 (const_symtab_node): Likwise.
11409
11410 * is-a.h: Update examples in comment.
11411
11412 * symtab.c (symtab_hash): Change symtab_node_def to symtab_node_base.
11413 (assembler_name_hash): Likewise.
11414
11415 2013-10-29 Martin Liska <marxin.liska@gmail.com>
11416
11417 * doc/tree-ssa.texi (gimple_phi_result): Document.
11418 (gimple_phi_num_args, gimple_phi_arg): Likewise.
11419 (gimple_phi_arg_edge, gimple_phi_arg_def): Likewise.
11420 (PHI_RESULT, PHI_NUM_ARGS): Remove.
11421 (PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise.
11422
11423 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
11424
11425 * expr.h: Revert change and include tree-core.h.
11426 * rtl.h: Revert change and don't include tree-core.h.
11427
11428 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
11429
11430 * config/darwin.c: Include gimple.h.
11431 * config/i386/winnt.c: Likewise.
11432
11433 2013-10-29 Marc Glisse <marc.glisse@inria.fr>
11434
11435 PR tree-optimization/19831
11436 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle BUILT_IN_FREE.
11437
11438 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
11439
11440 * tree-outof-ssa.h: Remove include files.
11441 * tree-outof-ssa.c: Add required include files from tree-outof-ssa.h.
11442 * expr.c: Likewise.
11443 * tree-ssa-coalesce.c: Likewise.
11444 * cfgexpand.c: Likewise.
11445 * tree-ssa-ter.c: Likewise.
11446 * ipa-prop.h: Remove gimple.h and tree-core.h from include list.
11447 * lto-streamer.h: Likewise.
11448 * cgraphbuild.c: Add gimple.h to include list.
11449 * data-streamer-in.c: Likewise.
11450 * ipa-cp.c: Likewise.
11451 * tree-streamer.c: Likewise.
11452 * lto-compress.c: Likewise.
11453 * ipa-reference.c: Likewise.
11454 * data-streamer-out.c: Likewise.
11455 * lto-cgraph.c: Likewise.
11456 * cgraphclones.c: Likewise.
11457 * ipa-utils.c: Likewise.
11458 * data-streamer.c: Likewise.
11459 * ipa-split.c: Likewise.
11460 * lto-section-in.c: Likewise.
11461 * tree-streamer-out.c: Likewise.
11462 * ipa-prop.c: Likewise.
11463 * tree-streamer-in.c: Likewise.
11464 * symtab.c: Likewise.
11465 * opts-global.c: Likewise.
11466 * lto-opts.c: Likewise.
11467 * lto-section-out.c: Likewise.
11468 * lto-streamer.c: Likewise.
11469 * rtl.h: Add tree-core.h to include list.
11470 * expr.h: Remove tree-core.h from include list.
11471 * gimple.h: Likewise.
11472 * ipa-utils.h: Likewise.
11473 * streamer-hooks.h: Likewise.
11474 * streamer-hooks.c: Include input.h.
11475
11476 2013-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11477
11478 * config/arm/arm.c (cortexa7_extra_costs): New table.
11479 (arm_cortex_a7_tune): New.
11480 * config/arm/arm-cores.def: Use cortex_a7 tuning for cortex-a7.
11481
11482 2013-10-29 Eric Botcazou <ebotcazou@adacore.com>
11483
11484 * expr.c (expand_expr_real_1) <MEM_EXPR>: Eliminate small redundancy.
11485
11486 2013-10-29 David Malcolm <dmalcolm@redhat.com>
11487
11488 * doc/gty.texi ("Inheritance and GTY"): Make it clear that
11489 to use autogenerated markers for a class-hierarchy, every class
11490 must have a GTY marker.
11491 * gengtype.h (struct type): Add linked list of subclasses to
11492 the "s" member of the union.
11493 (add_subclass): New decl.
11494 * gengtype-state.c (read_state_struct_type): Set up subclass
11495 linked list.
11496 * gengtype.c (get_ultimate_base_class): New.
11497 (add_subclass): New.
11498 (new_structure): Set up subclass linked list.
11499 (set_gc_used_type): Propagate usage information to subclasses.
11500 (output_mangled_typename): Use get_ultimate_base_class.
11501 (walk_subclasses): Use the subclass linked list, avoiding an
11502 O(N^2) when writing out all types.
11503 (walk_type): Issue an error if the base class is missing a tag,
11504 rather than generating bogus C code. Add a gcc_unreachable
11505 default case, in case people omit tags from concrete subclasses,
11506 or get the values wrong.
11507 (write_func_for_structure): Issue an error for subclasses for
11508 which the base doesn't have a "desc", since otherwise the
11509 autogenerated routines for the base would silently fail to visit
11510 any subclass fields.
11511 (write_root): Use get_ultimate_base_class, tweaking constness of
11512 tp to match that function's signature.
11513
11514 2013-10-29 David Malcolm <dmalcolm@redhat.com>
11515
11516 * doc/gty.texi (GTY Options): Add note about inheritance to
11517 description of desc and tag.
11518 (Inheritance and GTY): New.
11519
11520 2013-10-29 David Malcolm <dmalcolm@redhat.com>
11521
11522 * gengtype-parse.c (opts_have): Drop "static" so that
11523 we can use this from gengtype.c.
11524 * gengtype.c (set_gc_used_type): Mark any base class as used;
11525 update field traversal to visit inherited fields.
11526 (output_mangled_typename): Convert references to classes within
11527 an inheritance hierarchy to reference the ultimate base class,
11528 since only it will have gt_ functions.
11529 (get_string_option): New.
11530 (walk_subclasses): New.
11531 (walk_type): Treat GTY structs that have a "desc" as being the
11532 root of an inheritance hierarchy. Generate a switch on it
11533 within the marking function which walks all subclasses, adding
11534 cases for them via walk_subclasses. For subclasses, visit all
11535 fields of the type (including inherited ones).
11536 (write_func_for_structure): Don't write fns for subclasses, only
11537 for the ultimate base class within an inheritance hierarchy.
11538 Subclasses-marking will be handled by the base class marking functions.
11539 (write_types): Likewise.
11540 (write_local_func_for_structure): Likewise.
11541 (USED_BY_TYPED_GC_P): Emit allocators for subclasses that have
11542 a "tag" option (and are thus concrete subclasses).
11543 (write_root): Use the marker function for the ultimate base class.
11544 * gengtype.h (FOR_ALL_INHERITED_FIELDS): New.
11545 (opts_have): Add declaration.
11546
11547 2013-10-28 Vladimir Makarov <vmakarov@redhat.com>
11548
11549 * lra-spills.c (lra_final_code_change): Remove useless move insns
11550 originated from moves of pseudos.
11551
11552 2013-10-28 Jeff Law <law@redhat.com>
11553
11554 * lower-subreg.c (resolve_simple_move): Fix comment typo.
11555
11556 2013-10-28 Trevor Saunders <tsaunders@mozilla.com>
11557
11558 * df-scan.c (df_collection_rec): Adjust.
11559 (copy_defs): New constant.
11560 (copy_uses): Likewise.
11561 (copy_eq_uses): Likewise.
11562 (copy_mw): Likewise.
11563 (copy_all): Likewise.
11564 (df_insn_rescan): Adjust.
11565 (df_notes_rescan): Likewise.
11566 (df_swap_refs): Likewise.
11567 (df_sort_and_compress_refs): Likewise.
11568 (df_sort_and_compress_mws): Likewise.
11569 (df_install_refs): Likewise.
11570 (df_install_mws): Likewise.
11571 (df_refs_add_to_chains): Add flags parameter controlling which vectors
11572 are coppied.
11573 (df_bb_refs_record): Adjust.
11574 (df_record_entry_block_defs): Likewise.
11575 (df_record_exit_block_defs): Likewise.
11576 (df_refs_verify): Likewise.
11577 (df_mws_verify): Likewise.
11578 (df_insn_refs_verify): Likewise.
11579 (df_bb_verify): Likewise.
11580 * ipa-pure-const.c (finish_state): Remove.
11581 (propagate): Adjust.
11582 * tree-data-ref.c tree-ssa-alias.c tree-ssa-loop-ivcanon.c
11583 tree-ssa-threadedge.c tree-vect-loop-manip.c tree-vect-slp.c
11584 var-tracking.c: Adjust.
11585 * vec.c (stack_vecs): Remove.
11586 (register_stack_vec): Likewise.
11587 (stack_vec_register_index): Likewise.
11588 (unregister_stack_vec): Likewise.
11589 * vec.h (struct va_stack): Remove.
11590 (struct vec<T, A, vl_ptr>): Specialize as
11591 struct vec<T, va_heap, vl_ptr> instead since va_heap is the only
11592 allocation strategy compatable with the vl_ptr layout.
11593 (struct vec<T, va_gc, vl_ptr>): Remove because it now gets an empty
11594 specialization anyway.
11595 (class stack_vec): New class.
11596 (vec_stack_alloc): Remove.
11597 (vec<T, va_heap, vl_ptr>::using_auto_storage): New method.
11598
11599 2013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
11600 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11601 Sergey Lega <sergey.s.lega@intel.com>
11602 Anna Tikhonova <anna.tikhonova@intel.com>
11603 Ilya Tocar <ilya.tocar@intel.com>
11604 Andrey Turetskiy <andrey.turetskiy@intel.com>
11605 Ilya Verbin <ilya.verbin@intel.com>
11606 Kirill Yukhin <kirill.yukhin@intel.com>
11607 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11608
11609 * config/i386/i386.md (prefetch): Allow TARGET_AVX512PF.
11610 (*prefetch_avx512pf_<mode>): New.
11611 * config/i386/sse.md (avx512f_vmcmp<mode>3): Ditto.
11612 (avx512f_maskcmp<mode>3): Ditto.
11613 (vashrv16si3): Ditto.
11614
11615 2013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
11616 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11617 Sergey Lega <sergey.s.lega@intel.com>
11618 Anna Tikhonova <anna.tikhonova@intel.com>
11619 Ilya Tocar <ilya.tocar@intel.com>
11620 Andrey Turetskiy <andrey.turetskiy@intel.com>
11621 Ilya Verbin <ilya.verbin@intel.com>
11622 Kirill Yukhin <kirill.yukhin@intel.com>
11623 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11624
11625 * config/i386/i386.md (any_truncate): New.
11626 (trunsuffix): Ditto.
11627 * config/i386/predicates.md (const_8_to_9_operand): New.
11628 (const_10_to_11_operand): Ditto.
11629 (const_12_to_13_operand): Ditto.
11630 (const_14_to_15_operand): Ditto.
11631 (const_16_to_19_operand): Ditto.
11632 (const_20_to_23_operand): Ditto.
11633 (const_24_to_27_operand): Ditto.
11634 (const_28_to_31_operand): Ditto.
11635 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_FIX_NOTRUNC.
11636 (cvtusi2<ssescalarmodesuffix>32): New.
11637 (cvtusi2<ssescalarmodesuffix>64): Ditto.
11638 (ufloatv16siv16sf2): Ditto.
11639 (avx512f_fix_notruncv16sfv16si): Ditto.
11640 (avx512f_ufix_notruncv16sfv16si): Ditto.
11641 (avx512f_vcvtss2usi): Ditto.
11642 (avx512f_vcvtss2usiq): Ditto.
11643 (avx512f_vcvttss2usi): Ditto.
11644 (avx512f_vcvttss2usiq): Ditto.
11645 (avx512f_vcvtsd2usi): Ditto.
11646 (avx512f_vcvtsd2usiq): Ditto.
11647 (avx512f_vcvttsd2usi): Ditto.
11648 (avx512f_vcvttsd2usiq): Ditto.
11649 (ufloatv8siv8df): Ditto.
11650 (avx512f_cvtdq2pd512_2): Ditto.
11651 (avx512f_cvtpd2dq512): Ditto.
11652 (avx512f_ufix_notruncv8dfv8si): Ditto.
11653 (avx512f_cvtpd2ps512): Ditto.
11654 (vec_unpacks_lo_v16sf): Ditto.
11655 (vec_unpacks_hi_v16sf): Ditto.
11656 (vec_unpacks_float_hi_v16si): Ditto.
11657 (vec_unpacks_float_lo_v16si): Ditto.
11658 (avx512f_unpckhps512): Ditto.
11659 (avx512f_unpcklps512): Ditto.
11660 (avx512f_movshdup512): Ditto.
11661 (avx512f_movsldup512): Ditto.
11662 (vec_extract_lo_v32hi): Ditto.
11663 (vec_extract_hi_v32hi): Ditto.
11664 (vec_extract_lo_v64qi): Ditto.
11665 (vec_extract_hi_v64qi): Ditto.
11666 (avx512f_unpckhpd512): Ditto.
11667 (avx512f_movddup512): Ditto.
11668 (avx512f_unpcklpd512): Ditto.
11669 (*avx512f_unpcklpd512): Ditto.
11670 (avx512f_shufps512_1): Ditto.
11671 (avx512f_shufpd512_1): Ditto.
11672 (avx512f_interleave_highv8di): Ditto.
11673 (avx512f_interleave_lowv8di): Ditto.
11674 (PMOV_DST_MODE): Ditto.
11675 (pmov_src_mode): Ditto.
11676 (pmov_src_lower): Ditto.
11677 (pmov_suff): Ditto.
11678 (*avx512f_<code><pmov_src_lower><mode>2): Ditto.
11679 (*avx512f_<code>v8div16qi2): Ditto.
11680 (*avx512f_<code>v8div16qi2_store): Ditto.
11681 (vec_widen_umult_even_v16si): Ditto.
11682 (*vec_widen_umult_even_v16si): Ditto.
11683 (vec_widen_smult_even_v16si): Ditto.
11684 (*vec_widen_smult_even_v16si): Ditto.
11685 (avx512f_interleave_highv16si): Ditto.
11686 (avx512f_interleave_lowv16si): Ditto.
11687 (avx512f_<code>v16qiv16si2): Ditto.
11688 (avx512f_<code>v16hiv16si2): Ditto.
11689 (avx512f_<code>v8qiv8di2): Ditto.
11690 (avx512f_<code>v8hiv8di2): Ditto.
11691 (avx512f_<code>v8siv8di2): Ditto.
11692 (avx512cd_maskb_vec_dupv8di): Ditto.
11693 (avx512cd_maskw_vec_dupv16si): Ditto.
11694 (avx512f_vcvtph2ps512): Ditto.
11695 (avx512f_vcvtps2ph512): Ditto.
11696 (VEC_EXTRACT_MODE): Extened with wider modes.
11697 (VEC_PERM_AVX2): Ditto.
11698 (VEC_PERM_CONST): Ditto.
11699
11700 2013-10-28 Joern Rennecke <joern.rennecke@embecosm.com>
11701
11702 * config/arc/arc.c (arc_ccfsm_post_advance):
11703 Add comment about TYPE_RETURN.
11704
11705 2013-10-28 Bin Cheng <bin.cheng@arm.com>
11706
11707 * tree-ssa-loop-ivopts.c (strip_offset_1): Change parameter type.
11708 Count DECL_FIELD_BIT_OFFSET for COMPONENT_REF.
11709 (strip_offset): Convert offset to unsigned number.
11710
11711 2013-10-27 Tom de Vries <tom@codesourcery.com>
11712
11713 * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
11714 Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
11715
11716 2013-10-27 Oleg Endo <olegendo@gcc.gnu.org>
11717
11718 * config/sh/sh.c (MSW, LSW): Move and rename macros to...
11719 * config/sh/sh.h (SH_REG_MSW_OFFSET, SH_REG_LSW_OFFSET): ... here.
11720 (TARGET_BIG_ENDIAN): New macro.
11721 * config/sh/sh.md: Use it instead of !TARGET_LITTLE_ENDIAN.
11722 Use SH_REG_MSW_OFFSET and SH_REG_LSW_OFFSET.
11723 * config/sh/sh.c: Likewise.
11724 * config/sh/sh.h: Likewise.
11725
11726 2013-10-27 Hans-Peter Nilsson <hp@axis.com>
11727
11728 * config/cris/cris.c (cris_emit_trap_for_misalignment): Replace the
11729 removed PRED_MUDFLAP with PRED_NORETURN. Correct file-path in comment.
11730
11731 2013-10-26 Oleg Endo <olegendo@gcc.gnu.org>
11732
11733 * config/sh/sh.md (movmemsi): Remove empty constraints and predicates.
11734 Fix formatting.
11735 (cmpstr_t, cmpstrsi): Fix formatting.
11736
11737 2013-10-26 Oleg Endo <olegendo@gcc.gnu.org>
11738
11739 PR target/52483
11740 * config/sh/predicates.md (general_movdst_operand): Allow reg+reg
11741 addressing, do not use general_operand for memory operands.
11742
11743 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
11744
11745 Revert:
11746 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
11747 * lra-spills.c (lra_final_code_change): Remove useless move insns.
11748
11749 2013-10-26 Jeff Law <law@redhat.com>
11750
11751 * predict.c (PRED_MUDFLAP): Remove.
11752 * targhooks.c (build_va_arg_indirect_ref): Remove mudflap support.
11753
11754 * Makefile.in (C_COMMON_OBJS): Remove tree-mudflap.
11755 (OBJS): Remove tree-nomudflap.o
11756 (GTFILES): Remove tree-mudflap.c
11757 * builtins.c (expand_builtin_alloc): Remove mudflap support.
11758 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
11759 (mfwrap_spec, mflib_spec): Likewise.
11760 (cpp_unique_options, cc1_options, static_specs): Likewise.
11761 * gimplify (gimplify_vla_decl, build_va_arg_indirect_ref): Likewise.
11762 * passes.def: Likewise.
11763 * toplev.c (compile_file, process_options): Likewise.
11764 * tree-inline.c (copy_tree_r): Likewise.
11765 * tree-pass.,h (make_pass_mudflap_1, make_pass_mudflap_2): Likewise.
11766 * varasm.c (make_decl_rtl, make_decl_rtl_for_debug): Likewise.
11767 (build_constant_desc, output_constant_def_contents): Likewise.
11768 (categorize_decl_for_section): Likewise.
11769 * tree-mudflap.c: Removed.
11770 * tree-mudflap.h: Removed.
11771 * tree-nomudflap.c: Removed.
11772 * bfin/uclinux.h (MFWRAP_SPEC): Remove.
11773 * moxie/uclinux.h (MFWRAP_SPEC): Likewise.
11774 * rs6000/aix.h (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
11775 * config/sol2.h (MFLIB_SPEC): Likewise.
11776 * doc/install.texi: Remove mudflap references.
11777 * doc/passes.texi: Similarly.
11778 * doc/sourcebuild.texi: Similarly.
11779 * doc/invoke.texi: Remove mudlfap related options.
11780
11781 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
11782
11783 PR rtl-optimization/58759
11784 * lra-constraints.c (lra_constraints): Remove wrong condition to
11785 remove insn setting up an equivalent pseudo.
11786
11787 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
11788
11789 * config/rs6000/rs6000-protos.h
11790 (rs6000_secondary_memory_needed_mode): New prototype.
11791 * config/rs6000/rs6000.c: Include ira.h.
11792 (TARGET_LRA_P): Redefine.
11793 (rs6000_legitimate_offset_address_p): Call
11794 legitimate_constant_pool_address_p in strict mode for LRA.
11795 (rs6000_legitimate_address_p): Ditto.
11796 (legitimate_lo_sum_address_p): Add code for LRA. Use lra_in_progress.
11797 (rs6000_emit_move): Add LRA version of code to generate load/store
11798 of SDmode values.
11799 (rs6000_secondary_memory_needed_mode): New.
11800 (rs6000_alloc_sdmode_stack_slot): Do nothing for LRA.
11801 (rs6000_secondary_reload_class): Return NO_REGS for LRA for
11802 constants, memory, and FP registers.
11803 (rs6000_lra_p): New.
11804 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New macro.
11805 * config/rs6000/rs6000.opt (mlra): New option.
11806 * lra-spills.c (lra_final_code_change): Remove useless move insns.
11807
11808 2013-10-25 Yufeng Zhang <yufeng.zhang@arm.com>
11809
11810 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Call
11811 has_single_use () and not do the conversion if has_single_use ()
11812 returns false for the multiplication result.
11813
11814 2013-10-25 David Malcolm <dmalcolm@redhat.com>
11815
11816 * tree.h (EXCEPTIONAL_CLASS_P): Rename parameter from "CODE"
11817 to "NODE", since this works on a "tree", not an
11818 "enum tree_code".
11819 (CONSTANT_CLASS_P): Likewise.
11820 (TYPE_P): Likewise.
11821 (DECL_P): Likewise.
11822 (INDIRECT_REF_P): Likewise.
11823 (REFERENCE_CLASS_P): Likewise.
11824 (COMPARISON_CLASS_P): Likewise.
11825 (UNARY_CLASS_P): Likewise.
11826 (BINARY_CLASS_P): Likewise.
11827 (STATEMENT_CLASS_P): Likewise.
11828 (VL_EXP_CLASS_P): Likewise.
11829 (EXPRESSION_CLASS_P): Likewise.
11830 (IS_TYPE_OR_DECL_P): Likewise.
11831
11832 2013-10-25 Marc Glisse <marc.glisse@inria.fr>
11833
11834 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an
11835 ADDR_EXPR in the defining statement.
11836
11837 2013-10-25 Richard Biener <rguenther@suse.de>
11838
11839 PR tree-optimization/58626
11840 * tree-loop-distribution.c (enum rdg_dep_type): Remove
11841 anti_dd, output_dd and input_dd.
11842 (struct rdg_edge): Remove level and relation members.
11843 (RDGE_LEVEL, RDGE_RELATION): Remove.
11844 (dot_rdg_1): Adjust.
11845 (create_rdg_edge_for_ddr): Remove.
11846 (create_rdg_edges_for_scalar): Adjust.
11847 (create_edge_for_control_dependence): Likewise.
11848 (create_rdg_edges): Split into ...
11849 (create_rdg_flow_edges): ... this
11850 (create_rdg_cd_edges): ... and this.
11851 (free_rdg): Adjust.
11852 (build_rdg): Likewise, do not compute data dependences or
11853 add edges for them.
11854 (pg_add_dependence_edges): New function.
11855 (pgcmp): Likewise.
11856 (distribute_loop): First apply all non-dependence based
11857 partition mergings. Then compute dependences between partitions
11858 and merge and order partitions according to them.
11859
11860 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
11861
11862 PR rtl-optimization/58831
11863 * alias.c (init_alias_analysis): At the beginning of each iteration,
11864 set the reg_seen[N] bit if static_reg_base_value[N] is non-null.
11865
11866 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
11867
11868 * recog.c (search_ofs): New static variable moved from...
11869 (peep2_find_free_register): ...here.
11870 (peephole2_optimize): Initialize it.
11871
11872 2013-10-25 Tobias Burnus <burnus@net-b.de>
11873
11874 * doc/invoke.texi (fopenmp): Change supported OpenMP version to 4.0.
11875
11876 2013-10-25 Uros Bizjak <ubizjak@gmail.com>
11877
11878 * config/i386/i386.h (TARGET_MPX): New define.
11879 (TARGET_MPX_P): Ditto.
11880
11881 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
11882
11883 * config/i386/constraints.md (B): New.
11884 (Ti): New.
11885 (Tb): New.
11886 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
11887 * config/i386/i386-modes.def (BND32): New.
11888 (BND64): New.
11889 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
11890 * config/i386/i386.c (isa_opts): Add mmpx.
11891 (regclass_map): Add bound registers.
11892 (dbx_register_map): Likewise.
11893 (dbx64_register_map): Likewise.
11894 (svr4_dbx_register_map): Likewise.
11895 (PTA_MPX): New.
11896 (ix86_option_override_internal): Support MPX ISA.
11897 (ix86_conditional_register_usage): Support bound registers.
11898 (print_reg): Likewise.
11899 (ix86_code_end): Add MPX bnd prefix.
11900 (output_set_got): Likewise.
11901 (ix86_output_call_insn): Likewise.
11902 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
11903 (ix86_print_operand_punct_valid_p): Likewise.
11904 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
11905 UNSPEC_BNDMK_ADDR.
11906 (ix86_class_likely_spilled_p): Add bound regs support.
11907 (ix86_hard_regno_mode_ok): Likewise.
11908 (x86_order_regs_for_local_alloc): Likewise.
11909 (ix86_bnd_prefixed_insn_p): New.
11910 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
11911 (FIXED_REGISTERS): Add bound registers.
11912 (CALL_USED_REGISTERS): Likewise.
11913 (REG_ALLOC_ORDER): Likewise.
11914 (HARD_REGNO_NREGS): Likewise.
11915 (TARGET_MPX): New.
11916 (VALID_BND_REG_MODE): New.
11917 (FIRST_BND_REG): New.
11918 (LAST_BND_REG): New.
11919 (reg_class): Add BND_REGS.
11920 (REG_CLASS_NAMES): Likewise.
11921 (REG_CLASS_CONTENTS): Likewise.
11922 (BND_REGNO_P): New.
11923 (ANY_BND_REG_P): New.
11924 (BNDmode): New.
11925 (HI_REGISTER_NAMES): Add bound registers.
11926 * config/i386/i386.md (UNSPEC_BNDMK): New.
11927 (UNSPEC_BNDMK_ADDR): New.
11928 (UNSPEC_BNDSTX): New.
11929 (UNSPEC_BNDLDX): New.
11930 (UNSPEC_BNDLDX_ADDR): New.
11931 (UNSPEC_BNDCL): New.
11932 (UNSPEC_BNDCU): New.
11933 (UNSPEC_BNDCN): New.
11934 (UNSPEC_MPX_FENCE): New.
11935 (BND0_REG): New.
11936 (BND1_REG): New.
11937 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
11938 (length_immediate): Likewise.
11939 (prefix_0f): Likewise.
11940 (memory): Likewise.
11941 (prefix_rep): Check for bnd prefix.
11942 (length_nobnd): New.
11943 (length): Use length_nobnd if specified.
11944 (BND): New.
11945 (bnd_ptr): New.
11946 (BNDCHECK): New.
11947 (bndcheck): New.
11948 (*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
11949 (*jcc_2): Likewise.
11950 (jump): Likewise.
11951 (simple_return_internal): Likewise.
11952 (simple_return_pop_internal): Likewise.
11953 (*indirect_jump): Add MPX bnd prefix.
11954 (*tablejump_1): Likewise.
11955 (simple_return_internal_long): Likewise.
11956 (simple_return_indirect_internal): Likewise.
11957 (<mode>_mk): New.
11958 (*<mode>_mk): New.
11959 (mov<mode>): New.
11960 (*mov<mode>_internal_mpx): New.
11961 (<mode>_<bndcheck>): New.
11962 (*<mode>_<bndcheck>): New.
11963 (<mode>_ldx): New.
11964 (*<mode>_ldx): New.
11965 (<mode>_stx): New.
11966 (*<mode>_stx): New.
11967 * config/i386/predicates.md (lea_address_operand): Rename to...
11968 (address_no_seg_operand): ... this.
11969 (address_mpx_no_base_operand): New.
11970 (address_mpx_no_index_operand): New.
11971 (bnd_mem_operator): New.
11972 * config/i386/i386.opt (mmpx): New.
11973 * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
11974 * doc/rtl.texi Add documentation for BND32mode and BND64mode.
11975
11976 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
11977
11978 * mode-classes.def (MODE_POINTER_BOUNDS): New.
11979 * tree.def (POINTER_BOUNDS_TYPE): New.
11980 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
11981 (POINTER_BOUNDS_MODE): New.
11982 (make_pointer_bounds_mode): New.
11983 * machmode.h (POINTER_BOUNDS_MODE_P): New.
11984 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
11985 (layout_type): Support POINTER_BOUNDS_TYPE.
11986 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
11987 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
11988 (type_contains_placeholder_1): Likewise.
11989 * tree.h (POINTER_BOUNDS_TYPE_P): New.
11990 * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
11991 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
11992
11993 2013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com>
11994
11995 * expr.c (expand_expr_real_1): Use mode of memory reference rather than
11996 mode of address computation when calling memory_address_addr_space.
11997
11998 2013-08-24 Richard Henderson <rth@twiddle.net>
11999
12000 PR rtl/58542
12001 * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
12002 instead of create_convert_operand_to.
12003 (maybe_emit_sync_lock_test_and_set): Likewise.
12004 (expand_atomic_compare_and_swap): Likewise.
12005 (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
12006
12007 2013-08-24 Sriraman Tallam <tmsriram@google.com>
12008
12009 * cgraph.c (cgraph_fnver_htab): Move GTY((...)) to be before htab_t.
12010 Change param_is to use the struct and not the pointer to the struct.
12011
12012 2013-10-24 Andrew MacLeod <amacleod@redhat.com>
12013
12014 * builtins.c (dummy_object, gimplify_va_arg_expr): Move to gimplify.c.
12015 * gimplify.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
12016 Move to targhooks.c.
12017 (dummy_object, gimplify_va_arg_expr): Relocate from builtins.c.
12018 * targhooks.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
12019 Relocate from gimplify.c.
12020 * targhooks.h: Add 2 prototypes.
12021 * tree.h: Delete 2 prototypes.
12022
12023 2013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com>
12024
12025 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p ): Check both
12026 [reg+mult*reg] and [mult*reg] to determine if multiplier is allowed.
12027
12028 2013-10-24 Cong Hou <congh@google.com>
12029
12030 * convert.c (convert_to_real): Guard those unsafe math function
12031 convertions with flag_unsafe_math_optimizations. Handle sqrt()
12032 specially.
12033
12034 2013-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
12035
12036 PR ipa/58712
12037 * cgraph.c (cgraph_create_edge_1): Add indirect_unknown_callee
12038 as argument.
12039 (cgraph_create_edge): Use the new argument.
12040 (cgraph_create_indirect_edge): Likewise.
12041
12042 2013-10-24 Joern Rennecke <joern.rennecke@embecosm.com>
12043
12044 * config/arc/arc.c (arc_ccfsm_post_advance): Also handle
12045 TYPE_UNCOND_BRANCH.
12046 (arc_ifcvt) <case 1 and 2>: Check that arc_ccfsm_post_advance
12047 changes statep->state.
12048
12049 2013-10-24 Tobias Burnus <burnus@net-b.de>
12050
12051 PR other/33426
12052 * tree-cfg.c (replace_loop_annotate): New function.
12053 (execute_build_cfg): Call it.
12054 * gimplify.c (gimple_boolify, gimplify_expr): Handle ANNOTATE_EXPR.
12055 * internal-fn.c (expand_ANNOTATE): New function.
12056 * internal-fn.def (ANNOTATE): Define as new internal function.
12057 * tree-core.h (tree_node_kind): Add annot_expr_ivdep_kind.
12058 * tree-pretty-print.c (dump_generic_node): Handle ANNOTATE_EXPR.
12059 * tree.def (ANNOTATE_EXPR): New DEFTREECODE.
12060 * doc/extend.texi (Pragmas): Document #pragma ivdep.
12061 * doc/generic.texi (Expressions): Document ANNOTATE_EXPR.
12062
12063 2013-10-17 Ian Bolton <ian.bolton@arm.com>
12064 Marcus Shawcroft <marcus.shawcroft@arm.com>
12065
12066 * config/aarch64/aarch64.c (aarch64_preferred_reload_class):
12067 Special case reload SP+C into none GENERAL_REGS.
12068
12069 2013-10-24 Michael Matz <matz@suse.de>
12070
12071 * gengtype.c (is_file_equal): Check that files will be same length.
12072
12073 2013-10-25 Christian Bruel <christian.bruel@st.com>
12074
12075 * config.gcc (sh-*): Add sh-mem.o to extra_obj.
12076 * config/sh/t-sh (sh-mem.o): New rule.
12077 * config/sh/sh-mem.cc (expand_block_move): Moved here.
12078 (sh_expand_cmpstr): New function.
12079 * config/sh/sh.c (force_into, expand_block_move): Move to sh-mem.c.
12080 * config/sh/sh-protos.h (sh_expand_cmpstr): Declare.
12081 * config/sh/sh.md (cmpstrsi, cmpstr_t): New patterns.
12082 (rotlhi3_8): Rename.
12083
12084 2013-10-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12085
12086 * configure.ac (ZW_PROG_COMPILER_DEPENDENCIES): Use CXX instead of CC.
12087 * Makefile.in (CXXDEPMODE): Assign and change users.
12088 (CCDEPMODE): Delete.
12089 * configure: Regenerate.
12090
12091 2013-10-23 David Malcolm <dmalcolm@redhat.com>
12092
12093 * gengtype-parse.c (require_without_advance): New.
12094 (type): For GTY-marked types that are not GTY((user)), parse any
12095 base classes, requiring them to be single-inheritance, and not
12096 be templates. For non-GTY-marked types and GTY((user)),
12097 continue to skip over any C++ inheritance specification.
12098 * gengtype-state.c (state_writer::write_state_struct_type):
12099 Write base class of type (if any).
12100 (read_state_struct_type): Read base class of type (if any).
12101 * gengtype.c (new_structure): Add a "base_class" parameter.
12102 (create_optional_field_): Update for new parameter to new_structure.
12103 (adjust_field_rtx_def): Likewise.
12104 (adjust_field_tree_exp): Likewise.
12105 * gengtype.h (struct type): Add "base_class" field to the s
12106 union field.
12107 (new_structure): Add "base" parameter.
12108
12109 2013-10-23 Sriraman Tallam <tmsriram@google.com>
12110
12111 PR target/57756
12112 * config/i386/i386.c (ix86_option_override_internal):
12113 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
12114 (ix86_valid_target_attribute_tree):
12115 Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
12116 Change TARGET_SSE to TARGET_SSE_P (opts->...)
12117
12118 2013-10-23 Andrew MacLeod <amacleod@redhat.com>
12119
12120 * tree-ssa-loop.h: Remove include files.
12121 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
12122 * cfgloopmanip.c: Move required includes from tree-ssa-loop.h.
12123 * graphite-clast-to-gimple.c: Likewise.
12124 * graphite-scop-detection.c: Likewise.
12125 * graphite-sese-to-poly.c: Likewise.
12126 * ipa-inline-analysis.c: Likewise.
12127 * ipa-pure-const.c: Likewise.
12128 * loop-init.c: Likewise.
12129 * passes.c: Likewise.
12130 * predict.c: Likewise.
12131 * tree-cfg.c: Likewise.
12132 * tree-cfgcleanup.c: Likewise.
12133 * tree-chrec.c: Likewise.
12134 * tree-data-ref.c: Likewise.
12135 * tree-loop-distribution.c: Likewise.
12136 * tree-parloops.c: Likewise.
12137 * tree-predcom.c: Likewise.
12138 * tree-scalar-evolution.c: Likewise.
12139 * tree-ssa-address.c: Likewise.
12140 * tree-ssa.c: Likewise.
12141 * tree-ssa-dce.c: Likewise.
12142 * tree-ssa-loop.c: Likewise.
12143 * tree-ssa-loop-im.c: Likewise.
12144 * tree-ssa-loop-ivcanon.c: Likewise.
12145 * tree-ssa-loop-ivopts.c: Likewise.
12146 * tree-ssa-loop-manip.c: Likewise.
12147 * tree-ssa-loop-niter.c: Likewise.
12148 * tree-ssa-loop-prefetch.c: Likewise.
12149 * tree-ssa-loop-unswitch.c: Likewise.
12150 * tree-ssa-reassoc.c: Likewise.
12151 * tree-vect-data-refs.c: Likewise.
12152 * tree-vect-loop.c: Likewise.
12153 * tree-vect-loop-manip.c: Likewise.
12154 * tree-vectorizer.c: Likewise.
12155 * tree-vect-stmts.c: Likewise.
12156 * tree-vrp.c: Likewise.
12157
12158 2013-10-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12159
12160 * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.
12161
12162 2013-10-23 Jakub Jelinek <jakub@redhat.com>
12163
12164 PR tree-optimization/58775
12165 PR tree-optimization/58791
12166 * tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function.
12167 (insert_stmt_after): Rewritten, don't move the stmt, but really
12168 insert it.
12169 (get_stmt_uid_with_default): Remove.
12170 (build_and_add_sum): Use insert_stmt_after and
12171 reassoc_stmt_dominates_stmt_p. Fix up uid if bb contains only labels.
12172 (update_range_test): Set uid on stmts added by
12173 force_gimple_operand_gsi. Don't immediately modify statements
12174 in inter-bb optimization, just update oe->op values.
12175 (optimize_range_tests): Return bool whether any changed have been made.
12176 (update_ops): New function.
12177 (struct inter_bb_range_test_entry): New type.
12178 (maybe_optimize_range_tests): Perform statement changes here.
12179 (not_dominated_by, appears_later_in_bb, get_def_stmt,
12180 ensure_ops_are_available): Remove.
12181 (find_insert_point): Rewritten.
12182 (rewrite_expr_tree): Remove MOVED argument, add CHANGED argument,
12183 return LHS of the (new resp. old) stmt. Don't call
12184 ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first
12185 instead of last, move new stmt at the right place.
12186 (linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs.
12187 (negate_value): Likewise. Set uids.
12188 (break_up_subtract_bb): Initialize uids.
12189 (reassociate_bb): Adjust rewrite_expr_tree caller.
12190 (do_reassoc): Don't call renumber_gimple_stmt_uids.
12191
12192 2013-10-23 David Edelsohn <dje.gcc@gmail.com>
12193
12194 PR target/58838
12195 * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
12196 TARGET_32BIT final condition.
12197 (mulsi3_internal2 and splitter): Same.
12198
12199 2013-10-23 Jeff Law <law@redhat.com>
12200
12201 * tree-ssa-threadedge.c (thread_across_edge): Do not allow threading
12202 through joiner blocks with abnormal outgoing edges.
12203
12204 * tree-ssa-threadupdate.c (thread_block_1): Renamed from thread_block.
12205 Add parameter JOINERS, to allow/disallow threading through joiner
12206 blocks.
12207 (thread_block): New. Call thread_block_1.
12208 (mark_threaded_blocks): Remove code to filter out certain cases
12209 of threading through joiner blocks.
12210 (thread_through_all_blocks): Document how we can have a dangling
12211 edge AUX field and clear it.
12212
12213 2013-10-23 Ian Lance Taylor <iant@google.com>
12214
12215 * doc/invoke.texi (Option Summary): Remove -fno-default-inline.
12216 (C++ Dialect Options): Likewise.
12217 (Optimize Options): Likewise.
12218
12219 2013-10-23 Tom de Vries <tom@codesourcery.com>
12220
12221 PR tree-optimization/58805
12222 * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
12223
12224 2013-10-23 Jakub Jelinek <jakub@redhat.com>
12225
12226 * tree-vect-patterns.c (vect_recog_divmod_pattern): Optimize
12227 sequence based on get_range_info returned range.
12228
12229 2013-10-23 Andrew MacLeod <amacleod@redhat.com>
12230
12231 * tree-ssa.h: Remove all #include's
12232 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
12233 * alias.c: Move required includes from tree-ssa.h.
12234 * asan.c: Likewise.
12235 * builtins.c: Likewise.
12236 * calls.c: Likewise.
12237 * cfgexpand.c: Likewise.
12238 * cfghooks.c: Likewise.
12239 * cfgloop.c: Likewise.
12240 * cfgloopmanip.c: Likewise.
12241 * cgraph.c: Likewise.
12242 * cgraphbuild.c: Likewise.
12243 * cgraphclones.c: Likewise.
12244 * cgraphunit.c: Likewise.
12245 * dse.c: Likewise.
12246 * except.c: Likewise.
12247 * expr.c: Likewise.
12248 * final.c: Likewise.
12249 * fold-const.c: Likewise.
12250 * ggc-page.c: Likewise.
12251 * gimple-builder.c: Likewise.
12252 * gimple-fold.c: Likewise.
12253 * gimple-iterator.c: Likewise.
12254 * gimple-low.c: Likewise.
12255 * gimple-pretty-print.c: Likewise.
12256 * gimple-ssa-strength-reduction.c: Likewise.
12257 * gimple-streamer-in.c: Likewise.
12258 * gimple-streamer-out.c: Likewise.
12259 * gimplify.c: Likewise.
12260 * graphite-blocking.c: Likewise.
12261 * graphite-clast-to-gimple.c: Likewise.
12262 * graphite-dependences.c: Likewise.
12263 * graphite-interchange.c: Likewise.
12264 * graphite-optimize-isl.c: Likewise.
12265 * graphite-poly.c: Likewise.
12266 * graphite-scop-detection.c: Likewise.
12267 * graphite-sese-to-poly.c: Likewise.
12268 * graphite.c: Likewise.
12269 * ipa-cp.c: Likewise.
12270 * ipa-inline-analysis.c: Likewise.
12271 * ipa-inline-transform.c: Likewise.
12272 * ipa-inline.c: Likewise.
12273 * ipa-prop.c: Likewise.
12274 * ipa-pure-const.c: Likewise.
12275 * ipa-reference.c: Likewise.
12276 * ipa-split.c: Likewise.
12277 * ipa-utils.c: Likewise.
12278 * loop-init.c: Likewise.
12279 * lto-cgraph.c: Likewise.
12280 * lto-section-in.c: Likewise.
12281 * lto-section-out.c: Likewise.
12282 * lto-streamer-in.c: Likewise.
12283 * lto-streamer-out.c: Likewise.
12284 * lto-streamer.c: Likewise.
12285 * omp-low.c: Likewise.
12286 * passes.c: Likewise.
12287 * predict.c: Likewise.
12288 * print-tree.c: Likewise.
12289 * profile.c: Likewise.
12290 * sese.c: Likewise.
12291 * targhooks.c: Likewise.
12292 * tracer.c: Likewise.
12293 * trans-mem.c: Likewise.
12294 * tree-call-cdce.c: Likewise.
12295 * tree-cfg.c: Likewise.
12296 * tree-cfgcleanup.c: Likewise.
12297 * tree-chrec.c: Likewise.
12298 * tree-complex.c: Likewise.
12299 * tree-data-ref.c: Likewise.
12300 * tree-dfa.c: Likewise.
12301 * tree-eh.c: Likewise.
12302 * tree-emutls.c: Likewise.
12303 * tree-if-conv.c: Likewise.
12304 * tree-inline.c: Likewise.
12305 * tree-into-ssa.c: Likewise.
12306 * tree-loop-distribution.c: Likewise.
12307 * tree-mudflap.c: Likewise.
12308 * tree-nested.c: Likewise.
12309 * tree-nrv.c: Likewise.
12310 * tree-object-size.c: Likewise.
12311 * tree-outof-ssa.c: Likewise.
12312 * tree-parloops.c: Likewise.
12313 * tree-phinodes.c: Likewise.
12314 * tree-predcom.c: Likewise.
12315 * tree-pretty-print.c: Likewise.
12316 * tree-profile.c: Likewise.
12317 * tree-scalar-evolution.c: Likewise.
12318 * tree-sra.c: Likewise.
12319 * tree-ssa-address.c: Likewise.
12320 * tree-ssa-alias.c: Likewise.
12321 * tree-ssa-ccp.c: Likewise.
12322 * tree-ssa-coalesce.c: Likewise.
12323 * tree-ssa-copy.c: Likewise.
12324 * tree-ssa-copyrename.c: Likewise.
12325 * tree-ssa-dce.c: Likewise.
12326 * tree-ssa-dom.c: Likewise.
12327 * tree-ssa-dse.c: Likewise.
12328 * tree-ssa-forwprop.c: Likewise.
12329 * tree-ssa-ifcombine.c: Likewise.
12330 * tree-ssa-live.c: Likewise.
12331 * tree-ssa-loop-ch.c: Likewise.
12332 * tree-ssa-loop-im.c: Likewise.
12333 * tree-ssa-loop-ivcanon.c: Likewise.
12334 * tree-ssa-loop-ivopts.c: Likewise.
12335 * tree-ssa-loop-manip.c: Likewise.
12336 * tree-ssa-loop-niter.c: Likewise.
12337 * tree-ssa-loop-prefetch.c: Likewise.
12338 * tree-ssa-loop-unswitch.c: Likewise.
12339 * tree-ssa-loop.c: Likewise.
12340 * tree-ssa-math-opts.c: Likewise.
12341 * tree-ssa-operands.c: Likewise.
12342 * tree-ssa-phiopt.c: Likewise.
12343 * tree-ssa-phiprop.c: Likewise.
12344 * tree-ssa-pre.c: Likewise.
12345 * tree-ssa-propagate.c: Likewise.
12346 * tree-ssa-reassoc.c: Likewise.
12347 * tree-ssa-sccvn.c: Likewise.
12348 * tree-ssa-sink.c: Likewise.
12349 * tree-ssa-strlen.c: Likewise.
12350 * tree-ssa-structalias.c: Likewise.
12351 * tree-ssa-tail-merge.c: Likewise.
12352 * tree-ssa-ter.c: Likewise.
12353 * tree-ssa-threadedge.c: Likewise.
12354 * tree-ssa-threadupdate.c: Likewise.
12355 * tree-ssa-uncprop.c: Likewise.
12356 * tree-ssa-uninit.c: Likewise.
12357 * tree-ssa.c: Likewise.
12358 * tree-ssanames.c: Likewise.
12359 * tree-stdarg.c: Likewise.
12360 * tree-streamer-in.c: Likewise.
12361 * tree-switch-conversion.c: Likewise.
12362 * tree-tailcall.c: Likewise.
12363 * tree-vect-data-refs.c: Likewise.
12364 * tree-vect-generic.c: Likewise.
12365 * tree-vect-loop-manip.c: Likewise.
12366 * tree-vect-loop.c: Likewise.
12367 * tree-vect-patterns.c: Likewise.
12368 * tree-vect-slp.c: Likewise.
12369 * tree-vect-stmts.c: Likewise.
12370 * tree-vectorizer.c: Likewise.
12371 * tree-vrp.c: Likewise.
12372 * tree.c: Likewise.
12373 * tsan.c: Likewise.
12374 * value-prof.c: Likewise.
12375 * var-tracking.c: Likewise.
12376 * varpool.c: Likewise.
12377 * vtable-verify.c: Likewise.
12378
12379 2013-10-23 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12380
12381 * config/tilegx/tilegx.c: Include "tree.h".
12382
12383 2013-10-23 Jakub Jelinek <jakub@redhat.com>
12384
12385 * gimple-pretty-print.c (dump_ssaname_info): Always print "# " before
12386 the info, not after it.
12387 (gump_gimple_phi): Add COMMENT argument, if true, print "# " after
12388 dump_ssaname_info call.
12389 (pp_gimple_stmt_1): Adjust caller.
12390 (dump_phi_nodes): Likewise. Don't print "# " here.
12391
12392 2013-10-22 Jan Hubicka <jh@suse.cz>
12393
12394 * i386.h (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES): New
12395 tuning flag.
12396 * x86-tune.def (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES): Define it.
12397 * i386.c (expand_small_movmem_or_setmem): New function.
12398 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): New
12399 function.
12400 (alg_usable_p): Add support for value ranges; cleanup.
12401 (ix86_expand_set_or_movmem): Add support for misaligned moves.
12402
12403 2013-10-22 Sterling Augustine <saugustine@google.com>
12404
12405 * doc/invoke.texi: Document -ggnu-pubnames.
12406 * common.opt: Add new option -ggnu-pubnames and modify -gpubnames
12407 logic.
12408 * dwarf2out.c: Include gdb/gdb-index.h.
12409 (DEBUG_PUBNAMES_SECTION, DEBUG_PUBTYPES_SECTION): Handle
12410 debug_generate_pub_sections.
12411 (is_java, output_pubtables, output_pubname): New functions.
12412 (include_pubname_in_output): Handle debug_generate_pub_sections at
12413 level 2.
12414 (size_of_pubnames): Use new local space_for_flags based on
12415 debug_generate_pub_sections.
12416 (output_pubnames): Unify pubnames and pubtypes output logic.
12417 Genericize comments. Call output_pubname.
12418 (dwarf2out_finish): Move logic to output_pubnames and call it.
12419
12420 2013-10-22 Uros Bizjak <ubizjak@gmail.com>
12421
12422 PR target/58779
12423 * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
12424 Remove CCCmode handling.
12425 <case LTU>: Return 'c' suffix for CCCmode.
12426 <case GEU>: Return 'nc' suffix for CCCmode.
12427 (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
12428 * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
12429 (*sub<mode>3_cc_overflow): Ditto.
12430 (*subsi3_zext_cc_overflow): Ditto.
12431
12432 2013-10-22 Steve Ellcey <sellcey@mips.com>
12433
12434 * config/mips/mips.c (mips_rtx_costs): Fix cost estimate for nor
12435 (AND (NOT OP1) (NOT OP2)).
12436
12437 2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
12438
12439 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
12440 meaning of merge-high and merge-low masks for little endian; avoid
12441 use of vector-pack masks for little endian for mismatched modes.
12442
12443 2013-10-22 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12444
12445 * config/tilepro/tilepro.c: Include "tree.h".
12446
12447 2013-10-22 Andreas Schwab <schwab@suse.de>
12448
12449 * config/m68k/m68k.c (notice_update_cc): Handle register conflict
12450 with PRE_DEC.
12451
12452 2013-10-22 Paolo Carlini <paolo.carlini@oracle.com>
12453
12454 * doc/contrib.texi ([Fran@,{c}ois Dumont], [Tim Shen],
12455 [Ed Smith-Rowland]): New entries.
12456 ([Stephen M. Webb]): Update.
12457
12458 2013-10-22 Andrew MacLeod <amacleod@redhat.com>
12459
12460 * tree-ssa-ter.h: Remove duplicate copy of file contents.
12461
12462 2013-10-21 Marek Polacek <polacek@redhat.com>
12463
12464 PR middle-end/58809
12465 * fold-const.c (fold_range_test): Return 0 if the type is not
12466 an integral type.
12467
12468 2013-10-21 Richard Sandiford <rdsandiford@googlemail.com>
12469
12470 * system.h: Move hwint.h include further down.
12471 * hwint.h (sext_hwi, zext_hwi): Define unconditionally. Add
12472 gcc_checking_asserts.
12473 * hwint.c (sext_hwi, zext_hwi): Delete ENABLE_CHECKING versions.
12474
12475 2013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
12476
12477 Fix volatile issues in optimize_bit_field_compare.
12478 * fold-const.c (optimize_bit_field_compare): Bail out if
12479 lvolatilep or rvolatilep.
12480
12481 2013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
12482
12483 Fix DECL_BIT_FIELD depencency on flag_strict_volatile_bitfields
12484 and get_inner_reference returning different pmode for non-volatile
12485 bit-field members dependent on flag_strict_volatile_bitfields.
12486 * stor-layout.c (layout_decl): Remove special handling of
12487 flag_strict_volatile_bitfields.
12488 * expr.c (get_inner_reference): Don't use DECL_BIT_FIELD
12489 if flag_strict_volatile_bitfields > 0 and TREE_THIS_VOLATILE.
12490
12491 2013-10-21 Paulo Matos <pmatos@broadcom.com>
12492
12493 * ipa-inline.c (edge_badness): Cap edge->count at max_count for badness
12494 calculations.
12495
12496 2013-10-21 Jeff Law <law@redhat.com>
12497
12498 * tree-ssa-threadedge.c (thread_through_normal_block): New
12499 argument VISITED. Remove VISISTED as a local variable. When we
12500 have a threadable jump, verify the destination of the jump has not
12501 been visised.
12502 (thread_across_edge): Allocate VISITED bitmap once at function
12503 scope and use it throughout. Make sure to set appropriate bits in
12504 VISITED for E (start of jump thread path).
12505 * tree-ssa-threadupdate.c (mark_threaded_blocks): Reject threading
12506 through a joiner if any edge on the path has a recorded jump thread.
12507
12508 2013-10-21 Ian Lance Taylor <iant@google.com>
12509
12510 * doc/invoke.texi (Optimize Options): For -fno-toplevel-reorder,
12511 don't imply that attributes can solve all problems.
12512 (Directory Options): Fix typo.
12513
12514 2013-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12515
12516 * config/arm/arm.c (cortexa9_extra_costs): Update mult costs for
12517 extend and extend_add.
12518
12519 2013-10-21 Richard Biener <rguenther@suse.de>
12520
12521 PR tree-optimization/58794
12522 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
12523 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
12524
12525 2013-10-21 Richard Biener <rguenther@suse.de>
12526
12527 PR middle-end/58742
12528 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
12529 to (T) X for sign-changing conversions (or no conversion).
12530
12531 2013-10-20 Uros Bizjak <ubizjak@gmail.com>
12532
12533 * config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber.
12534
12535 2013-10-20 Jan Hubicka <jh@suse.cz>
12536
12537 * config/i386/i386-tune.def: Add comment; organize into categories
12538
12539 2013-10-21 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
12540
12541 * config/i386/i386.c (expand_set_or_movmem_via_loop): Add issetmem
12542 argument. Update function comment.
12543 (expand_set_or_movmem_via_rep): New function combining
12544 expand_movmem_via_rep_mov and expand_setmem_via_rep_stos.
12545 (expand_movmem_via_rep_mov): Remove.
12546 expand_setmem_via_rep_stos): Remove.
12547 (expand_movmem_epilogue): Update calls correspondingly.
12548 (expand_setmem_epilogue_via_loop): Likewise.
12549 (emit_memset): New.
12550 (expand_setmem_epilogue): Add VEC_VALUE argument, refactor.
12551 (expand_set_or_movmem_prologue): New function combining
12552 expand_movmem_prologue and expand_setmem_prologue.
12553 (expand_movmem_prologue): Remove.
12554 (expand_setmem_prologue): Remove.
12555 (expand_set_or_movmem_constant_prologue): New function combining
12556 expand_constant_movmem_prologue and expand_constant_setmem_prologue.
12557 (expand_constant_movmem_prologue): Remove.
12558 (expand_constant_setmem_prologue): Remove.
12559 (promote_duplicated_reg): Allow vector-const0 value.
12560 (ix86_expand_set_or_movmem): New function combining ix86_expand_movmem
12561 and ix86_expand_setmem.
12562 (ix86_expand_movmem): Call ix86_expand_set_or_movmem.
12563 (ix86_expand_setmem): Call ix86_expand_set_or_movmem.
12564
12565 2013-10-21 Diego Novillo <dnovillo@google.com>
12566
12567 * asan.c: Include tree.h
12568 * bb-reorder.c: Likewise.
12569 * cfgcleanup.c: Likewise.
12570 * cfgloopmanip.c: Likewise.
12571 * data-streamer-in.c: Likewise.
12572 * data-streamer-out.c: Likewise.
12573 * data-streamer.c: Likewise.
12574 * dwarf2cfi.c: Likewise.
12575 * graphite-blocking.c: Likewise.
12576 * graphite-clast-to-gimple.c: Likewise.
12577 * graphite-dependences.c: Likewise.
12578 * graphite-interchange.c: Likewise.
12579 * graphite-optimize-isl.c: Likewise.
12580 * graphite-poly.c: Likewise.
12581 * graphite-scop-detection.c: Likewise.
12582 * graphite-sese-to-poly.c: Likewise.
12583 * graphite.c: Likewise.
12584 * ipa-devirt.c: Likewise.
12585 * ipa-profile.c: Likewise.
12586 * ipa.c: Likewise.
12587 * ira.c: Likewise.
12588 * loop-init.c: Likewise.
12589 * loop-unroll.c: Likewise.
12590 * lower-subreg.c: Likewise.
12591 * lto/lto-object.c: Likewise.
12592 * recog.c: Likewise.
12593 * reginfo.c: Likewise.
12594 * tree-loop-distribution.c: Likewise.
12595 * tree-parloops.c: Likewise.
12596 * tree-ssa-strlen.c: Likewise.
12597 * tree-streamer.c: Likewise.
12598 * value-prof.c: Likewise.
12599 * target-globals.c: Likewise.
12600 * expr.h: Include tree-core.h instead of tree.h.
12601 * gimple.h: Likewise.
12602 * ipa-prop.h: Likewise.
12603 * ipa-utils.h: Likewise.
12604 * lto-streamer.h: Likewise.
12605 * streamer-hooks.h: Likewise.
12606 * ipa-reference.h: Include cgraph.h instead of tree.h.
12607 * cgraph.h: Include basic-block.h instead of tree.h.
12608 * tree-streamer.h: Do not include tree.h.
12609 * genattrtab.c (write_header): Generate inclusion of tree.h.
12610 * genautomata.c (main): Likewise.
12611 * genemit.c: Likewise.
12612 * genopinit.c: Likewise.
12613 * genoutput.c (output_prologue): Likewise.
12614 * genpeep.c: Likewise.
12615
12616 2013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12617
12618 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
12619 little endian.
12620 (vec_unpacku_hi_v8hi): Likewise.
12621 (vec_unpacku_lo_v16qi): Likewise.
12622 (vec_unpacku_lo_v8hi): Likewise.
12623
12624 2013-10-20 Jan Hubicka <jh@suse.cz>
12625
12626 * config/i386/x86-tune.def (X86_TUNE_SLOW_IMUL_IMM32_MEM,
12627 X86_TUNE_SLOW_IMUL_IMM8): Keep enabled only for K8 and AMDFAM10.
12628 (X86_TUNE_USE_VECTOR_FP_CONVERTS): Disable for generic.
12629
12630 2013-10-20 Richard Sandiford <rdsandiford@googlemail.com>
12631
12632 * config/mips/mips.h (ISA_HAS_WSBH): Define.
12633 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
12634 constants.
12635 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
12636
12637 2013-10-19 John David Anglin <danglin@gcc.gnu.org>
12638
12639 PR target/58603
12640 * system.h: Undef m_slot.
12641
12642 2013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12643
12644 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
12645 all elements for both endian flavors.
12646
12647 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
12648
12649 PR target/58792
12650 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
12651 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
12652 and SI_REG for 64bit SYSV ABI targets.
12653
12654 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
12655
12656 * mode-switching.c (create_pre_exit): Rename maybe_builtin_apply
12657 to multi_reg_return. Clarify that we are skipping USEs of multiple
12658 return registers. Use bool type where appropriate.
12659
12660 2013-10-18 Jan Hubicka <jh@suse.cz>
12661
12662 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Disable accumulation
12663 for cold functions.
12664 * x86-tune.def (X86_TUNE_USE_LEAVE): Update comment.
12665 (X86_TUNE_PUSH_MEMORY): Likewise.
12666 (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL,
12667 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): New.
12668 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, X86_TUNE_ALWAYS_FANCY_MATH_387):
12669 New.
12670 * i386.c (x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
12671 x86_avx256_split_unaligned_load, x86_avx256_split_unaligned_store):
12672 Remove.
12673 (ix86_option_override_internal): Update to use tune features instead
12674 of variables.
12675
12676 2013-10-18 Cong Hou <congh@google.com>
12677
12678 PR tree-optimization/58508
12679 * tree-vect-loop-manip.c (vect_loop_versioning): Hoist loop invariant
12680 statement that contains data refs with zero-step.
12681
12682 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
12683
12684 * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h,
12685 sbitmap.h, tree-ssa-threadedge.h, tree-ssa-dom.h and tree-cfgcleanup.h.
12686 * gimple-low.c (gimple_check_call_arg,
12687 gimple_check_call_matching_types): Move to cgraph.c.
12688 * gimple-low.h: Remove prototype.
12689 * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types):
12690 Relocate from gimple-low.c.
12691 * cgraph.h: Add prototype. Don't include basic-block.h.
12692 * gimplify.c: Add gimple-low to include list.
12693 * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list.
12694 * tree-eh.c: Add gimple-low to include list.
12695 * tree-nested.c: Likewise.
12696 * cfgexpand.c: Add tree-ssa-address.h to include list.
12697 * expr.c: Likewise.
12698 * gimple-fold.c: Likewise.
12699 * gimple-ssa-strength-reduction.c: Likewise.
12700 * trans-mem.c: Likewise.
12701 * tree-mudflap.c: Likewise.
12702 * tree-ssa-loop-ivopts.c: Likewise.
12703 * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h.
12704 (degenerate_phi_result): Move to tree-phinodes.c.
12705 * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h.
12706 * tree-ssa-threadedge.c: Likewise.
12707 * tree-vrp.c: Likewise.
12708 * tree-phinodes.c (degenerate_phi_result): Relocate here.
12709 * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype.
12710 * tree-phinodes.h (degenerate_phi_result): Add prototype.
12711 * tree-ssa-copy.c: Include tree-ssa-dom.h.
12712 * tree-ssa-forwprop.c: Likewise.
12713 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing,
12714 pass_data_cleanup_cfg_post_optimizing,
12715 make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
12716 * tree-optimize.c: Delete File.
12717 * graphite.c: Include tree-cfgcleanup.h.
12718 * passes.c: Likewise.
12719 * tree-cfg.c: Likewise.
12720 * tree-profile.c: Likewise.
12721 * tree-ssa-dse.c: Likewise.
12722 * tree-ssa-loop-ivcanon.c: Likewise.
12723 * tree-switch-conversion.c: Don't include tree-ssa-operands.h.
12724 * tree-outof-ssa.c: Include sbitmap.h.
12725 * tree-ssa-live.c: Likewise.
12726 * tree-ssa-propagate.c: Likewise.
12727 * tree-ssa-structalias.c: Likewise.
12728 * tree-stdarg.c: Likewise.
12729 * Makefile.in (OBJS): Delete tree-optimize.o.
12730 * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h.
12731 * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here.
12732 * varasm.c: Include basic-block.h.
12733 * cfgloop.h: Include function.h instead of basic-block.h
12734 (bb_loop_depth): Move to cfgloop.c.
12735 * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h.
12736
12737 2013-10-18 Teresa Johnson <tejohnson@google.com>
12738
12739 * predict.c (probably_never_executed): Compare frequency-based
12740 count to number of training runs.
12741 * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter.
12742
12743 2013-10-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12744
12745 * config/arm/arm.c (cortexa9_extra_costs): New table.
12746 (arm_cortex_a9_tune): Use cortexa9_extra_costs.
12747
12748 2013-10-18 Jeff Law <law@redhat.com>
12749
12750 * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h".
12751
12752 * tree-ssa-threadupdate.c: Include "dbgcnt.h".
12753 (register_jump_thread): Add "registered_jump_thread" debug
12754 counter support.
12755 * dbgcnt.def (registered_jump_thread): New debug counter.
12756
12757 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
12758
12759 * config/rs6000/rs6000.c: Include cgraph.h.
12760
12761 2013-10-18 Teresa Johnson <tejohnson@google.com>
12762
12763 * tree-ssa-tail-merge.c (replace_block_by): Update edge
12764 weights during merging.
12765
12766 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
12767
12768 * tree-cfg.h: Rename from tree-flow.h. Remove #includes.
12769 * tree-ssa.h: Relocate required #includes from tree-cfg.h.
12770 * tree-ssa-operands.h: Remove prototype.
12771 * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
12772 * gimple.c (virtual_operand_p): Relocate from gimple.c.
12773 * gimple.h: Add prototype.
12774 * gimple-ssa.h: Include tree-ssa-operands.h.
12775 * tree-dump.c: Add tree-cfg.h to include list.
12776 * tree-ssa-alias.c: Add ipa-reference.h to include list.
12777 * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
12778 * config/i386/i386.c: Don't include tree-flow.h.
12779 * config/rs6000/rs6000.c: Likewise.
12780
12781 2013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12782
12783 * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
12784
12785 2013-10-18 Richard Biener <rguenther@suse.de>
12786
12787 * stor-layout.c (layout_type): Do not change TYPE_PRECISION
12788 or TYPE_UNSIGNED of integral types.
12789 (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE
12790 NULL_TREE for zero-precision integral types.
12791
12792 2013-10-18 James Greenhalgh <james.greenhalgh@arm.com>
12793
12794 * config/aarch64/arm_neon.h
12795 (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types.
12796
12797 2013-10-17 Sriraman Tallam <tmsriram@google.com>
12798
12799 PR target/57756
12800 * opth-gen.awk: Define target_flags_explicit.
12801
12802 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
12803
12804 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
12805 fields to the reg_addr array that describes the valid addressing
12806 mode for any register, general purpose registers, floating point
12807 registers, and Altivec registers.
12808 (FIRST_RELOAD_REG_CLASS): Likewise.
12809 (LAST_RELOAD_REG_CLASS): Likewise.
12810 (struct reload_reg_map_type): Likewise.
12811 (reload_reg_map_type): Likewise.
12812 (RELOAD_REG_VALID): Likewise.
12813 (RELOAD_REG_MULTIPLE): Likewise.
12814 (RELOAD_REG_INDEXED): Likewise.
12815 (RELOAD_REG_OFFSET): Likewise.
12816 (RELOAD_REG_PRE_INCDEC): Likewise.
12817 (RELOAD_REG_PRE_MODIFY): Likewise.
12818 (reg_addr): Likewise.
12819 (mode_supports_pre_incdec_p): New helper functions to say whether
12820 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
12821 (mode_supports_pre_modify_p): Likewise.
12822 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
12823 print the valid address mode bits for each mode.
12824 (rs6000_debug_print_mode): Likewise.
12825 (rs6000_debug_reg_global): Likewise.
12826 (rs6000_setup_reg_addr_masks): New function to set up the address
12827 mask bits for each type.
12828 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
12829 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
12830 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
12831 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
12832 PRE_MODIFY are supported.
12833 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
12834 registers, instead of {src,dest}_av_p.
12835 (rs6000_print_options_internal): Tweak the debug output slightly.
12836
12837 2013-10-17 Uros Bizjak <ubizjak@gmail.com>
12838
12839 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
12840 isa attribute.
12841
12842 2013-10-17 Andrew MacLeod <amacleod@redhat.com>
12843
12844 * tree-flow.h (struct omp_region): Move to omp-low.c.
12845 Remove omp_ prototypes and variables.
12846 * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
12847 (copy_var_decl): Relocate prototype from tree-flow.h.
12848 * gimple.c (copy_var_decl): Relocate from omp-low.c.
12849 * tree.h: Move prototype to omp-low.h.
12850 * omp-low.h: New File. Relocate prototypes here.
12851 * omp-low.c (struct omp_region): Make local here.
12852 (root_omp_region): Make static.
12853 (copy_var_decl) Move to gimple.c.
12854 (new_omp_region): Make static.
12855 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges.
12856 * tree-cfg.c: Include omp-low.h.
12857 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
12858 * gimplify.c: Include omp-low.h.
12859 * tree-parloops.c: Likewise.
12860
12861 2013-10-17 Uros Bizjak <ubizjak@gmail.com>
12862
12863 * config/i386/i386.c (ix86_fixup_binary_operands): When both source
12864 operands are in memory, prefer to force non-matched operand 1 to
12865 the register.
12866
12867 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
12868
12869 PR target/58673
12870 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
12871 restrict TImode addresses to single indirect registers if both
12872 -mquad-memory and -mvsx-timode are used.
12873 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
12874 we should emit load/store quad. Remove using %y for quad memory
12875 addresses.
12876
12877 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
12878 constraints to allow load/store quad on machines where TImode is
12879 not allowed in VSX registers. Use 'n' instead of 'F' constraint
12880 for TImode to load integer constants.
12881
12882 2013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12883
12884 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
12885
12886 2013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
12887
12888 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
12889 handling of STACK_REG.
12890
12891 2013-10-17 Richard Biener <rguenther@suse.de>
12892
12893 PR tree-optimization/58143
12894 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
12895 New function.
12896 (rewrite_to_defined_overflow): Likewise.
12897 (move_computations_dom_walker::before_dom): Rewrite stmts
12898 with undefined signed overflow that are not always executed
12899 into unsigned arithmetic.
12900
12901 2013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
12902
12903 PR target/57756
12904 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
12905 explicit isa flag to be an options variable, instead of using
12906 global_options_set. Remove define from rs6000.h.
12907 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
12908
12909 * config/rs6000/rs6000.c (rs6000_option_override_internal):
12910 Initialize rs6000_isa_flags_explicit.
12911 (rs6000_function_specific_save): Add gcc_options* parameter, so
12912 that the powerpc builds after the 2013-10-15 changes.
12913 (rs6000_function_specific_restore): Likewise.
12914
12915 2013-10-16 DJ Delorie <dj@redhat.com>
12916
12917 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
12918 op is a REG before checking REGNO.
12919 (rl78_alloc_physical_registers): Verify pattern is a SET before
12920 checking SET_SRC.
12921
12922 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12923
12924 * config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
12925 endianness.
12926 (vec_unpacks_lo_v4sf): Likewise.
12927 (vec_unpacks_float_hi_v4si): Likewise.
12928 (vec_unpacks_float_lo_v4si): Likewise.
12929 (vec_unpacku_float_hi_v4si): Likewise.
12930 (vec_unpacku_float_lo_v4si): Likewise.
12931
12932 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12933
12934 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
12935 (vsx_concat_v2sf): Likewise.
12936
12937 2013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
12938
12939 * config/aarch64/aarch64.md
12940 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
12941
12942 2013-10-16 Andrew MacLeod <amacleod@redhat.com>
12943
12944 PR tree-optimization/58697
12945 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
12946 estimated_loop_iterations_int.
12947 (max_stmt_executions_int): Call get_max_loop_iterations_int.
12948 (get_max_loop_iterations_int): New. HWINT version of
12949 get_max_loop_iterations.
12950 * cfgloop.h: Add prototypes.
12951 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
12952 * loop-unroll.c (decide_peel_once_rolling): Call
12953 get_estimated_loop_iterations_int.
12954 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
12955 * tree-ssa-loop-niter.h: Tweak prototypes.
12956
12957 2013-10-16 David Malcolm <dmalcolm@redhat.com>
12958
12959 * gengtype-parse.c (struct_field_seq): Ignore access-control
12960 keywords ("public:" etc).
12961
12962 2013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
12963
12964 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
12965 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
12966
12967 2013-10-16 Yvan Roux <yvan.roux@linaro.org>
12968
12969 * config/arm/arm.opt (mlra): New option.
12970 * config/arm/arm.c (arm_lra_p): New function.
12971 (TARGET_LRA_P): Define.
12972
12973 2013-10-16 Paulo Matos <pmatos@broadcom.com>
12974
12975 * tree-core.h (tree_code_name): Remove.
12976 * tree.h (get_tree_code_name): New prototype.
12977 * tree.c (tree_code_name): Make static.
12978 (get_tree_code_name): New function.
12979 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
12980 tree_class_check_failed, tree_range_check_failed,
12981 tree_not_class_check_failed, omp_clause_check_failed,
12982 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
12983 wrapper get_tree_code_name instead of calling tree_code_name directly.
12984 * tree-vrp.c (dump_asserts_for): Likewise.
12985 * tree-dump.c (dequeue_and_dump): Likewise.
12986 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
12987 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
12988 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
12989 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
12990 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
12991 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
12992 dump_gimple_omp_for): Likewise.
12993 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
12994 * tree-ssa-pre.c (print_pre_expr): Likewise.
12995 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
12996 * print-tree.c (print_node_brief, print_node): Likewise.
12997 * gimple.c (gimple_check_failed): Likewise.
12998 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
12999 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
13000 * config/mep/mep.c (mep_validate_vliw): Likewise.
13001 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
13002 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
13003
13004 2013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
13005
13006 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
13007 for AMD bdver3.
13008
13009 2013-10-16 Hans-Peter Nilsson <hp@axis.com>
13010
13011 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
13012 (MULTILIB_MATCHES): Add multilib for -march=v8.
13013
13014 2013-10-15 Sriraman Tallam <tmsriram@google.com>
13015
13016 PR target/57756
13017 * optc-save-gen.awk: Add extra parameter to the save and restore
13018 target calls.
13019 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
13020 * tree.c (build_optimization_node): New parameter. Add extra parameter
13021 to call to cl_optimization_save.
13022 (build_target_option_node): New parameter. Add extra parameter
13023 to call to cl_target_option_save.
13024 * tree.h (build_optimization_node): New parameter.
13025 (build_target_option_node): New parameter.
13026 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
13027 build_optimization_node and build_target_option_node.
13028 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
13029 (handle_pragma_push_options): Ditto.
13030 * toplev.c (process_options): Ditto.
13031 * opts.c (init_options_struct): Check for opts_set non-null.
13032 * target.def (target_option.save): New parameter.
13033 (target_option.restore): New parameter.
13034 * tm.texi: Generate.
13035 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
13036 (ix86_pragma_target_parse): Ditto.
13037 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
13038 parameters.
13039 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
13040 to build_optimization_node and build_target_option_node.
13041 (rs6000_valid_attribute_p): Ditto.
13042 (rs6000_pragma_target_parse): Ditto.
13043 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
13044 data.
13045 * config/i386/i386.h:
13046 TARGET_64BIT_P: New Macro
13047 TARGET_MMX_P: New Macro.
13048 TARGET_3DNOW_P: New Macro.
13049 TARGET_3DNOW_A_P: New Macro.
13050 TARGET_SSE_P: New Macro.
13051 TARGET_SSE2_P: New Macro.
13052 TARGET_SSE3_P: New Macro.
13053 TARGET_SSSE3_P: New Macro.
13054 TARGET_SSE4_1_P: New Macro.
13055 TARGET_SSE4_2_P: New Macro.
13056 TARGET_AVX_P: New Macro.
13057 TARGET_AVX2_P: New Macro.
13058 TARGET_AVX512F_P: New Macro.
13059 TARGET_AVX512PF_P: New Macro.
13060 TARGET_AVX512ER_P: New Macro.
13061 TARGET_AVX512CD_P: New Macro.
13062 TARGET_FMA_P: New Macro.
13063 TARGET_SSE4A_P: New Macro.
13064 TARGET_FMA4_P: New Macro.
13065 TARGET_XOP_P: New Macro.
13066 TARGET_LWP_P: New Macro.
13067 TARGET_ABM_P: New Macro.
13068 TARGET_BMI_P: New Macro.
13069 TARGET_BMI2_P: New Macro.
13070 TARGET_LZCNT_P: New Macro.
13071 TARGET_TBM_P: New Macro.
13072 TARGET_POPCNT_P: New Macro.
13073 TARGET_SAHF_P: New Macro.
13074 TARGET_MOVBE_P: New Macro.
13075 TARGET_CRC32_P: New Macro.
13076 TARGET_AES_P: New Macro.
13077 TARGET_PCLMUL_P: New Macro.
13078 TARGET_CMPXCHG16B_P: New Macro.
13079 TARGET_FSGSBASE_P: New Macro.
13080 TARGET_RDRND_P: New Macro.
13081 TARGET_F16C_P: New Macro.
13082 TARGET_RTM_P: New Macro.
13083 TARGET_HLE_P: New Macro.
13084 TARGET_RDSEED_P: New Macro.
13085 TARGET_PRFCHW_P: New Macro.
13086 TARGET_ADX_P: New Macro.
13087 TARGET_FXSR_P: New Macro.
13088 TARGET_XSAVE_P: New Macro.
13089 TARGET_XSAVEOPT_P: New Macro.
13090 TARGET_LP64_P: New Macro.
13091 TARGET_X32_P: New Macro.
13092 TARGET_FPMATH_DEFAULT_P: New Macro.
13093 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
13094 * config/i386/i386.c (ix86_option_override_internal): New parameters.
13095 opts and opts_set.
13096 Change ix86_tune_string to access opts->x_ix86_tune_string.
13097 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
13098 Change ix86_arch_string to access opts->x_ix86_arch_string.
13099 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
13100 Change ix86_pmode to access opts->x_ix86_pmode.
13101 Change ix86_abi to access opts->x_ix86_abi.
13102 Change ix86_cmodel to access opts->x_ix86_cmodel.
13103 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
13104 Change ix86_isa_flags_explicit to access
13105 opts->x_ix86_isa_flags_explicit.
13106 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
13107 Change ix86_regparm to access opts->x_ix86_regparm.
13108 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
13109 Change ix86_preferred_stack_boundary_arg to access
13110 opts->x_ix86_preferred_stack_boundary_arg.
13111 Change ix86_force_align_arg_pointer to access
13112 opts->x_ix86_force_align_arg_pointer.
13113 Change ix86_incoming_stack_boundar_arg to access
13114 opts->x_ix86_incoming_stack_boundar_arg.
13115 Change ix86_fpmath to access opts->x_ix86_fpmath.
13116 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
13117 Change ix86_recip_name to access opts->x_ix86_recip_name.
13118 Change ix86_stack_protector_guard to access
13119 opts->x_ix86_stack_protector_guard.
13120 Change ix86_tune_memcpy_strategy to access
13121 opts->x_ix86_tune_memcpy_strategy.
13122 Change ix86_tune_memset_strategy to access
13123 opts->x_ix86_tune_memset_strategy.
13124 Change global_options to access opts.
13125 Change global_options_set to access opts_set.
13126 Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
13127 Change TARGET_MMX to TARGET_MMX_P (opts->...).
13128 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
13129 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
13130 Change TARGET_SSE to TARGET_SSE_P (opts->...).
13131 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
13132 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
13133 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
13134 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
13135 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
13136 Change TARGET_AVX to TARGET_AVX_P (opts->...).
13137 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
13138 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
13139 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
13140 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
13141 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
13142 Change TARGET_FMA to TARGET_FMA_P (opts->...).
13143 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
13144 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
13145 Change TARGET_XOP to TARGET_XOP_P (opts->...).
13146 Change TARGET_LWP to TARGET_LWP_P (opts->...).
13147 Change TARGET_ABM to TARGET_ABM_P (opts->...).
13148 Change TARGET_BMI to TARGET_BMI_P (opts->...).
13149 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
13150 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
13151 Change TARGET_TBM to TARGET_TBM_P (opts->...).
13152 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
13153 Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
13154 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
13155 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
13156 Change TARGET_AES to TARGET_AES_P (opts->...).
13157 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
13158 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
13159 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
13160 Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
13161 Change TARGET_F16C to TARGET_F16C_P (opts->...).
13162 Change TARGET_RTM to TARGET_RTM_P (opts->...).
13163 Change TARGET_HLE to TARGET_HLE_P (opts->...).
13164 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
13165 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
13166 Change TARGET_ADX to TARGET_ADX_P (opts->...).
13167 Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
13168 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
13169 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
13170 Change TARGET_LP64 to TARGET_LP64_P (opts->...).
13171 Change TARGET_X32 to TARGET_X32_P (opts->...).
13172 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
13173 Change TARGET_FLOAT_RETURNS_IN_80387 to
13174 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
13175 (ix86_function_specific_save): New parameter. Use opts-> fields
13176 to replace global fields.
13177 (ix86_function_specific_restore): Ditto.
13178 (ix86_valid_target_attribute_inner_p): New parameters.
13179 Fix recursive call.
13180 Fix call to ix86_handle_option and set_option.
13181 (ix86_valid_target_attribute_tree): New parameters.
13182 Change global_options to access opts.
13183 Change global_options_set to access opts_set.
13184 Fix call to ix86_valid_target_attribute_inner_p.
13185 Change ix86_tune_string to access opts->x_ix86_tune_string.
13186 Change ix86_arch_string to access opts->x_ix86_arch_string.
13187 Change ix86_fpmath to access opts->x_ix86_fpmath
13188 Fix call to ix86_option_override_internal.
13189 Fix call to ix86_add_new_builtins.
13190 Fix calls to build_optimization_node and build_target_option_node.
13191 (ix86_valid_target_attribute_p): Remove access to global_options.
13192 Use new gcc_options structure func_options.
13193 Fix call to ix86_valid_target_attribute_tree.
13194 Fix call to build_optimization_node.
13195 (get_builtin_code_for_version): Fix call to
13196 ix86_valid_target_attribute_tree.
13197
13198 2013-10-15 David Malcolm <dmalcolm@redhat.com>
13199
13200 * Makefile.in (PICFLAG): New.
13201 (enable_host_shared): New.
13202 (INTERNAL_CFLAGS): Use PICFLAG.
13203 (LIBIBERTY): Use pic build of libiberty.a if configured with
13204 --enable-host-shared.
13205 * configure.ac: Add --enable-host-shared, setting up new
13206 PICFLAG variable.
13207 * configure: Regenerate.
13208 * doc/install.texi (--enable-shared): Add note contrasting it with ...
13209 (--enable-host-shared): New option.
13210
13211 2013-10-15 Richard Biener <rguenther@suse.de>
13212
13213 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
13214 for built-in functions.
13215
13216 2013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
13217
13218 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
13219 (optimize_range_tests_1): New function,
13220 extracted from optimize_range_tests.
13221 (optimize_range_tests_xor): Similarly.
13222 (optimize_range_tests_diff): New function.
13223 (optimize_range_tests): Use optimize_range_tests_1.
13224
13225 2013-10-15 Cong Hou <congh@google.com>
13226
13227 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
13228 requirement of the reduction pattern so that one operand of the
13229 reduction operation can come from outside of the loop.
13230
13231 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13232
13233 * config/arm/neon-schedgen.ml: Remove.
13234 * config/arm/cortex-a9-neon.md: Remove comment regarding
13235 neon-schedgen.ml.
13236
13237 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13238
13239 * config/arm/types: Remove old neon types.
13240
13241 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13242
13243 * config/arm/cortex-a7.md
13244 (cortex_a7_neon_type): New.
13245 (cortex_a7_neon_mul): Update for new types.
13246 (cortex_a7_neon_mla): Likewise.
13247 (cortex_a7_neon): Likewise.
13248
13249 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13250
13251 * config/arm/cortex-a15-neon.md
13252 (cortex_a15_neon_type): New,
13253
13254 (cortex_a15_neon_int_1): Remove.
13255 (cortex_a15_neon_int_2): Likewise.
13256 (cortex_a15_neon_int_3): Likewise.
13257 (cortex_a15_neon_int_4): Likewise.
13258 (cortex_a15_neon_int_5): Likewise.
13259 (cortex_a15_neon_vqneg_vqabs): Likewise.
13260 (cortex_a15_neon_vmov): Likewise.
13261 (cortex_a15_neon_vaba): Likewise.
13262 (cortex_a15_neon_vaba_qqq): Likewise.
13263 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
13264 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
13265 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
13266 Likewise.
13267 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
13268 (cortex_a15_neon_mla_qqq_8_16): Likewise.
13269 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
13270 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
13271 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
13272 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
13273 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
13274 (cortex_a15_neon_shift_1): Likewise.
13275 (cortex_a15_neon_shift_2): Likewise.
13276 (cortex_a15_neon_shift_3): Likewise.
13277 (cortex_a15_neon_vshl_ddd): Likewise.
13278 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
13279 (cortex_a15_neon_vsra_vrsra): Likewise.
13280 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
13281 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
13282 (cortex_a15_neon_bp_3cycle): Likewise.
13283 (cortex_a15_neon_ldm_2): Likewise.
13284 (cortex_a15_neon_stm_2): Likewise.
13285 (cortex_a15_neon_mcr): Likewise.
13286 (cortex_a15_neon_mrc): Likewise.
13287 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
13288 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
13289 (cortex_a15_neon_fp_vmul_ddd): Likewise.
13290 (cortex_a15_neon_fp_vmul_qqd): Likewise.
13291 (cortex_a15_neon_fp_vmla_ddd): Likewise.
13292 (cortex_a15_neon_fp_vmla_qqq): Likewise.
13293 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
13294 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
13295 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
13296 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
13297 (cortex_a15_neon_bp_simple): Likewise.
13298 (cortex_a15_neon_bp_2cycle): Likewise.
13299 (cortex_a15_neon_bp_3cycle): Likewise.
13300 (cortex_a15_neon_vld1_1_2_regs): Likewise.
13301 (cortex_a15_neon_vld1_3_4_regs): Likewise.
13302 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
13303 (cortex_a15_neon_vld2_4_regs): Likewise.
13304 (cortex_a15_neon_vld3_vld4): Likewise.
13305 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
13306 (cortex_a15_neon_vst1_3_4_regs): Likewise.
13307 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
13308 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
13309 (cortex_a15_neon_vst3_vst4): Rename to...
13310 (cortex_a15_neon_vst4): This, update for new attributes.
13311 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
13312 (cortex_a15_neon_vld3_vld4_lane): Likewise.
13313 (cortex_a15_neon_vst1_vst2_lane): Likewise.
13314 (cortex_a15_neon_vst3_vst4_lane): Likewise.
13315 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
13316 (cortex_a15_neon_ldm_2): Likewise.
13317 (cortex_a15_neon_stm_2): Likewise.
13318 (cortex_a15_neon_mcr): Likewise.
13319 (cortex_a15_neon_mcr_2_mcrr): Likewise.
13320 (cortex_a15_neon_mrc): Likewise.
13321 (cortex_a15_neon_mrrc): Likewise.
13322
13323 (cortex_a15_neon_abd): New.
13324 (cortex_a15_neon_abd_q): Likewise.
13325 (cortex_a15_neon_aba): Likewise.
13326 (cortex_a15_neon_aba_q): Likewise.
13327 (cortex_a15_neon_acc): Likewise.
13328 (cortex_a15_neon_acc_q): Likewise.
13329 (cortex_a15_neon_arith_basic): Likewise.
13330 (cortex_a15_neon_arith_complex): Likewise.
13331 (cortex_a15_neon_multiply): Likewise.
13332 (cortex_a15_neon_multiply_q): Likewise.
13333 (cortex_a15_neon_mla): Likewise.
13334 (cortex_a15_neon_mla_q): Likewise.
13335 (cortex_a15_neon_sat_mla_long): Likewise.
13336 (cortex_a15_neon_shift_acc): Likewise.
13337 (cortex_a15_neon_shift_imm_basic): Likewise.
13338 (cortex_a15_neon_shift_imm_complex): Likewise.
13339 (cortex_a15_neon_shift_reg_basic): Likewise.
13340 (cortex_a15_neon_shift_reg_basic_q): Likewise.
13341 (cortex_a15_neon_shift_reg_complex): Likewise.
13342 (cortex_a15_neon_shift_reg_complex_q): Likewise.
13343 (cortex_a15_neon_fp_negabs): Likewise
13344 (cortex_a15_neon_fp_arith): Likewise
13345 (cortex_a15_neon_fp_arith_q): Likewise
13346 (cortex_a15_neon_fp_cvt_int): Likewise
13347 (cortex_a15_neon_fp_cvt_int_q): Likewise
13348 (cortex_a15_neon_fp_cvt_16): Likewise
13349 (cortex_a15_neon_fp_mul): Likewise
13350 (cortex_a15_neon_fp_mul_q): Likewise
13351 (cortex_a15_neon_fp_mla): Likewise
13352 (cortex_a15_neon_fp_mla_q): Likewise
13353 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
13354 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
13355 (cortex_a15_neon_bitops): Likewise.
13356 (cortex_a15_neon_bitops_q): Likewise.
13357 (cortex_a15_neon_from_gp): Likewise.
13358 (cortex_a15_neon_from_gp_q): Likewise.
13359 (cortex_a15_neon_tbl3_tbl4): Likewise.
13360 (cortex_a15_neon_zip_q): Likewise.
13361 (cortex_a15_neon_to_gp): Likewise.
13362 (cortex_a15_neon_load_a): Likewise.
13363 (cortex_a15_neon_load_b): Likewise.
13364 (cortex_a15_neon_load_c): Likewise.
13365 (cortex_a15_neon_load_d): Likewise.
13366 (cortex_a15_neon_load_e): Likewise.
13367 (cortex_a15_neon_load_f): Likewise.
13368 (cortex_a15_neon_store_a): Likewise.
13369 (cortex_a15_neon_store_b): Likewise.
13370 (cortex_a15_neon_store_c): Likewise.
13371 (cortex_a15_neon_store_d): Likewise.
13372 (cortex_a15_neon_store_e): Likewise.
13373 (cortex_a15_neon_store_f): Likewise.
13374 (cortex_a15_neon_store_g): Likewise.
13375 (cortex_a15_neon_store_h): Likewise.
13376 (cortex_a15_vfp_to_from_gp): Likewise.
13377
13378 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13379
13380 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
13381
13382 (cortex_a9_neon_vshl_ddd): Remove.
13383 (cortex_a9_neon_vst3_vst4): Likewise.
13384 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
13385
13386 (cortex_a9_neon_bit_ops_q): New.
13387
13388 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
13389 (cortex_a9_neon_int_2): Likewise.
13390 (cortex_a9_neon_int_3): Likewise.
13391 (cortex_a9_neon_int_4): Likewise.
13392 (cortex_a9_neon_int_5): Likewise.
13393 (cortex_a9_neon_vqneg_vqabs): Likewise.
13394 (cortex_a9_neon_vmov): Likewise.
13395 (cortex_a9_neon_vaba): Likewise.
13396 (cortex_a9_neon_vaba_qqq): Likewise.
13397 (cortex_a9_neon_shift_1): Likewise.
13398 (cortex_a9_neon_shift_2): Likewise.
13399 (cortex_a9_neon_shift_3): Likewise.
13400 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
13401 (cortex_a9_neon_vsra_vrsra): Likewise.
13402 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
13403 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
13404 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
13405 Likewise.
13406 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
13407 (cortex_a9_neon_mla_qqq_8_16): Likewise.
13408 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
13409 Likewise.
13410 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
13411 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
13412 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
13413 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
13414 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
13415 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
13416 (cortex_a9_neon_fp_vsum): Likewise.
13417 (cortex_a9_neon_fp_vmul_ddd): Likewise.
13418 (cortex_a9_neon_fp_vmul_qqd): Likewise.
13419 (cortex_a9_neon_fp_vmla_ddd): Likewise.
13420 (cortex_a9_neon_fp_vmla_qqq): Likewise.
13421 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
13422 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
13423 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
13424 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
13425 (cortex_a9_neon_bp_simple): Likewise.
13426 (cortex_a9_neon_bp_2cycle): Likewise.
13427 (cortex_a9_neon_bp_3cycle): Likewise.
13428 (cortex_a9_neon_ldr): Likewise.
13429 (cortex_a9_neon_str): Likewise.
13430 (cortex_a9_neon_vld1_1_2_regs): Likewise.
13431 (cortex_a9_neon_vld1_3_4_regs): Likewise.
13432 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
13433 (cortex_a9_neon_vld2_4_regs): Likewise.
13434 (cortex_a9_neon_vld3_vld4): Likewise.
13435 (cortex_a9_neon_vld1_vld2_lane): Likewise.
13436 (cortex_a9_neon_vld3_vld4_lane): Likewise.
13437 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
13438 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
13439 (cortex_a9_neon_vst1_3_4_regs): Likewise.
13440 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
13441 (cortex_a9_neon_vst1_vst2_lane): Likewise.
13442 (cortex_a9_neon_vst3_vst4_lane): Likewise.
13443 (cortex_a9_neon_mcr): Likewise.
13444 (cortex_a9_neon_mcr_2_mcrr): Likewise.
13445 (cortex_a9_neon_mrc): Likewise.
13446 (cortex_a9_neon_mrrc): Likewise.
13447
13448 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13449
13450 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
13451
13452 (cortex_a8_neon_vshl_ddd): Remove.
13453 (cortex_a8_neon_vst3_vst4): Likewise.
13454 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
13455
13456 (cortex_a8_neon_bit_ops_q): New.
13457
13458 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
13459 (cortex_a8_neon_int_2): Likewise..
13460 (cortex_a8_neon_int_3): Likewise.
13461 (cortex_a8_neon_int_5): Likewise.
13462 (cortex_a8_neon_vqneg_vqabs): Likewise.
13463 (cortex_a8_neon_int_4): Likewise.
13464 (cortex_a8_neon_vaba): Likewise.
13465 (cortex_a8_neon_vaba_qqq): Likewise.
13466 (cortex_a8_neon_shift_1): Likewise.
13467 (cortex_a8_neon_shift_2): Likewise.
13468 (cortex_a8_neon_shift_3): Likewise.
13469 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
13470 (cortex_a8_neon_vsra_vrsra): Likewise.
13471 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
13472 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
13473 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
13474 Likewise.
13475 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
13476 (cortex_a8_neon_mla_qqq_8_16): Likewise.
13477 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
13478 Likewise.
13479 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
13480 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
13481 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
13482 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
13483 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
13484 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
13485 (cortex_a8_neon_fp_vsum): Likewise.
13486 (cortex_a8_neon_fp_vmul_ddd): Likewise.
13487 (cortex_a8_neon_fp_vmul_qqd): Likewise.
13488 (cortex_a8_neon_fp_vmla_ddd): Likewise.
13489 (cortex_a8_neon_fp_vmla_qqq): Likewise.
13490 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
13491 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
13492 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
13493 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
13494 (cortex_a8_neon_bp_simple): Likewise.
13495 (cortex_a8_neon_bp_2cycle): Likewise.
13496 (cortex_a8_neon_bp_3cycle): Likewise.
13497 (cortex_a8_neon_ldr): Likewise.
13498 (cortex_a8_neon_str): Likewise.
13499 (cortex_a8_neon_vld1_1_2_regs): Likewise.
13500 (cortex_a8_neon_vld1_3_4_regs): Likewise.
13501 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
13502 (cortex_a8_neon_vld2_4_regs): Likewise.
13503 (cortex_a8_neon_vld3_vld4): Likewise.
13504 (cortex_a8_neon_vld1_vld2_lane): Likewise.
13505 (cortex_a8_neon_vld3_vld4_lane): Likewise.
13506 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
13507 (cortex_a8_neon_vst1_3_4_regs): Likewise.
13508 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
13509 (cortex_a8_neon_vst1_vst2_lane): Likewise.
13510 (cortex_a8_neon_vst3_vst4_lane): Likewise.
13511 (cortex_a8_neon_mcr): Likewise.
13512 (cortex_a8_neon_mcr_2_mcrr): Likewise.
13513 (cortex_a8_neon_mrc): Likewise.
13514 (cortex_a8_neon_mrrc): Likewise.
13515
13516 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13517
13518 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
13519 (fp): New.
13520 * config/aarch64/aarch64-simd.md (neon_type): Remove.
13521 (aarch64_simd_dup<mode>): Add "type" attribute.
13522 (aarch64_dup_lane<mode>): Likewise.
13523 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
13524 (*aarch64_simd_mov<mode>): Likewise.
13525 (aarch64_simd_mov_from_<mode>low): Likewise.
13526 (aarch64_simd_mov_from_<mode>high): Likewise.
13527 (orn<mode>3): Likewise.
13528 (bic<mode>3): Likewise.
13529 (add<mode>3): Likewise.
13530 (sub<mode>3): Likewise.
13531 (mul<mode>3): Likewise.
13532 (*aarch64_mul3_elt<mode>): Likewise.
13533 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
13534 (*aarch64_mul3_elt_to_128df): Likewise.
13535 (*aarch64_mul3_elt_to_64v2df): Likewise.
13536 (neg<mode>2): Likewise.
13537 (abs<mode>2): Likewise.
13538 (abd<mode>_3): Likewise.
13539 (aba<mode>_3): Likewise.
13540 (fabd<mode>_3): Likewise.
13541 (*fabd_scalar<mode>3): Likewise.
13542 (and<mode>3): Likewise.
13543 (ior<mode>3): Likewise.
13544 (xor<mode>3): Likewise.
13545 (one_cmpl<mode>2): Likewise.
13546 (aarch64_simd_vec_set<mode>): Likewise.
13547 (aarch64_simd_lshr<mode>): Likewise.
13548 (aarch64_simd_ashr<mode>): Likewise.
13549 (aarch64_simd_imm_shl<mode>): Likewise.
13550 (aarch64_simd_reg_sshl<mode): Likewise.
13551 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
13552 (aarch64_simd_reg_shl<mode>_signed): Likewise.
13553 (aarch64_simd_vec_setv2di): Likewise.
13554 (aarch64_simd_vec_set<mode>): Likewise.
13555 (aarch64_mla<mode>): Likewise.
13556 (*aarch64_mla_elt<mode>): Likewise.
13557 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
13558 (aarch64_mls<mode>): Likewise.
13559 (*aarch64_mls_elt<mode>): Likewise.
13560 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
13561 (<su><maxmin><mode>3): Likewise.
13562 (move_lo_quad_<mode>): Likewise.
13563 (aarch64_simd_move_hi_quad_<mode>): Likewise.
13564 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
13565 (vec_pack_trunc_<mode>): Likewise.
13566 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
13567 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
13568 (*aarch64_<su>mlal_lo<mode>): Likewise.
13569 (*aarch64_<su>mlal_hi<mode>): Likewise.
13570 (*aarch64_<su>mlsl_lo<mode>): Likewise.
13571 (*aarch64_<su>mlsl_hi<mode>): Likewise.
13572 (*aarch64_<su>mlal<mode>): Likewise.
13573 (*aarch64_<su>mlsl<mode>): Likewise.
13574 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
13575 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
13576 (add<mode>3): Likewise.
13577 (sub<mode>3): Likewise.
13578 (mul<mode>3): Likewise.
13579 (div<mode>3): Likewise.
13580 (neg<mode>2): Likewise.
13581 (abs<mode>2): Likewise.
13582 (fma<mode>4): Likewise.
13583 (*aarch64_fma4_elt<mode>): Likewise.
13584 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
13585 (*aarch64_fma4_elt_to_128df): Likewise.
13586 (*aarch64_fma4_elt_to_64v2df): Likewise.
13587 (fnma<mode>4): Likewise.
13588 (*aarch64_fnma4_elt<mode>): Likewise.
13589 (*aarch64_fnma4_elt_<vswap_width_name><mode>
13590 (*aarch64_fnma4_elt_to_128df): Likewise.
13591 (*aarch64_fnma4_elt_to_64v2df): Likewise.
13592 (<frint_pattern><mode>2): Likewise.
13593 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
13594 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
13595 (vec_unpacks_lo_v4sf): Likewise.
13596 (aarch64_float_extend_lo_v2df): Likewise.
13597 (vec_unpacks_hi_v4sf): Likewise.
13598 (aarch64_float_truncate_lo_v2sf): Likewise.
13599 (aarch64_float_truncate_hi_v4sf): Likewise.
13600 (aarch64_vmls<mode>): Likewise.
13601 (<su><maxmin><mode>3): Likewise.
13602 (<maxmin_uns><mode>3): Likewise.
13603 (reduc_<sur>plus_<mode>): Likewise.
13604 (reduc_<sur>plus_v2di): Likewise.
13605 (reduc_<sur>plus_v2si): Likewise.
13606 (reduc_<sur>plus_<mode>): Likewise.
13607 (aarch64_addpv4sf): Likewise.
13608 (clz<mode>2): Likewise.
13609 (reduc_<maxmin_uns>_<mode>): Likewise.
13610 (reduc_<maxmin_uns>_v2di): Likewise.
13611 (reduc_<maxmin_uns>_v2si): Likewise.
13612 (reduc_<maxmin_uns>_<mode>): Likewise.
13613 (reduc_<maxmin_uns>_v4sf): Likewise.
13614 (aarch64_simd_bsl<mode>_internal): Likewise.
13615 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
13616 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
13617 (aarch64_get_lane<mode>): Likewise.
13618 (*aarch64_combinez<mode>): Likewise.
13619 (aarch64_combine<mode>): Likewise.
13620 (aarch64_simd_combine<mode>): Likewise.
13621 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
13622 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
13623 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
13624 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
13625 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
13626 (aarch64_<sur>h<addsub><mode>): Likewise.
13627 (aarch64_<sur><addsub>hn<mode>): Likewise.
13628 (aarch64_<sur><addsub>hn2<mode>): Likewise.
13629 (aarch64_pmul<mode>): Likewise.
13630 (aarch64_<su_optab><optab><mode>): Likewise.
13631 (aarch64_<sur>qadd<mode>): Likewise.
13632 (aarch64_sqmovun<mode>): Likewise.
13633 (aarch64_<sur>qmovn<mode>): Likewise.
13634 (aarch64_s<optab><mode>): Likewise.
13635 (aarch64_sq<r>dmulh<mode>): Likewise.
13636 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
13637 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
13638 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
13639 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
13640 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
13641 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
13642 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
13643 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
13644 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
13645 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
13646 (aarch64_sqdmull<mode>): Likewise.
13647 (aarch64_sqdmull_lane<mode>_internal): Likewise.
13648 (aarch64_sqdmull_n<mode>): Likewise.
13649 (aarch64_sqdmull2<mode>_internal): Likewise.
13650 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
13651 (aarch64_sqdmull2_n<mode>_internal): Likewise.
13652 (aarch64_<sur>shl<mode>): Likewise.
13653 (aarch64_<sur>q<r>shl<mode>
13654 (aarch64_<sur>shll_n<mode>): Likewise.
13655 (aarch64_<sur>shll2_n<mode>): Likewise.
13656 (aarch64_<sur>shr_n<mode>): Likewise.
13657 (aarch64_<sur>sra_n<mode>): Likewise.
13658 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
13659 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
13660 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
13661 (aarch64_cm<optab><mode>): Likewise.
13662 (aarch64_cm<optab>di): Likewise.
13663 (aarch64_cm<optab><mode>): Likewise.
13664 (aarch64_cm<optab>di): Likewise.
13665 (aarch64_cmtst<mode>): Likewise.
13666 (aarch64_cmtstdi): Likewise.
13667 (aarch64_cm<optab><mode>): Likewise.
13668 (*aarch64_fac<optab><mode>): Likewise.
13669 (aarch64_addp<mode>): Likewise.
13670 (aarch64_addpdi): Likewise.
13671 (sqrt<mode>2): Likewise.
13672 (vec_load_lanesoi<mode>): Likewise.
13673 (vec_store_lanesoi<mode>): Likewise.
13674 (vec_load_lanesci<mode>): Likewise.
13675 (vec_store_lanesci<mode>): Likewise.
13676 (vec_load_lanesxi<mode>): Likewise.
13677 (vec_store_lanesxi<mode>): Likewise.
13678 (*aarch64_mov<mode>): Likewise.
13679 (aarch64_ld2<mode>_dreg): Likewise.
13680 (aarch64_ld2<mode>_dreg): Likewise.
13681 (aarch64_ld3<mode>_dreg): Likewise.
13682 (aarch64_ld3<mode>_dreg): Likewise.
13683 (aarch64_ld4<mode>_dreg): Likewise.
13684 (aarch64_ld4<mode>_dreg): Likewise.
13685 (aarch64_tbl1<mode>): Likewise.
13686 (aarch64_tbl2v16qi): Likewise.
13687 (aarch64_combinev16qi): Likewise.
13688 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
13689 (aarch64_st2<mode>_dreg): Likewise.
13690 (aarch64_st2<mode>_dreg): Likewise.
13691 (aarch64_st3<mode>_dreg): Likewise.
13692 (aarch64_st3<mode>_dreg): Likewise.
13693 (aarch64_st4<mode>_dreg): Likewise.
13694 (aarch64_st4<mode>_dreg): Likewise.
13695 (*aarch64_simd_ld1r<mode>): Likewise.
13696 (aarch64_frecpe<mode>): Likewise.
13697 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
13698 (aarch64_frecps<mode>): Likewise.
13699
13700 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13701
13702 * config/arm/iterators.md (V_elem_ch): New.
13703 (q): Likewise.
13704 (VQH_type): Likewise.
13705 * config/arm/arm.md (is_neon_type): New.
13706 (conds): Use is_neon_type.
13707 (anddi3_insn): Update type attribute.
13708 (xordi3_insn): Likewise.
13709 (one_cmpldi2): Likewise.
13710 * config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
13711 * config/arm/neon.md (neon_mov): Update type attribute.
13712 (*movmisalign<mode>_neon_store): Likewise.
13713 (*movmisalign<mode>_neon_load): Likewise.
13714 (vec_set<mode>_internal): Likewise.
13715 (vec_set<mode>_internal): Likewise.
13716 (vec_setv2di_internal): Likewise.
13717 (vec_extract<mode>): Likewise.
13718 (vec_extract<mode>): Likewise.
13719 (vec_extractv2di): Likewise.
13720 (*add<mode>3_neon): Likewise.
13721 (adddi3_neon): Likewise.
13722 (*sub<mode>3_neon): Likewise.
13723 (subdi3_neon): Likewise.
13724 (fma<VCVTF:mode>4): Likewise.
13725 (fma<VCVTF:mode>4_intrinsic): Likewise.
13726 (*fmsub<VCVTF:mode>4): Likewise.
13727 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
13728 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
13729 (ior<mode>3): Likewise.
13730 (and<mode>3): Likewise.
13731 (orn<mode>3_neon): Likewise.
13732 (orndi3_neon): Likewise.
13733 (bic<mode>3_neon): Likewise.
13734 (bicdi3_neon): Likewise.
13735 (xor<mode>3): Likewise.
13736 (one_cmpl<mode>2): Likewise.
13737 (abs<mode>2): Likewise.
13738 (neg<mode>2): Likewise.
13739 (negdi2_neon): Likewise.
13740 (*umin<mode>3_neon): Likewise.
13741 (*umax<mode>3_neon): Likewise.
13742 (*smin<mode>3_neon): Likewise.
13743 (*smax<mode>3_neon): Likewise.
13744 (vashl<mode>3): Likewise.
13745 (vashr<mode>3_imm): Likewise.
13746 (vlshr<mode>3_imm): Likewise.
13747 (ashl<mode>3_signed): Likewise.
13748 (ashl<mode>3_unsigned): Likewise.
13749 (neon_load_count): Likewise.
13750 (ashldi3_neon_noclobber): Likewise.
13751 (ashldi3_neon): Likewise.
13752 (signed_shift_di3_neon): Likewise.
13753 (unsigned_shift_di3_neon): Likewise.
13754 (ashrdi3_neon_imm_noclobber): Likewise.
13755 (lshrdi3_neon_imm_noclobber): Likewise.
13756 (<shift>di3_neon): Likewise.
13757 (widen_ssum<mode>3): Likewise.
13758 (widen_usum<mode>3): Likewise.
13759 (quad_halves_<code>v4si): Likewise.
13760 (quad_halves_<code>v4sf): Likewise.
13761 (quad_halves_<code>v8hi): Likewise.
13762 (quad_halves_<code>v16qi): Likewise.
13763 (reduc_splus_v2di): Likewise.
13764 (neon_vpadd_internal<mode>): Likewise.
13765 (neon_vpsmin<mode>): Likewise.
13766 (neon_vpsmax<mode>): Likewise.
13767 (neon_vpumin<mode>): Likewise.
13768 (neon_vpumax<mode>): Likewise.
13769 (*ss_add<mode>_neon): Likewise.
13770 (*us_add<mode>_neon): Likewise.
13771 (*ss_sub<mode>_neon): Likewise.
13772 (*us_sub<mode>_neon): Likewise.
13773 (neon_vadd<mode>_unspec): Likewise.
13774 (neon_vaddl<mode>): Likewise.
13775 (neon_vaddw<mode>): Likewise.
13776 (neon_vhadd<mode>): Likewise.
13777 (neon_vqadd<mode>): Likewise.
13778 (neon_vaddhn<mode>): Likewise.
13779 (neon_vmul<mode>): Likewise.
13780 (neon_vfms<VCVTF:mode>): Likewise.
13781 (neon_vmlal<mode>): Likewise.
13782 (neon_vmls<mode>): Likewise.
13783 (neon_vmlsl<mode>): Likewise.
13784 (neon_vqdmulh<mode>): Likewise.
13785 (neon_vqdmlal<mode>): Likewise.
13786 (neon_vqdmlsl<mode>): Likewise.
13787 (neon_vmull<mode>): Likewise.
13788 (neon_vqdmull<mode>): Likewise.
13789 (neon_vsub<mode>_unspec): Likewise.
13790 (neon_vsubl<mode>): Likewise.
13791 (neon_vsubw<mode>): Likewise.
13792 (neon_vqsub<mode>): Likewise.
13793 (neon_vhsub<mode>): Likewise.
13794 (neon_vsubhn<mode>): Likewise.
13795 (neon_vceq<mode>): Likewise.
13796 (neon_vcge<mode>): Likewise.
13797 (neon_vcgeu<mode>): Likewise.
13798 (neon_vcgt<mode>): Likewise.
13799 (neon_vcgtu<mode>): Likewise.
13800 (neon_vcle<mode>): Likewise.
13801 (neon_vclt<mode>): Likewise.
13802 (neon_vcage<mode>): Likewise.
13803 (neon_vcagt<mode>): Likewise.
13804 (neon_vtst<mode>): Likewise.
13805 (neon_vabd<mode>): Likewise.
13806 (neon_vabdl<mode>): Likewise.
13807 (neon_vaba<mode>): Likewise.
13808 (neon_vabal<mode>): Likewise.
13809 (neon_vmax<mode>): Likewise.
13810 (neon_vmin<mode>): Likewise.
13811 (neon_vpaddl<mode>): Likewise.
13812 (neon_vpadal<mode>): Likewise.
13813 (neon_vpmax<mode>): Likewise.
13814 (neon_vpmin<mode>): Likewise.
13815 (neon_vrecps<mode>): Likewise.
13816 (neon_vrsqrts<mode>): Likewise.
13817 (neon_vqabs<mode>): Likewise.
13818 (neon_vqneg<mode>): Likewise.
13819 (neon_vcls<mode>): Likewise.
13820 (clz<mode>2): Likewise.
13821 (popcount<mode>2): Likewise.
13822 (neon_vrecpe<mode>): Likewise.
13823 (neon_vrsqrte<mode>): Likewise.
13824 (neon_vget_lane<mode>_sext_internal): Likewise.
13825 (neon_vget_lane<mode>_zext_internal): Likewise.
13826 (neon_vdup_n<mode>): Likewise.
13827 (neon_vdup_n<mode>): Likewise.
13828 (neon_vdup_nv2di): Likewise.
13829 (neon_vdup_lane<mode>_interal): Likewise.
13830 (*neon_vswp<mode>): Likewise.
13831 (neon_vcombine<mode>): Likewise.
13832 (float<mode><V_cvtto>2): Likewise.
13833 (floatuns<mode><V_cvtto>2): Likewise.
13834 (fix_trunc<mode><V_cvtto>2): Likewise.
13835 (fixuns_trunc<mode><V_cvtto>2
13836 (neon_vcvt<mode>): Likewise.
13837 (neon_vcvt<mode>): Likewise.
13838 (neon_vcvtv4sfv4hf): Likewise.
13839 (neon_vcvtv4hfv4sf): Likewise.
13840 (neon_vcvt_n<mode>): Likewise.
13841 (neon_vcvt_n<mode>): Likewise.
13842 (neon_vmovn<mode>): Likewise.
13843 (neon_vqmovn<mode>): Likewise.
13844 (neon_vqmovun<mode>): Likewise.
13845 (neon_vmovl<mode>): Likewise.
13846 (neon_vmul_lane<mode>): Likewise.
13847 (neon_vmul_lane<mode>): Likewise.
13848 (neon_vmull_lane<mode>): Likewise.
13849 (neon_vqdmull_lane<mode>): Likewise.
13850 (neon_vqdmulh_lane<mode>): Likewise.
13851 (neon_vqdmulh_lane<mode>): Likewise.
13852 (neon_vmla_lane<mode>): Likewise.
13853 (neon_vmla_lane<mode>): Likewise.
13854 (neon_vmlal_lane<mode>): Likewise.
13855 (neon_vqdmlal_lane<mode>): Likewise.
13856 (neon_vmls_lane<mode>): Likewise.
13857 (neon_vmls_lane<mode>): Likewise.
13858 (neon_vmlsl_lane<mode>): Likewise.
13859 (neon_vqdmlsl_lane<mode>): Likewise.
13860 (neon_vext<mode>): Likewise.
13861 (neon_vrev64<mode>): Likewise.
13862 (neon_vrev32<mode>): Likewise.
13863 (neon_vrev16<mode>): Likewise.
13864 (neon_vbsl<mode>_internal): Likewise.
13865 (neon_vshl<mode>): Likewise.
13866 (neon_vqshl<mode>): Likewise.
13867 (neon_vshr_n<mode>): Likewise.
13868 (neon_vshrn_n<mode>): Likewise.
13869 (neon_vqshrn_n<mode>): Likewise.
13870 (neon_vqshrun_n<mode>): Likewise.
13871 (neon_vshl_n<mode>): Likewise.
13872 (neon_vqshl_n<mode>): Likewise.
13873 (neon_vqshlu_n<mode>): Likewise.
13874 (neon_vshll_n<mode>): Likewise.
13875 (neon_vsra_n<mode>): Likewise.
13876 (neon_vsri_n<mode>): Likewise.
13877 (neon_vsli_n<mode>): Likewise.
13878 (neon_vtbl1v8qi): Likewise.
13879 (neon_vtbl2v8qi): Likewise.
13880 (neon_vtbl3v8qi): Likewise.
13881 (neon_vtbl4v8qi): Likewise.
13882 (neon_vtbl1v16qi): Likewise.
13883 (neon_vtbl2v16qi): Likewise.
13884 (neon_vcombinev16qi): Likewise.
13885 (neon_vtbx1v8qi): Likewise.
13886 (neon_vtbx2v8qi): Likewise.
13887 (neon_vtbx3v8qi): Likewise.
13888 (neon_vtbx4v8qi): Likewise.
13889 (*neon_vtrn<mode>_insn): Likewise.
13890 (*neon_vzip<mode>_insn): Likewise.
13891 (*neon_vuzp<mode>_insn): Likewise.
13892 (neon_vld1<mode>): Likewise.
13893 (neon_vld1_lane<mode>): Likewise.
13894 (neon_vld1_lane<mode>): Likewise.
13895 (neon_vld1_dup<mode>): Likewise.
13896 (neon_vld1_dup<mode>): Likewise.
13897 (neon_vld1_dupv2di): Likewise.
13898 (neon_vst1<mode>): Likewise.
13899 (neon_vst1_lane<mode>): Likewise.
13900 (neon_vst1_lane<mode>): Likewise.
13901 (neon_vld2<mode>): Likewise.
13902 (neon_vld2<mode>): Likewise.
13903 (neon_vld2_lane<mode>): Likewise.
13904 (neon_vld2_lane<mode>): Likewise.
13905 (neon_vld2_dup<mode>): Likewise.
13906 (neon_vst2<mode>): Likewise.
13907 (neon_vst2<mode>): Likewise.
13908 (neon_vst2_lane<mode>): Likewise.
13909 (neon_vst2_lane<mode>): Likewise.
13910 (neon_vld3<mode>): Likewise.
13911 (neon_vld3qa<mode>): Likewise.
13912 (neon_vld3qb<mode>): Likewise.
13913 (neon_vld3_lane<mode>): Likewise.
13914 (neon_vld3_lane<mode>): Likewise.
13915 (neon_vld3_dup<mode>): Likewise.
13916 (neon_vst3<mode>): Likewise.
13917 (neon_vst3qa<mode>): Likewise.
13918 (neon_vst3qb<mode>): Likewise.
13919 (neon_vst3_lane<mode>): Likewise.
13920 (neon_vst3_lane<mode>): Likewise.
13921 (neon_vld4<mode>): Likewise.
13922 (neon_vld4qa<mode>): Likewise.
13923 (neon_vld4qb<mode>): Likewise.
13924 (neon_vld4_lane<mode>): Likewise.
13925 (neon_vld4_lane<mode>): Likewise.
13926 (neon_vld4_dup<mode>): Likewise.
13927 (neon_vst4<mode>): Likewise.
13928 (neon_vst4qa<mode>): Likewise.
13929 (neon_vst4qb<mode>): Likewise.
13930 (neon_vst4_lane<mode>): Likewise.
13931 (neon_vst4_lane<mode>): Likewise.
13932 (neon_vec_unpack<US>_lo_<mode>): Likewise.
13933 (neon_vec_unpack<US>_hi_<mode>): Likewise.
13934 (neon_vec_<US>mult_lo_<mode>): Likewise.
13935 (neon_vec_<US>mult_hi_<mode>): Likewise.
13936 (neon_vec_<US>shiftl_<mode>): Likewise.
13937 (neon_unpack<US>_<mode>): Likewise.
13938 (neon_vec_<US>mult_<mode>): Likewise.
13939 (vec_pack_trunc_<mode>): Likewise.
13940 (neon_vec_pack_trunc_<mode>): Likewise.
13941 (neon_vabd<mode>_2): Likewise.
13942 (neon_vabd<mode>_3): Likewise.
13943
13944 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13945
13946 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
13947 (load_pair): Update type attribute.
13948 (store_pair): Update type attribute.
13949 * config/aarch64/iterators.md (q): New.
13950
13951 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
13952
13953 * config/arm/types.md: Add new types for Neon insns.
13954
13955 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
13956 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13957 Sergey Lega <sergey.s.lega@intel.com>
13958 Anna Tikhonova <anna.tikhonova@intel.com>
13959 Ilya Tocar <ilya.tocar@intel.com>
13960 Andrey Turetskiy <andrey.turetskiy@intel.com>
13961 Ilya Verbin <ilya.verbin@intel.com>
13962 Kirill Yukhin <kirill.yukhin@intel.com>
13963 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13964
13965 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
13966 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
13967 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
13968 (rcp14<mode>): New.
13969 (srcp14<mode>): Ditto.
13970 (rsqrt14<mode>): Ditto.
13971 (rsqrt14<mode>): Ditto.
13972 (avx512f_vmscalef<mode>): Ditto.
13973 (avx512f_scalef<mode>): Ditto.
13974 (avx512f_getexp<mode>): Ditto.
13975 (avx512f_sgetexp<mode>): Ditto.
13976 (avx512f_fixupimm<mode>): Ditto.
13977 (avx512f_sfixupimm<mode>): Ditto.
13978 (avx512f_rndscale<mode>): Ditto.
13979 (*avx512er_exp2<mode>): Ditto.
13980 (*avx512er_rcp28<mode>): Ditto.
13981 (avx512er_rsqrt28<mode>): Ditto.
13982 (avx512f_getmant<mode>): Ditto.
13983 (avx512f_getmant<mode>): Ditto.
13984 (avx512f_rndscale<mode>): Fix formatting.
13985
13986 2013-10-15 Martin Jambor <mjambor@suse.cz>
13987
13988 * ipa-utils.h (ipa_edge_within_scc): Declare.
13989 * ipa-cp.c (edge_within_scc): Moved...
13990 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
13991
13992 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
13993 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13994 Sergey Lega <sergey.s.lega@intel.com>
13995 Anna Tikhonova <anna.tikhonova@intel.com>
13996 Ilya Tocar <ilya.tocar@intel.com>
13997 Andrey Turetskiy <andrey.turetskiy@intel.com>
13998 Ilya Verbin <ilya.verbin@intel.com>
13999 Kirill Yukhin <kirill.yukhin@intel.com>
14000 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14001
14002 * config/i386/predicates.md (const_8_to_15_operand): New.
14003 (const_16_to_31_operand): Ditto.
14004 * config/i386/sse.md (V8FI): New.
14005 (V16FI): Ditto.
14006 (reduc_splus_v8df): Ditto.
14007 (reduc_splus_v16sf): Ditto.
14008 (avx512f_vextract<shuffletype>32x4_1): Ditto.
14009 (vec_extract_hi_<mode>): Ditto.
14010 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
14011 (vec_set_lo_<mode>): Ditto.
14012 (vec_set_hi_<mode>): Ditto.
14013 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
14014 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
14015 (avx512f_pshufd_1): Ditto.
14016 (avx512f_broadcast<mode>): Ditto.
14017 (avx512f_broadcast<mode>): Ditto.
14018 (define_split): Split vec_extract_lo into move.
14019 (ssequartermode): Ditto.
14020 (ssedoublemode): Extened with wider modes.
14021 (vec_extract_lo_<mode>): Ditto.
14022
14023 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
14024 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14025 Sergey Lega <sergey.s.lega@intel.com>
14026 Anna Tikhonova <anna.tikhonova@intel.com>
14027 Ilya Tocar <ilya.tocar@intel.com>
14028 Andrey Turetskiy <andrey.turetskiy@intel.com>
14029 Ilya Verbin <ilya.verbin@intel.com>
14030 Kirill Yukhin <kirill.yukhin@intel.com>
14031 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14032
14033 * config/i386/predicates.md (register_or_constm1_operand): New.
14034 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
14035 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
14036 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
14037 UNSPEC_SCATTER_PREFETCH
14038 (VI48_512): New.
14039 (avx512f_ucmp<mode>3): Ditto.
14040 (avx512f_vternlog<mode>): Ditto.
14041 (avx512f_align<mode>): Ditto.
14042 (<shift_insn><mode>3): Ditto.
14043 (avx512f_<rotate>v<mode>): Ditto.
14044 (avx512f_<rotate><mode>): Ditto.
14045 (avx512f_eq<mode>3): Ditto.
14046 (avx512f_eq<mode>3_1): Ditto.
14047 (avx512f_gt<mode>3): Ditto.
14048 (avx512f_testm<mode>3): Ditto.
14049 (avx512f_testnm<mode>3): Ditto.
14050 (avx512pf_gatherpf<mode>): Ditto.
14051 (*avx512pf_gatherpf<mode>_mask): Ditto.
14052 (*avx512pf_gatherpf<mode>): Ditto.
14053 (avx512pf_scatterpf<mode>): Ditto.
14054 (*avx512pf_scatterpf<mode>_mask): Ditto.
14055 (*avx512pf_scatterpf<mode>): Ditto.
14056 (avx512f_vec_dup_gpr<mode>): Ditto.
14057 (clz<mode>2): Ditto.
14058 (conflict<mode>): Ditto.
14059 (REDUC_SMINMAX_MODE): Extened with wider modes.
14060 (reduc_<code>_<mode>): Ditto.
14061 (vlshr<mode>3): Ditto.
14062 (vashl<mode>3): Ditto.
14063
14064 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
14065 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14066 Sergey Lega <sergey.s.lega@intel.com>
14067 Anna Tikhonova <anna.tikhonova@intel.com>
14068 Ilya Tocar <ilya.tocar@intel.com>
14069 Andrey Turetskiy <andrey.turetskiy@intel.com>
14070 Ilya Verbin <ilya.verbin@intel.com>
14071 Kirill Yukhin <kirill.yukhin@intel.com>
14072 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14073
14074 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
14075 UNSPEC_SCATTER.
14076 (VI48F_512): New.
14077 (avx512fmaskmode): Ditto.
14078 (bcstscalarsuff): Ditto.
14079 (avx512f_blendm<mode>): Ditto.
14080 (cmp_imm_predicate): Ditto.
14081 (avx512f_cmp<mode>3): Ditto.
14082 (avx512f_vec_dup<mode>): Ditto.
14083 (avx512f_vec_dup_mem<mode>): Ditto.
14084 (avx512f_vpermi2var<mode>3): Ditto.
14085 (avx512f_vpermt2var<mode>3): Ditto.
14086 (vec_init<mode>): Ditto.
14087 (avx512f_gathersi<mode>): Ditto.
14088 (*avx512f_gathersi<mode>): Ditto.
14089 (*avx512f_gathersi<mode>_2): Ditto.
14090 (avx512f_gatherdi<mode>): Ditto.
14091 (*avx512f_gatherdi<mode>): Ditto.
14092 (*avx512f_gatherdi<mode>_2): Ditto.
14093 (avx512f_scattersi<mode>): Ditto.
14094 (*avx512f_scattersi<mode>): Ditto.
14095 (avx512f_scatterdi<mode>): Ditto.
14096 (*avx512f_scatterdi<mode>): Ditto.
14097 (sseintprefix): Extened with wider modes.
14098 (VEC_GATHER_IDXSI): Ditto.
14099 (VEC_GATHER_IDXDI): Ditto.
14100 (VEC_GATHER_SRCDI): Ditto.
14101
14102 2013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
14103 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14104
14105 * config/arm/t-aprofile: New file.
14106 * config.gcc: Handle --with-multilib-list option.
14107
14108 2013-10-15 Bernd Schmidt <bernds@codesourcery.com>
14109
14110 * reload1.c (reloads_unique_chain_p): Ensure that r1 is
14111 the input for r2.
14112
14113 2013-10-15 Richard Biener <rguenther@suse.de>
14114
14115 * tree-loop-distribution.c (build_empty_rdg): Inline into
14116 single user.
14117 (rdg_flag_vertex): Inline into single user.
14118 (rdg_flag_vertex_and_dependent): Likewise.
14119 (build_rdg_partition_for_vertex): Remove processed bitmap.
14120 (rdg_build_partitions): Simplify.
14121
14122 2013-10-15 Richard Biener <rguenther@suse.de>
14123
14124 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14125 Restructure forwarding through conversions and copies to
14126 avoid performing copy-propagation the wrong way. Adjust
14127 recursion invocations.
14128 (forward_propagate_addr_expr): Add argument stating if we
14129 are recursing from a single-use.
14130 (ssa_forward_propagate_and_combine): Adjust.
14131
14132 2013-10-14 David Malcolm <dmalcolm@redhat.com>
14133
14134 * dumpfile.h (gcc::dump_manager): New class, to hold state
14135 relating to dumpfile management.
14136 (get_dump_file_name): Remove in favor of method of dump_manager.
14137 (dump_initialized_p): Likewise.
14138 (dump_start): Likewise.
14139 (dump_finish): Likewise.
14140 (dump_switch_p): Likewise.
14141 (dump_register): Likewise.
14142 (get_dump_file_info): Likewise.
14143 * context.c (gcc::context::context): Construct the dump_manager
14144 instance.
14145 * context.h (gcc::context::get_dumps): New.
14146 (gcc::context::m_dumps): New.
14147 * coverage.c (coverage_init): Port to dump_manager API.
14148 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
14149 (extra_dump_files_in_use): Likewise.
14150 (extra_dump_files_alloced): Likewise.
14151 (gcc::dump_manager::dump_manager): New.
14152 (dump_register): Convert to...
14153 (gcc::dump_manager::dump_register): ...method, replacing
14154 function-static next_dump with m_next_dump field.
14155 (get_dump_file_info): Convert to...
14156 (gcc::dump_manager::get_dump_file_info): ...method.
14157 (get_dump_file_name): Convert to...
14158 (gcc::dump_manager::get_dump_file_name): ...method.
14159 (dump_start): Convert to...
14160 (gcc::dump_manager::dump_start): ...method.
14161 (dump_finish): Convert to...
14162 (gcc::dump_manager::dump_finish): ...method.
14163 (dump_begin): Replace body with...
14164 (gcc::dump_manager::dump_begin): ...new method.
14165 (dump_phase_enabled_p): Convert to...
14166 (gcc::dump_manager::dump_phase_enabled_p): ...method.
14167 (dump_phase_enabled_p): Convert to...
14168 (gcc::dump_manager::dump_phase_enabled_p): ...method.
14169 (dump_initialized_p): Convert to...
14170 (gcc::dump_manager::dump_initialized_p): ...method.
14171 (dump_flag_name): Replace body with...
14172 (gcc::dump_manager::dump_flag_name): ...new method.
14173 (dump_enable_all): Convert to...
14174 (gcc::dump_manager::dump_enable_all): ...new method.
14175 (opt_info_enable_passes): Convert to...
14176 (gcc::dump_manager::opt_info_enable_passes): ...new method.
14177 (dump_switch_p_1): Convert to...
14178 (gcc::dump_manager::dump_switch_p_1): ...new method.
14179 (dump_switch_p): Convert to...
14180 (gcc::dump_manager::dump_switch_p): ...new method.
14181 (opt_info_switch_p): Port to dump_manager API.
14182 (enable_rtl_dump_file): Likewise.
14183 * opts-global.c (handle_common_deferred_options): Port to new
14184 dump_manager API.
14185 * passes.c (pass_manager::finish_optimization_passes): Likewise.
14186 (pass_manager::register_one_dump_file): Likewise.
14187 (pass_manager::register_pass): Likewise.
14188 (pass_init_dump_file): Likewise.
14189 (pass_fini_dump_file): Likewise.
14190 * statistics.c (statistics_early_init): Likewise.
14191
14192 2013-10-14 Richard Biener <rguenther@suse.de>
14193
14194 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
14195 iterative_hash_canonical_type, gimple_canonical_type_hash,
14196 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
14197 gimple_register_canonical_type, print_gimple_types_stats,
14198 free_gimple_type_tables): Move to lto/lto.c
14199 (gt-gimple.h): Do not include.
14200 * gimple.h (gimple_register_canonical_type,
14201 print_gimple_types_stats, free_gimple_type_tables): Remove.
14202 * Makefile.in (GTFILES): Remove gimple.c.
14203
14204 2013-10-14 Travis Snoozy <quandary@remstate.com>
14205
14206 PR target/58716
14207 * config/msp430/msp430.c (msp430_option_override): Correct thinko
14208 scanning for msp430x targets.
14209
14210 2013-10-14 Eric Botcazou <ebotcazou@adacore.com>
14211
14212 PR bootstrap/58509
14213 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
14214 (registers_ok_for_ldd_peep): Move around.
14215 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
14216 * config/sparc/sparc.md (widening peepholes): Use it.
14217
14218 2013-10-14 Richard Biener <rguenther@suse.de>
14219
14220 PR middle-end/58712
14221 PR middle-end/55358
14222 * gimple.c (iterative_hash_canonical_type): Make sure to
14223 record the hash into the correct hashtable slot.
14224
14225 2013-10-13 Eric Botcazou <ebotcazou@adacore.com>
14226
14227 PR rtl-optimization/58662
14228 * combine.c (try_combine): Take into account death nodes on I2 when
14229 splitting a PARALLEL of two independent SETs. Fix dump message.
14230
14231 2013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
14232
14233 PR target/51244
14234 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
14235 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add sh_treg_combine.o to
14236 extra_objs.
14237 * config/sh/t-sh (sh_treg_combine.o): New entry.
14238 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
14239 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
14240 (register_sh_passes): New function. Register sh_treg_combine pass.
14241 (sh_option_override): Invoke it.
14242 (sh_canonicalize_comparison): Handle op0_preserve_value.
14243 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
14244 opportunities. Canonicalize branch condition.
14245 (nott): Allow only if pseudos can be created for non-SH2A.
14246
14247 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
14248
14249 PR target/58690
14250 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
14251 (ix86_expand_movmem): Replace copy_addr_to_reg with
14252 ix86_copy_addr_to_reg.
14253 (ix86_expand_setmem): Likewise.
14254
14255 2013-10-12 Alexander Monakov <amonakov@ispras.ru>
14256
14257 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
14258 provided by ix86_fp_compare_mode instead of CCFPUmode.
14259
14260 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
14261
14262 * config/aarch64/arm_neon.h
14263 (vtbx<1,3>_<psu>8): Fix register constriants.
14264
14265 2013-10-11 Jeff Law <law@redhat.com>
14266
14267 PR tree-optimization/58640
14268 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
14269 threading paths that cross over two loop entry points.
14270
14271 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14272
14273 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
14274 handle vector float as well.
14275 (*vsx_le_perm_load_v4si): Likewise.
14276 (*vsx_le_perm_store_v2di): Likewise.
14277 (*vsx_le_perm_store_v4si): Likewise.
14278
14279 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14280
14281 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
14282 directly to circumvent subtract from splat{31} workaround.
14283 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
14284 prototype.
14285 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
14286 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
14287 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
14288 (altivec_vperm_<mode>): Convert to define_insn_and_split to
14289 separate big and little endian logic.
14290 (*altivec_vperm_<mode>_internal): New define_insn.
14291 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
14292 separate big and little endian logic.
14293 (*altivec_vperm_<mode>_uns_internal): New define_insn.
14294 (vec_permv16qi): Add little endian logic.
14295
14296 2013-10-11 Marc Glisse <marc.glisse@inria.fr>
14297
14298 * doc/extend.texi (returns_nonnull): Remove arguments.
14299
14300 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14301 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14302 Sergey Lega <sergey.s.lega@intel.com>
14303 Anna Tikhonova <anna.tikhonova@intel.com>
14304 Ilya Tocar <ilya.tocar@intel.com>
14305 Andrey Turetskiy <andrey.turetskiy@intel.com>
14306 Ilya Verbin <ilya.verbin@intel.com>
14307 Kirill Yukhin <kirill.yukhin@intel.com>
14308 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14309
14310 * config/i386/sse.md (VI48F_256_512): New.
14311 (avx2_permvar<mode>): Change to ...
14312 (<avx2_avx512f>_permvar<mode>): This.
14313
14314 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14315 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14316 Sergey Lega <sergey.s.lega@intel.com>
14317 Anna Tikhonova <anna.tikhonova@intel.com>
14318 Ilya Tocar <ilya.tocar@intel.com>
14319 Andrey Turetskiy <andrey.turetskiy@intel.com>
14320 Ilya Verbin <ilya.verbin@intel.com>
14321 Kirill Yukhin <kirill.yukhin@intel.com>
14322 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14323
14324 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
14325 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
14326 * config/i386/sse.md (VI4_AVX): New.
14327 (sf2simodelower): Ditto.
14328 (sse2_cvtps2dq): Change to ...
14329 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
14330
14331 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14332 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14333 Sergey Lega <sergey.s.lega@intel.com>
14334 Anna Tikhonova <anna.tikhonova@intel.com>
14335 Ilya Tocar <ilya.tocar@intel.com>
14336 Andrey Turetskiy <andrey.turetskiy@intel.com>
14337 Ilya Verbin <ilya.verbin@intel.com>
14338 Kirill Yukhin <kirill.yukhin@intel.com>
14339 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14340
14341 * config/i386/sse.md (V_512): New.
14342 (VI_512): Ditto.
14343 (vcond<V_512:mode><VF_512:mode>): Ditto.
14344 (vcond<V_512:mode><VI_512:mode>): Ditto.
14345 (vcondu<V_512:mode><VI_512:mode>): Ditto.
14346
14347 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14348 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14349 Sergey Lega <sergey.s.lega@intel.com>
14350 Anna Tikhonova <anna.tikhonova@intel.com>
14351 Ilya Tocar <ilya.tocar@intel.com>
14352 Andrey Turetskiy <andrey.turetskiy@intel.com>
14353 Ilya Verbin <ilya.verbin@intel.com>
14354 Kirill Yukhin <kirill.yukhin@intel.com>
14355 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14356
14357 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
14358 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
14359 (FMAMODE): Ditto.
14360 (fma<mode>4): Removed condition.
14361 (fms<mode>4): Ditto.
14362 (fnma<mode>4): Ditto.
14363 (fnms<mode>4): Ditto.
14364 (fma4i_fmadd_<mode>): Ditto.
14365 (*fma_fmadd_<mode>): Ditto.
14366 (*fma_fmsub_<mode>): Ditto.
14367 (*fma_fnmadd_<mode>): Ditto.
14368 (*fma_fnmsub_<mode>): Ditto.
14369 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
14370 (*fma_fmaddsub_<mode>): Ditto.
14371 (*fma_fmsubadd_<mode>): Ditto.
14372 (*fmai_fmadd_<mode>): Ditto.
14373 (*fmai_fmsub_<mode>): Ditto.
14374 (*fmai_fnmadd_<mode>): Ditto.
14375 (*fmai_fnmsub_<mode>): Ditto.
14376
14377 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14378 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14379 Sergey Lega <sergey.s.lega@intel.com>
14380 Anna Tikhonova <anna.tikhonova@intel.com>
14381 Ilya Tocar <ilya.tocar@intel.com>
14382 Andrey Turetskiy <andrey.turetskiy@intel.com>
14383 Ilya Verbin <ilya.verbin@intel.com>
14384 Kirill Yukhin <kirill.yukhin@intel.com>
14385 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14386
14387 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
14388 (VI124_256): Changed to ...
14389 (VI124_256_48_512): This.
14390 (ssepackmode): Extended with wider modes.
14391 (<code><mode>3): Changed iterator.
14392 (*avx2_<code><mode>3): Ditto.
14393 (vec_pack_trunc_<mode>): Ditto.
14394
14395 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14396 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14397 Sergey Lega <sergey.s.lega@intel.com>
14398 Anna Tikhonova <anna.tikhonova@intel.com>
14399 Ilya Tocar <ilya.tocar@intel.com>
14400 Andrey Turetskiy <andrey.turetskiy@intel.com>
14401 Ilya Verbin <ilya.verbin@intel.com>
14402 Kirill Yukhin <kirill.yukhin@intel.com>
14403 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14404
14405 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
14406 (VI8F_256_512): Ditto.
14407 (abs<mode>2): Changed iterator.
14408 (avx2_perm<mode>): Changed to ...
14409 (<avx2_avx512f>_perm<mode>): This.
14410 (avx2_perm<mode>_1): Changed to ...
14411 (<avx2_avx512f>_perm<mode>_1): This.
14412
14413 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14414 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14415 Sergey Lega <sergey.s.lega@intel.com>
14416 Anna Tikhonova <anna.tikhonova@intel.com>
14417 Ilya Tocar <ilya.tocar@intel.com>
14418 Andrey Turetskiy <andrey.turetskiy@intel.com>
14419 Ilya Verbin <ilya.verbin@intel.com>
14420 Kirill Yukhin <kirill.yukhin@intel.com>
14421 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14422
14423 * config/i386/sse.md (VI48_AVX512F): New.
14424 (VI48_AVX2): Changed to ...
14425 (VI48_AVX2_48_AVX512F): This.
14426 (avx2_ashrv<mode>): Changed to ...
14427 (<avx2_avx512f>_ashrv<mode>): This.
14428 (avx2_<shift_insn>v<mode>): Changed to ...
14429 (<avx2_avx512f>_<shift_insn>v<mode>): This.
14430
14431 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14432 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14433 Sergey Lega <sergey.s.lega@intel.com>
14434 Anna Tikhonova <anna.tikhonova@intel.com>
14435 Ilya Tocar <ilya.tocar@intel.com>
14436 Andrey Turetskiy <andrey.turetskiy@intel.com>
14437 Ilya Verbin <ilya.verbin@intel.com>
14438 Kirill Yukhin <kirill.yukhin@intel.com>
14439 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14440
14441 * config/i386/sse.md (VI4_AVX512F): New.
14442 (VI8_AVX2_AVX512F): Ditto.
14443 (mul<mode>3): Extended with wider modes.
14444 (*<sse4_1_avx2>_mul<mode>3): Ditto.
14445 (mul<mode>3): Ditto.
14446 (vec_widen_<s>mult_odd_<mode>): Ditto.
14447
14448 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14449 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14450 Sergey Lega <sergey.s.lega@intel.com>
14451 Anna Tikhonova <anna.tikhonova@intel.com>
14452 Ilya Tocar <ilya.tocar@intel.com>
14453 Andrey Turetskiy <andrey.turetskiy@intel.com>
14454 Ilya Verbin <ilya.verbin@intel.com>
14455 Kirill Yukhin <kirill.yukhin@intel.com>
14456 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14457
14458 * config/i386/sse.md (VI2_AVX512F): New.
14459 (VI124_AVX512F): Ditto.
14460 (sseunpackmode): Extended with wider modes.
14461 (sseunpackfltmode): Ditto.
14462 (vec_unpacks_float_hi_<mode>): Ditto.
14463 (vec_unpacks_float_lo_<mode>): Ditto.
14464 (vec_unpacku_float_hi_<mode>): Ditto.
14465 (vec_unpacku_float_lo_<mode>): Ditto.
14466 (vec_unpacks_lo_<mode>): Ditto.
14467 (vec_unpacks_hi_<mode>): Ditto.
14468 (vec_unpacku_lo_<mode>): Ditto.
14469 (vec_unpacku_hi_<mode>): Ditto.
14470
14471 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14472 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14473 Sergey Lega <sergey.s.lega@intel.com>
14474 Anna Tikhonova <anna.tikhonova@intel.com>
14475 Ilya Tocar <ilya.tocar@intel.com>
14476 Andrey Turetskiy <andrey.turetskiy@intel.com>
14477 Ilya Verbin <ilya.verbin@intel.com>
14478 Kirill Yukhin <kirill.yukhin@intel.com>
14479 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14480
14481 * config/i386/i386.md (multdiv): New.
14482 (multdiv_mnemonic): Ditto.
14483 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
14484 (<sse>_vm<multdiv_mnemonic><mode>3): This.
14485 (<sse>_vmdiv<mode>3): Removed.
14486
14487 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14488 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14489 Sergey Lega <sergey.s.lega@intel.com>
14490 Anna Tikhonova <anna.tikhonova@intel.com>
14491 Ilya Tocar <ilya.tocar@intel.com>
14492 Andrey Turetskiy <andrey.turetskiy@intel.com>
14493 Ilya Verbin <ilya.verbin@intel.com>
14494 Kirill Yukhin <kirill.yukhin@intel.com>
14495 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14496
14497 * config/i386/sse.md (V): Extended with wider modes.
14498 (VF2): Ditto.
14499 (ssehalfvecmode): Ditto.
14500 (i128): Ditto.
14501 (ssepackfltmode): Ditto.
14502 (avx_vec_concat<mode>): Ditto.
14503 (V_256_512): New iterator.
14504 (VF2_512_256): Ditto.
14505 (si2dfmode): New attribute.
14506 (si2dfmodelower): Ditto.
14507 (sf2dfmode): Ditto.
14508 (concat_tg_mode): Ditto.
14509 (floatv4siv4df2): Changed to ...
14510 (float<si2dfmodelower><mode>2): This.
14511 (avx_cvtps2pd256): Changed to ...
14512 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
14513 (vec_pack_trunc_v4df): Changed to ...
14514 (vec_pack_trunc_<mode>): This.
14515 (avx_vpermil<mode>): Changed to ...
14516 (<sse2_avx_avx512f>_vpermil<mode>): This.
14517 (<fixsuffix>fix_truncv8dfv8si2): New.
14518 (vec_pack_sfix_trunc_v8df): Ditto.
14519 (avx512f_rndscale<mode>): Ditto.
14520 (avx512f_roundpd512): Ditto.
14521 (vec_pack_ufix_trunc_<mode>): Updated iterator.
14522
14523 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14524 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14525 Sergey Lega <sergey.s.lega@intel.com>
14526 Anna Tikhonova <anna.tikhonova@intel.com>
14527 Ilya Tocar <ilya.tocar@intel.com>
14528 Andrey Turetskiy <andrey.turetskiy@intel.com>
14529 Ilya Verbin <ilya.verbin@intel.com>
14530 Kirill Yukhin <kirill.yukhin@intel.com>
14531 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14532
14533 * config/i386/i386.md (any_fix): New iterator.
14534 (fixsuffix): New attribute.
14535 * config/i386/sse.md (VF1): Extened with wider modes.
14536 (VI): Ditto.
14537 (VI_AVX2): Ditto.
14538 (VI8): Ditto.
14539 (sseintvecmodelower): Ditto.
14540 (ssescalarmode): Ditto.
14541 (ssescalarnum): Ditto.
14542 (VF1_128_256): New.
14543 (ssexmmmode): Ditto.
14544 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
14545 (<sse>_rcp<mode>2): Change iterator.
14546 (rsqrt<mode>2): Ditto.
14547 (<sse>_rsqrt<mode>2): Ditto.
14548 (avx2_vec_dup<mode>): Ditto.
14549 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
14550 (round<mode>2_sfix): Ditto.
14551 (avx2_pbroadcast<mode>): Ditto.
14552 (*andnot<mode>3): Handle XI mode.
14553 (*<code><mode>3): Ditto.
14554 (AVXTOSSEMODE): Removed.
14555 (avx_vpermil<mode>): Changed to ...
14556 (<sse2_avx_avx512f>_vpermil<mode>): This.
14557
14558 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14559 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14560 Sergey Lega <sergey.s.lega@intel.com>
14561 Anna Tikhonova <anna.tikhonova@intel.com>
14562 Ilya Tocar <ilya.tocar@intel.com>
14563 Andrey Turetskiy <andrey.turetskiy@intel.com>
14564 Ilya Verbin <ilya.verbin@intel.com>
14565 Kirill Yukhin <kirill.yukhin@intel.com>
14566 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14567
14568 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
14569 (<sse>_comi): Ditto.
14570 (<sse>_ucomi): Ditto.
14571 (sse_cvtss2siq_2): Ditto.
14572 (sse2_cvtsd2si): Ditto.
14573 (sse2_cvtsd2siq): Ditto.
14574 (sse2_cvttsd2si): Ditto.
14575 (sse2_cvttsd2siq): Ditto.
14576 (<shift_insn><mode>3): Ditto.
14577 (sse2_cvtsi2sdq): Update constraint and prefix.
14578 (sse_cvtsi2ss): Update prefix.
14579 (sse_cvtsi2ssq): Ditto.
14580
14581 2013-10-11 Jakub Jelinek <jakub@redhat.com>
14582
14583 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
14584 ignore internal calls.
14585
14586 2013-10-11 Richard Biener <rguenther@suse.de>
14587
14588 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
14589 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if
14590 TREE_OVERFLOW is set.
14591
14592 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
14593
14594 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
14595
14596 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
14597 * gimple.h: Likewise.
14598
14599 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
14600
14601 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
14602 macros.
14603
14604 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
14605
14606 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
14607 * configure: Regenerate.
14608
14609 2013-10-11 Jakub Jelinek <jakub@redhat.com>
14610
14611 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
14612 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
14613 formatting fixes, use pp_colon instead of pp_character (..., ':'),
14614 similarly pp_right_paren.
14615 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
14616 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
14617 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
14618 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
14619 clauses.
14620 (omp_declare_simd_clauses_equal,
14621 omp_remove_redundant_declare_simd_attrs): New functions.
14622 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
14623 (walk_tree_1): Handle new OpenMP 4.0 clauses.
14624 * tree.h (OMP_LOOP_CHECK): Define.
14625 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
14626 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
14627 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
14628 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
14629 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
14630 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
14631 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
14632 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
14633 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
14634 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
14635 OMP_CLAUSE_SIMDLEN_EXPR): Define.
14636 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
14637 (omp_remove_redundant_declare_simd_attrs): New prototype.
14638 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
14639 GIMPLE_OMP_TEAMS): New codes.
14640 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
14641 * omp-low.c (struct omp_context): Add cancel_label and cancellable
14642 fields.
14643 (target_nesting_level): New variable.
14644 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
14645 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
14646 for collapse > 1 static schedule unless ordered.
14647 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
14648 (determine_parallel_type): Adjust get_ws_args_for caller.
14649 (install_var_field): Handle mask & 4 for double indirection.
14650 (scan_sharing_clauses): Ignore shared clause on teams construct.
14651 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
14652 (create_omp_child_function): If inside target or declare target
14653 constructs, set "omp declare target" attribute on the child function.
14654 (find_combined_for): New function.
14655 (scan_omp_parallel): Handle combined loops.
14656 (scan_omp_target, scan_omp_teams): New functions.
14657 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
14658 restrictions and set ctx->cancellable for cancellable constructs.
14659 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
14660 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
14661 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
14662 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
14663 (omp_clause_aligned_alignment): New function.
14664 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
14665 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
14666 on teams constructs. Handle user defined reductions and new
14667 OpenMP 4.0 clauses.
14668 (lower_reduction_clauses): Don't set placeholder to address of ref
14669 if it has already the right type.
14670 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
14671 (expand_parallel_call): Use the new non-_start suffixed builtins,
14672 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
14673 and GOMP_parallel_end after the call.
14674 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
14675 (expand_omp_for_init_counts): Handle combined loops.
14676 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
14677 loops.
14678 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
14679 end of cancellable loops.
14680 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
14681 Likewise. Handle collapse > 1 loops.
14682 (expand_omp_simd): Handle combined loops.
14683 (expand_omp_for): Add inner_stmt argument, adjust callers of
14684 expand_omp_for* functions, use expand_omp_for_static*chunk even
14685 for collapse > 1 unless ordered.
14686 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
14687 of cancellable sections.
14688 (expand_omp_single): Remove need_barrier variable, just rely on
14689 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
14690 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
14691 (expand_omp_atomic_load, expand_omp_atomic_store,
14692 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
14693 (expand_omp_target): New function.
14694 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
14695 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
14696 (build_omp_regions_1): Immediately close region for
14697 GF_OMP_TARGET_KIND_UPDATE.
14698 (maybe_add_implicit_barrier_cancel): New function.
14699 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
14700 cancellation.
14701 (lower_omp_single): Likewise. Add clobber after the barrier.
14702 (lower_omp_taskgroup): New function.
14703 (lower_omp_for): Handle combined loops. Adjust
14704 lower_rec_input_clauses caller. Handle cancellation.
14705 (lower_depend_clauses): New function.
14706 (lower_omp_taskreg): Lower depend clauses. Adjust
14707 lower_rec_input_clauses caller. Add clobber after the call. Handle
14708 cancellation.
14709 (lower_omp_target, lower_omp_teams): New functions.
14710 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
14711 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
14712 and GOMP_cancellation_point calls.
14713 (lower_omp): Fold stmts inside of target region.
14714 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
14715 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
14716 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
14717 (BT_FN_VOID_OMPFN_PTR_UINT,
14718 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
14719 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
14720 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
14721 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
14722 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
14723 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
14724 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
14725 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
14726 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
14727 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
14728 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
14729 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
14730 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
14731 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
14732 BUILT_IN_GOMP_PARALLEL_END.
14733 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
14734 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
14735 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
14736 GF_OMP_FOR_KIND_DISTRIBUTE.
14737 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
14738 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
14739 (dump_gimple_omp_return): Print lhs if it has any.
14740 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
14741 gimple_omp_atomic_seq_cst_p.
14742 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
14743 and GIMPLE_OMP_TEAMS.
14744 * langhooks.c (lhd_omp_mappable_type): New function.
14745 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
14746 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
14747 hook.
14748 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
14749 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
14750 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
14751 (struct gimplify_omp_ctx): Add combined_loop field.
14752 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
14753 on stmts inside of target region.
14754 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
14755 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
14756 ORT_TARGET and ORT_TARGET_DATA.
14757 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
14758 Handle GOVD_MAP.
14759 (omp_notice_threadprivate_variable): Complain about threadprivate
14760 variables in target region.
14761 (omp_notice_variable): Complain about vars with non-mappable type
14762 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
14763 (omp_check_private): Ignore ORT_TARGET* regions.
14764 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
14765 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
14766 (find_combined_omp_for): New function.
14767 (gimplify_omp_for): Handle gimplification of combined loops.
14768 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
14769 OMP_TEAMS.
14770 (gimplify_omp_target_update): New function.
14771 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
14772 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
14773 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
14774 (gimplify_body): If fndecl has "omp declare target" attribute, add
14775 implicit ORT_TARGET context around it.
14776 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
14777 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
14778 * tree-nested.c (convert_nonlocal_reference_stmt,
14779 convert_local_reference_stmt, convert_gimple_call): Handle
14780 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14781 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
14782 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
14783 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
14784 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
14785 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
14786 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
14787 BUILT_IN_GOMP_LOOP_END_CANCEL,
14788 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
14789 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
14790 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
14791 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
14792 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
14793 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
14794 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
14795 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
14796 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
14797 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
14798 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
14799 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
14800 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
14801 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
14802 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
14803 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14804 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
14805 gimple_build_omp_teams): New functions.
14806 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
14807 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
14808 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
14809 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14810 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
14811 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
14812 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
14813 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
14814 GF_OMP_ATOMIC_SEQ_CST): New.
14815 (gimple_build_omp_taskgroup, gimple_build_omp_target,
14816 gimple_build_omp_teams): New prototypes.
14817 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
14818 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14819 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
14820 GIMPLE_OMP_SINGLE as end of range.
14821 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
14822 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
14823 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
14824 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
14825 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
14826 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
14827 gimple_omp_target_kind, gimple_omp_target_set_kind,
14828 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
14829 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
14830 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
14831 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
14832 gimple_omp_teams_set_clauses): New inlines.
14833 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
14834 and GIMPLE_OMP_TASKGROUP.
14835 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
14836 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
14837 enum omp_clause_proc_bind_kind): New.
14838 (union omp_clause_subcode): Add depend_kind, map_kind and
14839 proc_bind_kind fields.
14840 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
14841 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
14842 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
14843 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
14844 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
14845
14846 2013-10-10 Teresa Johnson <tejohnson@google.com>
14847
14848 * predict.c (tree_estimate_probability): Add new parameter
14849 for estimate_bb_frequencies.
14850 (estimate_bb_frequencies): Add new parameter to force estimation.
14851 (rebuild_frequencies): When max frequency in function is small,
14852 recompute counts from frequencies.
14853 * predict.h (estimate_bb_frequencies): New parameter.
14854
14855 2013-10-10 David Malcolm <dmalcolm@redhat.com>
14856
14857 * ipa-inline.c (ipa_inline): Fix leak of "order" when
14858 optimizations are disabled.
14859
14860 2013-10-10 David Malcolm <dmalcolm@redhat.com>
14861
14862 * coverage.c (coverage_finish): Fix leak of da_file_name.
14863
14864 2013-10-10 Jan Hubicka <jh@suse.cz>
14865
14866 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
14867 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
14868 Bobcat and generic.
14869
14870 2013-10-10 Jakub Jelinek <jakub@redhat.com>
14871
14872 PR middle-end/58670
14873 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
14874 if any labels are in FALLTHRU_BB, use a special label emitted
14875 immediately after the asm goto insn rather than label_rtx
14876 of the LABEL_DECL.
14877 (expand_asm_stmt): Adjust caller.
14878 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
14879 edge if the last insn in predecessor is a jump with single successor,
14880 but it isn't simplejump_p.
14881
14882 2013-10-10 Richard Biener <rguenther@suse.de>
14883
14884 PR tree-optimization/58656
14885 * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
14886
14887 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
14888
14889 * gimplify.c: Include expr.h and tm_p.h for targets with special
14890 va-arg padding requirements.
14891
14892 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
14893
14894 * tree-flow.h: Move some prototypes to gimple.h.
14895 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
14896 * gimple.h: Relocate some prototypes from tree-flow.h
14897 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
14898 Move to gimplify.c.
14899 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
14900 (build_va_arg_indirect_ref): Relocate and make static.
14901 (std_gimplify_va_arg_expr): Relocate here.
14902 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
14903 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
14904
14905 2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14906
14907 * doc/md.texi: Document the mnemonic attribute.
14908
14909 2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14910
14911 PR target/57377
14912 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
14913 (set_attr_alternative x ...) when searching for user defined
14914 mnemonic attribute.
14915
14916 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
14917
14918 * config/alpha/alpha.c: Add gimple-ssa.h to include list.
14919
14920 2013-10-09 Easwaran Raman <eraman@google.com>
14921
14922 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
14923 * cfgexpand.c (defer_stack_allocation): ...use here
14924 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
14925
14926 2013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
14927
14928 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
14929 (operand_equal_for_value_replacement): New function, extracted from
14930 value_replacement and enhanced to catch more cases.
14931 (value_replacement): Use operand_equal_for_value_replacement.
14932
14933 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
14934
14935 * loop-doloop.c (doloop_modify, doloop_optimize): Use
14936 get_max_loop_iterations.
14937
14938 2013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14939
14940 * config/arm/aarch-common.c (arm_early_load_addr_dep):
14941 Place comment above function.
14942
14943 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
14944
14945 * tree-flow.h: Remove all remaining prototypes, enums and structs that
14946 are not related to tree-cfg.c.
14947 * tree-ssa-address.h: New file. Relocate prototypes.
14948 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
14949 (addr_for_mem_ref): New. Combine call to get_address_description and
14950 return addr_for_mem_ref.
14951 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
14952 * tree-ssa-live.h: Adjust prototypes.
14953 * passes.c: Include tree-ssa-live.h.
14954 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
14955 * graphite.c (graphite_transform_loops): Make static.
14956 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
14957 make_pass_graphite, pass_data_graphite_transforms,
14958 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
14959 * ipa-pure-const.c (warn_function_noreturn): Make static.
14960 (execute_warn_function_noreturn, gate_warn_function_noreturn,
14961 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
14962 Relocate from tree-cfg.c
14963 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
14964 static.
14965 (execute_warn_function_noreturn, gate_warn_function_noreturn,
14966 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
14967 Move to ipa-pure-const.c.
14968 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
14969 Relocate from tree-optimize.c.
14970 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
14971 make_pass_fixup_cfg): Move to tree-cfg.c.
14972 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
14973 Relocate some prototypes.
14974 * tree-data-ref.h (tree_check_data_deps) Add prototype.
14975 * tree-dump.c (dump_function_to_file): Remove prototype.
14976 Add tree-flow.h to the include file.
14977 * tree-dump.h: Remove prototype.
14978 * tree-parloops.h: New File. Add prototypes.
14979 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
14980 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
14981 from tree-ssa-loop.c.
14982 * tree-predcom.c (run_tree_predictive_commoning,
14983 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
14984 Relocate here from tree-ssa-loop.c.
14985 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
14986 ssa_name_values.release ().
14987 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
14988 (ssa_name_values): Relocate from tree-flow.h.
14989 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
14990 * tree-ssa-loop.c (run_tree_predictive_commoning,
14991 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
14992 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
14993 make_pass_graphite, pass_data_graphite_transforms,
14994 make_pass_graphite_transforms, gate_tree_parallelize_loops,
14995 tree_parallelize_loops, pass_data_parallelize_loops,
14996 make_pass_parallelize_loops): Move to other files.
14997 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
14998 moved here.
14999 * tree.h: Remove prototypes from tree-address.c.
15000
15001 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
15002
15003 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
15004 (struct int_tree_map): Move to tree-hasher.h
15005 (SCALE, LABEL, PERCENT): Move to gimple.h
15006 * tree-flow-inline.h: Delete. Move functions to other files.
15007 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
15008 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
15009 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
15010 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
15011 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
15012 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
15013 * tree-hasher.h: Don't include tree-flow.h.
15014 (struct int_tree_map): Relocate from tree-flow.h.
15015 * tree-sra.c (contains_view_convert_expr_p): Relocate from
15016 tree-flow-inline.h and make static.
15017 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
15018 tree-flow-inline.h.
15019 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
15020 tree-flow-inline.h and make static.
15021 * tree.h (is_global_var, may_be_aliased): Relocate from
15022 tree-flow-inline.h.
15023 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
15024 * value-prof.c: No longer include tree-flow-inline.h.
15025 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
15026
15027 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
15028
15029 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
15030 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
15031 (enum move_pos): Move to tree-ssa-loop-im.h
15032 * cfgloop.h: Move some prototypes.
15033 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
15034 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
15035 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
15036 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
15037 (loop_containing_stmt): Relocate from tree-flow-inline.h.
15038 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
15039 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
15040 (enum move_pos): Relocate here.
15041 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
15042 tree-ssa-loop.c.
15043 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
15044 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
15045 make_pass_lim): Relocate here from tree-ssa-loop.c.
15046 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
15047 tree-ssa-loop.c.
15048 (loop_edge_to_cancel, unloop_loops): Make static.
15049 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
15050 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
15051 (tree_complete_unroll, gate_tree_complete_unroll,
15052 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
15053 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
15054 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
15055 * tree-ssa-loop-ivopts.c: Remove local prototypes.
15056 (stmt_invariant_in_loop_p): Remove unused function.
15057 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
15058 * tree-ssa-loop-manip.h: New file. Add prototypes.
15059 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
15060 (gcov_type_to_double_int): Move to cfgloop.h.
15061 (double_int_cmp, bound_index,
15062 estimate_numbers_of_iterations_loop): Make static.
15063 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
15064 (max_loop_iterations): Factor out get_max_loop_iterations.
15065 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
15066 cfgloop.c.
15067 * tree-ssa-loop-niter.h: New file. Add prototypes.
15068 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
15069 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
15070 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
15071 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
15072 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
15073 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
15074 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
15075 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
15076 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
15077 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
15078 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
15079 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
15080 pass_data_complete_unroll, make_pass_complete_unroll,
15081 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
15082 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
15083 tree-ssa-loop-ivcanon.c.
15084 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
15085 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
15086 tree-ssa-loop-prefetch.c.
15087 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
15088 tree-ssa-loop-im.c.
15089 (get_lsm_tmp_name): Relocate and add suffix parameter.
15090 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
15091 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
15092 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
15093 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
15094 (get_estimated_loop_iterations): Factor out accessor from
15095 estimated_loop_iterations in tree-ssa-loop-niter.c.
15096 (get_max_loop_iterations): Factor out accessor from
15097 _max_loop_iterations in tree-ssa-niter.c.
15098 * loop-unroll.c (decide_unroll_constant_iterations,
15099 decide_unroll_runtime_iterations, decide_peel_simple,
15100 decide_unroll_stupid): Use new get_* accessors.
15101
15102 2013-10-09 Marc Glisse <marc.glisse@inria.fr>
15103
15104 PR tree-optimization/20318
15105 * doc/extend.texi (returns_nonnull): New function attribute.
15106 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
15107 attribute.
15108 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
15109 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
15110
15111 2013-10-09 Eric Botcazou <ebotcazou@adacore.com>
15112
15113 PR middle-end/58570
15114 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
15115 false if both components are bitfields.
15116
15117 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
15118
15119 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
15120 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
15121 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
15122 * config/aarch64/aarch64.h
15123 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
15124 * config/aarch64/aarch64-simd-builtins.def
15125 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
15126
15127 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
15128
15129 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
15130
15131 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
15132
15133 * config/aarch64/arm_neon.h (vdiv_f64): Added.
15134
15135 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
15136
15137 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
15138 (vneg_f64): New intrinsic.
15139 (vneg_s8): Asm replaced with C.
15140 (vneg_s16): Likewise.
15141 (vneg_s32): Likewise.
15142 (vneg_s64): New intrinsic.
15143 (vnegq_f32): Asm replaced with C.
15144 (vnegq_f64): Likewise.
15145 (vnegq_s8): Likewise.
15146 (vnegq_s16): Likewise.
15147 (vnegq_s32): Likewise.
15148 (vnegq_s64): Likewise.
15149
15150 2013-10-09 Renlin Li <Renlin.Li@arm.com>
15151
15152 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
15153
15154 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15155
15156 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
15157 packed stack special handling.
15158 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
15159 back to fixed stack slots for FPRs saved due to stdarg.
15160
15161 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15162
15163 * config/s390/s390.c (s390_frame_info): Restructure function.
15164
15165 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15166
15167 * config/s390/s390.c (struct s390_frame_layout): New field
15168 gpr_save_slots.
15169 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
15170 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
15171 regs_ever_clobbered to char*.
15172 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
15173 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
15174 (s390_register_info): Enable FPR save slots. Move/Copy some
15175 functionality into ...
15176 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
15177 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
15178 function.
15179 (s390_frame_info): Do gpr slot allocation here now. stdarg does
15180 not imply a stack frame.
15181 (s390_init_frame_layout): Remove variable clobbered_regs.
15182 (s390_update_register_info): Remove function.
15183 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
15184 cannot be used for register renaming.
15185 (s390_hard_regno_scratch_ok): New function.
15186 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
15187 (s390_initial_elimination_offset): Change offset calculation of
15188 the return address pointer.
15189 (save_gprs): Deal with only r6 being saved from the call-saved regs.
15190 (restore_gprs): Set frame related flag.
15191 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
15192 (s390_emit_prologue): Call s390_register_info instead of
15193 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
15194 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
15195 (s390_optimize_prologue): Call s390_optimize_register_info.
15196 Try to remove also FPR slot save/restore INSNs. Remove frame
15197 related flags from restore INSNs.
15198
15199 2013-10-08 DJ Delorie <dj@redhat.com>
15200
15201 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
15202 (movhi): Likewise.
15203
15204 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
15205 avoid conflict with the MI use of %c.
15206 * config/rl78/rl78-real.md: change %c to %C throughout.
15207 * config/rl78/rl78-virt.md: Likewise.
15208
15209 2013-10-08 Jan Hubicka <jh@suse.cz>
15210
15211 * config/i386/i386.c (ix86_option_override_internal): Switch
15212 to SSE math for -ffast-math when target ISA supports SSE2.
15213
15214 2013-10-08 Andrew MacLeod <amacleod@redhat.com>
15215
15216 * tree-flow.h: Remove some prototypes.
15217 * tree.h: Remove some protypes, add a couple.
15218 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
15219 using_eh_for_cleanups_p): Add interface routines for front ends.
15220 * tree-eh.h: New file. Add protoptyes.
15221 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
15222 (add_stmt_to_eh_lp_fn): Make static.
15223 (lower_try_finally): Use new using_eh_for_cleanups_p.
15224 * emit-rtl.c: Include tree-eh.h.
15225 * gimple.h: Include tree-eh.h.
15226
15227 2013-10-08 Marc Glisse <marc.glisse@inria.fr>
15228
15229 PR tree-optimization/58480
15230 * tree-vrp.c (infer_nonnull_range): New function.
15231 (infer_value_range): Call infer_nonnull_range.
15232
15233 2013-10-08 Dehao Chen <dehao@google.com>
15234
15235 PR tree-optimization/58619
15236 * tree-inline.c (copy_phis_for_bb): Combine location data
15237 only if non-null.
15238
15239 2013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15240
15241 PR target/58423
15242 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
15243 RTX_FRAME_RELATED_P on INSN.
15244
15245 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15246
15247 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
15248 (altivec_expand_vec_perm_const): Call it.
15249
15250 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15251
15252 * config/rs6000/vector.md (mov<mode>): Emit permuted move
15253 sequences for LE VSX loads and stores at expand time.
15254 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
15255 prototype.
15256 * config/rs6000/rs6000.c (rs6000_const_vec): New.
15257 (rs6000_gen_le_vsx_permute): New.
15258 (rs6000_gen_le_vsx_load): New.
15259 (rs6000_gen_le_vsx_store): New.
15260 (rs6000_gen_le_vsx_move): New.
15261 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
15262 (*vsx_le_perm_load_v4si): New.
15263 (*vsx_le_perm_load_v8hi): New.
15264 (*vsx_le_perm_load_v16qi): New.
15265 (*vsx_le_perm_store_v2di): New.
15266 (*vsx_le_perm_store_v4si): New.
15267 (*vsx_le_perm_store_v8hi): New.
15268 (*vsx_le_perm_store_v16qi): New.
15269 (*vsx_xxpermdi2_le_<mode>): New.
15270 (*vsx_xxpermdi4_le_<mode>): New.
15271 (*vsx_xxpermdi8_le_V8HI): New.
15272 (*vsx_xxpermdi16_le_V16QI): New.
15273 (*vsx_lxvd2x2_le_<mode>): New.
15274 (*vsx_lxvd2x4_le_<mode>): New.
15275 (*vsx_lxvd2x8_le_V8HI): New.
15276 (*vsx_lxvd2x16_le_V16QI): New.
15277 (*vsx_stxvd2x2_le_<mode>): New.
15278 (*vsx_stxvd2x4_le_<mode>): New.
15279 (*vsx_stxvd2x8_le_V8HI): New.
15280 (*vsx_stxvd2x16_le_V16QI): New.
15281
15282 2013-10-07 Renlin Li <Renlin.Li@arm.com>
15283
15284 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
15285
15286 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15287
15288 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
15289 loop to work also for 31bit ABI.
15290 Save the stack pointer for frame_size > 0.
15291
15292 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15293
15294 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
15295 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
15296 constraint letters from expanders.
15297 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
15298 retry count to general_operand.
15299 ("tabort"): Give operand 0 a mode.
15300 ("tabort_1"): Add mode and constraint letter for operand 0.
15301 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
15302
15303 2013-10-04 Jeff Law <law@redhat.com>
15304
15305 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
15306
15307 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
15308 out of ...
15309 (thread_across_edge): Here. Call it.
15310
15311 2013-10-04 Cary Coutant <ccoutant@google.com>
15312
15313 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
15314 discarding a location list expression (or a piece of one).
15315
15316 2013-10-03 Jan Hubicka <jh@suse.cz>
15317
15318 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
15319 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
15320 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
15321
15322 2013-10-03 Jan Hubicka <jh@suse.cz>
15323
15324 * config/i386/i386.c (ix86_option_override_internal): Do not enable
15325 accumulate-outgoing-args when producing unwind info.
15326
15327 2013-10-03 Wei Mi <wmi@google.com>
15328
15329 * lra-constraints.c (insert_move_for_subreg): New function
15330 extracted from simplify_operand_subreg.
15331 (simplify_operand_subreg): Add reload for paradoxical subreg.
15332
15333 2013-10-03 Rong Xu <xur@google.com>
15334
15335 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
15336 the candidate of builtin_expect such that we should fix the
15337 size/time estimation.
15338 (estimate_function_body_sizes): Do the acutally size/time fix-up
15339 for builtin_expect.
15340
15341 2013-10-03 Rong Xu <xur@google.com>
15342
15343 * predict.c (tree_predict_by_opcode): Get the probability
15344 for builtin_expect from param builtin_expect_probability.
15345 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
15346 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
15347 * doc/invoke.texi: Add documentation for builtin-expect-probability.
15348
15349 2013-10-03 Marc Glisse <marc.glisse@inria.fr>
15350
15351 PR c++/19476
15352 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
15353 * calls.c (alloca_call_p): Use get_callee_fndecl.
15354 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
15355 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
15356 Likewise.
15357 (vrp_visit_stmt): Remove duplicated code.
15358
15359 2013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
15360
15361 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
15362 ceildf2, btruncdf2, instead of vsx_* name.
15363
15364 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
15365 iterators to only do V2DF and V4SF here. Move the DF code to
15366 rs6000.md where it is combined with SF mode. Replace <VSv> with
15367 just 'v' since only vector operations are handled with these insns
15368 after moving the DF support to rs6000.md.
15369 (vsx_sub<mode>3): Likewise.
15370 (vsx_mul<mode>3): Likewise.
15371 (vsx_div<mode>3): Likewise.
15372 (vsx_fre<mode>2): Likewise.
15373 (vsx_neg<mode>2): Likewise.
15374 (vsx_abs<mode>2): Likewise.
15375 (vsx_nabs<mode>2): Likewise.
15376 (vsx_smax<mode>3): Likewise.
15377 (vsx_smin<mode>3): Likewise.
15378 (vsx_sqrt<mode>2): Likewise.
15379 (vsx_rsqrte<mode>2): Likewise.
15380 (vsx_fms<mode>4): Likewise.
15381 (vsx_nfma<mode>4): Likewise.
15382 (vsx_copysign<mode>3): Likewise.
15383 (vsx_btrunc<mode>2): Likewise.
15384 (vsx_floor<mode>2): Likewise.
15385 (vsx_ceil<mode>2): Likewise.
15386 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
15387 (vsx_sminsf3): Likewise.
15388 (vsx_fmadf4): Likewise.
15389 (vsx_fmsdf4): Likewise.
15390 (vsx_nfmadf4): Likewise.
15391 (vsx_nfmsdf4): Likewise.
15392 (vsx_cmpdf_internal1): Likewise.
15393
15394 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
15395 simpler to select whether a target has SPE or traditional floating
15396 point support in iterators.
15397 (TARGET_DF_SPE): Likewise.
15398 (TARGET_SF_FPR): Likewise.
15399 (TARGET_DF_FPR): Likewise.
15400 (TARGET_SF_INSN): Macros to say whether floating point support
15401 exists for a given operation for expanders.
15402 (TARGET_DF_INSN): Likewise.
15403
15404 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
15405 combining of SF/DF mode operations, using both traditional and VSX
15406 registers.
15407 (Fvsx): Likewise.
15408 (Ff): Likewise.
15409 (Fv): Likewise.
15410 (Fs): Likewise.
15411 (Ffre): Likewise.
15412 (FFRE): Likewise.
15413 (abs<mode>2): Combine SF/DF modes using traditional floating point
15414 instructions. Add support for using the upper DF registers with
15415 VSX support, and SF registers with power8-vector support. Update
15416 expanders for operations supported by both the SPE and traditional
15417 floating point units.
15418 (abs<mode>2_fpr): Likewise.
15419 (nabs<mode>2): Likewise.
15420 (nabs<mode>2_fpr): Likewise.
15421 (neg<mode>2): Likewise.
15422 (neg<mode>2_fpr): Likewise.
15423 (add<mode>3): Likewise.
15424 (add<mode>3_fpr): Likewise.
15425 (sub<mode>3): Likewise.
15426 (sub<mode>3_fpr): Likewise.
15427 (mul<mode>3): Likewise.
15428 (mul<mode>3_fpr): Likewise.
15429 (div<mode>3): Likewise.
15430 (div<mode>3_fpr): Likewise.
15431 (sqrt<mode>3): Likewise.
15432 (sqrt<mode>3_fpr): Likewise.
15433 (fre<Fs>): Likewise.
15434 (rsqrt<mode>2): Likewise.
15435 (cmp<mode>_fpr): Likewise.
15436 (smax<mode>3): Likewise.
15437 (smin<mode>3): Likewise.
15438 (smax<mode>3_vsx): Likewise.
15439 (smin<mode>3_vsx): Likewise.
15440 (negsf2): Delete SF operations that are merged with DF.
15441 (abssf2): Likewise.
15442 (addsf3): Likewise.
15443 (subsf3): Likewise.
15444 (mulsf3): Likewise.
15445 (divsf3): Likewise.
15446 (fres): Likewise.
15447 (fmasf4_fpr): Likewise.
15448 (fmssf4_fpr): Likewise.
15449 (nfmasf4_fpr): Likewise.
15450 (nfmssf4_fpr): Likewise.
15451 (sqrtsf2): Likewise.
15452 (rsqrtsf_internal1): Likewise.
15453 (smaxsf3): Likewise.
15454 (sminsf3): Likewise.
15455 (cmpsf_internal1): Likewise.
15456 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
15457 (negdf2): Delete DF operations that are merged with SF.
15458 (absdf2): Likewise.
15459 (nabsdf2): Likewise.
15460 (adddf3): Likewise.
15461 (subdf3): Likewise.
15462 (muldf3): Likewise.
15463 (divdf3): Likewise.
15464 (fred): Likewise.
15465 (rsqrtdf_internal1): Likewise.
15466 (fmadf4_fpr): Likewise.
15467 (fmsdf4_fpr): Likewise.
15468 (nfmadf4_fpr): Likewise.
15469 (nfmsdf4_fpr): Likewise.
15470 (sqrtdf2): Likewise.
15471 (smaxdf3): Likewise.
15472 (smindf3): Likewise.
15473 (cmpdf_internal1): Likewise.
15474 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
15475 (btrunc<mode>2): Delete separate expander, and combine with the
15476 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
15477 (btrunc<mode>2_fpr): Likewise.
15478 (ceil<mode>2): Likewise.
15479 (ceil<mode>2_fpr): Likewise.
15480 (floor<mode>2): Likewise.
15481 (floor<mode>2_fpr): Likewise.
15482 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
15483 Add support for using the upper registers with VSX and
15484 power8-vector. Move insns to be closer to the define_expands. On
15485 VSX systems, prefer the traditional form of FMA over the VSX
15486 version, since the traditional form allows the target not to
15487 overlap with the inputs.
15488 (fms<mode>4_fpr): Likewise.
15489 (nfma<mode>4_fpr): Likewise.
15490 (nfms<mode>4_fpr): Likewise.
15491
15492 2013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15493 Richard Earnshaw <richard.earnshaw@arm.com>
15494
15495 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
15496 (struct mult_cost_table): Likewise.
15497 (struct mem_cost_table): Likewise.
15498 (struct fp_cost_table): Likewise.
15499 (struct vector_cost_table): Likewise.
15500 (cpu_cost_table): Likewise.
15501 * config/arm/arm.opt (mold-rts-costs): New option.
15502 (mnew-generic-costs): Likewise.
15503 * config/arm/arm.c (generic_extra_costs): New table.
15504 (cortexa15_extra_costs): Likewise.
15505 (arm_slowmul_tune): Use NULL as new costs.
15506 (arm_fastmul_tune): Likewise.
15507 (arm_strongarm_tune): Likewise.
15508 (arm_xscale_tune): Likewise.
15509 (arm_9e_tune): Likewise.
15510 (arm_v6t2_tune): Likewise.
15511 (arm_cortex_a5_tune): Likewise.
15512 (arm_cortex_a9_tune): Likewise.
15513 (arm_v6m_tune): Likewise.
15514 (arm_fa726te_tune): Likewise.
15515 (arm_cortex_a15_tune): Use cortex15_extra_costs.
15516 (arm_cortex_tune): Use generict_extra_costs.
15517 (shifter_op_p): New function.
15518 (arm_unspec_cost): Likewise.
15519 (LIBCALL_COST): Define.
15520 (arm_new_rtx_costs): New function.
15521 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
15522 table is available. Use old costs otherwise unless mnew-generic-costs
15523 is specified.
15524 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
15525 (cpu_cost_table): Declare.
15526
15527 2013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
15528
15529 PR target/58460
15530 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
15531 (*subs_mul_imm_<mode>)
15532 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
15533 (*sub_<shift>_<mode>)
15534 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
15535 Remove k constraint.
15536
15537 2013-10-03 Ian Bolton <ian.bolton@arm.com>
15538
15539 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
15540 code.
15541 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
15542
15543 2013-10-02 Teresa Johnson <tejohnson@google.com>
15544
15545 * predict.c (probably_never_executed): New function.
15546 (probably_never_executed_bb_p): Invoke probably_never_executed.
15547 (probably_never_executed_edge_p): Ditto.
15548 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
15549 Treat profile insanities conservatively.
15550
15551 2013-10-02 John David Anglin <danglin@gcc.gnu.org>
15552
15553 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
15554
15555 2013-10-02 Vladimir Makarov <vmakarov@redhat.com>
15556
15557 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
15558 use it. Use smaller increase for scratch. Don't increase reject
15559 for early clobber scratch.
15560 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
15561 setting eliminated regs except setting fp from hfp.
15562 (lra_eliminate): Check lra_insn_recog_data on NULL.
15563
15564 2013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
15565
15566 PR target/58587
15567 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
15568 setting -mvsx-timode by default until the underlying problem is fixed.
15569 (RS6000_CPU, power7 defaults): Likewise.
15570
15571 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
15572
15573 * config/x-linux (host-linux.o): Remove header dependencies.
15574 Use $(COMPILE) and $(POSTCOMPILE).
15575 * config/t-linux-android (linux-android.o): Ditto.
15576
15577 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
15578
15579 * Makefile.in (expmed.o-warn): Remove.
15580
15581 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
15582
15583 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
15584 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
15585
15586 2013-10-02 Teresa Johnson <tejohnson@google.com>
15587
15588 * dojump.c (do_jump_1): Divide probability between
15589 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
15590
15591 2013-10-02 Tom Tromey <tromey@redhat.com>
15592
15593 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
15594
15595 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
15596
15597 * tree-flow.h: Remove some prototypes.
15598 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
15599 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
15600 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
15601 mark_virtual_phi_result_for_renaming): Relocate here.
15602 * tree-into-ssa.h: Add prototypes.
15603 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
15604 single_pred_before_succ_order.
15605 (blocks_in_phiopt_order): Rename and move to cfganal.c.
15606 (nonfreeing_call_p) Move to gimple.c.
15607 * cfganal.c (single_pred_before_succ_order): Move and renamed from
15608 tree-ssa-phiopt.c.
15609 * basic-block.h (single_pred_before_succ_order): Add prototype.
15610 * gimple.c (nonfreeing_call_p): Relocate here.
15611 * gimple.h: Add prototype.
15612 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
15613 * tree-ssa-dom.h: New file. Relocate prototypes here.
15614 * tree-ssa.h: Include tree-ssa-dom.h.
15615
15616 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
15617
15618 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
15619 Use $(COMPILE) and $(POSTCOMPILE).
15620
15621 * config/alpha/x-alpha (driver-alpha.o): Ditto.
15622
15623 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
15624
15625 * tree-flow.h: Remove some prototypes.
15626 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
15627 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
15628 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
15629 propagate_tree_value*): Move from here to...
15630 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
15631 propagate_tree_value*): Relocate here.
15632 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
15633 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
15634 * gimple-fold.c: Remove gimple-fold.h from include list.
15635 * tree-vrp.c: Remove gimple-fold.h from include list.
15636 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
15637 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
15638 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
15639 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
15640 * sese.c: Add tree-ssa-propagate.h to include list.
15641
15642 2013-10-02 Richard Biener <rguenther@suse.de>
15643
15644 * tree-loop-distribution.c: Include tree-vectorizer.h for
15645 find_loop_location.
15646 (enum partition_kind): Remove PKIND_REDUCTION.
15647 (struct partition_s): Remove has_writes member, add reduction_p member.
15648 (partition_alloc): Adjust.
15649 (partition_builtin_p): Likewise.
15650 (partition_has_writes): Remove.
15651 (partition_reduction_p): New function.
15652 (partition_merge_into): Likewise.
15653 (generate_code_for_partition): Commonize builtin partition
15654 handling tail.
15655 (rdg_cannot_recompute_vertex_p): Remove.
15656 (already_processed_vertex_p): Likewise.
15657 (rdg_flag_vertex): Do not set has_writes.
15658 (classify_partition): Adjust.
15659 (rdg_build_partitions): Do not set has_writes, treat all
15660 partitions as useful.
15661 (distribute_loop): Record number of library calls generated. Adjust.
15662 (tree_loop_distribution): Report number of loops and library
15663 calls generated as opt-info.
15664
15665 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
15666
15667 * tree-flow.h: Include new .h files. Move prototypes.
15668 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
15669 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
15670 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
15671 * tree-pretty-print.h: Add prototypes from tree-flow.h.
15672 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
15673 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
15674 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
15675 * tree.h (get_ref_base_and_extent): Move prototype out.
15676 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
15677 tree-dfa.h.
15678 * gimple-low.h: New File. Add prototypes from tree-flow.h.
15679 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
15680 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
15681 * tree-scalar-evolution.c: Include tree.h.
15682 * sese.c: Include tree.h.
15683 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
15684 * dwarf2out.c: Include tree-dfa.h.
15685 * tree-chrec.c: Include tree.h.
15686 * tree-data-ref.c: Include tree.h.
15687
15688 2013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
15689
15690 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
15691 Fix whitespace.
15692
15693 2013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15694
15695 * config/t-sol2 (sol2-c.o): Remove header dependencies.
15696 Use $(COMPILE) and $(POSTCOMPILE).
15697 (sol2-cxx.o): Likewise.
15698 (sol2-stubs.o): Likewise.
15699 (sol2.o): Likewise.
15700 * config/x-solaris (host-solaris.o): Likewise.
15701
15702 * config/sparc/t-sparc (sparc.o): Remove.
15703 (sparc-c.o): Remove header dependencies.
15704 Use $(COMPILE) and $(POSTCOMPILE).
15705 * config/sparc/x-sparc: Likewise.
15706
15707 2013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
15708
15709 * config/arc/arc-opts.h: Add 2013 to Copyright years.
15710 * config/arc/arc700.md: Likewise.
15711 * config/arc/arc-modes.def: Likewise.
15712 * config/arc/arc-simd.h: Likewise.
15713 * config/arc/t-arc-uClibc: Likewise.
15714 * config/arc/t-arc-newlib: Likewise.
15715
15716 2013-10-02 Renlin Li <renlin.li@arm.com>
15717
15718 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
15719 plus_constant.
15720 (aarch64_expand_epilogue): Likewise.
15721
15722 2013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15723 Yufeng Zhang <yufeng.zhang@arm.com>
15724
15725 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
15726 declaration.
15727 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
15728 'base_in' represent a conversion and legal_cast_p_1 holds; set
15729 'base_in' with the returned value from get_unwidened.
15730
15731 2013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15732
15733 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
15734 plus_constant is not used.
15735
15736 2013-10-01 Wei Mi <wmi@google.com>
15737
15738 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
15739 * config/i386/i386.md: Add define_peephole2 to
15740 break partial reg stall for cvtss2sd/cvtsd2ss.
15741
15742 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15743
15744 * config/arc/arc.c (pass_arc_ifcvt::clone):
15745 Update for ctxt_ -> m_ctxt change.
15746
15747 2013-10-01 Jeff Law <law@redhat.com>
15748
15749 * tree-ssa-threadupdate.c (struct redirection_data): Delete
15750 outgoing_edge and intermediate_edge fields. Instead store the path.
15751 (redirection_data::hash): Hash on the last edge's destination index.
15752 (redirection_data::equal): Check the entire thread path.
15753 (lookup_redirectio_data): Corresponding changes.
15754 (create_edge_and_update_destination_phis): Likewise.
15755 (thread_single_edge): Likewise.
15756
15757 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15758 Diego Novillo <dnovillo@google.com>
15759
15760 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
15761 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
15762 (vld32wh_insn, vld32wl_insn): Delete commented-out old
15763 versions of these patterns.
15764
15765 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
15766 (__builtin_arc_aligned): Likewise.
15767
15768 * config/arc/arc.md: Expand adc_0 comment stating the intended
15769 purpose and why it isn't ready.
15770 Replace commented out call_value_via_label_mixed with a
15771 plain comment about bl_s.
15772
15773 * config/arc/arc.c (stdio.h): Don't include directly.
15774 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
15775 Remove if (1) condition.
15776 (arc_encode_section_info): Fix comment.
15777
15778 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15779
15780 * config/arc/arc.c (arc_conditional_register_usage):
15781 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
15782 Also set reg_alloc_order for DMA config regs.
15783
15784 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15785 Jeremy Bennett <jeremy.bennett@embecosm.com>
15786
15787 * doc/install.texi (--with-cpu): Mention ARC.
15788 (arc-*-elf32): New paragraph.
15789 (arc-linux-uclibc): Likewise.
15790 * doc/md.texi (Machine Constraints): Add ARC part.
15791 * doc/invoke.texi: (menu): Add ARC Options.
15792 (Machine Dependent Options) <ARC Options>: Add synopsis.
15793 (node ARC Options): Add.
15794 * doc/extend.texi (long_call / short_call attribute): Add ARC.
15795 (ARC Built-in Functions): New section defining
15796 generic ARC built-in functions.
15797 (ARC SIMD Built-in Functions): New section defining SIMD specific
15798 built-in functions.
15799 (Declaring Attributes of Functions): Extended
15800 description of short_call and long_call attributes for ARC and
15801 added index entries.
15802
15803 2013-10-01 Saurabh Verma <saurabh.verma@codito.com>
15804 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
15805 Joern Rennecke <joern.rennecke@embecosm.com>
15806 Muhammad Khurram Riaz <khurram.riaz@arc.com>
15807 Brendan Kehoe <brendan@zen.org>
15808 Michael Eager <eager@eagercon.com>
15809 Simon Cook <simon.cook@embecosm.com>
15810 Jeremy Bennett <jeremy.bennett@embecosm.com>
15811
15812 * config/arc, common/config/arc: New directories.
15813
15814 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
15815 Brendan Kehoe <brendan@zen.org>
15816 Simon Cook <simon.cook@embecosm.com>
15817
15818 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
15819
15820 2013-10-01 Andrew MacLeod <amacleod@redhat.com>
15821
15822 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
15823 * tree-ssa-coalesce.h: New. Move prototype to here.
15824 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
15825 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
15826 (gimple_can_coalesce_p): Move to...
15827 * gimple.c (gimple_can_coalesce_p): Here.
15828
15829 2013-10-01 Andrew MacLeod <amacleod@redhat.com>
15830
15831 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
15832 (dump_decl_set): Move to gimple.c.
15833 * gimple.h: Don't include tree-ssa-operands.h.
15834 (dump_decl_set): Add prototype.
15835 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
15836 Move to gimple-ssa.h.
15837 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
15838 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
15839 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
15840 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
15841 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
15842 than PHI_ARG_DEF.
15843 (dump_decl_set): Relocate here.
15844 * gimple-ssa.h: New file.
15845 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
15846 Relocate from gimple.h.
15847 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
15848 * tree-ssa-operands.c (swap_ssa_operands): Rename from
15849 swap_tree_operands and remove non-ssa path.
15850 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
15851 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
15852 swap_ssa_operands.
15853 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
15854 vect_is_simple_reduction_1): Use swap_ssa_operands.
15855 * tree-flow.h: Move various prototypes to tree-phinodes.h.
15856 (enum need_phi_state): Move to tree-into-ssa.c.
15857 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
15858 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
15859 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
15860 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
15861 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
15862 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
15863 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
15864 num_imm_uses): Move to ssa-iterators.h.
15865 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
15866 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
15867 tree-phinodes.h.
15868 (op_iter_done, op_iter_next_def, op_iter_next_tree,
15869 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
15870 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
15871 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
15872 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
15873 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
15874 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
15875 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
15876 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
15877 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
15878 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
15879 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
15880 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
15881 (set_phi_nodes): Move to tree-phinodes.h.
15882 * tree-ssa-operands.h (enum ssa_op_iter_type,
15883 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
15884 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
15885 (dump_decl_set): Remove prototype.
15886 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
15887 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
15888 (set_phi_nodes): Relocate from tree-flow-inline.h.
15889 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
15890 tree-flow-inline.h
15891 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
15892 include list. Temporarily add gimple.h to include list.
15893 * ssa-iterators.h: New file.
15894 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
15895 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
15896 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
15897 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
15898 Relocate from tree-ssa-operands.h.
15899 (delink_imm_use, link_imm_use_to_list, link_imm_use,
15900 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
15901 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
15902 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
15903 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
15904 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
15905 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
15906 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
15907 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
15908 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
15909 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
15910 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
15911 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
15912 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
15913 Relocate from tree-flow-inline.h.
15914 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
15915
15916 2013-10-01 Vidya Praveen <vidyapraveen@arm.com>
15917
15918 * aarch64-simd.md
15919 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
15920 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
15921 Insert '\t' to output template.
15922 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
15923 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
15924 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
15925 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
15926
15927 2013-10-01 Uros Bizjak <ubizjak@gmail.com>
15928
15929 * doc/install.texi (Host/target specific installation notes for GCC):
15930 Put @anchor before @heading.
15931 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
15932 Use @email for email addresses.
15933
15934 2013-10-01 Jeff Law <law@redhat.com>
15935
15936 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
15937 a vec. Only delete the path if we create one without successfully
15938 registering a jump thread.
15939 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
15940 as a pointer.
15941 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
15942 (paths): New vector of jump threading paths.
15943 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
15944 (THREAD_PATH): New accessor macro for the entire thread path.
15945 (lookup_redirection_data): Get intermediate and final outgoing edge
15946 from the thread path.
15947 (create_edge_and_update_destination_phis): Copy the threading path.
15948 (ssa_fix_duplicate_block_edges): Get edges and block types from the
15949 jump threading path.
15950 (ssa_redirect_edges): Get edges and block types from the jump threading
15951 path. Free the path vector.
15952 (thread_block): Get edges from the jump threading path. Look at the
15953 entire path to see if we thread to a loop exit. If we cancel a jump
15954 thread request, then free the path vector.
15955 (thread_single_edge): Get edges and block types from the jump threading
15956 path. Free the path vector.
15957 (thread_through_loop_header): Get edges and block types from the jump
15958 threading path. Free the path vector.
15959 (mark_threaded_blocks): Iterate over the vector of paths and store
15960 the path on the appropriate edge. Get edges and block types from the
15961 jump threading path.
15962 (mark_threaded_blocks): Get edges and block types from the jump
15963 threading path. Free the path vector.
15964 (thread_through_all_blocks): Use the vector of paths rather than
15965 a vector of 3-edge sets.
15966 (register_jump_thread): Accept pointer to a path vector rather
15967 than the path vector itself. Store the path vector for later use.
15968 Simplify.
15969
15970 2013-10-01 Jakub Jelinek <jakub@redhat.com>
15971 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15972
15973 PR target/58574
15974 * config/s390/s390.c (s390_split_branches): Modify check for table
15975 jump insns.
15976 (s390_chunkify_start): Rearrange table jump insn check in order to
15977 deal with compare and branch insns correctly.
15978
15979 2013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
15980
15981 PR target/58578
15982 Revert
15983 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15984 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
15985 define_insn_and_split.
15986 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
15987 (shiftsi3_compare): New pattern.
15988 (rrx): New pattern.
15989 * config/arm/unspecs.md (UNSPEC_RRX): New.
15990
15991 2013-10-01 Alan Modra <amodra@gmail.com>
15992
15993 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
15994 casing inout operands.
15995
15996 2013-10-01 Richard Biener <rguenther@suse.de>
15997
15998 PR tree-optimization/58553
15999 * tree-loop-distribution.c (struct partition_s): Add niter member.
16000 (classify_partition): Populate niter member for the partition
16001 and properly identify whether the relevant store happens before
16002 or after the loop exit.
16003 (generate_memset_builtin): Use niter member from the partition.
16004 (generate_memcpy_builtin): Likewise.
16005
16006 2013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
16007
16008 * vec.h (vec_prefix, vec): Prefix member names with "m_".
16009 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
16010
16011 2013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
16012
16013 * basic-block.h (edge_list): Prefix member names with "m_".
16014 * context.h (context): Likewise.
16015 * domwalk.h (dom_walker): Likewise.
16016 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
16017 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
16018 * hash-table.h (hash_table): Likewise.
16019 * machmode.h (bit_field_mode_iterator): Likewise.
16020 * pass_manager.h (pass_list): Likewise.
16021 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
16022 * tree-pass.h (pass_data): Likewise.
16023 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
16024 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
16025 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
16026 * asan.c (pass_data_asan): Update accordingly.
16027 * cfganal.c (control_dependences::find_control_dependence): Likewise.
16028 (control_dependences::control_dependences): Likewise.
16029 (control_dependences::~control_dependences): Likewise.
16030 (control_dependences::~control_dependences): Likewise.
16031 (control_dependences::get_edges_dependent_on): Likewise.
16032 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
16033 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
16034 * context.c (gcc::context::context): Likewise.
16035 * cprop.c (pass_rtl_cprop::clone): Likewise.
16036 * domwalk.c (dom_walker::walk): Likewise.
16037 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
16038 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
16039 * mode-switching.c (pass_mode_switching::clone): Likewise.
16040 * passes.c (opt_pass::opt_pass): Likewise.
16041 (pass_manager::pass_manager): Likewise.
16042 * predict.c (pass_strip_predict_hints::clone): Likewise.
16043 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
16044 (pass_split_all_insns::clone): Likewise.
16045 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
16046 Likewise.
16047 (bit_field_mode_iterator::next_mode): Likewise.
16048 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
16049 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
16050 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
16051 * tree-complex.c (pass_lower_complex::clone): Likewise.
16052 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
16053 * tree-object-size.c (pass_object_sizes::clone): Likewise.
16054 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
16055 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
16056 (pass_fold_builtins::clone): Likewise.
16057 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
16058 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
16059 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
16060 (pass_cd_dce::clone): Likewise.
16061 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
16062 (pass_phi_only_cprop::clone): Likewise.
16063 * tree-ssa-dse.c (pass_dse::clone): Likewise.
16064 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
16065 * tree-ssa-loop.c (pass_lim::clone): Likewise.
16066 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
16067 * tree-ssa-pre.c (pass_fre::clone): Likewise.
16068 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
16069 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
16070 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
16071 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
16072 * tree-vrp.c (pass_vrp::clone): Likewise.
16073 * tsan.c (pass_tsan::clone): Likewise.
16074
16075 2013-09-30 Jakub Jelinek <jakub@redhat.com>
16076
16077 PR middle-end/58564
16078 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
16079 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
16080
16081 PR middle-end/58564
16082 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
16083 optimization, punt if sign_bit_p looked through any zero extension.
16084
16085 2013-09-30 Teresa Johnson <tejohnson@google.com>
16086
16087 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
16088 Update redirected out edge count in joiner case.
16089 (ssa_redirect_edges): Common the joiner and non-joiner cases
16090 so that joiner case gets profile updates.
16091
16092 2013-09-30 Richard Biener <rguenther@suse.de>
16093
16094 PR tree-optimization/58554
16095 * tree-loop-distribution.c (classify_partition): Require
16096 unconditionally executed stores for memcpy and memset recognition.
16097 (tree_loop_distribution): Calculate dominance info.
16098
16099 2013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
16100
16101 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
16102 (NO_PROFILE_COUNTERS): Likewise.
16103 (PROFILE_HOOK): Likewise.
16104 (FUNCTION_PROFILER): Likewise.
16105 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
16106
16107 2013-09-30 Iain Sandoe <iain@codesourcery.com>
16108
16109 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
16110 calls and defines in TARGET_MACHO conditional.
16111 (load_macho_picbase_di): Likewise.
16112 (reload_macho_picbase): Likewise.
16113 (reload_macho_picbase_si): Likewise.
16114 (reload_macho_picbase_di): Likewise.
16115 (nonlocal_goto_receiver): Likewise.
16116
16117 2013-09-30 Nick Clifton <nickc@redhat.com>
16118
16119 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
16120 that use the MSP430X ISA.
16121 (msp430_option_override): Scan -mmcu command line option for any
16122 MCU name that supports the MSP430X ISA.
16123 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
16124 -mmcu options which enable the MSP430X ISA.
16125
16126 2013-09-30 Richard Biener <rguenther@suse.de>
16127
16128 PR middle-end/58532
16129 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
16130 before looking for setjmp-like calls.
16131
16132 2013-09-29 Iain Sandoe <iain@codesourcery.com>
16133
16134 PR target/10901
16135 * config/darwin-protos.h (machopic_get_function_picbase): New.
16136 * config/darwin.c (machopic_get_function_picbase): New.
16137 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
16138 label for a new func. (load_macho_picbase_di): Likewise.
16139 (reload_macho_picbase): New expand.
16140 (reload_macho_picbase_si): New insn.
16141 (reload_macho_picbase_di): New insn.
16142 (nonlocal_goto_receiver): New define and split.
16143 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
16144 (unspecv enum): Add UNSPECV_NLGR.
16145
16146 2013-09-29 Iain Sandoe <iain@codesourcery.com>
16147
16148 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
16149 that altivec registers are correctly sized on Darwin.
16150
16151 2013-09-29 Iain Sandoe <iain@codesourcery.com>
16152
16153 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
16154 darwin-driver.o): Use COMPILE and POSTCOMPILE.
16155 * config/x-darwin (host-darwin.o): Likewise.
16156 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
16157 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
16158 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
16159
16160 2013-09-29 Uros Bizjak <ubizjak@gmail.com>
16161
16162 * doc/invoke.texi: Fix usage of @tie{} command.
16163
16164 2013-09-29 Eric Botcazou <ebotcazou@adacore.com>
16165
16166 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
16167
16168 2013-09-28 Jan Hubicka <jh@suse.cz>
16169
16170 * config/i386/x86-tune.def: Add documentation for each of the options;
16171 add whitespace.
16172
16173 2013-09-28 Jan Hubicka <jh@suse.cz>
16174
16175 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
16176 generic.
16177 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
16178 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
16179 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
16180 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
16181 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
16182
16183 2013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
16184
16185 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
16186 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
16187 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
16188 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
16189 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
16190 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
16191 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
16192 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
16193 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
16194 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
16195 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
16196 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
16197 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
16198 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
16199 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
16200 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
16201 gimple.h, godump.c, graphite-clast-to-gimple.c,
16202 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
16203 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
16204 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
16205 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
16206 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
16207 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
16208 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
16209 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
16210 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
16211 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
16212 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
16213 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
16214 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
16215 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
16216 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
16217 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
16218 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
16219 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
16220 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
16221 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
16222 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
16223 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
16224 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
16225 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
16226 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
16227 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
16228 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
16229 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
16230 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
16231 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
16232 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
16233 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
16234 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
16235 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
16236 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
16237 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
16238 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
16239 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
16240 whitespace before "(".
16241
16242 2013-09-28 Sandra Loosemore <sandra@codesourcery.com>
16243
16244 * expr.h (extract_bit_field): Remove packedp parameter.
16245 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
16246 from forward declaration.
16247 (store_split_bit_field): Remove packedp arg from calls to
16248 extract_fixed_bit_field.
16249 (extract_bit_field_1): Remove packedp parameter and packedp
16250 argument from recursive calls and calls to extract_fixed_bit_field.
16251 (extract_bit_field): Remove packedp parameter and corresponding
16252 arg to extract_bit_field_1.
16253 (extract_fixed_bit_field): Remove packedp parameter. Remove code
16254 to issue warnings.
16255 (extract_split_bit_field): Remove packedp arg from call to
16256 extract_fixed_bit_field.
16257 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
16258 (copy_blkmode_from_reg): Likewise.
16259 (copy_blkmode_to_reg): Likewise.
16260 (read_complex_part): Likewise.
16261 (store_field): Likewise.
16262 (expand_expr_real_1): Likewise.
16263 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
16264 to extract_bit_field.
16265 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
16266 call to extract_bit_field.
16267 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
16268 call to extract_bit_field.
16269 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
16270 and special packedp behavior from -fstrict-volatile-bitfields
16271 documentation.
16272
16273 2013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16274
16275 * lra-eliminations.c (init_elim_table): Guard value_p.
16276
16277 2013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
16278
16279 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
16280 DFmode, DImode, and SFmode in the upper VSX registers based on the
16281 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
16282 if -mpower8-vector. Combine -mvsx-timode handling with the rest
16283 of the VSX register handling.
16284
16285 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
16286 (f32_sv): Likewise.
16287 (zero_extendsidi2_lfiwzx): Add support for loading into the
16288 Altivec registers with -mpower8-vector. Use wu/wv constraints to
16289 only do VSX memory options on Altivec registers.
16290 (extendsidi2_lfiwax): Likewise.
16291 (extendsfdf2_fpr): Likewise.
16292 (mov<mode>_hardfloat, SF/SD modes): Likewise.
16293 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
16294 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
16295 (movdi_internal64): Likewise.
16296
16297 2013-09-27 Xinliang David Li <davidxl@google.com>
16298
16299 * opts.c (finish_options): Adjust parameters
16300 according to vect cost model.
16301 (common_handle_option): Set dynamic vect cost
16302 model for FDO.
16303 targhooks.c (default_add_stmt_cost): Compute stmt cost
16304 unconditionally.
16305 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
16306 Use helper function.
16307 * tree-vectorizer.h (unlimited_cost_model): New function.
16308 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
16309 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
16310 function.
16311 (vect_enhance_data_refs_alignment): Ditto.
16312 * flag-types.h: New enum.
16313 * common/config/i386/i386-common.c (ix86_option_init_struct):
16314 No need to initialize vect_cost_model flag.
16315 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
16316 unconditionally.
16317
16318 2013-09-27 Diego Novillo <dnovillo@google.com>
16319
16320 * gimple.h (enum ssa_mode): Remove.
16321
16322 2013-09-27 Paulo Matos <pmatos@broadcom.com>
16323
16324 * cfgloop.h (number_of_loops): Fix typo in check for null.
16325
16326 2013-09-27 Jakub Jelinek <jakub@redhat.com>
16327
16328 PR middle-end/58551
16329 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
16330 are children of outermost saved_cfun's loop, and set it up to
16331 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
16332 if loop != loop0 and SESE region contains bbs that belong to loop0.
16333
16334 2013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
16335
16336 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
16337 (binary_scale_code_p, get_base_term, get_index_term): New functions.
16338 (set_address_segment, set_address_base, set_address_index)
16339 (set_address_disp): Accept the argument unconditionally.
16340 (baseness): Remove must_be_base_p and must_be_index_p checks.
16341 (decompose_normal_address): Classify as much as possible in the
16342 main loop.
16343
16344 2013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
16345
16346 * cse.c (count_reg_usage): Handle INT_LIST.
16347 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
16348 * reginfo.c (reg_scan_mark_refs): Likewise.
16349 * reload1.c (eliminate_regs_1): Likewise.
16350
16351 2013-09-27 Iain Sandoe <iain@codesourcery.com>
16352
16353 PR middle-end/58547
16354 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
16355 signed.
16356
16357 2013-09-27 Richard Biener <rguenther@suse.de>
16358
16359 PR tree-optimization/58459
16360 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
16361 restriction not propagating into loops.
16362
16363 2013-09-26 Florian Weimer <fw@deneb.enyo.de>
16364
16365 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
16366 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
16367 * doc/tree-ssa.texi (Walking use-def chains): Delete.
16368
16369 2013-09-26 Richard Biener <rguenther@suse.de>
16370
16371 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
16372
16373 2013-09-26 Richard Biener <rguenther@suse.de>
16374
16375 * alias.h (component_uses_parent_alias_set): Rename to ...
16376 (component_uses_parent_alias_set_from): ... this.
16377 * alias.c (component_uses_parent_alias_set): Rename to ...
16378 (component_uses_parent_alias_set_from): ... this and return
16379 the desired parent.
16380 (reference_alias_ptr_type_1): Use the result from
16381 component_uses_parent_alias_set_from instead of stripping
16382 components one at a time.
16383 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
16384
16385 2013-09-26 Andrew MacLeod <amacleod@redhat.com>
16386
16387 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
16388 Move prototypes to...
16389 * tree-ssa-ter.h: New File. Move prototypes here.
16390 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
16391 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
16392 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
16393 from is_replaceable_p.
16394 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
16395 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
16396 (process_replaceable): Use ter_is_replaceable_p.
16397 (find_replaceable_in_bb): Use ter_is_replaceable_p.
16398 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
16399 newly refactored ssa_is_replaceable_p.
16400 * cfgexpand.c: Include tree-outof-ssa.h.
16401 * ssaexpand.h: Delete.
16402
16403 2013-09-26 Andrew MacLeod <amacleod@redhat.com>
16404
16405 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
16406 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
16407 tree-ssa.c
16408 (create_gimple_tmp): Delete.
16409 (get_expr_type, build_assign, build_type_cast): Move to...
16410 * gimple-builder.c: New File.
16411 (get_expr_type): Relocate from gimple.c.
16412 (build_assign, build_type_cast): Change to only create ssanames.
16413 * gimple.h: Move prototypes to...
16414 * gimple-builder.h: New File. Here.
16415 * tree-ssa.h: And here.
16416 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
16417 count_uses_and_derefs): Relocate from gimple.c.
16418 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
16419 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
16420 * tree-ssa-math-opts (execute_cse_reciprocals): Use
16421 gimple_replace_ssa_lhs.
16422 * asan.c: Include gimple-builder.h.
16423 * Makefile.in: Add gimple-builder.o.
16424
16425 2013-09-26 Richard Biener <rguenther@suse.de>
16426
16427 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
16428 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
16429 (loe_visit_block): Use gcc_checking_assert.
16430 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
16431 gimple_assign_ssa_name_copy_p.
16432 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
16433 change.
16434
16435 2013-09-26 David Edelsohn <dje.gcc@gmail.com>
16436
16437 * config/rs6000/t-rs6000 (rs6000.o): Remove.
16438 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
16439
16440 2013-09-26 Richard Biener <rguenther@suse.de>
16441
16442 PR tree-optimization/58539
16443 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
16444 the fact that debug statements are not taking part in loop-closed
16445 SSA construction.
16446
16447 2013-09-26 Nick Clifton <nickc@redhat.com>
16448
16449 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
16450 time warning message.
16451 (msp430_print_operand_raw): Delete unused letter parameter.
16452 (TARGET_PRINT_OPERAND_ADDRESS): Define.
16453 (msp430_print_operand_address): New function.
16454 (msp430_print_operand): Move address printing code from here to
16455 new function.
16456 * config/msp430/msp430.md (movsipsi2): Add comment in generated
16457 assembler.
16458 (zero_extendpsisi2): Likewise.
16459 (extendpsisi2): New pattern.
16460 (andneghi3): New pattern.
16461
16462 2013-09-26 Yvan Roux <yvan.roux@linaro.org>
16463
16464 * config/aarch64/aarch64.opt (mlra): New option.
16465 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
16466 (TARGET_LRA_P): Define.
16467
16468 2013-09-26 Eric Botcazou <ebotcazou@adacore.com>
16469
16470 * expr.c (expand_assignment): Remove obsolete comment.
16471
16472 2013-09-25 Jeff Law <law@redhat.com>
16473
16474 * tree-flow.h (thread_through_all_blocks): Prototype moved into
16475 tree-ssa-threadupdate.h.
16476 (register_jump_thread): Similarly.
16477 * tree-ssa-threadupdate.h: New header file.
16478 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
16479 * tree-vrp.c: Likewise.
16480 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
16481 (thread_around_empty_blocks): Change type of path vector argument to
16482 an edge,type pair from just an edge. Initialize both elements when
16483 appending to a jump threading path. Tweak references to elements
16484 appropriately.
16485 (thread_across_edge): Similarly. Release memory for the elements
16486 as needed.
16487 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
16488 (dump_jump_thread_path): New function broken out from
16489 register_jump_thread.
16490 (register_jump_thread): Use dump_jump_thread_path. Change type of
16491 path vector entries. Search the path for NULL edges and dump
16492 the path if one is found. Tweak the conversion of path to 3-edge
16493 form to use the block copy type information embedded in the path.
16494
16495 2013-09-25 Yvan Roux <yvan.roux@linaro.org>
16496
16497 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
16498
16499 2013-09-25 Yvan Roux <yvan.roux@linaro.org>
16500 Vladimir Makarov <vmakarov@redhat.com>
16501
16502 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
16503 from the least significant bit.
16504 (strip_address_mutations): Add bitfield operations handling.
16505 (must_be_index_p): Add shifting and rotate operations handling.
16506 (set_address_base): Use must_be_base_p predicate.
16507 (set_address_index): Use must_be_index_p predicate.
16508
16509 2013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
16510 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16511 Sergey Lega <sergey.s.lega@intel.com>
16512 Anna Tikhonova <anna.tikhonova@intel.com>
16513 Ilya Tocar <ilya.tocar@intel.com>
16514 Andrey Turetskiy <andrey.turetskiy@intel.com>
16515 Ilya Verbin <ilya.verbin@intel.com>
16516 Kirill Yukhin <kirill.yukhin@intel.com>
16517 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16518
16519 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
16520 Use new names.
16521 (ix86_expand_vector_move_misalign): Support new unaligned load and
16522 stores and use new names.
16523 (CODE_FOR_sse2_storedqu): Rename to ...
16524 (CODE_FOR_sse2_storedquv16qi): ... this.
16525 (CODE_FOR_sse2_loaddqu): Rename to ...
16526 (CODE_FOR_sse2_loaddquv16qi): ... this.
16527 (CODE_FOR_avx_loaddqu256): Rename to ...
16528 (CODE_FOR_avx_loaddquv32qi): ... this.
16529 (CODE_FOR_avx_storedqu256): Rename to ...
16530 (CODE_FOR_avx_storedquv32qi): ... this.
16531 * config/i386/i386.md (fpint_logic): New.
16532 * config/i386/sse.md (VMOVE): Extend for AVX512.
16533 (VF): Ditto.
16534 (VF_128_256): New.
16535 (VF_512): Ditto.
16536 (VI_UNALIGNED_LOADSTORE): Ditto.
16537 (sse2_avx_avx512f): Ditto.
16538 (sse2_avx2): Extend for AVX512.
16539 (sse4_1_avx2): Ditto.
16540 (avx2_avx512f): New.
16541 (sse): Extend for AVX512.
16542 (sse2): Ditto.
16543 (sse4_1): Ditto.
16544 (avxsizesuffix): Ditto.
16545 (sseintvecmode): Ditto.
16546 (ssePSmode): Ditto.
16547 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
16548 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
16549 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
16550 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
16551 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
16552 (<sse2_avx_avx512f>_storedqu<mode): ... this.
16553 (<sse>_movnt<mode>): Replace constraint "x" with "v".
16554 (STORENT_MODE): Extend for AVX512.
16555 (*absneg<mode>2): Replace constraint "x" with "v".
16556 (*mul<mode>3): Ditto.
16557 (*ieee_smin<mode>3): Ditto.
16558 (*ieee_smax<mode>3): Ditto.
16559 (avx_cmp<mode>3): Replace VF with VF_128_256.
16560 (*<sse>_maskcmp<mode>3_comm): Ditto.
16561 (<sse>_maskcmp<mode>3): Ditto.
16562 (<sse>_andnot<mode>3): Extend for AVX512.
16563 (<code><mode>3, anylogic): Replace VF with VF_128_256.
16564 (<code><mode>3, fpint_logic): New.
16565 (*<code><mode>3): Extend for AVX512.
16566 (avx512flogicsuff): New.
16567 (avx512f_<logic><mode>): Ditto.
16568 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
16569 VF_128_256.
16570 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
16571 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
16572 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
16573 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
16574 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
16575 (xop_vpermil2<mode>3): Ditto.
16576 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
16577 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
16578 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
16579 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
16580
16581 2013-09-25 Tom Tromey <tromey@redhat.com>
16582
16583 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
16584 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
16585 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
16586 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
16587 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
16588 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
16589 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
16590 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
16591 (GRAPHITE_HTAB_H): Remove.
16592
16593 2013-09-25 Tom Tromey <tromey@redhat.com>
16594
16595 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
16596
16597 2013-09-25 Tom Tromey <tromey@redhat.com>
16598
16599 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
16600
16601 2013-09-25 Tom Tromey <tromey@redhat.com>
16602
16603 * config/i386/t-i386 (i386.o): Remove.
16604 (i386-c.o): Use COMPILE and POSTCOMPILE.
16605
16606 2013-09-25 Tom Tromey <tromey@redhat.com>
16607
16608 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
16609
16610 2013-09-25 Tom Tromey <tromey@redhat.com>
16611
16612 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
16613 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
16614 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
16615 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
16616 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
16617 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
16618 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
16619 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
16620 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
16621 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
16622 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
16623 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
16624 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
16625 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
16626 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
16627 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
16628 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
16629 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
16630 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
16631 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
16632 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
16633 (tree-ssa-pre.o, tree-ssa-sccvn.o)
16634 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
16635 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
16636 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
16637 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
16638 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
16639 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
16640 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
16641 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
16642 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
16643 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
16644 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
16645 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
16646 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
16647 (graphite-clast-to-gimple.o, graphite-dependences.o)
16648 (graphite-interchange.o, graphite-poly.o)
16649 (graphite-scop-detection.o, graphite-sese-to-poly.o)
16650 (graphite-optimize-isl.o, tree-vect-loop.o)
16651 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
16652 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
16653 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
16654 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
16655 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
16656 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
16657 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
16658 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
16659 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
16660 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
16661 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
16662 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
16663 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
16664 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
16665 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
16666 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
16667 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
16668 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
16669 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
16670 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
16671 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
16672 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
16673 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
16674 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
16675 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
16676 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
16677 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
16678 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
16679 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
16680 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
16681 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
16682 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
16683 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
16684 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
16685 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
16686 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
16687 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
16688 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
16689 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
16690 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
16691 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
16692 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
16693 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
16694 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
16695 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
16696 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
16697 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
16698 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
16699 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
16700 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
16701 (gcov-dump.o): Remove.
16702 (default-c.o): Use COMPILE and POSTCOMPILE.
16703 (CFLAGS-gcc.o): New variable.
16704 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
16705
16706 2013-09-25 Tom Tromey <tromey@redhat.com>
16707
16708 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
16709 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
16710 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
16711 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
16712 (c-family/c-pragma.o, c-family/c-pretty-print.o)
16713 (c-family/c-semantics.o, c-family/c-ada-spec.o)
16714 (c-family/array-notation-common.o, c-family/stub-objc.o)
16715 (c-family/c-ubsan.o): Remove.
16716
16717 2013-09-25 Tom Tromey <tromey@redhat.com>
16718
16719 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
16720
16721 2013-09-25 Tom Tromey <tromey@redhat.com>
16722
16723 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
16724 to add -DENABLE_SHARED_LIBGCC.
16725 (gcc.o): Don't use subshell.
16726
16727 2013-09-25 Tom Tromey <tromey@redhat.com>
16728
16729 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
16730 * configure.ac: Don't invoke AM_PROG_CC_C_O.
16731 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
16732 * configure, config.in: Rebuild.
16733
16734 2013-09-25 Tom Tromey <tromey@redhat.com>
16735
16736 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
16737 (COMPILE, POSTCOMPILE): New variables.
16738 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
16739 (DEPFILES): New variable.
16740 Include ".Po" files.
16741 * configure.ac: Add checks for dependency checking.
16742 * configure, aclocal.m4: Regenerate.
16743
16744 2013-09-25 Tom Tromey <tromey@redhat.com>
16745
16746 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
16747 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
16748
16749 2013-09-25 Tom Tromey <tromey@redhat.com>
16750
16751 * Makefile.in (generated_files): Add options.h,
16752 target-hooks-def.h, insn-opinit.h,
16753 common/common-target-hooks-def.h, pass-instances.def,
16754 c-family/c-target-hooks-def.h.
16755
16756 2013-09-25 Jeff Law <law@redhat.com>
16757
16758 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
16759 than foo[foo.length () - 1] to access last member in a vec.
16760 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
16761
16762 2013-09-25 Richard Biener <rguenther@suse.de>
16763
16764 PR middle-end/58521
16765 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
16766
16767 2013-09-25 Jan Hubicka <jh@suse.cz>
16768
16769 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
16770 test.
16771
16772 2013-09-25 Marek Polacek <polacek@redhat.com>
16773
16774 PR sanitizer/58420
16775 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
16776 when determining the type name.
16777
16778 2013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
16779
16780 * config/sh/sh.md: Fix formatting.
16781
16782 2013-09-24 Xinliang David Li <davidxl@google.com>
16783
16784 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
16785 max peel iterations parameter.
16786 * param.def: New parameter.
16787 * doc/invoke.texi: Document New parameter.
16788
16789 2013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
16790
16791 * gimple-pretty-print.c: Various whitespace tweaks.
16792 * tree-core.h: Likewise.
16793 * tree-pretty-print.c: Likewise.
16794 * tree-ssa-alias.c: Likewise.
16795 * tree-ssa-copy.c: Likewise.
16796 * tree-ssanames.c: Likewise.
16797 * tree-ssanames.h: Likewise.
16798 * tree-vrp.c: Likewise.
16799
16800 2013-09-24 Alan Modra <amodra@gmail.com>
16801
16802 PR middle-end/57134
16803 PR middle-end/57586
16804 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
16805 for output operands that disallow regs. Don't use EXPAND_WRITE on
16806 inout operands.
16807
16808 2013-09-24 Richard Biener <rguenther@suse.de>
16809
16810 PR middle-end/58513
16811 * tree.c (reference_alias_ptr_type): Move ...
16812 * alias.c (reference_alias_ptr_type): ... here and implement
16813 in terms of the new reference_alias_ptr_type_1.
16814 (ref_all_alias_ptr_type_p): New helper.
16815 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
16816 use ref_all_alias_ptr_type_p.
16817 (get_deref_alias_set): Add flag_strict_aliasing check here.
16818 (reference_alias_ptr_type_1): New function, split out from ...
16819 (get_alias_set): ... here.
16820 (alias_ptr_types_compatible_p): New function.
16821 * alias.h (reference_alias_ptr_type): Declare.
16822 (alias_ptr_types_compatible_p): Likewise.
16823 * tree.h (reference_alias_ptr_type): Remove.
16824 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
16825 to compare MEM_REF alias types.
16826
16827 2013-09-24 Richard Biener <rguenther@suse.de>
16828
16829 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
16830
16831 2013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16832
16833 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
16834 reload helper function arrays into a single array reg_addr.
16835 (reload_fpr_gpr): Likewise.
16836 (reload_gpr_vsx): Likewise.
16837 (reload_vsx_gpr): Likewise.
16838 (struct rs6000_reg_addr): Likewise.
16839 (reg_addr): Likewise.
16840 (rs6000_debug_reg_global): Change rs6000_vector_reload,
16841 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
16842 (rs6000_init_hard_regno_mode_ok): Likewise.
16843 (rs6000_secondary_reload_direct_move): Likewise.
16844 (rs6000_secondary_reload): Likewise.
16845
16846 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
16847 constraints: wu, ww, and wy. Repurpose wv constraint added during
16848 power8 changes. Put wg constraint in alphabetical order.
16849
16850 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
16851 for future work to add ISA 2.07 VSX single precision support.
16852 (-mvsx-scalar-double): Change default from -1 to 1, update
16853 documentation comment.
16854 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
16855 (-mupper-regs-df): New debug switch to control whether DF values
16856 can go in the traditional Altivec registers.
16857 (-mupper-regs-sf): New debug switch to control whether SF values
16858 can go in the traditional Altivec registers.
16859
16860 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
16861 and wy constraints.
16862 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
16863 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
16864 Add new constraints, wu/ww/wy. Repurpose wv constraint.
16865 (rs6000_debug_legitimate_address_p): Print if we are running
16866 before, during, or after reload.
16867 (rs6000_secondary_reload): Add a comment.
16868 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
16869
16870 * config/rs6000/constraints.md (wa constraint): Sort w<x>
16871 constraints. Update documentation string.
16872 (wd constraint): Likewise.
16873 (wf constraint): Likewise.
16874 (wg constraint): Likewise.
16875 (wn constraint): Likewise.
16876 (ws constraint): Likewise.
16877 (wt constraint): Likewise.
16878 (wx constraint): Likewise.
16879 (wz constraint): Likewise.
16880 (wu constraint): New constraint for ISA 2.07 SFmode scalar
16881 instructions.
16882 (ww constraint): Likewise.
16883 (wy constraint): Likewise.
16884 (wv constraint): Repurpose ISA 2.07 constraint that we did not use
16885 in the previous submissions.
16886 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
16887
16888 2013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
16889
16890 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
16891 (REG_BR_PROB): Say that the probability is stored in an int_list.
16892 * reg-notes.def: Update commentary to mention INT_LIST.
16893 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
16894 (INT_LIST): New rtx.
16895 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
16896 * rtlanal.c (int_reg_note_p): New function.
16897 (alloc_reg_note): Assert that the note does not have an int argument.
16898 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
16899 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
16900 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
16901 rather than an INSN_LIST. Handle INT_LIST.
16902 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
16903 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
16904 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
16905 Manipulate them as ints rather than rtxes.
16906 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
16907 * regmove.c (copy_src_to_dest): Likewise.
16908 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
16909
16910 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
16911 into the cases that need it.
16912 * config/arm/arm.c (arm_unwind_emit): Likewise.
16913
16914 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
16915 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
16916 * loop-doloop.c (add_test, doloop_modify): Likewise.
16917 * loop-unswitch.c (compare_and_jump_seq): Likewise.
16918 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
16919 * predict.c (combine_predictions_for_insn): Likewise.
16920 * print-rtl.c (print_rtx): Handle INT_LIST.
16921 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
16922 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
16923 * config/arm/arm.c (emit_unlikely_jump): Likewise.
16924 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
16925 (ix86_split_fp_branch, predict_jump): Likewise.
16926 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
16927 * config/sh/sh.c (expand_cbranchsi4): Likewise.
16928 * config/spu/spu.c (ea_load_store_inline): Likewise.
16929
16930 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
16931 value of a REG_BR_PROB note.
16932 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
16933 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
16934 * emit-rtl.c (try_split): Likewise.
16935 * predict.c (br_prob_note_reliable_p): Likewise.
16936 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
16937 * reorg.c (mostly_true_jump): Likewise.
16938 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
16939 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
16940 * config/i386/i386.c (ix86_print_operand): Likewise.
16941 * config/ia64/ia64.c (ia64_print_operand): Likewise.
16942 * config/mmix/mmix.c (mmix_print_operand): Likewise.
16943 * config/rs6000/rs6000.c (output_cbranch): Likewise.
16944 * config/s390/s390.c (s390_expand_tbegin): Likewise.
16945 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
16946 * config/sparc/sparc.c (output_cbranch): Likewise.
16947 * config/spu/spu.c (get_branch_target): Likewise.
16948 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
16949 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
16950
16951 2013-09-23 Jan Hubicka <jh@suse.cz>
16952
16953 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
16954 for ipa-devirt.
16955 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
16956 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
16957 of external calls
16958 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
16959 (gimple_fold_call): Dump inconsistent devirtualizations; add
16960 sanity check for type based devirtualizations.
16961 * ipa-prop.c: Include ipa-utils.h
16962 (ipa_intraprocedural_devirtualization): Add sanity check.
16963 (try_make_edge_direct_virtual_call): Likewise.
16964
16965 2013-09-23 Eric Botcazou <ebotcazou@adacore.com>
16966
16967 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
16968 assignment statements.
16969
16970 2013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
16971
16972 * gimple-pretty-print.c (dump_ssaname_info): New function.
16973 (dump_gimple_phi): Call it.
16974 (pp_gimple_stmt_1): Likewise.
16975 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
16976 (range_info_def): Declare.
16977 * tree-pretty-print.c (pp_double_int): New function.
16978 (dump_generic_node): Call it.
16979 * tree-pretty-print.h (pp_double_int): Declare.
16980 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
16981 * tree-ssanames.h (range_info_def): New structure.
16982 (value_range_type): Move definition here.
16983 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
16984 Declare.
16985 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
16986 initialization.
16987 (set_range_info): New function.
16988 (get_range_info): Likewise.
16989 (duplicate_ssa_name_range_info): Likewise.
16990 (duplicate_ssa_name_fn): Check pointer type and call
16991 duplicate_ssa_name_range_info.
16992 * tree-ssa-copy.c (fini_copy_prop): Likewise.
16993 * tree-vrp.c (value_range_type): Remove definition, now in
16994 tree-ssanames.h.
16995 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
16996 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
16997 (SSA_NAME_RANGE_INFO): New macro.
16998
16999 2013-09-23 Richard Biener <rguenther@suse.de>
17000
17001 PR tree-optimization/58464
17002 * tree-ssa-pre.c (phi_trans_lookup): Remove.
17003 (phi_trans_add): Change to add conditionally on being not present.
17004 (phi_translate_1): Remove recursion detection here.
17005 (phi_translate): Pre-seed the cache with NULL to catch
17006 recursion here in a more generic way.
17007 (bitmap_find_leader): Adjust comment.
17008 (get_representative_for): Dump value-numbers.
17009 (create_expression_by_pieces): Likewise.
17010 (insert_into_preds_of_block): Likewise.
17011
17012 2013-09-23 Christian Bruel <christian.bruel@st.com>
17013
17014 PR target/58475
17015 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
17016 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
17017
17018 2013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
17019
17020 Revert r202780:
17021 2013-09-20 Renlin Li <renlin.li@arm.com>
17022
17023 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
17024 plus_constant.
17025 (aarch64_expand_epilogue): Likewise.
17026 (aarch64_legitimize_reload_address): Likewise.
17027
17028 2013-09-22 Eric Botcazou <ebotcazou@adacore.com>
17029
17030 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
17031 NULL_TREE before pushing them onto the vector. Likewise for labels.
17032
17033 2013-09-21 Eric Botcazou <ebotcazou@adacore.com>
17034
17035 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
17036 comparison operators when -fno-trapping-math is in effect.
17037 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
17038 comparison operators in TFmode and assert that unsupported operators
17039 cannot reach here.
17040 (ia64_print_operand): Likewise.
17041
17042 2013-09-21 Jan Hubicka <jh@suse.cz>
17043
17044 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
17045 (sse_typeless_stores): Enable for core
17046 (sse_load0_by_pxor): Likewise.
17047 (four_jump_limit): Disable for core.
17048 (pad_returns): Likewise.
17049 (avoid_vector_decode): Likewise.
17050 (fuse_cmp_and_branch): Enable for cores.
17051 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
17052
17053 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
17054
17055 PR middle-end/56791
17056 * config/pa/pa.c (pa_option_override): Disable auto increment and
17057 decrement instructions until reload is completed.
17058
17059 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
17060 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
17061 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
17062
17063 2013-09-20 DJ Delorie <dj@redhat.com>
17064 Nick Clifton <nickc@redhat.com>
17065
17066 * config/rl78/rl78.c: Various whitespace and comment tweaks.
17067 (need_to_save): Save bank 0 on interrupts.
17068 (characterize_address): Strip far address wrappers.
17069 (rl78_as_legitimate_address): Likewise.
17070 (transcode_memory_rtx): Likewise.
17071 (rl78_peep_movhi_p): Disable this peephole after devirt.
17072 (rl78_propogate_register_origins): Forget all origins when a
17073 CLOBBER is seen.
17074 * config/rl78/rl78-virt.md: Various whitespace tweaks.
17075 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
17076 peephole2's.
17077 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
17078 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
17079 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
17080 relocating.
17081 * config/rl78/constraints.md: Various whitespace and paren tweaks.
17082
17083 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
17084
17085 * config/pa/pa.md: In "scc" insn patterns, change output template to
17086 handle const0_rtx in reg_or_0_operand operands.
17087
17088 2013-09-20 Martin Husemann <martin@NetBSD.org>
17089
17090 PR target/56875
17091 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
17092 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
17093
17094 2013-09-20 Richard Biener <rguenther@suse.de>
17095
17096 PR middle-end/58484
17097 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
17098 remembering SSA name version and block index.
17099 (new_scev_info_str): Adjust.
17100 (hash_scev_info): Likewise. Also hash the block index.
17101 (eq_scev_info): Adjust.
17102 (find_var_scev_info): Likewise.
17103 (struct instantiate_cache_entry): Remove.
17104 (struct instantiate_cache_type): Use a htab to map name, block
17105 to chrec.
17106 (instantiate_cache_type::~instantiate_cache_type): Adjust.
17107 (get_instantiated_value_entry): Likewise.
17108 (hash_idx_scev_info, eq_idx_scev_info): New functions.
17109 (instantiate_scev_name): Adjust.
17110
17111 2013-09-20 Jeff Law <law@redhat.com>
17112
17113 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
17114
17115 2013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
17116
17117 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
17118 Call aarch64_simd_expand_args to update op[argc].
17119
17120 2013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
17121
17122 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
17123 plugin argument.
17124
17125 2013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
17126
17127 * gengtype.c (file_rules): Added rule for *.cc files.
17128 (get_output_file_with_visibility): Give fatal message when no
17129 rules found.
17130
17131 2013-09-20 Renlin Li <renlin.li@arm.com>
17132
17133 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
17134 (aarch64_expand_epilogue): Likewise.
17135 (aarch64_legitimize_reload_address): Likewise.
17136
17137 2013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
17138
17139 PR middle-end/57748
17140 * expr.c (expand_assignment): Remove misalignp code path.
17141
17142 2013-09-20 Marek Polacek <polacek@redhat.com>
17143
17144 PR sanitizer/58413
17145 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
17146 TYPE_PRECISION. Add asserts.
17147
17148 2013-09-20 Richard Biener <rguenther@suse.de>
17149
17150 PR tree-optimization/58453
17151 * tree-loop-distribution.c (distribute_loop): Apply the cost
17152 model for -ftree-loop-distribute-patterns, too.
17153
17154 2013-09-20 Richard Biener <rguenther@suse.de>
17155
17156 PR middle-end/58473
17157 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
17158 make type comparison less strict.
17159
17160 2013-09-20 Alan Modra <amodra@gmail.com>
17161
17162 * configure: Regenerate.
17163 * aclocal.m4: Regenerate.
17164
17165 2013-09-20 Marek Polacek <polacek@redhat.com>
17166
17167 PR other/58467
17168 * doc/extend.texi: Document that attribute used is meant to be used
17169 on variables with static storage duration.
17170
17171 2013-09-19 Jakub Jelinek <jakub@redhat.com>
17172
17173 PR tree-optimization/58472
17174 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
17175 simd_lane_access set inv_p = false.
17176 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
17177 the simduid magic VAR_DECL.
17178
17179 2013-09-19 Jan Hubicka <jh@suse.cz>
17180
17181 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
17182
17183 2013-09-17 Jeff Law <law@redhat.com>
17184
17185 * tree-ssa-dom.c (record_temporary_equivalences): New function
17186 split out of dom_opt_dom_walker::after_dom_children.
17187 (dom_opt_dom_walker::thread_across_edge): Move common code
17188 in here from dom_opt_dom_walker::after_dom_children.
17189 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
17190
17191 2013-09-19 Jan Hubicka <jh@suse.cz>
17192
17193 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
17194 (TARGET_GENERIC): Use PROCESOR_GENERIC
17195 (enum processor_type): Unify generic32 and 64.
17196 * i386.md (cpu): Likewise.
17197 * x86-tune.def (use_leave): Enable for generic32.
17198 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
17199 * athlon.md: Change generic64 to generic in all occurences.
17200 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
17201 (ix86_target_macros_internal): Likewise.
17202 * driver-i386.c (host_detect_local_cpu): Likewise.
17203 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
17204 to ..
17205 (generic_memcpy, generic_memset, generic_cost): This one.
17206 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
17207 (m_GENERIC32, m_GENERIC64): Remove.
17208 (m_GENERIC): Turn into one flag.
17209 (processor_target): Unify generic tunnings.
17210 (ix86_option_override_internal): Replace generic32/64 by generic.
17211 (ix86_issue_rate): Likewise.
17212 (ix86_adjust_cost): Likewise.
17213
17214 2013-09-19 Jan Hubicka <jh@suse.cz>
17215
17216 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
17217 of speculative flag.
17218
17219 2013-09-19 Jakub Jelinek <jakub@redhat.com>
17220
17221 * omp-low.c (expand_omp_sections): Always pass len - 1 to
17222 GOMP_sections_start, even if !exit_reachable.
17223
17224 2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
17225
17226 * lra-constraints.c (need_for_all_save_p): Use macro
17227 HARD_REGNO_CALL_PART_CLOBBERED.
17228 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
17229 set up pseudo conflict hard regs.
17230
17231 2013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
17232
17233 PR target/58452
17234 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
17235 operands.
17236
17237 2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
17238
17239 PR rtl-optimization/58438
17240 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
17241 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
17242 from previous subpasses.
17243
17244 2013-09-18 Richard Earnshaw <rearnsha@arm.com>
17245
17246 * arm.c (arm_get_frame_offsets): Validate architecture supports
17247 LDRD/STRD before accepting the tuning preference.
17248 (arm_expand_prologue): Likewise.
17249 (arm_expand_epilogue): Likewise.
17250
17251 2013-09-18 Richard Biener <rguenther@suse.de>
17252
17253 PR tree-optimization/58417
17254 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
17255 have chrecs with symbols defined in the loop as operands.
17256 (chrec_fold_multiply): Likewise.
17257 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
17258 parameters before folding binary operations.
17259 (struct instantiate_cache_entry_hasher): Remove.
17260 (struct instantiate_cache_type): Use a pointer-map.
17261 (instantiate_cache_type::instantiate_cache_type): New function.
17262 (instantiate_cache_type::get): Likewise.
17263 (instantiate_cache_type::set): Likewise.
17264 (instantiate_cache_type::~instantiate_cache_type): Adjust.
17265 (get_instantiated_value_entry): Likewise.
17266 (global_cache): New global.
17267 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
17268 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
17269 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
17270 (instantiate_scev_name): Adjust.
17271 (instantiate_scev): Construct global instead of local cache.
17272 (resolve_mixers): Likewise.
17273
17274 2013-09-18 Daniel Morris <danielm@ecoscentric.com>
17275 Paolo Carlini <paolo.carlini@oracle.com>
17276
17277 PR c++/58458
17278 * doc/implement-cxx.texi: Fix references to the C++ standards.
17279
17280 2013-09-18 Jakub Jelinek <jakub@redhat.com>
17281
17282 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
17283 * tree-vect-data-refs.c (vect_analyze_data_refs): For
17284 simd_lane_access drs, update also DR_ALIGNED_TO.
17285
17286 2013-09-18 Marek Polacek <polacek@redhat.com>
17287
17288 PR sanitizer/58411
17289 * doc/extend.texi: Document no_sanitize_undefined attribute.
17290 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
17291 no_sanitize_undefined attribute.
17292
17293 2013-09-18 Nick Clifton <nickc@redhat.com>
17294
17295 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
17296 (ASM_DECLARE_FUNCTION_NAME): Define.
17297
17298 2013-09-17 Trevor Saunders <tsaunders@mozilla.com>
17299
17300 * compare-elim.c (find_comparison_dom_walker): New class
17301 (find_comparisons_in_bb): Rename to
17302 find_comparison_dom_walker::before_dom_children
17303 (find_comparisons): Adjust
17304 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
17305 adjust.
17306 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
17307 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
17308 (init_walk_dominator_tree): Remove declaration.
17309 (fini_walk_dominator_tree): Remove declaration.
17310 * fwprop.c (single_def_use_dom_walker): New class
17311 (single_def_use_enter_block): Convert to
17312 single_def_use_dom_walker::before_dom_children.
17313 (single_def_use_leave_block): Convert to
17314 single_def_use_dom_walker::after_dom_children.
17315 (build_single_def_use_links): Adjust.
17316 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
17317 class.
17318 (find_candidates_in_block): Convert to
17319 find_candidates_dom_walker::before_dom_children.
17320 (execute_strength_reduction): Adjust.
17321 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
17322 (sese_dom_walker): New class.
17323 (sese_dom_walker::sese_dom_walker): New constructor.
17324 (sese_dom_walker::~sese_dom_walker): New destructor.
17325 (build_sese_conditions_before): Convert to
17326 sese_dom_walker::before_dom_children.
17327 (build_sese_conditions_after): Convert to
17328 sese_dom_walker::after_dom_children.
17329 (build_poly_scop): Adjust
17330 * tree-into-ssa.c (rewrite_dom_walker): New class
17331 (rewrite_enter_block): Convert to
17332 rewrite_dom_walker::before_dom_children.
17333 (rewrite_leave_block): Convert to
17334 rewrite_dom_walker::after_dom_children.
17335 (rewrite_update_dom_walker): New class.
17336 (rewrite_update_enter_block): Convert to
17337 rewrite_update_dom_walker::before_dom_children.
17338 (rewrite_update_leave_block): Convert to
17339 rewrite_update_dom_walker::after_dom_children.
17340 (rewrite_blocks, rewrite_into_ssa): Adjust.
17341 (mark_def_dom_walker): New class.
17342 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
17343 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
17344 (mark_def_sites_blocks): Convert to
17345 mark_def_dom_walker::before_dom_children.
17346 (mark_def_site_blocks): Remove.
17347 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
17348 (tree_ssa_dominator_optimize): Adjust.
17349 (dom_thread_across_edge): Convert to method
17350 dom_opt_dom_walker::thread_across_edge.
17351 (dom_opt_enter_block): Convert to member function
17352 dom_opt_dom_walker::before_dom_children.
17353 (dom_opt_leave_block): Convert to member function
17354 dom_opt_dom_walker::after_dom_children.
17355 * tree-ssa-dse.c (dse_dom_walker): New class.
17356 (dse_enter_block): Convert to member function
17357 dse_dom_walker::before_dom_children.
17358 (tree_ssa_dse): Adjust.
17359 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
17360 (determine_invariantness_stmt): Convert to method
17361 invariantness_dom_walker::before_dom_children.
17362 (determine_invariantness): Remove
17363 (move_computations_dom_walker): New class.
17364 (move_computations_stmt): Convert to method
17365 move_computations_dom_walker::before_dom_children.
17366 (move_computations, tree_ssa_lim): Adjust.
17367 * tree-ssa-phiopt.c (nontrapping_dom_walker): New class.
17368 (nt_init_block): Convert to method
17369 notrappping_dom_walker::before_dom_children.
17370 (nt_fini_block): Convert to method
17371 method nontrapping_dom_walker::after_dom_children.
17372 (get_non_trapping): Adjust.
17373 * tree-ssa-pre.c (eliminate_dom_walker): New class.
17374 (eliminate_bb): Convert to method
17375 eliminate_dom_walker::before_dom_children.
17376 (eliminate_leave_block): Convert to method
17377 eliminate_dom_walker::after_dom_children.
17378 (eliminate): Adjust.
17379 * tree-ssa-strlen.c (strlen_dom_walker): New class.
17380 (strlen_enter_block): Convert to method
17381 strlen_dom_walker::before_dom_children.
17382 (strlen_leave_block): Convert to method
17383 method strlen_dom_walker::after_dom_children.
17384 (tree_ssa_strlen): Adjust.
17385 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
17386 (tree_ssa_uncprop): Adjust.
17387 (uncprop_leave_block): Convert to method
17388 uncprop_dom_walker::after_dom_children.
17389 (uncprop_leave_block): Convert to method
17390 uncprop_dom_walker::before_dom_children.
17391
17392 2013-09-18 Bin Cheng <bin.cheng@arm.com>
17393
17394 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
17395 branch in same basic block. Check both src and dest of the move insn.
17396
17397 2013-09-17 Nick Clifton <nickc@redhat.com>
17398
17399 * config/rl78/rl78-real.md (bf): New pattern.
17400 (bt): New pattern.
17401 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
17402 (rl78_print_operand): Do not put a # before a %B.
17403 * config/rl78/rl78.opt: Tweak doc strings.
17404
17405 2013-09-17 DJ Delorie <dj@redhat.com>
17406
17407 * config/rl78/constraints.md (Wcv): Allow up to $r31.
17408 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
17409 (rl78_option_override): Likewise, if -mallregs.
17410 (is_virtual_register): Likewise.
17411 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
17412 (REGNO_OK_FOR_BASE_P): Likewise.
17413 * config/rl78/rl78.opt (-mallregs): New.
17414
17415 2013-09-17 Nick Clifton <nickc@redhat.com>
17416
17417 * config/rl78/rl78.c (need_to_save): Change return type to bool.
17418 For interrupt functions: save all call clobbered registers if the
17419 interrupt handler is not a leaf function.
17420 (rl78_expand_prologue): Always recompute the frame information.
17421 For interrupt functions: only select bank 0 if one of the bank 0
17422 registers is going to be psuhed.
17423
17424 2013-09-17 DJ Delorie <dj@redhat.com>
17425
17426 * config/rl78/constraints.md: For each W* constraint, rename to C*
17427 and create a W* constraint that checks for an optional ES: prefix
17428 pattern also.
17429 * config/rl78/rl78.md (UNS_ES_ADDR): New.
17430 (es_addr): New. Used to wrap far addresses.
17431 * config/rl78/rl78-protos.h (rl78_es_addr): New.
17432 (rl78_es_base): New.
17433 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
17434 wrapped far addresses.
17435 (rl78_print_operand_1): Unwrap far addresses before processing.
17436 (rl78_lo16): Wrap far addresses in unspecs.
17437 (rl78_es_addr): New.
17438 (rl78_es_base): New.
17439 (insn_ok_now): Check for not-yet-wrapped far addresses.
17440 (transcode_memory_rtx): Properly re-wrap far addresses.
17441
17442 2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
17443
17444 * config/sparc/t-rtems: Add leon3 multilibs.
17445
17446 2013-09-17 Cong Hou <congh@google.com>
17447
17448 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
17449 when checking the dot production pattern. The type of rhs operand
17450 of multiply is now checked correctly.
17451
17452 2013-09-17 Jeff Law <law@redhat.com>
17453
17454 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
17455 edge implied equivalences into successor phis.
17456 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
17457 here from tree-ssa-threadedge.c.
17458 (mark_threaded_blocks): When threading through a joiner, if both
17459 successors of the joiner's clone reach the same block, verify the
17460 PHI arguments are equal. If not, cancel the jump threading request.
17461 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
17462 tree-ssa-threadupdate.c
17463 (thread_across_edge): Don't check PHI argument equality when
17464 threading through joiner block here.
17465
17466 2013-09-17 Andrew MacLeod <amacleod@redhat.com>
17467
17468 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
17469 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
17470 (warn_uninit, warn_uninitialized_vars,
17471 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
17472 Move to tree-ssa-uninit.c.
17473 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
17474 (has_undefined_value_p): New. Pass dependant parts of
17475 ssa_undefined_value_p.
17476 (uninit_undefined_value_p): Use has_undefined_value_p.
17477 (warn_uninit, warn_uninitialized_vars,
17478 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
17479 Move from tree-ssa.c.
17480 * tree-ssa.h: Adjust prototypes.
17481
17482 2013-09-17 Jan Hubicka <jh@suse.cz>
17483
17484 PR middle-end/58332
17485 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
17486 * ipa-inline.c (can_inline_edge_p): Do not downgrade
17487 FUNCTION_NOT_OPTIMIZED.
17488 * ipa-inline-analysis.c (compute_inline_parameters): Function
17489 not optimized is not inlinable unless it is alwaysinline.
17490 (inline_analyze_function): Force calls in not optimized
17491 function not inlinable.
17492
17493 2013-09-17 Jan Hubicka <jh@suse.cz>
17494
17495 PR middle-end/58329
17496 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
17497 to return NULL.
17498 * ipa.c (function_and_variable_visibility): Likewise.
17499 * ipa-profile.c (ipa_profile): Likewise.
17500
17501 2013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
17502
17503 PR ipa/58398
17504 * cgraph.c (cgraph_function_body_availability): Check for ifunc
17505 attribute, and don't inline the resolver in this case.
17506
17507 2013-09-17 Teresa Johnson <tejohnson@google.com>
17508
17509 * coverage.c (get_coverage_counts): Add missing newline.
17510
17511 2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17512
17513 PR tree-optimization/58088
17514 * fold-const.c (mask_with_trailing_zeros): New function.
17515 (fold_binary_loc): Make sure we don't recurse infinitely
17516 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
17517 Use mask_with_trailing_zeros where appropriate.
17518
17519 2013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
17520
17521 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
17522 of 'prev' var to get better distance estimation.
17523
17524 2013-09-17 Eric Botcazou <ebotcazou@adacore.com>
17525
17526 * tree-inline.h (struct copy_body_data): Add transform_parameter.
17527 * tree-inline.c (is_parameter_of): New predicate.
17528 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
17529 a parameter has been remapped.
17530 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
17531 (optimize_inline_calls): Initialize transform_parameter.
17532 (copy_gimple_seq_and_replace_locals): Likewise.
17533 (tree_function_versioning): Likewise.
17534 (maybe_inline_call_in_expr): Likewise.
17535
17536 2013-09-17 Nick Clifton <nickc@redhat.com>
17537
17538 * config/msp430/msp430-protos.h: Add prototypes for new functions.
17539 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
17540 interrupt handlers.
17541 (is_attr_func): New function.
17542 (msp430_is_interrupt_func): New function.
17543 (is_naked_func): New function.
17544 (is_reentrant_func): New function.
17545 (is_critical_func): New function.
17546 (msp430_start_function): Add annotations for function attributes.
17547 (msp430_attr): New function.
17548 (msp430_attribute_table): New.
17549 (msp430_function_section): New function.
17550 (TARGET_ASM_FUNCTION_SECTION): Define.
17551 (msp430_builtin): New enum.
17552 (msp430_init_builtins): New function.
17553 (msp430_builtin_devl): New function.
17554 (msp430_expand_builtin): New function.
17555 (TARGET_INIT_BUILTINS): Define.
17556 (TARGET_EXPAND_BUILTINS): Define.
17557 (TARGET_BUILTIN_DECL): Define.
17558 (msp430_expand_prologue): Add support for naked, interrupt,
17559 critical and reentrant functions.
17560 (msp430_expand_epilogue): Likewise.
17561 (msp430_print_operand): Handle 'O' character.
17562 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
17563 NO_TRAMPOLINES.
17564 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
17565 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
17566 (pushm): Use a 'n' rather than an 'i' constraint.
17567 (msp_return): Add generation of the interrupt return instruction.
17568 (disable_interrupts): New pattern.
17569 (enable_interrupts): New pattern.
17570 (push_intr_state): New pattern.
17571 (pop_intr_state): New pattern.
17572 (bic_SR): New pattern.
17573 (bis_SR): New pattern.
17574 * doc/extend.texi: Document MSP430 function attributes and builtin
17575 functions.
17576
17577 2013-09-17 Richard Biener <rguenther@suse.de>
17578
17579 PR tree-optimization/58432
17580 * tree-loop-distribution.c (tree_loop_distribution): Also
17581 scan PHIs for outside loop uses and seed a partition from them.
17582
17583 2013-09-17 Bin Cheng <bin.cheng@arm.com>
17584
17585 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
17586 (restructure_reference): Call backtrace_base_for_ref.
17587
17588 2013-09-17 Alan Modra <amodra@gmail.com>
17589
17590 PR target/57589
17591 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
17592 patch.
17593
17594 2013-09-16 DJ Delorie <dj@redhat.com>
17595
17596 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
17597 vregs location for RL78/G10.
17598 (rl78_expand_prologue): Avoid SEL on G10.
17599 (rl78_expand_epilogue): Likewise.
17600 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
17601 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
17602 __RL78_G10__ when appropriate.
17603 (ASM_SPEC): Pass -mg10 along to the assembler.
17604 * config/rl78/rl78.md (sel_rb): Disable for G10.
17605 * config/rl78/rl78.opt: Add -mg10 option.
17606 * config/rl78/t-rl78: Add -mg10 multilib.
17607
17608 2013-09-16 Xinliang David Li <davidxl@google.com>
17609
17610 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
17611 * omp-low.c (omp_max_vf): Ditto.
17612 (expand_omp_simd): Ditto.
17613 * tree-vectorizer.c (vectorize_loops): Ditto.
17614 (gate_vect_slp): Ditto.
17615 (gate_increase_alignment): Ditto.
17616 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
17617 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
17618 (gate_tree_vectorize): Name change.
17619 (tree_vectorize): Ditto.
17620 (pass_vectorize::gate): Call new function.
17621 (pass_vectorize::execute): Ditto.
17622 * opts.c: O3 default setting change.
17623 (finish_options): Check new flag.
17624 * doc/invoke.texi: Document new flags.
17625 * common.opt: New flags.
17626
17627 2013-09-16 Andreas Schwab <schwab@linux-m68k.org>
17628
17629 * doc/tm.texi.in (Cond Exec Macros): Remove node.
17630 (Condition Code): Don't reference it.
17631 * doc/tm.texi: Regenerate.
17632
17633 2013-09-16 Vladimir Makarov <vmakarov@redhat.com>
17634
17635 PR middle-end/58418
17636 * lra-constraints.c (undo_optional_reloads): Consider all optional
17637 reload even if it did not get a hard reg.
17638
17639 2013-09-16 Teresa Johnson <tejohnson@google.com>
17640
17641 * dumpfile.c (dump_loc): Remove newline emission.
17642 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
17643 emission to dump_printf_loc calls where missing.
17644 (vect_mark_for_runtime_alias_test): Ditto.
17645 (vect_analyze_data_ref_dependence): Ditto.
17646 (vect_analyze_data_ref_dependences): Ditto.
17647 (vect_slp_analyze_data_ref_dependence): Ditto.
17648 (vect_slp_analyze_data_ref_dependences): Ditto.
17649 (vect_compute_data_ref_alignment): Ditto.
17650 (vect_update_misalignment_for_peel): Ditto.
17651 (vect_verify_datarefs_alignment): Ditto.
17652 (vector_alignment_reachable_p): Ditto.
17653 (vect_get_data_access_cost): Ditto.
17654 (vect_enhance_data_refs_alignment): Ditto.
17655 (vect_find_same_alignment_drs): Ditto.
17656 (vect_analyze_data_refs_alignment): Ditto.
17657 (vect_analyze_group_access): Ditto.
17658 (vect_analyze_data_ref_access): Ditto.
17659 (vect_analyze_data_ref_accesses): Ditto.
17660 (vect_prune_runtime_alias_test_list): Ditto.
17661 (vect_analyze_data_refs): Ditto.
17662 (vect_create_addr_base_for_vector_ref): Ditto.
17663 (vect_create_data_ref_ptr): Ditto.
17664 (vect_grouped_store_supported): Ditto.
17665 (vect_grouped_load_supported): Ditto.
17666 * value-prof.c (check_counter): Ditto.
17667 (check_ic_target): Ditto.
17668 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
17669 (vect_recog_widen_mult_pattern): Ditto.
17670 (vect_recog_widen_sum_pattern): Ditto.
17671 (vect_recog_over_widening_pattern): Ditto.
17672 (vect_recog_widen_shift_pattern): Ditto.
17673 (vect_recog_rotate_pattern): Ditto.
17674 (vect_recog_vector_vector_shift_pattern): Ditto.
17675 (vect_recog_divmod_pattern): Ditto.
17676 (vect_recog_mixed_size_cond_pattern): Ditto.
17677 (vect_recog_bool_pattern): Ditto.
17678 (vect_pattern_recog_1): Ditto.
17679 (vect_pattern_recog): Ditto.
17680 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
17681 (vect_is_simple_iv_evolution): Ditto.
17682 (vect_analyze_scalar_cycles_1): Ditto.
17683 (vect_get_loop_niters): Ditto.
17684 (vect_analyze_loop_1): Ditto.
17685 (vect_analyze_loop_form): Ditto.
17686 (vect_analyze_loop_operations): Ditto.
17687 (vect_analyze_loop_2): Ditto.
17688 (vect_analyze_loop): Ditto.
17689 (report_vect_op): Ditto.
17690 (vect_is_slp_reduction): Ditto.
17691 (vect_is_simple_reduction_1): Ditto.
17692 (vect_get_known_peeling_cost): Ditto.
17693 (vect_estimate_min_profitable_iters): Ditto.
17694 (vect_model_reduction_cost): Ditto.
17695 (vect_model_induction_cost): Ditto.
17696 (get_initial_def_for_induction): Ditto.
17697 (vect_create_epilog_for_reduction): Ditto.
17698 (vectorizable_reduction): Ditto.
17699 (vectorizable_induction): Ditto.
17700 (vectorizable_live_operation): Ditto.
17701 (vect_loop_kill_debug_uses): Ditto.
17702 (vect_transform_loop): Ditto.
17703 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
17704 (vect_stmt_relevant_p): Ditto.
17705 (process_use): Ditto.
17706 (vect_mark_stmts_to_be_vectorized): Ditto.
17707 (vect_model_simple_cost): Ditto.
17708 (vect_model_promotion_demotion_cost): Ditto.
17709 (vect_model_store_cost): Ditto.
17710 (vect_get_store_cost): Ditto.
17711 (vect_model_load_cost): Ditto.
17712 (vect_get_load_cost): Ditto.
17713 (vect_init_vector_1): Ditto.
17714 (vect_get_vec_def_for_operand): Ditto.
17715 (vect_finish_stmt_generation): Ditto.
17716 (vectorizable_call): Ditto.
17717 (vectorizable_conversion): Ditto.
17718 (vectorizable_assignment): Ditto.
17719 (vectorizable_shift): Ditto.
17720 (vectorizable_operation): Ditto.
17721 (vectorizable_store): Ditto.
17722 (vectorizable_load): Ditto.
17723 (vectorizable_condition): Ditto.
17724 (vect_analyze_stmt): Ditto.
17725 (vect_transform_stmt): Ditto.
17726 (vect_is_simple_use): Ditto.
17727 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
17728 (vect_can_advance_ivs_p): Ditto.
17729 (vect_update_ivs_after_vectorizer): Ditto.
17730 (vect_do_peeling_for_loop_bound): Ditto.
17731 (vect_gen_niters_for_prolog_loop): Ditto.
17732 (vect_update_inits_of_drs): Ditto.
17733 (vect_create_cond_for_alias_checks): Ditto.
17734 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
17735 (vect_build_slp_tree_1): Ditto.
17736 (vect_supported_load_permutation_p): Ditto.
17737 (vect_analyze_slp_instance): Ditto.
17738 (vect_analyze_slp): Ditto.
17739 (vect_make_slp_decision): Ditto.
17740 (vect_detect_hybrid_slp): Ditto.
17741 (vect_bb_vectorization_profitable_p): Ditto.
17742 (vect_slp_analyze_bb_1): Ditto.
17743 (vect_update_slp_costs_according_to_vf): Ditto.
17744 (vect_get_mask_element): Ditto.
17745 (vect_transform_slp_perm_load): Ditto.
17746 (vect_schedule_slp_instance): Ditto.
17747 (vect_schedule_slp): Ditto.
17748 (vect_slp_transform_bb): Ditto.
17749 * profile.c (read_profile_edge_counts): Ditto.
17750 (compute_branch_probabilities): Ditto.
17751 * coverage.c (get_coverage_counts): Ditto.
17752
17753 2013-09-16 Diego Novillo <dnovillo@google.com>
17754
17755 * tree-core.h: Add missing comment lines from refactoring of tree.h.
17756
17757 2013-09-16 Jan Hubicka <jh@suse.cz>
17758
17759 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
17760 abstract functions; for static functions check the presence of body.
17761
17762 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
17763
17764 * config/aarch64/aarch64-simd-builtins.def (fma): New.
17765 * config/aarch64/aarch64-simd.md
17766 (aarch64_mla_elt<mode>): New.
17767 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
17768 (aarch64_mls_elt<mode>): Likewise.
17769 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
17770 (aarch64_fma4_elt<mode>): Likewise.
17771 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
17772 (aarch64_fma4_elt_to_128v2df): Likewise.
17773 (aarch64_fma4_elt_to_64df): Likewise.
17774 (fnma<mode>4): Likewise.
17775 (aarch64_fnma4_elt<mode>): Likewise.
17776 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
17777 (aarch64_fnma4_elt_to_128v2df): Likewise.
17778 (aarch64_fnma4_elt_to_64df): Likewise.
17779 * config/aarch64/iterators.md (VDQSF): New.
17780 * config/aarch64/arm_neon.h
17781 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
17782 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
17783
17784 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
17785
17786 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
17787 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
17788 (aarch64_mul3_elt_to_128df): Likewise.
17789 (aarch64_mul3_elt_to_64v2df): Likewise.
17790 * config/aarch64/iterators.md (VEL): Also handle DFmode.
17791 (VMUL): New.
17792 (VMUL_CHANGE_NLANES) Likewise.
17793 (h_con): Likewise.
17794 (f): Likewise.
17795 * config/aarch64/arm_neon.h
17796 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
17797
17798 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
17799
17800 * config/aarch64/arm_neon.h
17801 (vcvtx_high_f32_f64): Fix parameters.
17802
17803 2013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
17804 Uros Bizjak <ubizjak@gmail.com>
17805
17806 * config/alpha.c: Include tree-ssanames.h.
17807
17808 2013-09-16 Richard Biener <rguenther@suse.de>
17809
17810 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
17811 (dot_rdg_1): Handle control_dd.
17812 (create_edge_for_control_dependence): New function.
17813 (create_rdg_edges): Add control dependences if asked for.
17814 (build_rdg): Likewise.
17815 (generate_loops_for_partition): If there are not necessary
17816 control stmts remove all their dependencies.
17817 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
17818 (distribute_loop): Pass on control dependences.
17819 (tree_loop_distribution): Compute control dependences and remove
17820 restriction on number of loop nodes.
17821
17822 2013-09-16 Jakub Jelinek <jakub@redhat.com>
17823
17824 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
17825 for internal calls.
17826
17827 2013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
17828
17829 * cse.c (try_const_anchors): Punt on CC modes.
17830
17831 2013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
17832
17833 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
17834
17835 2013-09-14 John David Anglin <danglin@gcc.gnu.org>
17836
17837 PR target/58382
17838 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
17839 calls to word_mode.
17840
17841 2013-09-14 Iain Sandoe <iain@codesourcery.com>
17842
17843 PR target/48094
17844 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
17845 seen.
17846 (darwin_objc1_section): Likewise.
17847 (darwin_file_end): Emit Image Info section when required.
17848
17849 2013-09-14 Jan Hubicka <jh@suse.cz>
17850
17851 * tree-into-ssa.c (gate_into_ssa): New.
17852 (pass_data_build_ssa): Use it.
17853 * cgraph.h (expand_thunk): Update prototype.
17854 * cgraphunit.c (analyze_function): Expand thunks early.
17855 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
17856 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
17857 set lowered flag; do not add new function.
17858 (assemble_thunks_and_aliases): Update.
17859 * tree-ssa.c (gate_init_datastructures): New gate.
17860 (pass_data_init_datastructures): Use it.
17861
17862 2013-09-14 Iain Sandoe <iain@codesourcery.com>
17863
17864 PR target/58269
17865 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
17866 xmm register set described in the psABI.
17867
17868 2013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
17869
17870 * dwarf2out.c (should_emit_struct_debug): Add check
17871 for type_decl variable is not NULL.
17872
17873 2013-09-13 Jacek Caban <jacek@codeweavers.com>
17874
17875 * config.gcc: Use new winnt-c.c target hooks
17876 * config/t-winnt: New file
17877 * config/winnt-c.c: New file
17878 * doc/tm.texi.in: Document new hook
17879 * doc/tm.texi: Regenerated
17880
17881 2013-09-13 Jan Hubicka <jh@suse.cz>
17882
17883 PR middle-end/58094
17884 * ipa-inline.c (check_callers): New function.
17885 (check_caller_edge): Remove.
17886 (want_inline_function_to_all_callers_p): Also permit alises that are
17887 called dirrectly.
17888 (inline_to_all_callers): Terminate the walk when devirtualization
17889 introduce new calls.
17890
17891 2013-09-13 Jan Hubicka <jh@suse.cz>
17892
17893 * ipa-inline-analysis.c (struct growth_data): Add node.
17894 (do_estimate_growth_1): Fix detection of recursion.
17895
17896 2013-09-13 Jakub Jelinek <jakub@redhat.com>
17897
17898 PR tree-optimization/58392
17899 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
17900 to avoid shadowing of outer loop variable. If
17901 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
17902 replace_by_duplicate_decl simduid of loops that have it set and
17903 set dest_cfun->has_simduid_loops and/or
17904 dest_cfun->has_force_vect_loops.
17905 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
17906 instead of maybe_lookup_decl.
17907 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
17908 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
17909 call. Copy over force_vect and copy and remap simduid. Set
17910 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
17911 (copy_cfg_body): Remove blocks_to_copy argument. Use
17912 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
17913 caller. Don't set cfun->has_simduid_loops and/or
17914 cfun->has_force_vect_loops here.
17915 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
17916 caller.
17917 (expand_call_inline, tree_function_versioning): Adjust copy_body
17918 callers.
17919
17920 2013-09-13 Martin Jambor <mjambor@suse.cz>
17921
17922 PR bootstrap/58388
17923 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
17924 the assert if the edge was a speculative one.
17925
17926 2013-09-13 Richard Biener <rguenther@suse.de>
17927
17928 * tree-data-ref.h (known_dependences_p): Move here ...
17929 * tree-loop-distribution.c (known_dependences_p): ... from here.
17930 (dump_rdg_component, debug_rdg_component): Remove.
17931 (dump_rdg): Adjust.
17932 (generate_loops_for_partition): Use gimple_uid instead of
17933 relying on matching stmt visit order.
17934 (rdg_build_partitions): Take starting stmt vector.
17935 (ldist_gen): Merge into ...
17936 (distribute_loop): ... this function. Do not compute starting
17937 vertices vector.
17938 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
17939
17940 2013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17941
17942 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
17943 Set type attribute correctly. Set predicable_short_it attribute.
17944 (cmpsi_shiftsi): Remove %? from output template.
17945
17946 2013-09-13 Richard Biener <rguenther@suse.de>
17947
17948 * tree-loop-distribution.c (struct rdg_component,
17949 rdg_defs_used_in_other_loops_p, free_rdg_components,
17950 rdg_build_components): Remove.
17951 (stmts_from_loop): Do not record virtual PHIs.
17952 (generate_loops_for_partition): Skip virtual PHIs.
17953 (build_rdg_partition_for_component): Rename to ...
17954 (build_rdg_partition_for_vertex): ... this and adjust.
17955 (rdg_build_partitions): Take a vector of starting vertices
17956 instead of components. Remove unnecessary leftover handling.
17957 (ldist_gen): Do not build components or record other stores.
17958 (distribute_loop): Do not distribute loops containing stmts
17959 with side-effects.
17960
17961 2013-09-13 Christian Bruel <christian.bruel@st.com>
17962
17963 PR target/58314
17964 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
17965
17966 2013-09-13 Kai Tietz <ktietz@redhat.com>
17967
17968 * config.gcc: Separate cases for mingw and cygwin targets,
17969 and add 64-bit cygwin target case.
17970
17971 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
17972 dll-export inline-functions.
17973 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
17974
17975 2013-09-13 Jeff Law <law@redhat.com>
17976
17977 PR middle-end/58387
17978 Revert:
17979 2013-09-06 Jeff Law <law@redhat.com>
17980
17981 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
17982 edge implied equivalences into successor phis.
17983
17984 2013-09-12 DJ Delorie <dj@redhat.com>
17985
17986 * config/rl78/rl78-virt.md: Change from | to \; for asm line
17987 separators.
17988
17989 2013-09-12 Brooks Moses <bmoses@google.com>
17990
17991 PR driver/42955
17992 * Makefile.in: Do not install driver binaries in $(target)/bin.
17993
17994 2013-09-12 DJ Delorie <dj@redhat.com>
17995
17996 * config/rl78/rl78.opt (mrelax): New.
17997 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
17998 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
17999
18000 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
18001 between SP and FP.
18002 (rl78_expand_epilogue): Likewise.
18003
18004 2013-09-12 Vladimir Makarov <vmakarov@redhat.com>
18005
18006 PR middle-end/58335
18007 * lra-eliminations.c (remove_reg_equal_offset_note): New.
18008 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
18009 pointer elimination with using remove_reg_equal_offset_note.
18010
18011 2013-09-12 DJ Delorie <dj@redhat.com>
18012
18013 * config/msp430/: New port.
18014 * config.gcc (msp430): Added.
18015 * doc/invoke.texi: Document MSP430 options.
18016 * doc/install.texi: Document msp430-elf
18017 * doc/md.texi: Document msp430-elf
18018 * doc/contrib.texi: Document msp430-elf
18019
18020 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
18021 PSImode.
18022
18023 2013-09-12 Martin Jambor <mjambor@suse.cz>
18024
18025 PR ipa/58389
18026 * ipa-prop.c (remove_described_reference): Give up if the edge in the
18027 reference descriptor is NULL.
18028 (ipa_edge_removal_hook): If owning a reference descriptor, set its
18029 edge to NULL.
18030
18031 2013-09-12 Andrew MacLeod <amacleod@redhat.com>
18032
18033 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
18034 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
18035 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
18036 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
18037 make_temp_ssa_name): move to tree-ssanames.h
18038 * tree-ssa-alias.h: Move prototype.
18039 * tree-ssa.h: Include tree-ssanames.h.
18040 * tree-ssanames.c (FREE_SSANAMES): Move to here.
18041 * tree-ssanames.h: New. Move items from tree-flow*.h
18042 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
18043
18044 2013-09-12 Richard Biener <rguenther@suse.de>
18045
18046 PR tree-optimization/58404
18047 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
18048 propagate non-invariant addresses into dereferences wrapped
18049 in component references.
18050
18051 2013-09-12 Richard Biener <rguenther@suse.de>
18052
18053 PR tree-optimization/58402
18054 * passes.def: Move pass_late_warn_uninitialized later.
18055
18056 2013-09-12 Andrew MacLeod <amacleod@redhat.com>
18057
18058 * tree-ssa.h: New. Move content from tree-flow.h and
18059 tree-flow-inline.h.
18060 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
18061 Move prototypes belonging to tree-ssa.c.
18062 * tree-flow-inline.h (redirect_edge_var_map_def,
18063 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
18064 tree-ssa.h.
18065 * gimple.h: Adjust prototypes.
18066 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
18067 to...
18068 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
18069 * tree.h: Move prototype to tree-ssa.h.
18070 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
18071 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
18072 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
18073 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
18074 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
18075 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
18076 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
18077 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
18078 graphite-blocking.c, graphite-clast-to-gimple.c,
18079 graphite-dependences.c, graphite-interchange.c,
18080 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
18081 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
18082 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
18083 ipa-reference.c, ipa-split.c, ipa-utils.c,
18084 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
18085 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
18086 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
18087 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
18088 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
18089 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
18090 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
18091 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
18092 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
18093 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
18094 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
18095 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
18096 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
18097 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
18098 value-prof.c, var-tracking.c,
18099 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
18100
18101 2013-09-12 Richard Biener <rguenther@suse.de>
18102
18103 PR tree-optimization/58396
18104 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
18105 (build_rdg): Take a loop-nest parameter, fix memleaks.
18106 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
18107
18108 2013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
18109
18110 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
18111 for SLM.
18112
18113 2013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
18114
18115 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
18116 The FMA instruction names should have a 'v' prefix.
18117
18118 2013-09-12 Richard Biener <rguenther@suse.de>
18119
18120 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
18121 (dot_rdg): Use popen instead of system in optional code.
18122 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
18123 (already_processed_vertex_p): Adjust.
18124 (has_anti_or_output_dependence, predecessor_has_mem_write,
18125 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
18126 rdg_flag_uses): Remove.
18127 (rdg_flag_vertex): Simplify.
18128 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
18129 remove recursion.
18130 (build_rdg_partition_for_component): Process the first vertex
18131 of a component only.
18132 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
18133
18134 2013-09-12 Alan Modra <amodra@gmail.com>
18135
18136 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
18137
18138 2013-09-11 DJ Delorie <dj@redhat.com>
18139 Nick Clifton <nickc@redhat.com>
18140
18141 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
18142 (rl78_stack_based_mem): New.
18143 * config/rl78/constraints.md (Iv08): New.
18144 (Iv16): New.
18145 (Iv24): New.
18146 (Is09): New.
18147 (Is17): New.
18148 (Is25): New.
18149 (ISsi): New.
18150 (IShi): New.
18151 (ISqi): New.
18152 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
18153 (movhi): Likewise.
18154 (movsi): Change from expand to insn-and-split.
18155 (ashrsi3): Clobber AX.
18156 (lshrsi3): New.
18157 (ashlsi3): New.
18158 (cbranchsi4): New.
18159 * config/rl78/rl78.md (CC_REG): Fix.
18160 (addsi3): Allow memory and immediate operands.
18161 (addsi3_internal): Split into...
18162 (addsi3_internal_virt): ...new, and ...
18163 (addsi3_internal_real): ...new.
18164 (subsi): New.
18165 (subsi3_internal_virt): New.
18166 (subsi3_internal_real): New.
18167 (mulsi3): Add memory operand.
18168 (mulsi3_rl78): Likewise.
18169 (mulsi3_g13): Likewise.
18170 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
18171 (cbranchqi4_real): Add more constraint options.
18172 (cbranchhi4_real): Expand pattern.
18173 (cbranchhi4_real_signed): New.
18174 (cbranchhi4_real_inverted): New.
18175 (cbranchsi4_real_lt): New.
18176 (cbranchsi4_real_ge): New.
18177 (cbranchsi4_real_signed): New.
18178 (cbranchsi4_real): New.
18179 (peephole2): New.
18180 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
18181 constant shifts.
18182 (lshrsi3_virt): Likewise.
18183 (ashlsi3_virt): Likewise.
18184 (cbranchqi4_virt_signed): New.
18185 (cbranchhi4_virt_signed): New.
18186 (cbranchsi4_virt): New.
18187 * config/rl78/rl78.c: Whitespace fixes throughout.
18188 (move_elim_pass): New.
18189 (pass_data_rl78_move_elim): New.
18190 (pass_rl78_move_elim): New.
18191 (make_pass_rl78_move_elim): New.
18192 (rl78_devirt_info): Run devirt earlier.
18193 (rl78_move_elim_info): New.
18194 (rl78_asm_file_start): Register it.
18195 (rl78_split_movsi): New.
18196 (rl78_as_legitimate_address): Allow virtual base registers when
18197 appropriate.
18198 (rl78_addr_space_convert): Remove spurious debug stuff.
18199 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
18200 (rl78_print_operand): More cases for not printing '#'.
18201 (rl78_expand_compare): Remove most of the logic.
18202 (content_memory): New.
18203 (clear_content_memory): New.
18204 (get_content_index): New.
18205 (get_content_name): New.
18206 (display_content_memory): New.
18207 (update_content): New.
18208 (record_content): New.
18209 (already_contains): New.
18210 (insn_ok_now): Re-recog insns with virtual registers.
18211 (add_postponed_content_update): New.
18212 (process_postponed_content_update): New.
18213 (gen_and_emit_move): New.
18214 (transcode_memory_rtx): Record new location content.
18215 Use gen_and_emit_move.
18216 (force_into_acc): New.
18217 (move_to_acc): Use gen_and_emit_move.
18218 (move_from_acc): Likewise.
18219 (move_acc_to_reg): Likewise.
18220 (move_to_x): Likewise.
18221 (move_to_hl): Likewise.
18222 (move_to_de): Likewise.
18223 (rl78_alloc_physical_registers_op1): Record location content.
18224 (has_constraint): New.
18225 (rl78_alloc_physical_registers_op2): Record location content.
18226 Optimize use of HL.
18227 (rl78_alloc_physical_registers_ro1): Likewise.
18228 (rl78_alloc_physical_registers_cmp): Likewise.
18229 (rl78_alloc_physical_registers_umul): Likewise.
18230 (rl78_alloc_address_registers_macax): New.
18231 (rl78_alloc_physical_registers): Initialize and set location
18232 content memory as needed.
18233 (rl78_reorg): Make sure split2 is called.
18234 (rl78_rtx_costs): New.
18235
18236 2013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
18237
18238 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
18239 for (not (neg ...)) and (neg (not ...)) cases.
18240
18241 2013-09-11 Richard Biener <rguenther@suse.de>
18242
18243 PR middle-end/58377
18244 * passes.def: Split critical edges before late uninit warning passes.
18245 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
18246
18247 2013-09-11 Jakub Jelinek <jakub@redhat.com>
18248
18249 PR tree-optimization/58385
18250 * fold-const.c (build_range_check): If both low and high are NULL,
18251 use omit_one_operand_loc to preserve exp side-effects.
18252
18253 2013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18254
18255 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
18256
18257 2013-09-11 Richard Biener <rguenther@suse.de>
18258
18259 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
18260 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
18261 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
18262 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
18263 stmts_from_loop, known_dependences_p, build_empty_rdg,
18264 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
18265 * tree-loop-distribution.c: ... here.
18266 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
18267 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
18268 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
18269 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
18270 * tree-loop-distribution.c: ... here.
18271 * tree-loop-distribution.c: Include gimple-pretty-print.h.
18272 (struct partition_s): Add loops member.
18273 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
18274 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
18275 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
18276
18277 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
18278 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18279 Sergey Lega <sergey.s.lega@intel.com>
18280 Anna Tikhonova <anna.tikhonova@intel.com>
18281 Ilya Tocar <ilya.tocar@intel.com>
18282 Andrey Turetskiy <andrey.turetskiy@intel.com>
18283 Ilya Verbin <ilya.verbin@intel.com>
18284 Kirill Yukhin <kirill.yukhin@intel.com>
18285 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18286
18287 * config/i386/constraints.md (k): New.
18288 (Yk): Ditto.
18289 * config/i386/i386.c (const regclass_map): Add new mask registers.
18290 (dbx_register_map): Ditto.
18291 (dbx64_register_map): Ditto.
18292 (svr4_dbx_register_map): Ditto.
18293 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
18294 disabled.
18295 (ix86_preferred_reload_class): Disable constants for mask registers.
18296 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
18297 (ix86_hard_regno_mode_ok): Support new mask registers.
18298 (x86_order_regs_for_local_alloc): Ditto.
18299 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
18300 (FIXED_REGISTERS): Add new mask registers.
18301 (CALL_USED_REGISTERS): Ditto.
18302 (REG_ALLOC_ORDER): Ditto.
18303 (VALID_MASK_REG_MODE): New.
18304 (FIRST_MASK_REG): Ditto.
18305 (LAST_MASK_REG): Ditto.
18306 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
18307 (MAYBE_MASK_CLASS_P): New.
18308 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
18309 (REG_CLASS_CONTENTS): Ditto.
18310 (MASK_REGNO_P): New.
18311 (ANY_MASK_REG_P): Ditto.
18312 (HI_REGISTER_NAMES): Add new mask registers.
18313 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
18314 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
18315 mask registers.
18316 (attribute "type"): Add mskmov, msklog.
18317 (attribute "length_immediate"): Support them.
18318 (attribute "memory"): Ditto.
18319 (attribute "prefix_0f"): Ditto.
18320 (*movhi_internal): Support new mask registers.
18321 (*movqi_internal): Ditto.
18322 (define_split): Split out clobber pattern is a logic
18323 insn on mask registers.
18324 (*k<logic><mode>): New.
18325 (*andhi_1): Extend to support mask regs.
18326 (*andqi_1): Extend to support mask regs.
18327 (kandn<mode>): New.
18328 (define_split): Split and-not to and and not if operands
18329 are not mask regs.
18330 (*<code><mode>_1): Separate HI mode to new pattern...
18331 (*<code>hi_1): This.
18332 (*<code>qi_1): Extend to support mask regs.
18333 (kxnor<mode>): New.
18334 (kortestzhi): Ditto.
18335 (kortestchi): Ditto.
18336 (kunpckhi): Ditto.
18337 (*one_cmpl<mode>2_1): Remove HImode and handle it...
18338 (*one_cmplhi2_1): ...Here, now with mask registers support.
18339 (*one_cmplqi2_1): Support new mask registers.
18340 (HI/QImode arithmetics splitter): Don't split if mask registers
18341 are used.
18342 (HI/QImode not splitter): Ditto.
18343 * config/i386/predicated.md (mask_reg_operand): New.
18344 (general_reg_operand): Ditto.
18345
18346 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
18347
18348 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
18349 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
18350
18351 2013-09-10 Jeff Law <law@redhat.com>
18352
18353 PR tree-optimization/58380
18354 * tree-ssa-threadupdate.c (thread_block): Recognize another case
18355 of threading through a buried loop header.
18356
18357 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
18358 return value for single successor case.
18359
18360 2013-09-10 Jan Hubicka <jh@suse.cz>
18361
18362 * ipa-devirt.c (ipa_devirt): Enable with LTO.
18363
18364 2013-09-10 Richard Earnshaw <rearnsha@arm.com>
18365
18366 PR target/58361
18367 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
18368 support conditional execution.
18369 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
18370
18371 2013-09-10 Vladimir Makarov <vmakarov@redhat.com>
18372
18373 * lra.c (lra): Clear lra_optional_reload_pseudos before every
18374 constraint pass.
18375 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
18376 Check destination too to check move insn.
18377 (undo_optional_reloads): Add check that the original peudo did not
18378 changed its allocation and the optional reload was inherited on last
18379 inheritance pass. Break loop after deciding to keep optional reload.
18380 (lra_undo_inheritance): Add check that inherited pseudo still in
18381 memory.
18382
18383 2013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
18384
18385 * config/aarch64/aarch64.md (generic_sched): New.
18386 * config/aarch64/aarch64-generic.md (load): Make conditional
18387 on generic_sched attribute.
18388 (nonload): Likewise.
18389
18390 2013-09-10 Jan Hubicka <jh@suse.cz>
18391
18392 * lto-cgraph.c: Include ipa-utils.h.
18393 (compute_ltrans_boundary): Also add possible targets into the boundary.
18394
18395 2013-09-10 Jan Hubicka <jh@suse.cz>
18396
18397 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
18398 VAR_DECL of vtable rather than full expression.
18399
18400 2013-09-10 Jan Hubicka <jh@suse.cz>
18401 Paolo Carlini <paolo.carlini@oracle.com>
18402
18403 * cgraphunit.c (analyze_functions): Save input_location, set it
18404 to UNKNOWN_LOCATION and restore it at the end.
18405
18406 2013-09-10 Martin Jambor <mjambor@suse.cz>
18407
18408 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
18409 represented by a thunk.
18410
18411 2013-09-10 Jeff Law <law@redhat.com>
18412
18413 PR tree-optimization/58343
18414 * tree-ssa-threadupdate.c (thread_block): Identify and disable
18415 jump threading requests through loop headers buried in the middle
18416 of a jump threading path.
18417
18418 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
18419 in return value/type.
18420
18421 2013-09-10 Jakub Jelinek <jakub@redhat.com>
18422
18423 PR rtl-optimization/58365
18424 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
18425 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
18426 it differs.
18427
18428 2013-09-10 Richard Biener <rguenther@suse.de>
18429
18430 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
18431 * tree-data-ref.c (create_rdg_vertices): Collect all data
18432 references, signal failure to the caller, use data-ref API.
18433 (build_rdg): Compute data references only once. Maintain lifetime
18434 of data references and data dependences from within RDG.
18435 (free_rdg): Free dependence relations.
18436 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
18437 inventing extra dependences.
18438 (distribute_loop): Update for RDG API changes.
18439
18440 2013-09-10 Kai Tietz <ktietz@redhat.com>
18441
18442 * doc/invoke.texi (fms-extensions): Document changed
18443 behavior for ms-abi targets.
18444 * config/i386/i386.c (ix86_option_override_internal):
18445 Set default value of option -fms-extension for ms-abi targets.
18446
18447 2013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
18448
18449 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
18450
18451 2013-09-10 Alan Modra <amodra@gmail.com>
18452
18453 PR target/58330
18454 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
18455
18456 2013-09-10 Alan Modra <amodra@gmail.com>
18457
18458 * config/rs6000/predicates.md (add_cint_operand): New.
18459 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
18460 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
18461 using add_cint_operand.
18462 (largetoc_high_plus_aix): Likewise.
18463
18464 2013-09-09 Jakub Jelinek <jakub@redhat.com>
18465
18466 PR tree-optimization/58364
18467 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
18468 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
18469 the current range can't be an unconditional true or false.
18470
18471 2013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
18472
18473 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
18474
18475 2013-09-09 Uros Bizjak <ubizjak@gmail.com>
18476
18477 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
18478
18479 2013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
18480
18481 PR c++/43452
18482 * doc/invoke.texi (-Wdelete-incomplete): Document it.
18483
18484 2013-09-09 Ian Bolton <ian.bolton@arm.com>
18485
18486 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
18487 NO_REGS for immediate that can't be moved directly into FP_REGS.
18488
18489 2013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18490
18491 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
18492 comparison with negated operand.
18493 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
18494 RTL form.
18495
18496 2013-09-09 Richard Biener <rguenther@suse.de>
18497
18498 PR middle-end/58326
18499 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
18500 of a subloop record all its block as affecting loop-closed SSA form.
18501
18502 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
18503
18504 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
18505 of an rtx/bitpos pair.
18506 (store_fixed_bit_field): Update accordingly.
18507
18508 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
18509
18510 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
18511 GEN_INT.
18512 * builtins.c (expand_errno_check): Likewise.
18513 * dwarf2cfi.c (init_return_column_size): Likewise.
18514 * except.c (sjlj_mark_call_sites): Likewise.
18515 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
18516 * lra-constraints.c (emit_inc): Likewise.
18517 * ree.c (combine_set_extension): Likewise.
18518 * regmove.c (fixup_match_2): Likewise.
18519 * reload1.c (inc_for_reload): Likewise.
18520
18521 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
18522
18523 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
18524 (force_to_mode, simplify_shift_const_1, simplify_comparison):
18525 Use gen_int_mode with the mode of the associated simplify_* call.
18526 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
18527 * expmed.c (expand_shift_1): Likewise.
18528 * function.c (instantiate_virtual_regs_in_insn): Likewise.
18529 * loop-iv.c (iv_number_of_iterations): Likewise.
18530 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
18531 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
18532
18533 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
18534
18535 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
18536 of the associated expand_* call.
18537 (asan_emit_stack_protection): Likewise.
18538 * builtins.c (round_trampoline_addr): Likewise.
18539 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
18540 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
18541 (emit_store_flag): Likewise.
18542 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
18543 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
18544 Likewise.
18545 * function.c (instantiate_virtual_regs_in_insn): Likewise.
18546 * ifcvt.c (noce_try_store_flag_constants): Likewise.
18547 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
18548 * modulo-sched.c (generate_prolog_epilog): Likewise.
18549 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
18550 (expand_ctz, expand_ffs, expand_unop): Likewise.
18551
18552 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
18553
18554 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
18555 of the associated gen_rtx_* call.
18556 * caller-save.c (init_caller_save): Likewise.
18557 * combine.c (find_split_point, make_extraction): Likewise.
18558 (make_compound_operation): Likewise.
18559 * dwarf2out.c (mem_loc_descriptor): Likewise.
18560 * explow.c (plus_constant, probe_stack_range): Likewise.
18561 * expmed.c (expand_mult_const): Likewise.
18562 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
18563 * reload1.c (init_reload): Likewise.
18564 * valtrack.c (cleanup_auto_inc_dec): Likewise.
18565 * var-tracking.c (adjust_mems): Likewise.
18566 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
18567 rather than gen_rtx_fmt_ee.
18568
18569 2013-09-09 Jan Hubicka <jh@suse.cz>
18570
18571 PR middle-end/58294
18572 * value-prof.c (gimple_ic): Copy also abnormal edges.
18573
18574 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
18575
18576 * asan.c (asan_shadow_cst): Use gen_int_mode.
18577
18578 2013-09-08 Jan Hubicka <jh@suse.cz>
18579
18580 * ipa-profile.c: Add toplevel comment.
18581 (ipa_propagate_frequency_1): Be more conservative when profile is read.
18582 (contains_hot_call_p): New function.
18583 (ipa_propagate_frequency): Set frequencies based on counts when
18584 profile is read.
18585 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
18586 profile; do not tamper with profile after inlining if it is read.
18587
18588 2013-09-08 Jan Hubicka <jh@suse.cz>
18589
18590 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
18591 speculative edges.
18592
18593 2013-09-08 Jan Hubicka <jh@suse.cz>
18594
18595 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
18596 summary generation.
18597
18598 2013-09-08 Jeff Law <law@redhat.com>
18599
18600 PR bootstrap/58340
18601 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
18602 of 'found'.
18603
18604 2013-09-08 Andi Kleen <ak@linux.intel.com>
18605
18606 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
18607
18608 2013-09-08 Jan Hubicka <jh@suse.cz>
18609
18610 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
18611
18612 2013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
18613
18614 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
18615 for non-debug insns.
18616 * lra.c (new_insn_reg): Take the containing insn as a parameter.
18617 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
18618 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
18619 accordingly.
18620
18621 2013-09-08 Jan Hubicka <jh@suse.cz>
18622
18623 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
18624 targets and devirtualize to BUILT_IN_UNREACHABLE.
18625 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
18626 * ipa.c (walk_polymorphic_call_targets): New function.
18627 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
18628 functions; use the new timevar.
18629 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
18630 was removed from the program.
18631 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
18632 not consider it in the walk when its vtable is dead.
18633 (possible_polymorphic_call_targets_1): Pass anonymous flag to
18634 record_binfo.
18635 (devirt_variable_node_removal_hook): New function.
18636 (possible_polymorphic_call_targets): Also register
18637 devirt_variable_node_removal_hook.
18638 (ipa_devirt): Do not do non-speculative devirtualization.
18639 (gate_ipa_devirt): One execute if devirtualizing speculatively.
18640
18641 2013-09-08 Jan Hubicka <jh@suse.cz>
18642
18643 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
18644 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
18645 varpool_remove_variable_insertion_hook): Declare.
18646 * varpool.c (varpool_node_hook_list): New structure.
18647 (first_varpool_node_removal_hook,
18648 first_varpool_variable_insertion_hook): New variables.
18649 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
18650 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
18651 varpool_remove_variable_insertion_hook,
18652 varpool_call_variable_insertion_hooks): New functions.
18653 (varpool_remove_node): Use it.
18654
18655 2013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
18656
18657 PR c++/54941
18658 * diagnostic.c (diagnostic_build_prefix): When s.file is
18659 "<built-in>" don't output line and column numbers.
18660
18661 2013-09-06 Jan Hubicka <jh@suse.cz>
18662
18663 * cgraphunit.c (expand_thunk): Get body before touching arguments.
18664 * lto-streamer-out.c: Stream thunks, too.
18665 * lto-streamer-in.c (input_function): Pop cfun here
18666 (lto_read_body): Instead of here.
18667
18668 2013-09-06 Caroline Tice <cmtice@google.com>
18669
18670 * doc/install.texi: Add documentation for the --enable-vtable-verify
18671 and the --disable-libvtv configure options.
18672
18673 2013-09-06 Jeff Law <law@redhat.com>
18674
18675 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
18676 edge implied equivalences into successor phis.
18677
18678 2013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
18679
18680 * resource.c (mark_referenced_resources): Handle COND_EXEC.
18681
18682 2013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
18683
18684 * resource.c (mark_target_live_regs): Compute resources taking
18685 into account if a call is predicated or not.
18686
18687 2013-09-06 Eric Botcazou <ebotcazou@adacore.com>
18688
18689 * toplev.c (output_stack_usage): Be prepared for suffixes created by
18690 the compiler in the function names.
18691
18692 2013-09-06 Jan Hubicka <jh@suse.cz>
18693
18694 PR middle-end/58094
18695 * ipa-inline.c (has_caller_p): New function.
18696 (want_inline_function_to_all_callers_p): Use it.
18697 (sum_callers, inline_to_all_callers): Break out from ...
18698 (ipa_inline): ... here.
18699
18700 2013-09-06 Jan Hubicka <jh@suse.cz>
18701
18702 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
18703 only when AVX is enabled.
18704
18705 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18706
18707 * config/aarch64/aarch64.md
18708 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
18709 is fpsimd_<load/store>2.
18710 (load_pair<mode>): Likewise.
18711 (store_pair<mode>): Likewise.
18712
18713 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18714
18715 * config/arm/types.md (type): Add "mrs" type.
18716 * config/aarch64/aarch64.md
18717 (aarch64_load_tp_hard): Make type "mrs".
18718 * config/arm/arm.md
18719 (load_tp_hard): Make type "mrs".
18720 * config/arm/cortex-a15.md: Update with new attributes.
18721 * config/arm/cortex-a5.md: Update with new attributes.
18722 * config/arm/cortex-a53.md: Update with new attributes.
18723 * config/arm/cortex-a7.md: Update with new attributes.
18724 * config/arm/cortex-a8.md: Update with new attributes.
18725 * config/arm/cortex-a9.md: Update with new attributes.
18726 * config/arm/cortex-m4.md: Update with new attributes.
18727 * config/arm/cortex-r4.md: Update with new attributes.
18728 * config/arm/fa526.md: Update with new attributes.
18729 * config/arm/fa606te.md: Update with new attributes.
18730 * config/arm/fa626te.md: Update with new attributes.
18731 * config/arm/fa726te.md: Update with new attributes.
18732
18733 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18734
18735 * config/aarch64/aarch64.md
18736 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
18737 (*movtf_aarch64): Likewise.
18738 * config/arm/arm.md
18739 (thumb1_movdi_insn): Use "multiple" for type where more than one
18740 instruction is used for a move.
18741 (*arm32_movhf): Likewise.
18742 (*thumb_movdf_insn): Likewise.
18743
18744 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18745
18746 * config/arm/types.md (type): Rename fcpys to fmov.
18747 * config/arm/vfp.md
18748 (*arm_movsi_vfp): Rename type fcpys as fmov.
18749 (*thumb2_movsi_vfp): Likewise
18750 (*movhf_vfp_neon): Likewise
18751 (*movhf_vfp): Likewise
18752 (*movsf_vfp): Likewise
18753 (*thumb2_movsf_vfp): Likewise
18754 (*movsfcc_vfp): Likewise
18755 (*thumb2_movsfcc_vfp): Likewise
18756 * config/aarch64/aarch64-simd.md
18757 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
18758 * config/aarch64/aarch64.md
18759 (*movsi_aarch64): Replace type mov_reg with fmovs.
18760 (*movdi_aarch64): Likewise
18761 (*movsf_aarch64): Likewise
18762 (*movdf_aarch64): Likewise
18763 * config/arm/arm.c
18764 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
18765 * config/arm/iwmmxt.md
18766 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
18767 * config/arm/arm1020e.md: Update with new attributes.
18768 * config/arm/cortex-a15-neon.md: Update with new attributes.
18769 * config/arm/cortex-a5.md: Update with new attributes.
18770 * config/arm/cortex-a53.md: Update with new attributes.
18771 * config/arm/cortex-a7.md: Update with new attributes.
18772 * config/arm/cortex-a8-neon.md: Update with new attributes.
18773 * config/arm/cortex-a9.md: Update with new attributes.
18774 * config/arm/cortex-m4-fpu.md: Update with new attributes.
18775 * config/arm/cortex-r4f.md: Update with new attributes.
18776 * config/arm/marvell-pj4.md: Update with new attributes.
18777 * config/arm/vfp11.md: Update with new attributes.
18778
18779 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18780
18781 * config/aarch64/aarch64.md
18782 (*madd<mode>): Fix type attribute.
18783 (*maddsi_uxtw): Likewise.
18784 (*msub<mode>): Likewise.
18785 (*msubsi_uxtw): Likewise.
18786 (<su_optab>maddsidi4): Likewise.
18787 (<su_optab>msubsidi4): Likewise.
18788
18789 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18790
18791 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
18792 * config/arm/arm.md (core_cycles): Remove fdiv.
18793 * config/arm/vfp.md:
18794 (*sqrtsf2_vfp): Update for attribute changes.
18795 (*sqrtdf2_vfp): Likewise.
18796 * config/aarch64/aarch64.md:
18797 (sqrt<mode>2): Update for attribute changes.
18798 * config/arm/arm1020e.md: Update with new attributes.
18799 * config/arm/cortex-a15-neon.md: Update with new attributes.
18800 * config/arm/cortex-a5.md: Update with new attributes.
18801 * config/arm/cortex-a53.md: Update with new attributes.
18802 * config/arm/cortex-a7.md: Update with new attributes.
18803 * config/arm/cortex-a8-neon.md: Update with new attributes.
18804 * config/arm/cortex-a9.md: Update with new attributes.
18805 * config/arm/cortex-m4-fpu.md: Update with new attributes.
18806 * config/arm/cortex-r4f.md: Update with new attributes.
18807 * config/arm/marvell-pj4.md: Update with new attributes.
18808 * config/arm/vfp11.md: Update with new attributes.
18809
18810 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18811
18812 * config/arm/types.md
18813 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
18814 * config/aarch64/aarch64.md
18815 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
18816 new attributes.
18817 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
18818 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
18819 (float<GPI:mode><GPF:mode>2): Likewise.
18820 * config/arm/vfp.md
18821 (*truncsisf2_vfp): Update with new attributes.
18822 (*truncsidf2_vfp): Likewise.
18823 (fixuns_truncsfsi2): Likewise.
18824 (fixuns_truncdfsi2): Likewise.
18825 (*floatsisf2_vfp): Likewise.
18826 (*floatsidf2_vfp): Likewise.
18827 (floatunssisf2): Likewise.
18828 (floatunssidf2): Likewise.
18829 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
18830 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
18831 * config/arm/arm1020e.md: Update with new attributes.
18832 * config/arm/cortex-a15-neon.md: Update with new attributes.
18833 * config/arm/cortex-a5.md: Update with new attributes.
18834 * config/arm/cortex-a53.md: Update with new attributes.
18835 * config/arm/cortex-a7.md: Update with new attributes.
18836 * config/arm/cortex-a8-neon.md: Update with new attributes.
18837 * config/arm/cortex-a9.md: Update with new attributes.
18838 * config/arm/cortex-m4-fpu.md: Update with new attributes.
18839 * config/arm/cortex-r4f.md: Update with new attributes.
18840 * config/arm/marvell-pj4.md: Update with new attributes.
18841 * config/arm/vfp11.md: Update with new attributes.
18842
18843 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18844
18845 * config/aarch64/arm_neon.h
18846 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
18847 (vqtbx<1,2,3,4><q>_s8): Likewise.
18848
18849 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
18850
18851 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
18852 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
18853 (add<mode>3): Add type attribute.
18854 (add<mode>3): Likewise.
18855 (usadd<mode>3): Likewise.
18856 (ssadd<mode>3): Likewise.
18857 (sub<mode>3): Likewise.
18858 (sub<mode>3): Likewise.
18859 (ussub<mode>3): Likewise.
18860 (sssub<mode>3): Likewise.
18861 (ssmulsa3): Likewise.
18862 (usmulusa3): Likewise.
18863 (arm_usatsihi): Likewise.
18864 * config/arm/vfp.md
18865 (*movdi_vfp): Add types for all instructions.
18866 (*movdi_vfp_cortexa8): Likewise.
18867 (*movhf_vfp_neon): Likewise.
18868 (*movhf_vfp): Likewise.
18869 (*movdf_vfp): Likewise.
18870 (*thumb2_movdf_vfp): Likewise.
18871 (*thumb2_movdfcc_vfp): Likewise.
18872 * config/arm/arm.md: Add type attribute to all insn patterns.
18873 (*thumb1_adddi3): Add type attribute.
18874 (*arm_adddi3): Likewise.
18875 (*adddi_sesidi_di): Likewise.
18876 (*adddi_zesidi_di): Likewise.
18877 (*thumb1_addsi3): Likewise.
18878 (addsi3_compare0): Likewise.
18879 (*addsi3_compare0_scratch): Likewise.
18880 (*compare_negsi_si): Likewise.
18881 (cmpsi2_addneg): Likewise.
18882 (*addsi3_carryin_<optab>): Likewise.
18883 (*addsi3_carryin_alt2_<optab>): Likewise.
18884 (*addsi3_carryin_clobercc_<optab>): Likewise.
18885 (*subsi3_carryin): Likewise.
18886 (*subsi3_carryin_const): Likewise.
18887 (*subsi3_carryin_compare): Likewise.
18888 (*subsi3_carryin_compare_const): Likewise.
18889 (*arm_subdi3): Likewise.
18890 (*thumb_subdi3): Likewise.
18891 (*subdi_di_zesidi): Likewise.
18892 (*subdi_di_sesidi): Likewise.
18893 (*subdi_zesidi_di): Likewise.
18894 (*subdi_sesidi_di): Likewise.
18895 (*subdi_zesidi_ze): Likewise.
18896 (thumb1_subsi3_insn): Likewise.
18897 (*arm_subsi3_insn): Likewise.
18898 (*anddi3_insn): Likewise.
18899 (*anddi_zesidi_di): Likewise.
18900 (*anddi_sesdi_di): Likewise.
18901 (*ne_zeroextracts): Likewise.
18902 (*ne_zeroextracts): Likewise.
18903 (*ite_ne_zeroextr): Likewise.
18904 (*ite_ne_zeroextr): Likewise.
18905 (*anddi_notdi_di): Likewise.
18906 (*anddi_notzesidi): Likewise.
18907 (*anddi_notsesidi): Likewise.
18908 (andsi_notsi_si): Likewise.
18909 (thumb1_bicsi3): Likewise.
18910 (*iordi3_insn): Likewise.
18911 (*iordi_zesidi_di): Likewise.
18912 (*iordi_sesidi_di): Likewise.
18913 (*thumb1_iorsi3_insn): Likewise.
18914 (*xordi3_insn): Likewise.
18915 (*xordi_zesidi_di): Likewise.
18916 (*xordi_sesidi_di): Likewise.
18917 (*arm_xorsi3): Likewise.
18918 (*andsi_iorsi3_no): Likewise.
18919 (*smax_0): Likewise.
18920 (*smax_m1): Likewise.
18921 (*arm_smax_insn): Likewise.
18922 (*smin_0): Likewise.
18923 (*arm_smin_insn): Likewise.
18924 (*arm_umaxsi3): Likewise.
18925 (*arm_uminsi3): Likewise.
18926 (*minmax_arithsi): Likewise.
18927 (*minmax_arithsi_): Likewise.
18928 (*satsi_<SAT:code>): Likewise.
18929 (arm_ashldi3_1bit): Likewise.
18930 (arm_ashrdi3_1bit): Likewise.
18931 (arm_lshrdi3_1bit): Likewise.
18932 (*arm_negdi2): Likewise.
18933 (*thumb1_negdi2): Likewise.
18934 (*arm_negsi2): Likewise.
18935 (*thumb1_negsi2): Likewise.
18936 (*negdi_extendsid): Likewise.
18937 (*negdi_zero_extend): Likewise.
18938 (*arm_abssi2): Likewise.
18939 (*thumb1_abssi2): Likewise.
18940 (*arm_neg_abssi2): Likewise.
18941 (*thumb1_neg_abss): Likewise.
18942 (one_cmpldi2): Likewise.
18943 (extend<mode>di2): Likewise.
18944 (*compareqi_eq0): Likewise.
18945 (*arm_extendhisi2addsi): Likewise.
18946 (*arm_movdi): Likewise.
18947 (*thumb1_movdi_insn): Likewise.
18948 (*arm_movt): Likewise.
18949 (*thumb1_movsi_insn): Likewise.
18950 (pic_add_dot_plus_four): Likewise.
18951 (pic_add_dot_plus_eight): Likewise.
18952 (tls_load_dot_plus_eight): Likewise.
18953 (*thumb1_movhi_insn): Likewise.
18954 (*thumb1_movsf_insn): Likewise.
18955 (*movdf_soft_insn): Likewise.
18956 (*thumb_movdf_insn): Likewise.
18957 (cbranchsi4_insn): Likewise.
18958 (cbranchsi4_scratch): Likewise.
18959 (*negated_cbranchsi4): Likewise.
18960 (*tbit_cbranch): Likewise.
18961 (*tlobits_cbranch): Likewise.
18962 (*tstsi3_cbranch): Likewise.
18963 (*cbranchne_decr1): Likewise.
18964 (*addsi3_cbranch): Likewise.
18965 (*addsi3_cbranch_scratch): Likewise.
18966 (*arm_cmpdi_insn): Likewise.
18967 (*arm_cmpdi_unsig): Likewise.
18968 (*arm_cmpdi_zero): Likewise.
18969 (*thumb_cmpdi_zero): Likewise.
18970 (*deleted_compare): Likewise.
18971 (*mov_scc): Likewise.
18972 (*mov_negscc): Likewise.
18973 (*mov_notscc): Likewise.
18974 (*cstoresi_eq0_thumb1_insn): Likewise.
18975 (cstoresi_nltu_thumb1): Likewise.
18976 (cstoresi_ltu_thu): Likewise.
18977 (thumb1_addsi3_addgeu): Likewise.
18978 (*arm_jump): Likewise.
18979 (*thumb_jump): Likewise.
18980 (*check_arch2): Likewise.
18981 (arm_casesi_internal): Likewise.
18982 (thumb1_casesi_dispatch): Likewise.
18983 (*arm_indirect_jump): Likewise.
18984 (*thumb1_indirect_jump): Likewise.
18985 (nop): Likewise.
18986 (*and_scc): Likewise.
18987 (*ior_scc): Likewise.
18988 (*compare_scc): Likewise.
18989 (*cond_move): Likewise.
18990 (*cond_arith): Likewise.
18991 (*cond_sub): Likewise.
18992 (*cmp_ite0): Likewise.
18993 (*cmp_ite1): Likewise.
18994 (*cmp_and): Likewise.
18995 (*cmp_ior): Likewise.
18996 (*ior_scc_scc): Likewise.
18997 (*ior_scc_scc_cmp): Likewise.
18998 (*and_scc_scc): Likewise.
18999 (*and_scc_scc_cmp): Likewise.
19000 (*and_scc_scc_nod): Likewise.
19001 (*negscc): Likewise.
19002 (movcond_addsi): Likewise.
19003 (movcond): Likewise.
19004 (*ifcompare_plus_move): Likewise.
19005 (*if_plus_move): Likewise.
19006 (*ifcompare_move_plus): Likewise.
19007 (*if_move_plus): Likewise.
19008 (*ifcompare_arith_arith): Likewise.
19009 (*if_arith_arith): Likewise.
19010 (*ifcompare_arith_move): Likewise.
19011 (*if_arith_move): Likewise.
19012 (*ifcompare_move_arith): Likewise.
19013 (*if_move_arith): Likewise.
19014 (*ifcompare_move_not): Likewise.
19015 (*if_move_not): Likewise.
19016 (*ifcompare_not_move): Likewise.
19017 (*if_not_move): Likewise.
19018 (*ifcompare_shift_move): Likewise.
19019 (*if_shift_move): Likewise.
19020 (*ifcompare_move_shift): Likewise.
19021 (*if_move_shift): Likewise.
19022 (*ifcompare_shift_shift): Likewise.
19023 (*ifcompare_not_arith): Likewise.
19024 (*ifcompare_arith_not): Likewise.
19025 (*if_arith_not): Likewise.
19026 (*ifcompare_neg_move): Likewise.
19027 (*if_neg_move): Likewise.
19028 (*ifcompare_move_neg): Likewise.
19029 (*if_move_neg): Likewise.
19030 (prologue_thumb1_interwork): Likewise.
19031 (*cond_move_not): Likewise.
19032 (*sign_extract_onebit): Likewise.
19033 (*not_signextract_onebit): Likewise.
19034 (stack_tie): Likewise.
19035 (align_4): Likewise.
19036 (align_8): Likewise.
19037 (consttable_end): Likewise.
19038 (consttable_1): Likewise.
19039 (consttable_2): Likewise.
19040 (consttable_4): Likewise.
19041 (consttable_8): Likewise.
19042 (consttable_16): Likewise.
19043 (*thumb1_tablejump): Likewise.
19044 (prefetch): Likewise.
19045 (force_register_use): Likewise.
19046 (thumb_eh_return): Likewise.
19047 (load_tp_hard): Likewise.
19048 (load_tp_soft): Likewise.
19049 (tlscall): Likewise.
19050 (*arm_movtas_ze): Likewise.
19051 (*arm_rev): Likewise.
19052 (*arm_revsh): Likewise.
19053 (*arm_rev16): Likewise.
19054 * config/arm/thumb2.md
19055 (*thumb2_smaxsi3): Likewise.
19056 (*thumb2_sminsi3): Likewise.
19057 (*thumb32_umaxsi3): Likewise.
19058 (*thumb2_uminsi3): Likewise.
19059 (*thumb2_negdi2): Likewise.
19060 (*thumb2_abssi2): Likewise.
19061 (*thumb2_neg_abss): Likewise.
19062 (*thumb2_movsi_insn): Likewise.
19063 (tls_load_dot_plus_four): Likewise.
19064 (*thumb2_movhi_insn): Likewise.
19065 (*thumb2_mov_scc): Likewise.
19066 (*thumb2_mov_negs): Likewise.
19067 (*thumb2_mov_negs): Likewise.
19068 (*thumb2_mov_nots): Likewise.
19069 (*thumb2_mov_nots): Likewise.
19070 (*thumb2_movsicc_): Likewise.
19071 (*thumb2_movsfcc_soft_insn): Likewise.
19072 (*thumb2_indirect_jump): Likewise.
19073 (*thumb2_and_scc): Likewise.
19074 (*thumb2_ior_scc): Likewise.
19075 (*thumb2_ior_scc_strict_it): Likewise.
19076 (*thumb2_cond_move): Likewise.
19077 (*thumb2_cond_arith): Likewise.
19078 (*thumb2_cond_ari): Likewise.
19079 (*thumb2_cond_sub): Likewise.
19080 (*thumb2_negscc): Likewise.
19081 (*thumb2_movcond): Likewise.
19082 (thumb2_casesi_internal): Likewise.
19083 (thumb2_casesi_internal_pic): Likewise.
19084 (*thumb2_alusi3_short): Likewise.
19085 (*thumb2_mov<mode>_shortim): Likewise.
19086 (*thumb2_addsi_short): Likewise.
19087 (*thumb2_subsi_short): Likewise.
19088 (thumb2_addsi3_compare0): Likewise.
19089 (*thumb2_cbz): Likewise.
19090 (*thumb2_cbnz): Likewise.
19091 (*thumb2_one_cmplsi2_short): Likewise.
19092 (*thumb2_negsi2_short): Likewise.
19093 (*orsi_notsi_si): Likewise.
19094 * config/arm/arm1020e.md: Update with new attributes.
19095 * config/arm/arm1026ejs.md: Update with new attributes.
19096 * config/arm/arm1136jfs.md: Update with new attributes.
19097 * config/arm/arm926ejs.md: Update with new attributes.
19098 * config/arm/cortex-a15.md: Update with new attributes.
19099 * config/arm/cortex-a5.md: Update with new attributes.
19100 * config/arm/cortex-a53.md: Update with new attributes.
19101 * config/arm/cortex-a7.md: Update with new attributes.
19102 * config/arm/cortex-a8.md: Update with new attributes.
19103 * config/arm/cortex-a9.md: Update with new attributes.
19104 * config/arm/cortex-m4.md: Update with new attributes.
19105 * config/arm/cortex-r4.md: Update with new attributes.
19106 * config/arm/fa526.md: Update with new attributes.
19107 * config/arm/fa606te.md: Update with new attributes.
19108 * config/arm/fa626te.md: Update with new attributes.
19109 * config/arm/fa726te.md: Update with new attributes.
19110
19111 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
19112
19113 * config/aarch64/aarch64-simd.md
19114 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
19115 <vwx> iterator to ensure correct register choice.
19116 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
19117 (aarch64_sqdmull_n<mode>): Likewise.
19118 (aarch64_sqdmull2_n<mode>_internal): Likewise.
19119 * config/aarch64/arm_neon.h
19120 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
19121 (vml<as><q>_n_<su>16): Likewise.
19122 (vml<as>l_high_lane<q>_<su>16): Likewise.
19123 (vml<as>l_high_n_<su>16): Likewise.
19124 (vml<as>l_lane<q>_<su>16): Likewise.
19125 (vml<as>l_n_<su>16): Likewise.
19126 (vmul<q>_lane<q>_<su>16): Likewise.
19127 (vmul<q>_n_<su>16): Likewise.
19128 (vmull_lane<q>_<su>16): Likewise.
19129 (vmull_n_<su>16): Likewise.
19130 (vmull_high_lane<q>_<su>16): Likewise.
19131 (vmull_high_n_<su>16): Likewise.
19132 (vqrdmulh<q>_n_s16): Likewise.
19133
19134 2013-09-06 Tejas Belagod <tejas.belagod@arm.com>
19135
19136 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
19137 have the correct lane parameter.
19138
19139 2013-09-06 Richard Biener <rguenther@suse.de>
19140
19141 * cfganal.c (control_dependences::~control_dependences):
19142 Properly free all of the vector.
19143
19144 2013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
19145
19146 PR target/58269
19147 * config/i386/i386.c (ix86_conditional_register_usage):
19148 Proper initialize extended SSE registers.
19149
19150 2013-09-06 Jan Hubicka <jh@suse.cz>
19151
19152 PR tree-optimization/58311
19153 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
19154
19155 2013-09-06 Jan Hubicka <jh@suse.cz>
19156
19157 * Makefile.in (tree-sra.o): Update dependencies.
19158 * tree-sra.c: Include ipa-utils.h
19159 (scan_function): Use recursive_call_p.
19160 (has_caller_p): New function.
19161 (cgraph_for_node_and_aliases): Count also callers of aliases.
19162
19163 2013-09-06 Jan Hubicka <jh@suse.cz>
19164
19165 PR middle-end/58094
19166 * cgraph.h (symtab_semantically_equivalent_p): Declare.
19167 * tree-tailcall.c: Include ipa-utils.h.
19168 (find_tail_calls): Use it.
19169 * ipa-pure-const.c (check_call): Likewise.
19170 * ipa-utils.c (recursive_call_p): New function.
19171 * ipa-utils.h (recursive_call_p): Dclare.
19172 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
19173 (symtab_semantically_equivalent_p): New function.
19174 * Makefile.in (tree-tailcall.o): Update dependencies.
19175
19176 2013-09-06 Eric Botcazou <ebotcazou@adacore.com>
19177
19178 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
19179 non-inlinable part.
19180
19181 2013-09-06 Richard Biener <rguenther@suse.de>
19182
19183 * lto-streamer.h (lto_global_var_decls): Remove.
19184 * Makefile.in (OBJS): Remove lto-symtab.o.
19185 (lto-symtab.o): Remove.
19186 (GTFILES): Remove lto-symtab.c
19187 * lto-symtab.c: Move to lto/
19188
19189 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19190
19191 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
19192 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
19193 (UNSPEC_FPINT_RINT): New constant definitions.
19194 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
19195 definition with 2 attributes.
19196 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
19197 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
19198 definitions.
19199
19200 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19201
19202 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
19203 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
19204 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
19205 attribute to "z196_alone".
19206 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
19207 "zEC12_simple".
19208
19209 2013-09-06 Richard Biener <rguenther@suse.de>
19210
19211 * basic-block.h (class control_dependences): New.
19212 * tree-ssa-dce.c (control_dependence_map): Remove.
19213 (cd): New global.
19214 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
19215 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
19216 find_pdom, find_control_dependence, find_all_control_dependences):
19217 Move to cfganal.c.
19218 (mark_control_dependent_edges_necessary,
19219 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
19220 tree_dce_done, perform_tree_ssa_dce): Adjust.
19221 * cfganal.c (set_control_dependence_map_bit,
19222 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
19223 find_all_control_dependences): Move from tree-ssa-dce.c and
19224 implement as methods of control_dependences class.
19225 (control_dependences::control_dependences): New.
19226 (control_dependences::~control_dependences): Likewise.
19227 (control_dependences::get_edges_dependent_on): Likewise.
19228 (control_dependences::get_edge): Likewise.
19229
19230 2013-09-04 Jan Hubicka <jh@suse.cz>
19231
19232 * tree.c (types_same_for_odr): Drop overactive check.
19233 * ipa-devirt.c (hash_type_name): Likewise.
19234
19235 2013-09-04 Jan Hubicka <jh@suse.cz>
19236
19237 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
19238 (analyze_functions): ... here.
19239
19240 2013-09-04 Jan Hubicka <jh@suse.cz>
19241
19242 PR middle-end/58201
19243 * cgraphunit.c (analyze_functions): Clear AUX fields
19244 after processing; initialize assembler name has.
19245
19246 2013-09-05 Jeff Law <law@redhat.com>
19247
19248 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
19249 from thread_around_empty_block. Record threading path into PATH.
19250 Recurse if threading through the initial block is successful.
19251 (thread_across_edge): Corresponding changes to slightly simplify.
19252
19253 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
19254
19255 * config/aarch64/aarch64.md
19256 (type): Remove frecpe, frecps, frecpx.
19257 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
19258 fix to be a TARGET_SIMD instruction.
19259 (aarch64_frecps): Remove.
19260 * config/aarch64/aarch64-simd.md
19261 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
19262 (aarch64_frecps<mode>): Handle all float/vector of float modes.
19263
19264 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
19265 Sofiane Naci <sofiane.naci@arm.com>
19266
19267 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
19268 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
19269 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
19270 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
19271 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
19272 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
19273 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
19274 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
19275 into "clz, "rbit". Rename "shift" to "shift_imm".
19276 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
19277 changes. Update for attribute changes all occurrences of arlo_* and
19278 shift* types.
19279 * config/arm/arm-fixed.md: Update for attribute changes
19280 all occurrences of arlo_* types.
19281 * config/arm/thumb2.md: Update for attribute changes all occurrences
19282 of arlo_* types.
19283 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
19284 (cortexa7_older_only): Likewise.
19285 (cortexa7_younger): Likewise.
19286 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
19287 (1020alu_shift_op): Likewise.
19288 (1020alu_shift_reg_op): Likewise.
19289 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
19290 (alu_shift_op): Likewise.
19291 (alu_shift_reg_op): Likewise.
19292 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
19293 (11_alu_shift_op): Likewise.
19294 (11_alu_shift_reg_op): Likewise.
19295 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
19296 (9_alu_shift_reg_op): Likewise.
19297 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
19298 attribute changes.
19299 (cortex_a15_alu_shift): Likewise.
19300 (cortex_a15_alu_shift_reg): Likewise.
19301 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
19302 attribute changes.
19303 (cortex_a5_alu_shift): Likewise.
19304 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
19305 attribute changes.
19306 (cortex_a53_alu_shift): Likewise.
19307 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
19308 attribute changes.
19309 (cortex_a7_alu_reg): Likewise.
19310 (cortex_a7_alu_shift): Likewise.
19311 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
19312 attribute changes.
19313 (cortex_a8_alu_shift): Likewise.
19314 (cortex_a8_alu_shift_reg): Likewise.
19315 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
19316 (cortex_a9_dp_shift): Likewise.
19317 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
19318 attribute changes.
19319 * config/arm/cortex-r4.md
19320 (cortex_r4_alu): Update for attribute changes.
19321 (cortex_r4_mov): Likewise.
19322 (cortex_r4_alu_shift_reg): Likewise.
19323 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
19324 (526_alu_shift_op): Likewise.
19325 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
19326 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
19327 (626te_alu_shift_op): Likewise.
19328 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
19329 (726te_alu_shift_op): Likewise.
19330 (726te_alu_shift_reg_op): Likewise.
19331 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
19332 (mp626_alu_shift_op): Likewise.
19333 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
19334 (pj4_alu_conds): Likewise.
19335 (pj4_shift): Likewise.
19336 (pj4_shift_conds): Likewise.
19337 (pj4_alu_shift): Likewise.
19338 (pj4_alu_shift_conds): Likewise.
19339 * config/aarch64/aarch64.md: Update for attribute change
19340 all occurrences of arlo_* and shift* types.
19341
19342 2013-09-05 Mike Stump <mikestump@comcast.net>
19343
19344 * tree.h: Move documentation for tree_function_decl to tree-core.h
19345 with the declaration.
19346
19347 2013-09-05 Peter Bergner <bergner@vnet.ibm.com>
19348
19349 PR target/58139
19350 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
19351 looking for widest mode.
19352
19353 2013-09-05 Eric Botcazou <ebotcazou@adacore.com>
19354
19355 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
19356
19357 2013-09-05 Richard Biener <rguenther@suse.de>
19358
19359 PR tree-optimization/58137
19360 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
19361 Do not create vectors of pointers.
19362 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
19363 types for the components of the vector initializer.
19364 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
19365 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
19366
19367 2013-09-05 Martin Jambor <mjambor@suse.cz>
19368
19369 * ipa-prop.c (remove_described_reference): Accept missing references,
19370 return false if that hppens, otherwise return true.
19371 (cgraph_node_for_jfunc): New function.
19372 (try_decrement_rdesc_refcount): Likewise.
19373 (try_make_edge_direct_simple_call): Use them.
19374 (ipa_edge_removal_hook): Remove references from rdescs.
19375 (ipa_edge_duplication_hook): Clone rdescs and their references
19376 when the new edge has the same caller as the old one.
19377 * cgraph.c (cgraph_resolve_speculation): Remove speculative
19378 reference before removing any edges.
19379
19380 2013-09-05 Richard Earnshaw <rearnsha@arm.com>
19381
19382 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
19383 initial store.
19384 * thumb2.md (thumb2_storewb_parisi): New pattern.
19385
19386 2013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
19387
19388 * config/aarch64/aarch64-option-extensions.def: Add
19389 AARCH64_OPT_EXTENSION of 'crc'.
19390 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
19391 (AARCH64_ISA_CRC): Ditto.
19392 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
19393 description of the CRC extension.
19394
19395 2013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
19396
19397 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
19398 * config/rs6000/linux.h: Ditto.
19399 * alpha/linux.h: Ditto.
19400 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
19401 no_c99_libc_has_function.
19402 * config/c6x/uclinux-elf.h: Ditto.
19403 * config/lm32/uclinux-elf.h: Ditto.
19404 * config/m68k/uclinux.h: Ditto.
19405 * config/moxie/uclinux.h: Ditto.
19406 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
19407 (crisv32-*-linux*, cris-*-linux*): Ditto.
19408 * config/bfin/bfin.c: Include "tm_p.h".
19409
19410 2013-09-05 Richard Biener <rguenther@suse.de>
19411
19412 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
19413 check for a definition without a basic-block.
19414
19415 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
19416 Sofiane Naci <sofiane.naci@arm.com>
19417
19418 * config/aarch64/aarch64.md
19419 (*movti_aarch64): Rename r_2_f and f_2_r.
19420 (*movsf_aarch64): Likewise.
19421 (*movdf_aarch64): Likewise.
19422 (*movtf_aarch64): Likewise.
19423 (aarch64_movdi_<mode>low): Likewise.
19424 (aarch64_movdi_<mode>high): Likewise.
19425 (aarch64_mov<mode>high_di): Likewise.
19426 (aarch64_mov<mode>low_di): Likewise.
19427 (aarch64_movtilow_tilow): Likewise.
19428 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
19429 values to config/arm/types.md
19430 (attribute "conds"): Update for attribute change.
19431 (anddi3_insn): Likewise.
19432 (iordi3_insn): Likewise.
19433 (xordi3_insn): Likewise.
19434 (one_cmpldi2): Likewise.
19435 * config/arm/types.md (type): Add Neon types.
19436 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
19437 use "type" attribute.
19438 (movmisalign<mode>_neon_store): Likewise.
19439 (movmisalign<mode>_neon_load): Likewise.
19440 (vec_set<mode>_internal): Likewise.
19441 (vec_setv2di_internal): Likewise.
19442 (vec_extract<mode>): Likewise.
19443 (vec_extractv2di): Likewise.
19444 (add<mode>3_neon): Likewise.
19445 (adddi3_neon): Likewise.
19446 (sub<mode>3_neon): Likewise.
19447 (subdi3_neon): Likewise.
19448 (mul<mode>3_neon): Likewise.
19449 (mul<mode>3add<mode>_neon): Likewise.
19450 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
19451 (fma<VCVTF:mode>4)): Likewise.
19452 (fma<VCVTF:mode>4_intrinsic): Likewise.
19453 (fmsub<VCVTF:mode>4)): Likewise.
19454 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
19455 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
19456 (ior<mode>3): Likewise.
19457 (and<mode>3): Likewise.
19458 (anddi3_neon): Likewise.
19459 (orn<mode>3_neon): Likewise.
19460 (orndi3_neon): Likewise.
19461 (bic<mode>3_neon): Likewise.
19462 (bicdi3_neon): Likewise.
19463 (xor<mode>3): Likewise.
19464 (one_cmpl<mode>2): Likewise.
19465 (abs<mode>2): Likewise.
19466 (neg<mode>2): Likewise.
19467 (umin<mode>3_neon): Likewise.
19468 (umax<mode>3_neon): Likewise.
19469 (smin<mode>3_neon): Likewise.
19470 (smax<mode>3_neon): Likewise.
19471 (vashl<mode>3): Likewise.
19472 (vashr<mode>3_imm): Likewise.
19473 (vlshr<mode>3_imm): Likewise.
19474 (ashl<mode>3_signed): Likewise.
19475 (ashl<mode>3_unsigned): Likewise.
19476 (neon_load_count): Likewise.
19477 (ashldi3_neon_noclobber): Likewise.
19478 (signed_shift_di3_neon): Likewise.
19479 (unsigned_shift_di3_neon): Likewise.
19480 (ashrdi3_neon_imm_noclobber): Likewise.
19481 (lshrdi3_neon_imm_noclobber): Likewise.
19482 (widen_ssum<mode>3): Likewise.
19483 (widen_usum<mode>3): Likewise.
19484 (quad_halves_<code>v4si): Likewise.
19485 (quad_halves_<code>v4sf): Likewise.
19486 (quad_halves_<code>v8hi): Likewise.
19487 (quad_halves_<code>v16qi): Likewise.
19488 (reduc_splus_v2di): Likewise.
19489 (neon_vpadd_internal<mode>): Likewise.
19490 (neon_vpsmin<mode>): Likewise.
19491 (neon_vpsmax<mode>): Likewise.
19492 (neon_vpumin<mode>): Likewise.
19493 (neon_vpumax<mode>): Likewise.
19494 (ss_add<mode>_neon): Likewise.
19495 (us_add<mode>_neon): Likewise.
19496 (ss_sub<mode>_neon): Likewise.
19497 (us_sub<mode>_neon): Likewise.
19498 (neon_vadd<mode>_unspec): Likewise.
19499 (neon_vaddl<mode>): Likewise.
19500 (neon_vaddw<mode>): Likewise.
19501 (neon_vhadd<mode>): Likewise.
19502 (neon_vqadd<mode>): Likewise.
19503 (neon_vaddhn<mode>): Likewise.
19504 (neon_vmul<mode>): Likewise.
19505 (neon_vmla<mode>): Likewise.
19506 (neon_vmlal<mode>): Likewise.
19507 (neon_vmls<mode>): Likewise.
19508 (neon_vmlsl<mode>): Likewise.
19509 (neon_vqdmulh<mode>): Likewise.
19510 (neon_vqdmlal<mode>): Likewise.
19511 (neon_vqdmlsl<mode>): Likewise.
19512 (neon_vmull<mode>): Likewise.
19513 (neon_vqdmull<mode>): Likewise.
19514 (neon_vsub<mode>_unspec): Likewise.
19515 (neon_vsubl<mode>): Likewise.
19516 (neon_vsubw<mode>): Likewise.
19517 (neon_vqsub<mode>): Likewise.
19518 (neon_vhsub<mode>): Likewise.
19519 (neon_vsubhn<mode>): Likewise.
19520 (neon_vceq<mode>): Likewise.
19521 (neon_vcge<mode>): Likewise.
19522 (neon_vcgeu<mode>): Likewise.
19523 (neon_vcgt<mode>): Likewise.
19524 (neon_vcgtu<mode>): Likewise.
19525 (neon_vcle<mode>): Likewise.
19526 (neon_vclt<mode>): Likewise.
19527 (neon_vcage<mode>): Likewise.
19528 (neon_vcagt<mode>): Likewise.
19529 (neon_vtst<mode>): Likewise.
19530 (neon_vabd<mode>): Likewise.
19531 (neon_vabdl<mode>): Likewise.
19532 (neon_vaba<mode>): Likewise.
19533 (neon_vabal<mode>): Likewise.
19534 (neon_vmax<mode>): Likewise.
19535 (neon_vmin<mode>): Likewise.
19536 (neon_vpaddl<mode>): Likewise.
19537 (neon_vpadal<mode>): Likewise.
19538 (neon_vpmax<mode>): Likewise.
19539 (neon_vpmin<mode>): Likewise.
19540 (neon_vrecps<mode>): Likewise.
19541 (neon_vrsqrts<mode>): Likewise.
19542 (neon_vqabs<mode>): Likewise.
19543 (neon_vqneg<mode>): Likewise.
19544 (neon_vcls<mode>): Likewise.
19545 (clz<mode>2): Likewise.
19546 (popcount<mode>2): Likewise.
19547 (neon_vrecpe): Likewise.
19548 (neon_vrsqrte): Likewise.
19549 (neon_vget_lane<mode>_sext_internal): Likewise.
19550 (neon_vget_lane<mode>_zext_internal): Likewise.
19551 (neon_vdup_n<mode>): Likewise.
19552 (neon_vdup_nv2di): Likewise.
19553 (neon_vdpu_lane<mode>_internal): Likewise.
19554 (neon_vswp<mode>): Likewise.
19555 (float<mode><V_cvtto>2): Likewise.
19556 (floatuns<mode><V_cvtto>2): Likewise.
19557 (fix_trunc<mode><V_cvtto>)2): Likewise
19558 (fixuns_trunc<mode><V_cvtto)2): Likewise.
19559 (neon_vcvt<mode>): Likewise.
19560 (neon_vcvtv4sfv4hf): Likewise.
19561 (neon_vcvtv4hfv4sf): Likewise.
19562 (neon_vcvt_n<mode>): Likewise.
19563 (neon_vmovn<mode>): Likewise.
19564 (neon_vqmovn<mode>): Likewise.
19565 (neon_vqmovun<mode>): Likewise.
19566 (neon_vmovl<mode>): Likewise.
19567 (neon_vmul_lane<mode>): Likewise.
19568 (neon_vmull_lane<mode>): Likewise.
19569 (neon_vqdmull_lane<mode>): Likewise.
19570 (neon_vqdmulh_lane<mode>): Likewise.
19571 (neon_vmla_lane<mode>): Likewise.
19572 (neon_vmlal_lane<mode>): Likewise.
19573 (neon_vqdmlal_lane<mode>): Likewise.
19574 (neon_vmls_lane<mode>): Likewise.
19575 (neon_vmlsl_lane<mode>): Likewise.
19576 (neon_vqdmlsl_lane<mode>): Likewise.
19577 (neon_vext<mode>): Likewise.
19578 (neon_vrev64<mode>): Likewise.
19579 (neon_vrev32<mode>): Likewise.
19580 (neon_vrev16<mode>): Likewise.
19581 (neon_vbsl<mode>_internal): Likewise.
19582 (neon_vshl<mode>): Likewise.
19583 (neon_vqshl<mode>): Likewise.
19584 (neon_vshr_n<mode>): Likewise.
19585 (neon_vshrn_n<mode>): Likewise.
19586 (neon_vqshrn_n<mode>): Likewise.
19587 (neon_vqshrun_n<mode>): Likewise.
19588 (neon_vshl_n<mode>): Likewise.
19589 (neon_vqshl_n<mode>): Likewise.
19590 (neon_vqshlu_n<mode>): Likewise.
19591 (neon_vshll_n<mode>): Likewise.
19592 (neon_vsra_n<mode>): Likewise.
19593 (neon_vsri_n<mode>): Likewise.
19594 (neon_vsli_n<mode>): Likewise.
19595 (neon_vtbl1v8qi): Likewise.
19596 (neon_vtbl2v8qi): Likewise.
19597 (neon_vtbl3v8qi): Likewise.
19598 (neon_vtbl4v8qi): Likewise.
19599 (neon_vtbx1v8qi): Likewise.
19600 (neon_vtbx2v8qi): Likewise.
19601 (neon_vtbx3v8qi): Likewise.
19602 (neon_vtbx4v8qi): Likewise.
19603 (neon_vtrn<mode>_internal): Likewise.
19604 (neon_vzip<mode>_internal): Likewise.
19605 (neon_vuzp<mode>_internal): Likewise.
19606 (neon_vld1<mode>): Likewise.
19607 (neon_vld1_lane<mode>): Likewise.
19608 (neon_vld1_dup<mode>): Likewise.
19609 (neon_vld1_dupv2di): Likewise.
19610 (neon_vst1<mode>): Likewise.
19611 (neon_vst1_lane<mode>): Likewise.
19612 (neon_vld2<mode>): Likewise.
19613 (neon_vld2_lane<mode>): Likewise.
19614 (neon_vld2_dup<mode>): Likewise.
19615 (neon_vst2<mode>): Likewise.
19616 (neon_vst2_lane<mode>): Likewise.
19617 (neon_vld3<mode>): Likewise.
19618 (neon_vld3qa<mode>): Likewise.
19619 (neon_vld3qb<mode>): Likewise.
19620 (neon_vld3_lane<mode>): Likewise.
19621 (neon_vld3_dup<mode>): Likewise.
19622 (neon_vst3<mode>): Likewise.
19623 (neon_vst3qa<mode>): Likewise.
19624 (neon_vst3qb<mode>): Likewise.
19625 (neon_vst3_lane<mode>): Likewise.
19626 (neon_vld4<mode>): Likewise.
19627 (neon_vld4qa<mode>): Likewise.
19628 (neon_vld4qb<mode>): Likewise.
19629 (neon_vld4_lane<mode>): Likewise.
19630 (neon_vld4_dup<mode>): Likewise.
19631 (neon_vst4<mode>): Likewise.
19632 (neon_vst4qa<mode>): Likewise.
19633 (neon_vst4qb<mode>): Likewise.
19634 (neon_vst4_lane<mode>): Likewise.
19635 (neon_vec_unpack<US>_lo_<mode>): Likewise.
19636 (neon_vec_unpack<US>_hi_<mode>): Likewise.
19637 (neon_vec_<US>mult_lo_<mode>): Likewise.
19638 (neon_vec_<US>mult_hi_<mode>): Likewise.
19639 (neon_vec_<US>shiftl_<mode>): Likewise.
19640 (neon_unpack<US>_<mode>): Likewise.
19641 (neon_vec_<US>mult_<mode>): Likewise.
19642 (vec_pack_trunc_<mode>): Likewise.
19643 (neon_vec_pack_trunk_<mode>): Likewise.
19644 (neon_vabd<mode>_2): Likewise.
19645 (neon_vabd<mode>_3): Likewise.
19646 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
19647 (thumb2_movsi_vfp): Likewise.
19648 (movdi_vfp): Likewise.
19649 (movdi_vfp_cortexa8): Likewise.
19650 (movhf_vfp_neon): Likewise.
19651 (movhf_vfp): Likewiwse.
19652 (movsf_vfp): Likewiwse.
19653 (thumb2_movsf_vfp): Likewiwse.
19654 (movdf_vfp): Likewise.
19655 (thumb2_movdf_vfp): Likewise.
19656 (movsfcc_vfp): Likewise.
19657 (thumb2_movsfcc_vfp): Likewise.
19658 (movdfcc_vfp): Likewise.
19659 (thumb2_movdfcc_vfp): Likewise.
19660 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
19661 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
19662 (v10_v2c): Likewise.
19663 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
19664 attribute change.
19665 (cortex_a15_neon_int_2): Likewise.
19666 (cortex_a15_neon_int_3): Likewise.
19667 (cortex_a15_neon_int_4): Likewise.
19668 (cortex_a15_neon_int_5): Likewise.
19669 (cortex_a15_neon_vqneg_vqabs): Likewise.
19670 (cortex_a15_neon_vmov): Likewise.
19671 (cortex_a15_neon_vaba): Likewise.
19672 (cortex_a15_neon_vaba_qqq): Likewise.
19673 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19674 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
19675 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
19676 scalar_64_32_long_scalar): Likewise.
19677 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19678 (cortex_a15_neon_mla_qqq_8_16): Likewise.
19679 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
19680 lotype_qdd_64_32_long): Likewise.
19681 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
19682 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
19683 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
19684 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
19685 (cortex_a15_neon_shift_1): Likewise.
19686 (cortex_a15_neon_shift_2): Likewise.
19687 (cortex_a15_neon_shift_3): Likewise.
19688 (cortex_a15_neon_vshl_ddd): Likewise.
19689 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
19690 (cortex_a15_neon_vsra_vrsra): Likewise.
19691 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
19692 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
19693 (cortex_a15_neon_fp_vmul_ddd): Likewise.
19694 (cortex_a15_neon_fp_vmul_qqd): Likewise.
19695 (cortex_a15_neon_fp_vmla_ddd): Likewise.
19696 (cortex_a15_neon_fp_vmla_qqq): Likewise.
19697 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
19698 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
19699 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
19700 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
19701 (cortex_a15_neon_bp_simple): Likewise.
19702 (cortex_a15_neon_bp_2cycle): Likewise.
19703 (cortex_a15_neon_bp_3cycle): Likewise.
19704 (cortex_a15_neon_vld1_1_2_regs): Likewise.
19705 (cortex_a15_neon_vld1_3_4_regs): Likewise.
19706 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
19707 (cortex_a15_neon_vld2_4_regs): Likewise.
19708 (cortex_a15_neon_vld3_vld4): Likewise.
19709 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
19710 (cortex_a15_neon_vst1_3_4_regs): Likewise.
19711 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
19712 (cortex_a15_neon_vst3_vst4): Likewise.
19713 (cortex_a15_neon_vld1_vld2_lane): Likewise.
19714 (cortex_a15_neon_vld3_vld4_lane" 10
19715 (cortex_a15_neon_vst1_vst2_lane): Likewise.
19716 (cortex_a15_neon_vst3_vst4_lane): Likewise.
19717 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
19718 (cortex_a15_neon_ldm_2): Likewise.0
19719 (cortex_a15_neon_stm_2): Likewise.
19720 (cortex_a15_neon_mcr): Likewise.
19721 (cortex_a15_neon_mcr_2_mcrr): Likewise.
19722 (cortex_a15_neon_mrc): Likewise.
19723 (cortex_a15_neon_mrrc): Likewise.
19724 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
19725 change.
19726 (cortex_a15_alu_shift): Likewise.
19727 (cortex_a15_alu_shift_reg): Likewise.
19728 (cortex_a15_mult32): Likewise.
19729 (cortex_a15_mult64): Likewise.
19730 (cortex_a15_block): Likewise.
19731 (cortex_a15_branch): Likewise.
19732 (cortex_a15_load1): Likewise.
19733 (cortex_a15_load3): Likewise.
19734 (cortex_a15_store1): Likewise.
19735 (cortex_a15_store3): Likewise.
19736 (cortex_a15_call): Likewise.
19737 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
19738 (cortex_a5_f2r): Likewise.
19739 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
19740 change.
19741 (cortex_a53_f2r): Likewise.
19742 * config/arm/cortex-a7.md
19743 (cortex_a7_branch): Update for attribute change.
19744 (cortex_a7_call): Likewise.
19745 (cortex_a7_alu_imm): Likewise.
19746 (cortex_a7_alu_reg): Likewise.
19747 (cortex_a7_alu_shift): Likewise.
19748 (cortex_a7_mul): Likewise.
19749 (cortex_a7_load1): Likewise.
19750 (cortex_a7_store1): Likewise.
19751 (cortex_a7_load2): Likewise.
19752 (cortex_a7_store2): Likewise.
19753 (cortex_a7_load3): Likewise.
19754 (cortex_a7_store3): Likewise.
19755 (cortex_a7_load4): Likewise.
19756 (cortex_a7_store4): Likewise.
19757 (cortex_a7_fpalu): Likewise.
19758 (cortex_a7_fconst): Likewise.
19759 (cortex_a7_fpmuls): Likewise.
19760 (cortex_a7_neon_mul): Likewise.
19761 (cortex_a7_fpmacs): Likewise.
19762 (cortex_a7_neon_mla: Likewise.
19763 (cortex_a7_fpmuld: Likewise.
19764 (cortex_a7_fpmacd: Likewise.
19765 (cortex_a7_fpfmad: Likewise.
19766 (cortex_a7_fdivs: Likewise.
19767 (cortex_a7_fdivd: Likewise.
19768 (cortex_a7_r2f: Likewise.
19769 (cortex_a7_f2r: Likewise.
19770 (cortex_a7_f_flags: Likewise.
19771 (cortex_a7_f_loads: Likewise.
19772 (cortex_a7_f_loadd: Likewise.
19773 (cortex_a7_f_stores: Likewise.
19774 (cortex_a7_f_stored: Likewise.
19775 (cortex_a7_neon): Likewise.
19776 * config/arm/cortex-a8-neon.md
19777 (cortex_a8_neon_mrc): Update for attribute change.
19778 (cortex_a8_neon_mrrc): Likewise.
19779 (cortex_a8_neon_int_1): Likewise.
19780 (cortex_a8_neon_int_2): Likewise.
19781 (cortex_a8_neon_int_3): Likewise.
19782 (cortex_a8_neon_int_4): Likewise.
19783 (cortex_a8_neon_int_5): Likewise.
19784 (cortex_a8_neon_vqneg_vqabs): Likewise.
19785 (cortex_a8_neon_vmov): Likewise.
19786 (cortex_a8_neon_vaba): Likewise.
19787 (cortex_a8_neon_vaba_qqq): Likewise.
19788 (cortex_a8_neon_vsma): Likewise.
19789 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19790 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
19791 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
19792 long_scalar): Likewise.
19793 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19794 (cortex_a8_neon_mla_qqq_8_16): Likewise.
19795 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
19796 long_scalar_qdd_64_32_long): Likewise.
19797 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
19798 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
19799 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
19800 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
19801 (cortex_a8_neon_shift_1): Likewise.
19802 (cortex_a8_neon_shift_2): Likewise.
19803 (cortex_a8_neon_shift_3): Likewise.
19804 (cortex_a8_neon_vshl_ddd): Likewise.
19805 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
19806 (cortex_a8_neon_vsra_vrsra): Likewise.
19807 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
19808 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
19809 (cortex_a8_neon_fp_vsum): Likewise.
19810 (cortex_a8_neon_fp_vmul_ddd): Likewise.
19811 (cortex_a8_neon_fp_vmul_qqd): Likewise.
19812 (cortex_a8_neon_fp_vmla_ddd): Likewise.
19813 (cortex_a8_neon_fp_vmla_qqq): Likewise.
19814 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
19815 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
19816 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
19817 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
19818 (cortex_a8_neon_bp_simple): Likewise.
19819 (cortex_a8_neon_bp_2cycle): Likewise.
19820 (cortex_a8_neon_bp_3cycle): Likewise.
19821 (cortex_a8_neon_ldr): Likewise.
19822 (cortex_a8_neon_str): Likewise.
19823 (cortex_a8_neon_vld1_1_2_regs): Likewise.
19824 (cortex_a8_neon_vld1_3_4_regs): Likewise.
19825 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
19826 (cortex_a8_neon_vld2_4_regs): Likewise.
19827 (cortex_a8_neon_vld3_vld4): Likewise.
19828 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
19829 (cortex_a8_neon_vst1_3_4_regs): Likewise.
19830 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
19831 (cortex_a8_neon_vst3_vst4): Likewise.
19832 (cortex_a8_neon_vld1_vld2_lane): Likewise.
19833 (cortex_a8_neon_vld3_vld4_lane): Likewise.
19834 (cortex_a8_neon_vst1_vst2_lane): Likewise.
19835 (cortex_a8_neon_vst3_vst4_lane): Likewise.
19836 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
19837 (cortex_a8_neon_mcr): Likewise.
19838 (cortex_a8_neon_mcr_2_mcrr): Likewise.
19839 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
19840 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
19841 change.
19842 (ca9_neon_mrrc): Likewise.
19843 (cortex_a9_neon_int_1): Likewise.
19844 (cortex_a9_neon_int_2): Likewise.
19845 (cortex_a9_neon_int_3): Likewise.
19846 (cortex_a9_neon_int_4): Likewise.
19847 (cortex_a9_neon_int_5): Likewise.
19848 (cortex_a9_neon_vqneg_vqabs): Likewise.
19849 (cortex_a9_neon_vmov): Likewise.
19850 (cortex_a9_neon_vaba): Likewise.
19851 (cortex_a9_neon_vaba_qqq): Likewise.
19852 (cortex_a9_neon_vsma): Likewise.
19853 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19854 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
19855 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
19856 long_scalar): Likewise.
19857 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
19858 (cortex_a9_neon_mla_qqq_8_16): Likewise.
19859 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
19860 long_scalar_qdd_64_32_long): Likewise.
19861 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
19862 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
19863 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
19864 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
19865 (cortex_a9_neon_shift_1): Likewise.
19866 (cortex_a9_neon_shift_2): Likewise.
19867 (cortex_a9_neon_shift_3): Likewise.
19868 (cortex_a9_neon_vshl_ddd): Likewise.
19869 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
19870 (cortex_a9_neon_vsra_vrsra): Likewise.
19871 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
19872 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
19873 (cortex_a9_neon_fp_vsum): Likewise.
19874 (cortex_a9_neon_fp_vmul_ddd): Likewise.
19875 (cortex_a9_neon_fp_vmul_qqd): Likewise.
19876 (cortex_a9_neon_fp_vmla_ddd): Likewise.
19877 (cortex_a9_neon_fp_vmla_qqq): Likewise.
19878 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
19879 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
19880 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
19881 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
19882 (cortex_a9_neon_bp_simple): Likewise.
19883 (cortex_a9_neon_bp_2cycle): Likewise.
19884 (cortex_a9_neon_bp_3cycle): Likewise.
19885 (cortex_a9_neon_ldr): Likewise.
19886 (cortex_a9_neon_str): Likewise.
19887 (cortex_a9_neon_vld1_1_2_regs): Likewise.
19888 (cortex_a9_neon_vld1_3_4_regs): Likewise.
19889 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
19890 (cortex_a9_neon_vld2_4_regs): Likewise.
19891 (cortex_a9_neon_vld3_vld4): Likewise.
19892 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
19893 (cortex_a9_neon_vst1_3_4_regs): Likewise.
19894 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
19895 (cortex_a9_neon_vst3_vst4): Likewise.
19896 (cortex_a9_neon_vld1_vld2_lane): Likewise.
19897 (cortex_a9_neon_vld3_vld4_lane): Likewise.
19898 (cortex_a9_neon_vst1_vst2_lane): Likewise.
19899 (cortex_a9_neon_vst3_vst4_lane): Likewise.
19900 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
19901 (cortex_a9_neon_mcr): Likewise.
19902 (cortex_a9_neon_mcr_2_mcrr): Likewise.
19903 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
19904 (cortex_a9_fps): Likewise.
19905 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
19906 change.
19907 (cortex_m4_fmuls): Likewise.
19908 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
19909 change.
19910 (cortex_r4_mrc): Likewise.
19911 * config/arm/iterators.md: Update comment referring to neon_type.
19912 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
19913 (iwmmxt_movsi_insn): Likewise.
19914 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
19915 attribute change.
19916 (pj4_core_to_vfp): Likewise.
19917 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
19918 attribute change.
19919 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
19920 (vfp_fstore): Likewise.
19921 * doc/md.texi: Change references to neon_type to refer to type.
19922
19923 2013-09-04 Dodji Seketeli <dodji@redhat.com>
19924
19925 * tree.h (DECL_BUILT_IN): Fix typo in comment.
19926
19927 2013-09-04 David Edelsohn <dje.gcc@gmail.com>
19928
19929 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
19930 lglobl if not weak.
19931
19932 2013-09-04 Easwaran Raman <eraman@google.com>
19933
19934 PR middle-end/57370
19935 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
19936 (build_and_add_sum): Use it.
19937 (appears_later_in_bb): Simplify code.
19938
19939 2013-09-04 Teresa Johnson <tejohnson@google.com>
19940
19941 * dumpfile.c (dump_finish): Don't close stderr/stdout.
19942
19943 2013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
19944
19945 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
19946
19947 2013-09-04 Jan Hubicka <jh@suse.cz>
19948
19949 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
19950 * ipa-devirt.c: Include diganostic.h
19951 (odr_type_d): Add types and types_set.
19952 (hash_type_name): Work for types with vtables during LTO.
19953 (odr_hasher::remove): Fix comment; destroy types_set.
19954 (add_type_duplicate): New function,
19955 (get_odr_type): Use it.
19956 (dump_type_inheritance_graph): Dump type duplicates.
19957 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
19958 graph.
19959 * tree.c (types_same_for_odr): Give exact answers on types with
19960 virtual tables.
19961
19962 2013-09-04 Dodji Seketeli <dodji@redhat.com>
19963
19964 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
19965 explaining their differences.
19966
19967 2013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
19968
19969 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
19970
19971 2013-09-03 Jeff Law <law@redhat.com>
19972
19973 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
19974 when not threading through a joiner block. Pass joiner/no joiner
19975 state to register_jump_thread.
19976 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
19977 state from argument rather than implying on path length.
19978 Dump the entire jump thread path into debugging dump.
19979 * tree-flow.h (register_jump_thread): Update prototype.
19980
19981 2013-08-29 Xinliang David Li <davidxl@google.com>
19982
19983 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
19984 Remove a trivial gcc_assert.
19985
19986 2013-08-29 Xinliang David Li <davidxl@google.com>
19987
19988 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
19989 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
19990 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
19991 Delay base decl alignment adjustment.
19992 * tree-vectorizer.c (vect_destroy_datarefs): New function.
19993 * tree-vectorizer.h: New data structure.
19994 (set_dr_misalignment): New function.
19995 (dr_misalignment): Ditto.
19996 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
19997 (vectorizable_load): Ditto.
19998 (ensure_base_align): New function.
19999 (vectorize_loops): Add dbg_cnt support.
20000 (execute_vect_slp): Ditto.
20001 * dbgcnt.def: New debug counter.
20002 * Makefile: New dependency.
20003
20004 2013-09-03 Meador Inge <meadori@codesourcery.com>
20005
20006 Revert:
20007
20008 2013-08-30 Meador Inge <meadori@codesourcery.com>
20009
20010 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
20011
20012 2013-09-03 David Edelsohn <dje.gcc@gmail.com>
20013
20014 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
20015 function descriptor.
20016
20017 2013-09-03 Richard Biener <rguenther@suse.de>
20018
20019 * tree-affine.c (add_elt_to_tree): Fix association issue,
20020 avoid useless converts and make sure to always return a
20021 properly typed result.
20022
20023 2013-09-03 Richard Biener <rguenther@suse.de>
20024
20025 PR middle-end/57656
20026 * fold-const.c (negate_expr_p): Fix division case.
20027 (negate_expr): Likewise.
20028
20029 2013-09-03 Richard Biener <rguenther@suse.de>
20030
20031 PR lto/58285
20032 * tree-streamer-out.c: Include tm.h.
20033 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
20034
20035 2013-09-03 Jan Hubicka <jh@suse.cz>
20036
20037 * tree-profile.c (tree_profiling): Cleanup CFG when done.
20038
20039 2013-09-03 Alan Modra <amodra@gmail.com>
20040
20041 * config.gcc (powerpc*-*-linux*): Add support for little-endian
20042 multilibs to big-endian target and vice versa.
20043 * config/rs6000/t-linux64: Use := assignment on all vars.
20044 (MULTILIB_EXTRA_OPTS): Remove fPIC.
20045 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
20046 * config/rs6000/t-linux64le: New file.
20047 * config/rs6000/t-linux64bele: New file.
20048 * config/rs6000/t-linux64lebe: New file.
20049
20050 2013-09-02 Jan Hubicka <jh@suse.cz>
20051
20052 * ipa-inline-transform.c (inline_transform): Do not
20053 optimize_inline_calls when not optimizing.
20054
20055 2013-09-02 Jan Hubicka <jh@suse.cz>
20056
20057 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
20058 duplicated nodes for assembler names.
20059 * symtab.c (symtab_unregister_node): Do not attempt to unlink
20060 hard registers from assembler name hash.
20061
20062 2013-09-02 Jan Hubicka <jh@suse.cz>
20063
20064 * ipa-split.c (execute_split_functions): Split externally visible
20065 functions called once.
20066
20067 2013-09-02 Martin Jambor <mjambor@suse.cz>
20068
20069 PR ipa/58106
20070 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
20071 linked list. When finding the correct duplicate, also consider also
20072 the caller in additon to its inlined_to node.
20073
20074 2013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
20075
20076 * config/aarch64/aarch64-simd-builtins.def
20077 (dup_lane_scalar): Remove.
20078 * config/aarch64/aarch64-simd.md
20079 (aarch64_simd_dup): Add 'w->w' alternative.
20080 (aarch64_dup_lane<mode>): Allow for VALL.
20081 (aarch64_dup_lane_scalar<mode>): Remove.
20082 (aarch64_dup_lane_<vswap_width_name><mode>): New.
20083 (aarch64_get_lane_signed<mode>): Add w->w altenative.
20084 (aarch64_get_lane_unsigned<mode>): Likewise.
20085 (aarch64_get_lane<mode>): Likewise.
20086 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
20087 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
20088 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
20089 (VCON): Change container of V2SF.
20090 (vswap_width_name): Likewise.
20091 * config/aarch64/arm_neon.h
20092 (__aarch64_vdup_lane_any): New.
20093 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
20094 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
20095 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
20096
20097 2013-09-02 Eric Botcazou <ebotcazou@adacore.com>
20098
20099 PR middle-end/56382
20100 * expr.c (emit_move_complex): Do not move complex FP values as parts if
20101 the source or the destination is a single hard register.
20102
20103 2013-09-02 Richard Biener <rguenther@suse.de>
20104
20105 PR middle-end/57511
20106 * tree-scalar-evolution.c (instantiate_scev_name): Allow
20107 non-linear SCEVs.
20108
20109 2013-09-02 Richard Biener <rguenther@suse.de>
20110
20111 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
20112 arithmetic to sizetype.
20113
20114 2013-09-02 Bin Cheng <bin.cheng@arm.com>
20115
20116 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
20117 Find auto-increment use both before and after candidate.
20118
20119 2013-09-02 Marek Polacek <polacek@redhat.com>
20120
20121 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
20122
20123 2013-09-01 Jan Hubicka <jh@suse.cz>
20124
20125 * Makefile.in: Add ipa-profile.o
20126 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
20127 * cgraph.c (struct cgraph_propagate_frequency_data,
20128 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
20129 ipa-profile.c; replace cgraph_ by ipa_ prefix.
20130 * cgraph.h (cgraph_propagate_frequency): Remove.
20131 * ipa-inline-analysis.c: Include ipa-utils.h;
20132 drop duplicated cfgloop.h.
20133 (inline_update_callee_summaries): Update.
20134 * ipa-profile.c: New file.
20135 * ipa-utils.h (ipa_propagate_frequency): Declare.
20136 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
20137 data-streamer.h, value-prof.h.
20138 (symtab_remove_unreachable_nodes): Update profile.
20139 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
20140 account_time_size, cmp_counts, dump_histogram,
20141 ipa_profile_generate_summary, ipa_profile_write_summary,
20142 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
20143 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
20144 Move to ipa-profile.c.
20145
20146 2013-09-01 John David Anglin <danglin@gcc.gnu.org>
20147
20148 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
20149
20150 2013-09-01 Jan Hubicka <jh@suse.cz>
20151
20152 * common.opt (fdevirtualize-speculatively): New function.
20153 * invoke.texi (fdevirtualize-speculatively): Document.
20154 * ipa-devirt.c: Include ipa-inline.h
20155 (likely_target_p): New function.
20156 (ipa_devirt): New function.
20157 (gate_ipa_devirt): New function.
20158 (pass_data_ipa_devirt): New static var.
20159 (pass_ipa_devirt): Likewise.
20160 (make_pass_ipa_devirt): New function.
20161 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
20162 (common_handle_option): Disable devirtualization when
20163 value range profiling is available.
20164 * passes.def (pass_ipa_devirt): Add.
20165 * timever.def (TV_IPA_DEVIRT): New timevar.
20166 * tree-pass.h (make_pass_ipa_devirt):
20167
20168 2013-09-01 Iain Sandoe <iain@codesourcery.com>
20169
20170 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
20171 include sanitize(undefined).
20172
20173 2013-08-31 Diego Novillo <dnovillo@google.com>
20174
20175 * Makefile.in (TREE_CORE_H): Define.
20176 (TREE_H): Use.
20177 (GTFILES): Add tree-core.h.
20178 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
20179 size the array.
20180 * tree-core.h: New file.
20181 Move all data structures, enum, typedefs, global
20182 declarations and constants from ...
20183 * tree.h: ... here.
20184
20185 2013-08-31 Jan Hubicka <jh@suse.cz>
20186
20187 * bulitins.c (expand_builtin): Do not early exit for gcov
20188 instrumented functions.
20189
20190 2013-08-31 Marek Polacek <polacek@redhat.com>
20191
20192 * ubsan.c: Include tm_p.h.
20193
20194 2013-08-31 Jan Hubicka <jh@suse.cz>
20195
20196 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
20197 warning.
20198
20199 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
20200 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
20201 * tree-cfg.c (verify_gimple_label): ... here.
20202 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
20203 (ipa_merge_profiles): New function.
20204 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
20205 (lto_input_function_body): Likewise.
20206 * ipa-utils.h (ipa_merge_profiles): Declare.
20207 * lto-streamer.h (lto_input_function_body): Update prototype.
20208 (emit_label_in_global_context_p): Remove.
20209 * lto-symtab.c: Include ipa-utils.h
20210 (lto_cgraph_replace_node): Use ipa_merge_profiles.
20211
20212 2013-08-31 Jan Hubicka <jh@suse.cz>
20213
20214 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
20215
20216 2013-08-31 Jan Hubicka <jh@suse.cz>
20217
20218 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
20219
20220 2013-08-31 Uros Bizjak <ubizjak@gmail.com>
20221
20222 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
20223 "cmp" RTX before signed_comparison_operator check to account
20224 for "code" changes.
20225
20226 2013-08-30 Jan Hubicka <jh@suse.cz>
20227
20228 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
20229 (detect_type_change_1): Rename to ...
20230 (detect_type_change): ... this one; early return on non-polymorphic
20231 types.
20232 (detect_type_change_ssa): Add comp_type parameter; update
20233 use of detect_type_change.
20234 (compute_complex_assign_jump_func): Add param_type parameter;
20235 update use of detect_type_change_ssa.
20236 (compute_complex_ancestor_jump_func): Likewise.
20237 (ipa_get_callee_param_type): New function.
20238 (ipa_compute_jump_functions_for_edge): Compute parameter type;
20239 update calls to the jump function computation functions.
20240
20241 2013-08-30 Teresa Johnson <tejohnson@google.com>
20242 Steven Bosscher <steven@gcc.gnu.org>
20243
20244 * cfgrtl.c (fixup_new_cold_bb): New routine.
20245 (commit_edge_insertions): Invoke fixup_partitions.
20246 (find_partition_fixes): New routine.
20247 (fixup_partitions): Ditto.
20248 (verify_hot_cold_block_grouping): Update comments.
20249 (rtl_verify_edges): Invoke find_partition_fixes.
20250 (rtl_verify_bb_pointers): Update comments.
20251 (rtl_verify_bb_layout): Ditto.
20252 * basic-block.h (probably_never_executed_edge_p): Declare.
20253 (fixup_partitions): Ditto.
20254 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
20255 * bb-reorder.c (sanitize_hot_paths): New function.
20256 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
20257 sanitize_hot_paths.
20258 * predict.c (probably_never_executed_edge_p): New routine.
20259 * cfg.c (check_bb_profile): Add partition insanity warnings.
20260
20261 2013-08-30 Meador Inge <meadori@codesourcery.com>
20262
20263 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
20264
20265 2013-08-30 Marek Polacek <polacek@redhat.com>
20266
20267 * Makefile.in (ubsan.o): Add.
20268 (c-family/c-ubsan.o): Add.
20269 (builtins.o): Add ubsan.h dependency.
20270 * ubsan.h: New file.
20271 * ubsan.c: New file.
20272 * common.opt: Add -fsanitize=undefined option.
20273 (flag_sanitize): Add variable.
20274 (fsanitize=): Add option. Add Driver.
20275 (fsanitize=thread): Remove option.
20276 (fsanitize=address): Likewise.
20277 (static-libubsan): New option.
20278 * doc/invoke.texi: Document the new flag and -static-libubsan.
20279 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
20280 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
20281 * builtin-attrs.def (ATTR_COLD): Define.
20282 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
20283 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
20284 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
20285 * flag-types.h (sanitize_code): New enum.
20286 * opts.c (common_handle_option): Parse command line arguments
20287 of -fsanitize=. Add -fsanitize=unreachable option.
20288 * varasm.c (get_variable_section): Adjust.
20289 (assemble_noswitch_variable): Likewise.
20290 (assemble_variable): Likewise.
20291 (output_constant_def_contents): Likewise.
20292 (categorize_decl_for_section): Likewise.
20293 (place_block_symbol): Likewise.
20294 (output_object_block): Likewise.
20295 * builtins.def: Likewise.
20296 * toplev.c (compile_file): Likewise.
20297 (process_options): Likewise.
20298 * cppbuiltin.c: Likewise.
20299 * tsan.c (tsan_pass): Likewise.
20300 (tsan_gate): Likewise.
20301 (tsan_gate_O0): Likewise.
20302 * cfgexpand.c (partition_stack_vars): Likewise.
20303 (expand_stack_vars): Likewise.
20304 (defer_stack_allocation): Likewise.
20305 (expand_used_vars): Likewise.
20306 * cfgcleanup.c (old_insns_match_p): Likewise.
20307 * asan.c (asan_finish_file): Likewise.
20308 (asan_instrument): Likewise.
20309 (gate_asan): Likewise.
20310 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
20311 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
20312 (asan_global_struct): Use pointer_sized_int_node instead
20313 calling build_nonstandard_integer_type.
20314 (initialize_sanitizer_builtins): Likewise.
20315 (asan_finish_file): Likewise.
20316 * gcc.c: Document %{%:function(args):X}.
20317 (static_spec_functions): Add sanitize.
20318 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
20319 store funcval != NULL there.
20320 (do_spec_1): Adjust handle_spec_function caller.
20321 (handle_braces): Allow %:function(args) as condition.
20322 (sanitize_spec_function): New function.
20323 (ADD_STATIC_LIBUBSAN_LIBS): Define.
20324 (LIBUBSAN_SPEC): Likewise.
20325 (LIBUBSAN_EARLY_SPEC): Likewise.
20326 (SANITIZER_SPEC): Handle libubsan.
20327 (SANITIZER_EARLY_SPEC): Likewise.
20328 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
20329 instead of fsanitize=address.
20330 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
20331 instead of fsanitize=address*.
20332 * builtins.c: Include ubsan.h.
20333 (fold_builtin_0): Instrument __builtin_unreachable.
20334 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
20335 instead of flag_asan.
20336 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
20337 (pointer_sized_int_node): Define.
20338 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
20339
20340 2013-08-30 Mike Stump <mikestump@comcast.net>
20341
20342 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
20343 with RE patterns.
20344
20345 2013-08-29 Jan Hubicka <jh@suse.cz>
20346
20347 * cgraph.c (cgraph_function_body_availability): Handle weakref
20348 correctly.
20349 * passes.def: Remove pass_fixup_cfg.
20350 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
20351 track when we need to remove functions.
20352 (gate_ipa_inline): Execute inlining always; add comment why.
20353 (pass_data_ipa_inline): Remove TODO_remove_functions.
20354 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
20355 do not produce summaries.
20356 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
20357 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
20358 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
20359 constant pool and vtable.
20360
20361 2013-08-30 Tejas Belagod <tejas.belagod@arm.com>
20362
20363 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
20364 New arm_neon.h's internal macros to specify 64-bit constants.
20365 Avoid using stdint.h's macros.
20366
20367 2013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
20368
20369 * recog.c (verify_changes): Verify that changes[i].old is non-zero
20370 before applying REG_P.
20371
20372 2013-08-30 Jakub Jelinek <jakub@redhat.com>
20373
20374 PR tree-optimization/58277
20375 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
20376 after seeing too many stmts with vdef in between dombb and current
20377 bb, invalidate everything.
20378
20379 2013-08-30 Richard Biener <rguenther@suse.de>
20380
20381 * fold-const.c (fold_single_bit_test): Fix overflow test.
20382
20383 2013-08-30 Eric Botcazou <ebotcazou@adacore.com>
20384
20385 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
20386 and which can live in a register, always retrieve the value on entry.
20387 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
20388 passed by invisible reference specially.
20389 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
20390 (vt_add_function_parameter): Correctly deal with a parameter passed by
20391 invisible reference.
20392
20393 2013-08-30 Jan Hubicka <jh@suse.cz>
20394
20395 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
20396
20397 2013-08-30 Richard Biener <rguenther@suse.de>
20398
20399 PR tree-optimization/58228
20400 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
20401 allow invariant loads in nested loop vectorization.
20402
20403 2013-08-30 Richard Biener <rguenther@suse.de>
20404
20405 PR tree-optimization/58223
20406 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
20407 (has_anti_or_output_dependence): ... this and adjust to also
20408 look for output dependences.
20409 (mark_nodes_having_upstream_mem_writes): Adjust.
20410 (rdg_flag_uses): Likewise.
20411
20412 2013-08-30 Richard Biener <rguenther@suse.de>
20413
20414 PR tree-optimization/58010
20415 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
20416 assert that we have a loop-closed PHI.
20417
20418 2013-08-29 Jan Hubicka <jh@suse.cz>
20419
20420 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
20421 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
20422 * lto-section-in.c (lto_free_function_in_decl_state): New function.
20423 (lto_free_function_in_decl_state_for_node): New function.
20424
20425 2013-08-29 Xinliang David Li <davidxl@google.com>
20426
20427 * loop-unroll.c (report_unroll_peel): Minor message change.
20428 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
20429 Emit alignment peeling message with default -fopt-info.
20430 (vect_loop_versioning): Emit loop version info message.
20431 * tree-vectorizer.c (vectorize_loops): Minor message change.
20432 (execute_vect_slp): Ditto.
20433
20434 2013-08-29 Eric Botcazou <ebotcazou@adacore.com>
20435
20436 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
20437 of the clone from the DECL_NAME of the original function.
20438
20439 2013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
20440
20441 * passes.c (register_pass): Add overload.
20442 * tree-pass.h (register_pass): Forward declare it. Add comment.
20443
20444 2013-08-29 Jan Hubicka <jh@suse.cz>
20445
20446 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
20447 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
20448 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
20449 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
20450 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
20451 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
20452 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
20453 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
20454
20455 2013-08-29 Teresa Johnson <tejohnson@google.com>
20456
20457 * dumpfile.c (dump_loc): Output column number.
20458 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
20459 * doc/invoke.texi: Document optall -fopt-info flag.
20460 * profile.c (read_profile_edge_counts): Use new dump framework.
20461 (compute_branch_probabilities): Ditto.
20462 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
20463 when pass not in any opt group.
20464 * pass_manager.h (pass_manager::get_pass_profile): New method.
20465 * value-prof.c (check_counter): Use new dump framework.
20466 (check_ic_target): Ditto.
20467 * coverage.c (get_coverage_counts): Ditto.
20468 (coverage_init): Setup new dump framework.
20469
20470 2013-08-29 Richard Biener <rguenther@suse.de>
20471
20472 PR tree-optimization/58246
20473 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
20474 handle the dominance check inside a basic-block.
20475
20476 2013-08-29 Richard Biener <rguenther@suse.de>
20477
20478 PR middle-end/57287
20479 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
20480 of default defs that appear in abnormal PHI nodes.
20481
20482 2013-08-29 Richard Biener <rguenther@suse.de>
20483
20484 PR tree-optimization/57685
20485 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
20486 single-use operands to avoid exponential complexity.
20487
20488 2013-08-28 Dehao Chen <dehao@google.com>
20489
20490 * ipa-inline.c (edge_badness): Fix integer underflow.
20491
20492 2013-08-28 Uros Bizjak <ubizjak@gmail.com>
20493
20494 * gtm-builtins.def (_ITM_free): Declare leaf.
20495
20496 2013-08-28 Jakub Jelinek <jakub@redhat.com>
20497
20498 PR target/58067
20499 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
20500 (*tls_local_dynamic_base_64_largepic): Likewise.
20501 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
20502 Remove predicate from call operand.
20503 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
20504 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
20505
20506 2013-08-28 Jeff Law <law@redhat.com>
20507
20508 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
20509 checks for the number of predecessors and successors allowed.
20510 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
20511 which require copying a joiner block if there is a request which
20512 is a subpath that requires no joiner block copying.
20513
20514 2013-08-28 Jan Hubicka <jh@suse.cz>
20515
20516 * lto-streamer-out.c (DFS_write_tree_body): Drop
20517 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
20518 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
20519 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
20520 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
20521 Do not read DECL_ERROR_ISSUED.
20522 (unpack_ts_decl_with_vis_value_fields): Do not read
20523 DECL_DEFER_OUTPUT.
20524 (lto_input_ts_binfo_tree_pointers): Do not read
20525 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
20526 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
20527 write DECL_ERROR_ISSUED..
20528 (pack_ts_decl_with_vis_value_fields): Do not write
20529 DECL_DEFER_OUTPUT.
20530 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
20531 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
20532 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
20533 * tree.h (tree_decl_common): Update comment.
20534 (DECL_ERROR_ISSUED): Remove.
20535
20536 2013-08-28 Jakub Jelinek <jakub@redhat.com>
20537
20538 PR middle-end/58257
20539 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
20540
20541 2013-08-28 Jan Hubicka <jh@suse.cz>
20542
20543 * builtins.def (free): Declare leaf.
20544
20545 2013-08-27 David Malcolm <dmalcolm@redhat.com>
20546
20547 * gdbhooks.py: New.
20548 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
20549 * configure: Regenerate.
20550
20551 2013-08-27 Martin Jambor <mjambor@suse.cz>
20552
20553 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
20554 (ipa_ancestor_jf_data): Likewise.
20555 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
20556 (ipa_get_jf_pass_through_type_preserved): New function.
20557 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
20558 (ipa_get_jf_ancestor_type_preserved): New function.
20559 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
20560 (ipa_get_jf_ancestor_result): Likewise.
20561 (propagate_vals_accross_pass_through): Use
20562 ipa_get_jf_pass_through_result to do all the value mappings.
20563 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
20564 type_preserved flag.
20565 (ipa_set_jf_cst_copy): New function.
20566 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
20567 (ipa_set_jf_arith_pass_through): Likewise.
20568 (ipa_set_ancestor_jf): Likewise.
20569 (compute_complex_assign_jump_func): Set type_preserved instead of
20570 punting.
20571 (ipa_compute_jump_functions_for_edge): Likewise.
20572 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
20573 (update_jump_functions_after_inlining): Update type_preserved.
20574 Explicitely create jump functions when combining one with pass_through.
20575 (ipa_write_jump_function): Stream the type_preserved flags.
20576 (ipa_read_jump_function): Likewise.
20577
20578 2013-08-27 Jakub Jelinek <jakub@redhat.com>
20579 Aldy Hernandez <aldyh@redhat.com>
20580
20581 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
20582 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
20583 * function.h (struct function): Add has_force_vect_loops and
20584 has_simduid_loops.
20585 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
20586 * gimple.c (gimple_build_omp_critical): Add KIND argument and
20587 handle it.
20588 * gimple.def: Update CLAUSES comments.
20589 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
20590 (gimple_build_omp_for): Add argument to prototype.
20591 (gimple_omp_for_kind): New.
20592 (gimple_omp_for_set_kind): New.
20593 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
20594 GOVD_DATA_SHARE_CLASS.
20595 (enum omp_region_type): Add ORT_SIMD.
20596 (gimple_add_tmp_var): Handle ORT_SIMD.
20597 (gimplify_var_or_parm_decl): Same.
20598 (is_gimple_stmt): Same.
20599 (omp_firstprivatize_variable): Same.
20600 (omp_add_variable): Only use splay_tree_insert if lookup failed.
20601 (omp_notice_variable): Handle ORT_SIMD.
20602 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
20603 (omp_check_private): Handle ORT_SIMD.
20604 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
20605 OMP_CLAUSE_SAFELEN.
20606 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
20607 Handle OMP_CLAUSE_LASTPRIVATE.
20608 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
20609 OMP_CLAUSE_SAFELEN.
20610 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
20611 (gimplify_expr): Handle OMP_SIMD.
20612 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
20613 (expand_GOMP_SIMD_VF): New.
20614 (expand_GOMP_SIMD_LAST_LANE): New.
20615 * internal-fn.def (GOMP_SIMD_LANE): New.
20616 (GOMP_SIMD_VF): New.
20617 (GOMP_SIMD_LAST_LANE): New.
20618 * omp-low.c: Include target.h.
20619 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
20620 OMP_CLAUSE_SAFELEN.
20621 (check_omp_nesting_restrictions): Same.
20622 (omp_max_vf): New.
20623 (lower_rec_simd_input_clauses): New.
20624 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
20625 OMP_CLAUSE_LINEAR.
20626 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
20627 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
20628 (expand_omp_build_assign): New.
20629 (expand_omp_for_init_counts): New.
20630 (expand_omp_for_init_vars): New.
20631 (extract_omp_for_update_vars): New.
20632 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
20633 and rewrite accordingly.
20634 (expand_omp_simd): New.
20635 (expand_omp_for): Use expand_omp_simd.
20636 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
20637 (lower_omp_for): Do not lower the body.
20638 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
20639 in their own loops.
20640 * tree-flow.h (find_omp_clause): Remove prototype.
20641 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
20642 forcing vectorization of the loop, or if flag_tree_vectorize.
20643 (gate_tree_if_conversion): Similarly.
20644 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
20645 gimple_build_omp_for.
20646 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
20647 * tree-parloops (create_parallel_loop): Pass kind argument to
20648 gimple_build_omp_for.
20649 * tree-pretty-print.c (dump_omp_clause): Add cases for
20650 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
20651 OMP_CLAUSE__SIMDUID_.
20652 (dump_generic_node): Handle OMP_SIMD.
20653 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
20654 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
20655 unroll OMP_SIMD loops here.
20656 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
20657 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
20658 loop->safelen.
20659 (vect_analyze_data_refs): Handle simd loops.
20660 * tree-vect-loop.c (vectorizable_live_operation): Handle
20661 IFN_GOMP_SIMD*.
20662 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
20663 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
20664 (vectorizable_load): Same.
20665 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
20666 (struct simduid_to_vf): New.
20667 (simduid_to_vf::hash): New.
20668 (simduid_to-vf::equal): New.
20669 (struct simd_array_to_simduid): New.
20670 (simd_array_to_simduid::hash): New.
20671 (simd_array_to_simduid::equal): New.
20672 (adjust_simduid_builtins): New.
20673 (struct note_simd_array_uses_struct): New.
20674 (note_simd_array_uses_cb): New.
20675 (note_simd_array_uses): New.
20676 (vectorize_loops): Handle simd hints and adjust simd builtins
20677 accordingly.
20678 * tree-vectorizer.h (struct _stmt_vec_info): Add
20679 simd_lane_access_p field.
20680 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
20681 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
20682 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
20683 (omp_clause_code_name): Same.
20684 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
20685 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
20686 * tree.def (OMP_SIMD): New entry.
20687 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
20688 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
20689 (OMP_CLAUSE_DECL): Adjust range for new clauses.
20690 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
20691 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
20692 (OMP_CLAUSE_LINEAR_STEP): New.
20693 (OMP_CLAUSE_SAFELEN_EXPR): New.
20694 (OMP_CLAUSE__SIMDUID__DECL): New.
20695 (find_omp_clause): New prototype.
20696
20697 2013-08-27 H.J. Lu <hongjiu.lu@intel.com>
20698
20699 * config/i386/driver-i386.c (host_detect_local_cpu): Update
20700 Haswell processor detection.
20701
20702 2013-08-27 Christian Widmer <shadow@umbrox.de>
20703
20704 PR target/57927
20705 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
20706 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
20707 AVX2 capable processors.
20708
20709 2013-08-27 Tejas Belagod <tejas.belagod@arm.com>
20710
20711 * config/aarch64/arm_neon.h: Replace all inline asm implementations
20712 of vget_low_* with implementations in terms of other intrinsics.
20713
20714 2013-08-27 Marc Glisse <marc.glisse@inria.fr>
20715
20716 PR middle-end/57219
20717 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
20718 values to -1, 0 and 1.
20719
20720 2013-08-27 Vidya Praveen <vidyapraveen@arm.com>
20721
20722 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
20723 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
20724 (<optab><mode>3_insn): Remove.
20725 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
20726 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
20727 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
20728 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
20729 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
20730 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
20731 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
20732 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
20733 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
20734 (ror<mode>3_insn): Likewise.
20735 * config/aarch64/predicates.md (aarch64_simd_register): New.
20736
20737 2013-08-27 Richard Biener <rguenther@suse.de>
20738
20739 PR tree-optimization/57521
20740 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
20741 one edge is non-critical.
20742 (find_phi_replacement_condition): Make sure to use a non-critical
20743 edge. Cleanup and remove old bug workarounds.
20744 (bb_postdominates_preds): Remove.
20745 (if_convertible_loop_p_1): Do not compute post-dominators.
20746 (combine_blocks): Do not free post-dominators.
20747 (main_tree_if_conversion): Likewise.
20748 (pass_data_if_conversion): Add TODO_verify_ssa.
20749
20750 2013-08-27 DJ Delorie <dj@redhat.com>
20751
20752 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
20753
20754 2013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
20755
20756 * function.c (assign_parm_find_data_types): Set passed_mode and
20757 nominal_mode to the TYPE_MODE of nominal_type for the built
20758 pointer type in case of the struct-pass-by-reference.
20759
20760 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
20761
20762 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
20763 (UINT16_TYPE): Change default to "unsigned int".
20764
20765 * config/avr/avr.opt (mfract-convert-truncate): New option.
20766 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
20767 is set, round negative fractional integers according to n1169
20768 when converting to integer types.
20769
20770 2013-08-26 Jan Hubicka <jh@suse.cz>
20771
20772 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
20773 methods can not be called indirectly when their address is not taken.
20774
20775 2013-08-26 Jan Hubicka <jh@suse.cz>
20776
20777 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
20778 ctor_for_folding.
20779
20780 2013-08-26 Jan Hubicka <jh@suse.cz>
20781
20782 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
20783 can be unshared.
20784
20785 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
20786
20787 * reload.c (find_valid_class): Allow classes that do not include
20788 FIRST_PSEUDO_REGISTER - 1.
20789
20790 2013-08-26 Jan Hubicka <jh@suse.cz>
20791
20792 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
20793 fix edge count/frequency when speculation failed; fix type check
20794 for the direct call.
20795
20796 2013-08-26 Jan Hubicka <jh@suse.cz>
20797
20798 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
20799
20800 2013-08-26 Jan Hubicka <jh@suse.cz>
20801
20802 * ipa-inline-transform.c (inline_transform): Be ready for basic block
20803 to be changed by edge redirection.
20804
20805 2013-08-26 Jan Hubicka <jh@suse.cz>
20806
20807 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
20808 formating; add sanity check.
20809 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
20810 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
20811 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
20812 (resolve_noninline_speculation): Update callee keys, too.
20813
20814 2013-08-26 Jan Hubicka <jh@suse.cz>
20815
20816 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
20817 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
20818
20819 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
20820
20821 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
20822 into proper place.
20823
20824 2013-08-26 Uros Bizjak <ubizjak@gmail.com>
20825
20826 * config/i386/i386.c (ix86_debug_options): Remove prototype.
20827 (x86_64_elf_select_section): Ditto.
20828 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
20829 arguments.
20830 (ix86_pass_by_reference): Ditto.
20831 (output_set_got): Ditto.
20832 (ix86_unary_operator_ok): Ditto.
20833 (ix86_expand_builtin): Ditto.
20834
20835 2013-08-23 Jan Hubicka <jh@suse.cz>
20836
20837 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
20838
20839 2013-08-23 Jan Hubicka <jh@suse.cz>
20840
20841 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
20842 (tree_decl_with_vis): Add FINAL field.
20843
20844 2013-08-23 Jeff Law <law@redhat.com>
20845
20846 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
20847 the debugging dump when the expression is fully redundant.
20848
20849 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
20850
20851 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
20852 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
20853 * pretty-print.c (pp_formatted_text_data): Likewise.
20854 (pp_write_text_to_stream): Likewise.
20855 (pp_write_text_as_dot_label_to_stream): Likewise.
20856 (pp_append_r): Likewise.
20857 (pp_format): Likewise.
20858 (pp_flush): Likewise.
20859 (pp_clear_output_area): Likewise.
20860 (pp_append_text): Likewise.
20861 (pp_formatted_text): Likewise.
20862 (pp_remaining_character_count_for_line): Likewise.
20863 (pp_newline): Likewise.
20864 (pp_character): Likewise.
20865 (output_buffer::~output_buffer): Define.
20866 (pretty_printer::~pretty_printer): Destruct output buffer.
20867 * pretty-print.h (output_buffer::~output_buffer): Declare.
20868 (pretty_printer::~pretty_printer): Declare virtual.
20869
20870 2013-08-24 Marc Glisse <marc.glisse@inria.fr>
20871
20872 PR other/57324
20873 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
20874 HOST_WIDE_INT_M1U): New macros.
20875 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
20876 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
20877 unsigned -1 for lshift.
20878 * cse.c (cse_insn): Likewise.
20879 * double-int.c (rshift_double, lshift_double): Likewise.
20880 * builtins.c (fold_builtin_bitop): Likewise.
20881 * combine.c (force_to_mode): Likewise.
20882 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
20883 * simplify-rtx.c (simplify_const_unary_operation,
20884 simplify_const_binary_operation): Likewise.
20885 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
20886 check_va_list_escapes): Likewise.
20887 * rtlanal.c (nonzero_bits1): Likewise.
20888 * expmed.c (expand_smod_pow2): Likewise.
20889 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
20890
20891 2013-08-23 Jan Hubicka <jh@suse.cz>
20892
20893 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
20894 as having address taken.
20895
20896 2013-08-23 Jan Hubicka <jh@suse.cz>
20897
20898 * ipa-utils.h (method_class_type): Declare.
20899 * ipa-devirt.c (method_class_type): Export.
20900
20901 * cgraphunit.c (analyze_functions): Do basic devirtualization;
20902 do not walk base classes of anonymous types.
20903
20904 2013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
20905
20906 PR rtl-optimization/58220
20907 PR regression/58221
20908 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
20909 handle SEQUENCE insns properly.
20910
20911 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
20912
20913 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
20914 definition.
20915 (pp_newline_and_indent): Likewise.
20916 (pp_separate_with): Likewise.
20917 * pretty-print.c (pp_newline_and_flush): Define.
20918 (pp_newline_and_indent): Likewise.
20919 (pp_separate_with): Likewise.
20920
20921 2013-08-23 Jakub Jelinek <jakub@redhat.com>
20922
20923 PR target/58218
20924 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
20925 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
20926
20927 2013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
20928
20929 * config/i386/predicates.md (ext_sse_reg_operand): New.
20930 * config/i386/i386.md (*movti_internal): Use
20931 predicate to determine if EVEX is needed.
20932 (*movsi_internal): Ditto.
20933 (*movdf_internal): Ditto.
20934 (*movsf_internal): Ditto.
20935 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
20936
20937 2013-08-23 Jakub Jelinek <jakub@redhat.com>
20938
20939 PR tree-optimization/58209
20940 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
20941 (find_tail_calls): Give up for pointer result types if m is non-NULL.
20942 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
20943 emit POINTER_PLUS_EXPR.
20944 (create_tailcall_accumulator): For pointer result type accumulate in
20945 sizetype type.
20946
20947 2013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
20948
20949 * configure.ac: Add backslashes missing from the last change.
20950 * configure: Regenerate.
20951
20952 2013-08-22 Jan Hubicka <jh@susue.cz>
20953
20954 * ipa.c (function_and_variable_visibility): First remember function
20955 was global and then make it local.
20956
20957 2013-08-22 Julian Brown <julian@codesourcery.com>
20958
20959 * configure.ac: Add aarch64 to list of arches which use "nop" in
20960 debug_line test.
20961 * configure: Regenerate.
20962
20963 2013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20964
20965 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
20966 gnu_libc_has_function.
20967 * config/s390/tpf.h: Likewise.
20968
20969 2013-08-22 Jan Hubicka <jh@susue.cz>
20970
20971 * timevar.c (validate_phases): Add cast.
20972
20973 2013-08-22 Jan Hubicka <jh@susue.cz>
20974
20975 * timevar.c (validate_phases): Use size_t for memory.
20976 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
20977
20978 2013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
20979
20980 * pretty-print.h (output_buffer::output_buffer): Declare.
20981 (pretty_printer::pretty_printer): Likewise.
20982 (pp_construct): Remove.
20983 * pretty-print.c (output_buffer::output_buffer): Define.
20984 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
20985 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
20986 (print_gimple_expr): Likewise.
20987 (print_gimple_seq): Likewise.
20988 (gimple_dump_bb): Likewise.
20989 * sched-vis.c (dump_value_slim): Likewise.
20990 (dump_insn_slim): Likewise.
20991 (dump_rtl_slim): Likewise.
20992 (str_pattern_slim): Likewise.
20993 * tree-mudflap.c (mf_varname_tree): Likewise.
20994 * graph.c (print_graph_cfg): Likewise.
20995 (start_graph_dump): Likewise.
20996 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
20997 placement-new.
20998 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
20999 pretty printer initialization.
21000 * coretypes.h (diagnostic_context): Remove superflous type alias
21001 declaration.
21002 (pretty_printer): Likewise. Declare directly as a class.
21003 (pretty_print_info): Remove declaration as class.
21004 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
21005 and pp_clear_output_area.
21006 (asan_add_global): Likewise.
21007
21008 2013-08-22 Jan Hubicka <jh@suse.cz>
21009
21010 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
21011 * ipa-utils.h (update_type_inheritance_graph): Declare.
21012 (possible_polymorphic_call_target_p): Declare.
21013 (possible_polymorphic_call_target_p): New.
21014 * ipa-devirt.c: Update toplevel comments.
21015 (cached_polymorphic_call_targets): Move up.
21016 (odr_type_d): Move ID down.
21017 (polymorphic_type_binfo_p): Update comment.
21018 (odr_hasher::remove): Likewise;
21019 (get_odr_type): Set anonymous_namespace.
21020 (dump_odr_type): Dump it.
21021 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
21022 (maybe_record_node): Record node in cached_polymorphic_call_targets.
21023 (record_binfo): Add comment.
21024 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
21025 built.
21026 (devirt_node_removal_hook): Do not iCE when cache is freed.
21027 (possible_polymorphic_call_target_p): New predicate.
21028 (update_type_inheritance_graph): New function.
21029
21030 2013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
21031 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
21032 Sergey Lega <sergey.s.lega@intel.com>
21033 Anna Tikhonova <anna.tikhonova@intel.com>
21034 Ilya Tocar <ilya.tocar@intel.com>
21035 Andrey Turetskiy <andrey.turetskiy@intel.com>
21036 Ilya Verbin <ilya.verbin@intel.com>
21037 Kirill Yukhin <kirill.yukhin@intel.com>
21038 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
21039
21040 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
21041 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
21042 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
21043 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
21044 (OPTION_MASK_ISA_AVX2_UNSET): Update.
21045 (OPTION_MASK_ISA_AVX512F_UNSET): New.
21046 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
21047 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
21048 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
21049 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
21050 OPT_mavx512pf, OPT_mavx512er cases.
21051 * config/i386/constraints.md (v): New constraint.
21052 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
21053 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
21054 (bit_AVX512CD): New.
21055 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
21056 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
21057 * config/i386/i386-c.c (ix86_target_macros_internal):
21058 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
21059 __AVX512PF__.
21060 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
21061 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
21062 * config/i386/i386.c (regclass_map, dbx_register_map)
21063 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
21064 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
21065 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
21066 -mavx512pf options.
21067 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
21068 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
21069 -mavx512pf options. Fix formatting.
21070 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
21071 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
21072 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
21073 -mavx512cd, -mavx512pf options.
21074 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
21075 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
21076 (ix86_preferred_output_reload_class): Replace SSE_REGS with
21077 ALL_SSE_REGS.
21078 (ix86_hard_regno_mode_ok): Support 512-bit registers.
21079 (ix86_set_reg_reg_cost): Ditto.
21080 (x86_order_regs_for_local_alloc): Ditto.
21081 (MAX_VECT_LEN): Extend to 64-byte.
21082 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
21083 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
21084 (TARGET_AVX512ER, TARGET_AVX512CD): New.
21085 (BIGGEST_ALIGNMENT): Extend to 512-bits.
21086 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
21087 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
21088 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
21089 (SSE_REG_MODE_P): Support new modes.
21090 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
21091 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
21092 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
21093 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
21094 (REG_CLASS_CONTENTS): Add new registers.
21095 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
21096 (EXT_REX_SSE_REGNO_P): New.
21097 (HI_REGISTER_NAMES): Add new registers.
21098 * config/i386/i386.md: Define constants for new registers.
21099 (mode): Add new 512-bit modes.
21100 (prefix): Support evex prefix.
21101 (isa): Support avx512f, noavx512f, fma_avx512f.
21102 (ssemodesuffix): Add new 512-bit modes.
21103 (movxi): New.
21104 (*movxi_internal_avx512f): Ditto.
21105 (*movdi_internal): Replace constraint "x" with the new constraint "v".
21106 Support MODE_XI.
21107 (*movsi_internal): Likewise.
21108 (*movdf_internal): Likewise.
21109 (*movsf_internal): Likewise.
21110 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
21111 (<code><mode>3): Likewise.
21112 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
21113 New.
21114 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
21115 with the new constraint "v".
21116 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
21117 modes.
21118 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
21119 with the new constraint "v".
21120 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
21121 (<sse2>_storedqu<avxsizesuffix>): Likewise.
21122 (*<plusminus_insn><mode>3): Likewise.
21123 (<sse>_vm<plusminus_insn><mode>3): Likewise.
21124 (*mul<mode>3): Likewise.
21125 (<sse>_vmmul<mode>3): Likewise.
21126 (<sse>_div<mode>3): Likewise.
21127 (<sse>_vmdiv<mode>3): Likewise.
21128 (<sse>_sqrt<mode>2): Likewise.
21129 (<sse>_vmsqrt<mode>2): Likewise.
21130 (*<code><mode>3_finite): Likewise.
21131 (*<code><mode>3) <smaxmin>: Likewise.
21132 (<sse>_vm<code><mode>3): Likewise.
21133 (*<code><mode>3) <any_logic>: Likewise.
21134 (*fma_fmadd_<mode>): Likewise.
21135 (*fma_fmsub_<mode>): Likewise.
21136 (*fma_fnmadd_<mode>): Likewise.
21137 (*fma_fnmsub_<mode>): Likewise.
21138 (*fma_fmaddsub_<mode>): Likewise.
21139 (*fma_fmsubadd_<mode>): Likewise.
21140 (*fmai_fmadd_<mode>): Likewise.
21141 (*fmai_fmsub_<mode>): Likewise.
21142 (*fmai_fnmadd_<mode>): Likewise.
21143 (*fmai_fnmsub_<mode>): Likewise.
21144 (sse_cvtsi2ss): Likewise.
21145 (sse_cvtsi2ssq): Likewise.
21146 (sse_cvtss2si): Likewise.
21147 (sse_cvtss2si_2): Likewise.
21148 (sse_cvtss2siq): Likewise.
21149 (sse_cvtss2siq_2): Likewise.
21150 (sse_cvttss2si): Likewise.
21151 (sse_cvtss2siq_2): Likewise.
21152 (float<sseintvecmodelower><mode>2): Likewise.
21153 (sse2_cvtsd2si_2): Likewise.
21154 (sse2_cvtsd2siq_2): Likewise.
21155 (*<plusminus_insn><mode>3): Likewise.
21156 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
21157 (*<sse4_1_avx2>_mul<mode>3): Likewise.
21158 (ashr<mode>3): Likewise.
21159 (<shift_insn><mode>3): Likewise.
21160 (avx2_<code><mode>3): Likewise.
21161 (*avx2_<code><mode>3): Likewise.
21162 (*andnot<mode>3): Likewise.
21163 (*<code><mode>3) <any_logic>: Likewise.
21164 (abs<mode>2): Likewise.
21165 (avx2_permvar<mode>): Likewise.
21166 (avx2_perm<mode>_1): Likewise.
21167 (*avx_vpermilp<mode>): Likewise.
21168 (avx_vpermilvar<mode>3): Likewise.
21169 (avx2_ashrv<mode>): Likewise.
21170 (avx2_<shift_insn>v<mode>): Likewise.
21171 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
21172 -mavx512cd.
21173 * doc/rtl.texi: Document XImode.
21174
21175 2013-08-21 Jeff Law <law@redhat.com>
21176
21177 * tree-flow.h (register_jump_thread): Pass vector of edges
21178 instead of each important edge.
21179 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
21180 thread path into a vector and pass that to register_jump_thread.
21181 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
21182 passed in edge vector to the current 3-edge form.
21183
21184 Revert:
21185 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
21186
21187 * dce.c (fini_dce): Call df_analyze again just in case
21188 delete_unmarked_insns removed anything.
21189
21190 2013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
21191
21192 * reload.h (struct reg_equivs): Rename to ..
21193 (struct reg_equivs_s): .. this.
21194
21195 2013-08-20 Martin Liska <marxin.liska@gmail.com>
21196
21197 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
21198
21199 2013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21200
21201 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
21202
21203 2013-08-21 Jeff Law <law@redhat.com>
21204
21205 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
21206 simplify assignments too. If the RHS collapses to a singleton
21207 range, then return the value for the range.
21208
21209 2013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
21210
21211 * config/i386/sse.md (V16): Rename to...
21212 (VMOVE): this.
21213 (mov<mode>): Update iterator name.
21214 (*mov<mode>_internal): Ditto.
21215 (push<mode>1): Ditto.
21216 (movmisalign<mode>): Ditto.
21217
21218 2013-08-20 Jan Hubicka <jh@suse.cz>
21219
21220 PR bootstrap/58186
21221 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
21222 entry for direct edges.
21223 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
21224
21225 2013-08-20 David Malcolm <dmalcolm@redhat.com>
21226
21227 Revert my last two changes, r201865 and r201864:
21228
21229 Revert r201865:
21230 2013-08-20 David Malcolm <dmalcolm@redhat.com>
21231
21232 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
21233 instances can own GC refs.
21234
21235 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
21236 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
21237 (gcc::context::gt_pch_nx): Likewise.
21238 (gcc::context::gt_pch_nx): Likewise.
21239 * ggc.h (gt_ggc_mx <T>): New.
21240 (gt_pch_nx_with_op <T>): New.
21241 (gt_pch_nx <T>): New.
21242 * passes.c (opt_pass::gt_ggc_mx): New.
21243 (opt_pass::gt_pch_nx): New.
21244 (opt_pass::gt_pch_nx_with_op): New.
21245 (pass_manager::gt_ggc_mx): New.
21246 (pass_manager::gt_pch_nx): New.
21247 (pass_manager::gt_pch_nx_with_op): New.
21248 (pass_manager::operator new): Use
21249 ggc_internal_cleared_alloc_stat rather than xcalloc.
21250 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
21251 (pass_manager::gt_ggc_mx): New.
21252 (pass_manager::gt_pch_nx): New.
21253 (pass_manager::gt_pch_nx_with_op): New.
21254 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
21255 (opt_pass::operator new): New.
21256 (opt_pass::gt_ggc_mx): New.
21257 (opt_pass::gt_pch_nx): New.
21258 (opt_pass::gt_pch_nx_with_op): New.
21259
21260 Revert r201864:
21261 2013-08-20 David Malcolm <dmalcolm@redhat.com>
21262
21263 * Makefile.in (GTFILES): Add context.h.
21264 * context.c (gcc::context::operator new): New.
21265 (gcc::context::gt_ggc_mx): New.
21266 (gcc::context::gt_pch_nx): New.
21267 (gcc::context::gt_pch_nx): New.
21268 * context.h (gcc::context): Add GTY((user)) marking.
21269 (gcc::context::operator new): New.
21270 (gcc::context::gt_ggc_mx): New.
21271 (gcc::context::gt_pch_nx): New.
21272 (gcc::context::gt_pch_nx): New.
21273 (g): Add GTY marking.
21274 (gt_ggc_mx (gcc::context *)): New.
21275 (gt_pch_nx (gcc::context *)): New.
21276 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
21277 void *cookie)): New.
21278 * gengtype.c (open_base_files) <ifiles>: Add context.h.
21279
21280 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
21281
21282 * dce.c (fini_dce): Call df_analyze again just in case
21283 delete_unmarked_insns removed anything.
21284
21285 2013-08-20 Teresa Johnson <tejohnson@google.com>
21286
21287 PR rtl-optimizations/57451
21288 * final.c (reemit_insn_block_notes): Prevent lexical blocks
21289 from crossing split section boundaries.
21290
21291 2013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
21292
21293 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
21294 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
21295 with MULTLIB_DEFAULTS.
21296
21297 2013-08-20 Nick Clifton <nickc@redhat.com>
21298
21299 * target.def (narrow_volatile_bitfield): Note that the default
21300 value is false, not !TARGET_STRICT_ALIGN.
21301 * doc/tm.texi: Regenerate.
21302
21303 2013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
21304
21305 Fix LIB_SPEC for systems without libpthread.
21306
21307 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
21308 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
21309 for Android.
21310 * config/i386/linux-common.h: Likewise.
21311 * config/mips/linux-common.h: Likewise.
21312
21313 2013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
21314
21315 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
21316 checks.
21317
21318 2013-08-20 David Malcolm <dmalcolm@redhat.com>
21319
21320 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
21321 instances can own GC refs.
21322
21323 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
21324 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
21325 (gcc::context::gt_pch_nx): Likewise.
21326 (gcc::context::gt_pch_nx): Likewise.
21327 * ggc.h (gt_ggc_mx <T>): New.
21328 (gt_pch_nx_with_op <T>): New.
21329 (gt_pch_nx <T>): New.
21330 * passes.c (opt_pass::gt_ggc_mx): New.
21331 (opt_pass::gt_pch_nx): New.
21332 (opt_pass::gt_pch_nx_with_op): New.
21333 (pass_manager::gt_ggc_mx): New.
21334 (pass_manager::gt_pch_nx): New.
21335 (pass_manager::gt_pch_nx_with_op): New.
21336 (pass_manager::operator new): Use
21337 ggc_internal_cleared_alloc_stat rather than xcalloc.
21338 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
21339 (pass_manager::gt_ggc_mx): New.
21340 (pass_manager::gt_pch_nx): New.
21341 (pass_manager::gt_pch_nx_with_op): New.
21342 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
21343 (opt_pass::operator new): New.
21344 (opt_pass::gt_ggc_mx): New.
21345 (opt_pass::gt_pch_nx): New.
21346 (opt_pass::gt_pch_nx_with_op): New.
21347
21348 2013-08-20 David Malcolm <dmalcolm@redhat.com>
21349
21350 * Makefile.in (GTFILES): Add context.h.
21351 * context.c (gcc::context::operator new): New.
21352 (gcc::context::gt_ggc_mx): New.
21353 (gcc::context::gt_pch_nx): New.
21354 (gcc::context::gt_pch_nx): New.
21355 * context.h (gcc::context): Add GTY((user)) marking.
21356 (gcc::context::operator new): New.
21357 (gcc::context::gt_ggc_mx): New.
21358 (gcc::context::gt_pch_nx): New.
21359 (gcc::context::gt_pch_nx): New.
21360 (g): Add GTY marking.
21361 (gt_ggc_mx (gcc::context *)): New.
21362 (gt_pch_nx (gcc::context *)): New.
21363 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
21364 void *cookie)): New.
21365 * gengtype.c (open_base_files) <ifiles>: Add context.h.
21366
21367 2013-08-20 Alan Modra <amodra@gmail.com>
21368
21369 PR target/57865
21370 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
21371 (rs6000_emit_epilogue): Likewise.
21372
21373 2013-08-19 Dehao Chen <dehao@google.com>
21374
21375 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
21376
21377 2013-08-19 Peter Bergner <bergner@vnet.ibm.com>
21378 Jakub Jelinek <jakub@redhat.com>
21379
21380 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
21381 (BUILT_IN_FABSD64): Likewise.
21382 (BUILT_IN_FABSD128): Likewise.
21383 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
21384 (fold_builtin_1): Likewise.
21385 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
21386 destination and source operands.
21387 (*abstd2_fpr): Likewise.
21388 (*nabstd2_fpr): Likewise.
21389
21390 2013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
21391
21392 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
21393 JUMP_P and INSN_P.
21394
21395 2013-08-19 Aldy Hernandez <aldyh@redhat.com>
21396
21397 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
21398 incomplete.
21399
21400 2013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
21401
21402 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
21403 * builtins.c (default_libc_has_function): New.
21404 (gnu_libc_has_function): Ditto.
21405 (no_c99_libc_has_function): Ditto.
21406 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
21407 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
21408 (fold_builtin_sincos): Likewise.
21409 (fold_builtin_cexp): Likewise.
21410 * builtins.def (DEF_C94_BUILTIN): Likewise.
21411 (DEF_C99_BUILTIN): Likewise.
21412 (DEF_C99_C90RES_BUILTIN): Likewise.
21413 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
21414 definitions to using this define.
21415 * config/darwin-protos.h (darwin_libc_has_function): New.
21416 * config/darwin.c (darwin_libc_has_function): Ditto.
21417 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
21418 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
21419 * config/darwin.h: Ditto.
21420 * config/elfos.h: Ditto.
21421 * config/freebsd.h: Ditto.
21422 * config/i386/cygming.h: Ditto.
21423 * config/i386/djgpp.h: Ditto.
21424 * config/i386/i386-interix.h: Ditto.
21425 * config/microblaze/microblaze.h: Ditto.
21426 * config/mmix/mmix.h: Ditto.
21427 * config/gnu-user.h: Ditto.
21428 * config/ia64/hpux.h: Ditto.
21429 * config/pa/pa-hpux.h: Ditto.
21430 * config/pdp11/pdp11.h: Ditto.
21431 * config/picochip/picochip.h: Ditto.
21432 * config/linux.h: Ditto.
21433 * config/netbsd.h: Ditto.
21434 * config/openbsd.h: Ditto.
21435 * config/rs6000/aix43.h: Ditto.
21436 * config/rs6000/aix51.h: Ditto.
21437 * config/rs6000/aix52.h: Ditto.
21438 * config/rs6000/aix53.h: Ditto.
21439 * config/rs6000/aix61.h: Ditto.
21440 * config/rs6000/darwin.h: Ditto.
21441 * config/rs6000/linux.h: Ditto.
21442 * config/rs6000/linux64.h: Ditto.
21443 * config/s390/tpf.h: Ditto.
21444 * config/sol2-10.h: Ditto.
21445 * config/sol2.h: Ditto.
21446 * config/vms/vms.h: Ditto.
21447 * config/vxworks.h: Ditto.
21448 * config/linux-android.c (linux_android_libc_has_function):
21449 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
21450 * config/linux-protos.h (linux_android_libc_has_function):
21451 New declaration.
21452 * config/i386/i386.c (ix86_libc_has_function): New.
21453 * config/i386/i386-protos.h
21454 (ix86_libc_has_function): New declaration.
21455 * config/i386/i386.md
21456 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
21457 ("isinf<mode>2): Likewise.
21458 * convert.c (convert_to_integer): Using new target hook
21459 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
21460 TARGET_C99_FUNCTIONS.
21461 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
21462 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
21463 * coretypes.h (function_class): New enum for different
21464 classes of functions.
21465 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
21466 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
21467 (TARGET_HAS_SINCOS): Likewise.
21468 (TARGET_LIBC_HAS_FUNCTION): New.
21469 * doc/tm.texi: Regenerated.
21470 * targhooks.h (default_libc_has_function): New declaration.
21471 (no_c99_libc_has_function): Ditto.
21472 (gnu_libc_has_function): Ditto.
21473 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
21474 and TARGET_HAS_SINCOS.
21475
21476 2013-08-18 Jan Hubicka <jh@suse.cz>
21477
21478 * Makeifle-in (ipa-devirt.o): New.
21479 (GTFILES): Add ipa-utils.h and ipa-devirt.c
21480 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
21481 (analyze_functions): Look into possible targets of polymorphic call.
21482 * dumpfile.c (dump_files): Add type-inheritance dump.
21483 * dumpfile.h (TDI_inheritance): New.
21484 * ipa-devirt.c: New file.
21485 * ipa-utils.h (odr_type_d): Forward declare.
21486 (odr_type): New type.
21487 (build_type_inheritance_graph): Declare.
21488 (possible_polymorphic_call_targets): Declare and introduce inline
21489 variant when only edge is pased.
21490 (dump_possible_polymorphic_call_targets): Likewise.
21491 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
21492 * tree.c (type_in_anonymous_namespace_p): Break out from ...
21493 (types_same_for_odr): ... here.
21494 * tree.h (type_in_anonymous_namespace_p): Declare.
21495
21496 2013-08-18 Jakub Jelinek <jakub@redhat.com>
21497
21498 PR tree-optimization/58006
21499 * tree-parloops.c (take_address_of): Don't ICE if get_name
21500 returns NULL.
21501 (eliminate_local_variables_stmt): Remove clobber stmts.
21502
21503 2013-08-18 Eric Botcazou <ebotcazou@adacore.com>
21504
21505 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
21506 error message is issued for an alias to undefined symbol.
21507
21508 2013-08-18 Jan Hubicka <jh@suse.cz>
21509
21510 * cgraph.c (cgraph_create_indirect_edge): Discover
21511 polymorphic calls and record basic info into indirect_info.
21512 * gimple-fold.c (gimple_fold_call): When doing BINFO based
21513 devirtualization, ignore objc function calls.
21514 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
21515 call with no parm index info.
21516 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
21517 * tree.c (virtual_method_call_p): New function.
21518 * tree.h (virtual_method_call_p): Declare.
21519
21520 2013-08-16 Jan Hubicka <jh@suse.cz>
21521
21522 PR middle-end/58179
21523 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
21524
21525 2013-08-16 David Edelsohn <dje.gcc@gmail.com>
21526
21527 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
21528 attribute.
21529
21530 2013-08-16 David Malcolm <dmalcolm@redhat.com>
21531
21532 * gengtype.c (type_for_name): Add special-case support for
21533 locating types within the "gcc::" namespace.
21534 (open_base_files): Emit a "using namespace gcc" directive.
21535
21536 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
21537
21538 PR target/58160
21539 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
21540 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
21541
21542 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
21543 array instead of each individual operand as a separate argument.
21544 (emit_fusion_gpr_load): Likewise.
21545 (expand_fusion_gpr_load): Add new function declaration.
21546
21547 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
21548 signature to have the operands passed as an array, instead of as
21549 separate arguments. Allow ZERO_EXTEND to be in the memory
21550 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
21551 depend on the register live/dead flags when peepholes are run.
21552 (expand_fusion_gpr_load): New function to be called from the
21553 peephole2 pass, to change the register that addis sets to be the
21554 target register.
21555 (emit_fusion_gpr_load): Change the calling signature to have the
21556 operands passed as an array, instead of as separate arguments.
21557 Allow ZERO_EXTEND to be in the memory address, and also
21558 SIGN_EXTEND if -mpower8-fusion-sign.
21559
21560 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
21561 unspec enumeration.
21562 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
21563 adjust the register addis loads up in the peephole2 pass. Do not
21564 depend on the register live/dead state when the peephole pass is done.
21565
21566 2013-08-16 David Malcolm <dmalcolm@redhat.com>
21567
21568 * gengtype.c (create_user_defined_type): Ensure that the kind
21569 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
21570 declaration is seen before the GTY((user)) marking.
21571
21572 2013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
21573
21574 PR target/58105
21575 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
21576
21577 2013-08-16 Jan Hubicka <jh@suse.cz>
21578
21579 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
21580 arugment expected_type.
21581 (gimple_fold_call): Use it.
21582 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
21583 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
21584 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
21585 (try_make_edge_direct_virtual_call): Likewise.
21586 * tree.c (obj_type_ref_class): New.
21587 * tree.h (obj_type_ref_class): Use it.
21588
21589 2013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
21590
21591 * sched-vis.c (rtl_slim_pp_initialized): Remove.
21592 (rtl_slim_pp): Likewise.
21593 (init_rtl_slim_pretty_print): Likewise.
21594 (dump_value_slim): Don't call it. Use local pretty printer.
21595 (dump_insn_slim): Likewise.
21596 (dump_rtl_slim): Likewise.
21597 (str_pattern_slim): Likewise.
21598 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
21599 Simplify.
21600
21601 2013-08-16 Jakub Jelinek <jakub@redhat.com>
21602
21603 PR tree-optimization/58164
21604 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
21605 walk gimple_goto_dest of GIMPLE_GOTO.
21606
21607 PR tree-optimization/58165
21608 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
21609 bi_call must be the last stmt in a bb, don't split_block, instead
21610 use fallthru edge from it and give up if there is none.
21611 Release conds vector when returning early.
21612
21613 2013-08-14 Xinliang David Li <davidxl@google.com>
21614
21615 * config/i386/i386.c (ix86_option_override_internal):
21616 Remove unused variable and field.
21617
21618 2013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21619
21620 PR target/57949
21621 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
21622 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
21623 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
21624 and Linux, correct BLKmode alignment when 128-bit alignment is
21625 required and compatibility flag is not set.
21626 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
21627 for zero-size arguments when compatibility flag is not set.
21628
21629 2013-08-14 Jakub Jelinek <jakub@redhat.com>
21630
21631 PR tree-optimization/58145
21632 * tree-sra.c (build_ref_for_offset): If prev_base has
21633 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
21634
21635 2013-08-14 Xinliang David Li <davidxl@google.com>
21636
21637 * config/i386/i386.c (ix86_option_override_internal):
21638 Fix uninitialized variable error.
21639
21640 2013-08-14 Xinliang David Li <davidxl@google.com>
21641
21642 * config/i386/i386.opt: Define two new options.
21643 * config/i386/x86-tune.def: Add arch selector field in macros.
21644 * config/i386/i386.h: Adjust macro definition.
21645 * config/i386/i386.c (ix86_option_override_internal):
21646 Refactor the code.
21647 (parse_mtune_ctrl_str): New function.
21648 (set_ix86_tune_features): New function.
21649 (ix86_function_specific_restore): Call the new helper function.
21650
21651 2013-08-14 Andrey Belevantsev <abel@ispras.ru>
21652
21653 PR rtl-optimization/57662
21654 * sel-sched.c (code_motion_process_successors): When the current insn
21655 is removed after the recursive traversal, break from the loop.
21656 Add comments and debug printouts.
21657
21658 2013-08-14 Jakub Jelinek <jakub@redhat.com>
21659 Alexandre Oliva <aoliva@redhat.com>
21660
21661 PR target/58067
21662 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
21663 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
21664 there also UNSPEC_PLTOFF.
21665
21666 2013-08-14 Marek Polacek <polacek@redhat.com>
21667
21668 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
21669 NUM_CONDITIONS bit positions.
21670
21671 2013-08-13 Cary Coutant <ccoutant@google.com>
21672
21673 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
21674 (attr_checksum): Hash vector contents instead of pointer.
21675 (attr_checksum_ordered): Likewise.
21676
21677 2013-08-13 Uros Bizjak <ubizjak@gmail.com>
21678
21679 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
21680 when Pmode != word_mode. Add length_address attribute.
21681 (sse3_monitor_<mode>): Merge from sse3_monitor and
21682 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
21683 Pmode != word_mode. Update insn length attribute.
21684 * config/i386/i386.c (ix86_option_override_internal): Update
21685 ix86_gen_monitor selection for merged sse3_monitor insn.
21686
21687 2013-08-13 Julian Brown <julian@codesourcery.com>
21688
21689 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
21690 perform invalid legitimization on greater-than-word-size modes for
21691 TARGET_E500_DOUBLE.
21692
21693 2013-08-13 Vladimir Makarov <vmakarov@redhat.com>
21694
21695 * ira.c (setup_class_translate_array): Use aclass instead of cl
21696 for classes not fully covered by allocno classes.
21697
21698 2013-08-13 Jakub Jelinek <jakub@redhat.com>
21699
21700 PR tree-optimization/57661
21701 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
21702 * tree-inline.c (tree_function_versioning): Initialize it.
21703 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
21704 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
21705 that is not being copied.
21706
21707 PR sanitizer/56417
21708 * asan.c (instrument_strlen_call): Fix typo in comment.
21709 Use char * type even for the lhs of POINTER_PLUS_EXPR.
21710
21711 2013-08-13 Steve Ellcey <sellcey@mips.com>
21712
21713 * config/mips/mips.md (prefetch): Use lw instead of ld on
21714 loongson in 32bit mode.
21715
21716 2013-08-13 Nick Clifton <nickc@redhat.com>
21717
21718 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
21719
21720 2013-08-13 Jan Hubicka <jh@suse.cz>
21721
21722 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
21723 introduced edge; fix typo in sanity check.
21724 (cgraph_resolve_speculation): Export; improve diagnostic.
21725 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
21726 speculation at type mismatch.
21727 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
21728 (cgraph_resolve_speculation): Declare.
21729 (symtab_can_be_discarded): New function.
21730 * value-prof.c (gimple_ic_transform): Remove actual transform code.
21731 * ipa-inline-transform.c (speculation_removed): New global var.
21732 (clone_inlined_nodes): See if speculation can be removed.
21733 (inline_call): If speculations was removed, we growths may not match.
21734 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
21735 (speculation_useful_p): New function.
21736 (resolve_noninline_speculation): New function.
21737 (inline_small_functions): Resolve useless speculations.
21738 * ipa-inline.h (speculation_useful_p): Declare
21739 * ipa.c (can_replace_by_local_alias): Simplify.
21740 (ipa_profile): Produce speculative calls in non-lto, too;
21741 add simple cost model; produce local aliases.
21742
21743 2013-08-13 David Malcolm <dmalcolm@redhat.com>
21744
21745 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
21746 PASS_MANAGER_H.
21747
21748 2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
21749
21750 * config/i386/i386.c (ix86_function_versions): Use error + inform.
21751
21752 2013-08-12 Uros Bizjak <ubizjak@gmail.com>
21753
21754 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
21755 iterator instead of X87MODEF.
21756
21757 2013-08-12 Perez Read <netfirewall@gmail.com>
21758
21759 PR target/58132
21760 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
21761 operand 0 for intel asm alternative.
21762 (*movabs<mode>_2): Ditto for operand 1.
21763
21764 2013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
21765
21766 * config/aarch64/arm_none.h
21767 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
21768
21769 2013-08-12 Nick Clifton <nickc@redhat.com>
21770
21771 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
21772
21773 2013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
21774
21775 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
21776 expand for QI/HImode operand to produce more effictive code for
21777 unsigned char(short) --> float(double) conversion.
21778
21779 2013-08-12 Alexander Monakov <amonakov@ispras.ru>
21780
21781 * doc/invoke.texi: Mention that -ftls-model does not force the final
21782 model.
21783
21784 2013-08-12 Marek Polacek <polacek@redhat.com>
21785 Marc Glisse <marc.glisse@inria.fr>
21786
21787 PR tree-optimization/57980
21788 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
21789 when creating -1 constant.
21790
21791 2013-08-10 Jan Hubicka <jh@suse.cz>
21792
21793 Workaround binutils PR14342.
21794 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
21795 (gimple_init_edge_profiler): Likewise.
21796 (gimple_gen_ic_func_profiler): Likewise.
21797
21798 2013-08-09 Jan Hubicka <jh@suse.cz>
21799
21800 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
21801
21802 2013-08-09 Xinliang David Li <davidxl@google.com>
21803
21804 * config/i386/stringop.def: New file.
21805 * config/i386/stringop.opt: New file.
21806 * config/i386/i386-opts.h: Include stringopt.def.
21807 * config/i386/i386.opt: Include stringopt.opt.
21808 * config/i386/i386.c (ix86_option_override_internal):
21809 Override default size based stringop inline strategies with options.
21810 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
21811 New function.
21812
21813 2013-08-09 Jan Hubicka <jh@suse.cz>
21814
21815 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
21816
21817 2013-08-09 Jan Hubicka <jh@suse.cz>
21818
21819 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
21820 CGRAPH_FREQ_MAX.
21821 (dump_cgraph_node): Dump profile-id.
21822 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
21823 and common_target_probability.
21824 * lto-cgraph.c (lto_output_edge): Stream common targets.
21825 (lto_output_node): Stream profile ids.
21826 (input_node): Stream profile ids.
21827 (input_edge): Stream common targets.
21828 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
21829 * ipa.c: Include value-prof.h
21830 (ipa_profile_generate_summary): Turn indirect call statement histograms
21831 into common targets.
21832 (ipa_profile): Turn common targets into speculative edges.
21833
21834 2013-08-09 Jan Hubicka <jh@suse.cz>
21835
21836 * cgraph.h (cgraph_node): Add profile_id.
21837 * value-prof.c (cgraph_node_map): Turn into pointer_map.
21838 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
21839 (del_node_map): Update.
21840 (find_func_by_funcdef_no): Replace by ...
21841 (find_func_by_profile_id): ... this one.
21842 (gimple_ic_transform): Do not remove useful histograms when
21843 speculation is not done; dump info when indirect call removal
21844 can happen at LTO.
21845 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
21846 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
21847 (__gcov_indirect_call_profiler_v2): .. this one.
21848 * profile.h (init_node_map): Update.
21849 * coverage.c (coverage_compute_profile_id): New function.
21850 * coverage.h (coverage_compute_profile_id): Declare.
21851 * tree-profile.c (init_ic_make_global_vars): Make
21852 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
21853 (gimple_init_edge_profiler): Update prototype of
21854 __gcov_indirect_call_profiler.
21855 (gimple_gen_ic_func_profiler): Simplify.
21856 (tree_profiling): Use init_node_map
21857
21858 2013-08-09 Jan Hubicka <jh@suse.cz>
21859
21860 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
21861 non-speculative refs.
21862 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
21863 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
21864 (cgraph_set_call_stmt): Likewise.
21865 (cgraph_create_edge_1): Fix release checking compilatoin;
21866 clear lto_stmt_uid.
21867 (cgraph_free_edge): Free indirect info.
21868 (cgraph_turn_edge_to_speculative): New function.
21869 (cgraph_speculative_call_info): New function.
21870 (cgraph_make_edge_direct): Return direct edge; handle speculation.
21871 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
21872 (dump_cgraph_node): Dump speculation.
21873 (verify_edge_count_and_frequency): Accept speculative edges.
21874 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
21875 (verify_cgraph_node): Handle speculation.
21876 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
21877 (cgraph_set_call_stmt): Update prototype.
21878 (cgraph_make_edge_direct): Update prototype.
21879 (cgraph_speculative_call_info): Declare.
21880 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
21881 to change; update call of ipa_find_references.
21882 * ipa-ref.c (ipa_record_reference): Fix return value; clear
21883 lto_stmt_uid and speculative flags.
21884 (ipa_dump_references): Dump speculation.
21885 (ipa_clone_references): Clone speculative flag.
21886 (ipa_clone_referring): Likewise.
21887 (ipa_clone_ref): New function.
21888 (ipa_find_reference): Look into lto_stmt_uids
21889 (ipa_clear_stmts_in_references): Do not clear speculative calls.
21890 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
21891 (ipa_find_reference): Update declaration.
21892 (ipa_clone_ref): Declare.
21893 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
21894 stream speculative flag.
21895 (lto_output_ref): Stream statements uids and speculation.
21896 (input_ref): Likewise.
21897 (input_edge): Stream speuclation.
21898 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
21899 (cgraph_set_call_stmt_including_clones): Handle speculation.
21900 * ipa-inline.c (heap_edge_removal_hook): New function.
21901 (inline_small_functions): Register it.
21902 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
21903 also initialize refs.
21904 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
21905 edge to change.
21906 (try_make_edge_direct_simple_call): Likewise.
21907 (try_make_edge_direct_simple_call): Likewise.
21908 (update_indirect_edges_after_inlining): Likewise.
21909 (remove_described_reference): Look proper lto_stmt_uid.
21910 (propagate_controlled_uses): Likewise.
21911 (propagate_controlled_uses): Liekwise.
21912 * tree-inline.c (copy_bb): Copy speculative edges.
21913 (redirect_all_calls): New function.
21914 (copy_cfg_body): Do redirection after loop info is updated.
21915 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
21916
21917 2013-08-09 Jan Hubicka <jh@suse.cz>
21918
21919 * lto-streamer-out.c (output_function): Renumber PHIs.
21920 * lto-streamer-in.c (input_function): Likewise.
21921
21922 2013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
21923
21924 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
21925 (get_lane_unsigned): Likewise.
21926 (dup_lane_scalar): Likewise.
21927 (get_lane): enable for VALL.
21928 * config/aarch64/aarch64-simd.md
21929 (aarch64_dup_lane_scalar<mode>): Remove.
21930 (aarch64_get_lane_signed<mode>): Likewise.
21931 (aarch64_get_lane_unsigned<mode>): Likewise.
21932 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
21933 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
21934 (aarch64_get_lane<mode>): Enable for all vector modes.
21935 (aarch64_get_lanedi): Remove misleading constraints.
21936 * config/aarch64/arm_neon.h
21937 (__aarch64_vget_lane_any): Define.
21938 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
21939 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
21940 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
21941 * config/aarch64/iterators.md (VDQQH): New.
21942 (VDQQHS): Likewise.
21943 (vwcore): Likewise.
21944
21945 2013-08-09 Eric Botcazou <ebotcazou@adacore.com>
21946
21947 * configure.ac: Add GAS check for LEON instructions on SPARC.
21948 * configure: Regenerate.
21949 * config.in: Likewise.
21950 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
21951 sparc*-*-* block.
21952 * config/sparc/sparc.opt (LEON, LEON3): New masks.
21953 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
21954 for LEON or LEON3.
21955 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
21956 (AS_LEON_FLAG): New macro.
21957 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
21958 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
21959 Deal with LEON and LEON3 for the memory model.
21960 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
21961 (atomic_compare_and_swap<mode>_1): Likewise.
21962 (*atomic_compare_and_swap<mode>_1): Likewise.
21963
21964 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21965
21966 * config/arm/neon.md (vcond): Fix floating-point vector
21967 comparisons against 0.
21968
21969 2013-08-08 Vladimir Makarov <vmakarov@redhat.com>
21970
21971 * lra-constraints.c (emit_spill_move): Remove assert.
21972 (process_alt_operands): Add more debugging
21973 output. Increase reject for spilling into memory. Decrease
21974 reject for reloading scratch.
21975 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
21976
21977 2013-08-08 Steve Ellcey <sellcey@mips.com>
21978
21979 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
21980 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
21981 micromips incompatible. Add nan2008.
21982 (MULTILIB_DIRNAMES): Add nan2008.
21983 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
21984 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
21985 and micromips incompatible. Add nan2008.
21986 (MULTILIB_DIRNAMES): Add nan2008.
21987 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
21988
21989 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
21990
21991 PR rtl-optimization/58079
21992 * combine.c (combine_simplify_rtx): Avoid using SUBST if
21993 simplify_comparison has widened a comparison with an integer.
21994
21995 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21996
21997 * config/arm/neon.md (movmisalign<mode>): Disable when we
21998 don't allow unaligned accesses.
21999 (*movmisalign<mode>_neon_store): Likewise.
22000 (*movmisalign<mode>_neon_load): Likewise.
22001 (*movmisalign<mode>_neon_store): Likewise.
22002 (*movmisalign<mode>_neon_load): Likewise.
22003
22004 2013-08-08 Jan Hubicka <jh@suse.cz>
22005
22006 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
22007 (make_pass_rebuild_cgraph_edges): Also clear references.
22008 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
22009 * ipa-inline-transform.c (inline_transform): Remove all references
22010 after inlining.
22011 * cgraphunit.c (expand_function): Remove all references after
22012 expansion.
22013 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
22014 (ipa_find_reference): Rewrite to iterator.
22015 (remove_stmt_references): Likewise.
22016 (ipa_clear_stmts_in_references): New function.
22017 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
22018 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
22019 clear references.
22020 * ipa-split.c (split_function): Remove references in split function.
22021
22022 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
22023
22024 PR target/57431
22025 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
22026 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
22027
22028 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
22029
22030 PR target/56979
22031 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
22032 suggested mode for the assignment isn't compatible with the
22033 registers required.
22034
22035 2013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
22036
22037 PR target/58065
22038 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
22039
22040 2013-08-07 Xinliang David Li <davidxl@google.com>
22041
22042 * config/i386/i386.opt: New option -mtune-ctrl=.
22043 * config/i386/x86-tune.def: New file.
22044 * config/i386/i386.h: include x86-tune.def.
22045 * config/i386/i386.c (ix86_option_override_internal):
22046 Parsing -mtune-ctrl= option and set tune features.
22047
22048 2013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
22049
22050 PR other/12081
22051 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
22052 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
22053 to gen_2arg_fn_t.
22054
22055 2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
22056
22057 * rtl.h (update_alignments): Declare.
22058 * final.c (grow_label_align): New function extracted from...
22059 (shorten_branches): ...here. Call it.
22060 (update_alignments): New function.
22061 * reorg.c (sibling_labels): New variable.
22062 (get_label_before): Add SIBLING parameter. If it is non-zero, push
22063 the new label along with it onto the sibling_labels vector.
22064 (fill_simple_delay_slots): Adjust call to get_label_before.
22065 (fill_slots_from_thread): Likewise.
22066 (relax_delay_slots): Likewise.
22067 (make_return_insns): Likewise.
22068 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
22069
22070 2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
22071
22072 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
22073 document its semantics.
22074 (diagnostic_report_diagnostic): Adjust accordingly.
22075
22076 2013-08-07 David Malcolm <dmalcolm@redhat.com>
22077
22078 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
22079 (sparc_option_override): ...and port to new C++ pass API.
22080 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
22081
22082 2013-08-07 Peter Bergner <bergner@vnet.ibm.com>
22083
22084 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
22085
22086 2013-08-06 Caroline Tice <cmtice@google.com>
22087
22088 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
22089 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
22090 * tree-pass.h: Add pass_vtable_verify.
22091 * varasm.c (assemble_variable): Add code to properly set the comdat
22092 section and name for the .vtable_map_vars section.
22093 (assemble_vtyv_preinit_initializer): New function.
22094 (default_sectin_type_flags): Make sure .vtable_map_vars section has
22095 LINK_ONCE flag.
22096 * output.h: Add function decl for assemble_vtv_preinit_initializer.
22097 * vtable-verify.c: New file.
22098 * vtable-verify.h: New file.
22099 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
22100 initialiation levels.
22101 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
22102 * passes.def: Insert pass_vtable_verify.
22103 * aclocal.m4: Reorder includes.
22104 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
22105 -fvtv-counts options.
22106 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
22107 as appropriate, if -fvtable-verify=... is used.
22108 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
22109 -fvtable-verify=... is used.
22110 * Makefile.in (OBJS): Add vtable-verify.o to list.
22111 (vtable-verify.o): Add new build rule.
22112 (GTFILES): Add vtable-verify.c to list.
22113 * common.opt (fvtable-verify=): New flag.
22114 (vtv_priority): Values for fvtable-verify= flag.
22115 (fvtv-counts): New flag.
22116 (fvtv-debug): New flag.
22117 * tree.h (save_vtable_map_decl): New extern function decl.
22118
22119 2013-08-07 David Malcolm <dmalcolm@redhat.com>
22120
22121 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
22122 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
22123 (pass_data_rl78_devirt): ...new pass_data instance and...
22124 (make_pass_rl78_devirt): ...new function.
22125 (rl78_asm_file_start): Port pass registration to new C++ API.
22126
22127 2013-08-07 David Malcolm <dmalcolm@redhat.com>
22128
22129 * coretypes.h (rtl_opt_pass): Add.
22130 (gcc::context): Add.
22131 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
22132 (epiphany_init): Port to new C++ pass API.
22133 (epiphany_optimize_mode_switching): Likewise.
22134 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
22135 (pass_manager::get_pass_mode_switching): New.
22136 (pass_manager::get_pass_peephole2): New.
22137 * mode-switching.c (pass_mode_switching): Add clone method.
22138 * recog.c (pass_peephole2): Add clone method.
22139 (pass_split_all_insns): Add clone method.
22140
22141 2013-08-06 David Malcolm <dmalcolm@redhat.com>
22142
22143 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
22144 (mips_option_override): ...here, porting to new C++ API for passes.
22145
22146 2013-08-06 Jan Hubicka <jh@suse.cz>
22147
22148 * cgraph.c (cgraph_get_body): New function based on lto.c
22149 implementation.
22150 * cgraph.h (cgraph_get_body): Declare.
22151 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
22152 LTO paths.
22153 * cgraphunit.c (expand_function): Get body prior expanding.
22154 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
22155 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
22156 really need.
22157 * passes.c (do_per_function_toporder): Get body.
22158 * tree-inline.c (expand_call_inline): Get body prior inlining it.
22159 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
22160
22161 2013-08-06 Martin Jambor <mjambor@suse.cz>
22162
22163 PR fortran/57987
22164 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
22165 is not re-finalized. Rename second parameter to no_collect.
22166
22167 2013-08-06 Martin Jambor <mjambor@suse.cz>
22168
22169 PR middle-end/58041
22170 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
22171 MEM_REF has proper alignment information.
22172
22173 2013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
22174
22175 PR other/12081
22176 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
22177 class insn_gen_fn.
22178 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
22179 rtx (*) (rtx, ...) with insn_gen_fn.
22180 * genoutput.c (output_insn_data): Cast gen_? function pointers to
22181 insn_gen_fn::stored_funcptr. Add initializer braces.
22182
22183 2013-08-05 David Malcolm <dmalcolm@redhat.com>
22184
22185 Rewrite how instances of passes are cloned to remove assumptions
22186 about their sizes (thus allowing pass subclasses to have
22187 additional data fields, albeit non-GC-managed ones at this point).
22188
22189 * passes.c (make_pass_instance): Now that passes have clone
22190 methods, rewrite this function to eliminate XNEW and memcpy
22191 calls that used hardcoded sizes. Since this function no longer
22192 creates pass instances, rename it to...
22193 (add_pass_instance): ...this. Document the old way that passes were
22194 numbered and flagged, and rework this function to continue using it.
22195 (next_pass_1): Add an initial_pass argument for use by
22196 add_pass_instance.
22197 (position_pass): When adding multiple instances of a pass, use
22198 the pass's clone method, rather than relying on the XNEW/memcpy
22199 within the former make_pass_instance (now add_pass_instance).
22200 (pass_manager::pass_manager): When invoking next_pass_1, also supply
22201 the initial instance of the current pass within the pass manager.
22202
22203 2013-08-05 David Malcolm <dmalcolm@redhat.com>
22204
22205 This is the automated part of the conversion of passes from C
22206 structs to C++ classes.
22207
22208 Patch autogenerated by refactor_passes.py from
22209 https://github.com/davidmalcolm/gcc-refactoring-scripts
22210 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
22211
22212 * asan.c (pass_asan): Convert from a global struct to a subclass of
22213 gimple_opt_pass along with...
22214 (pass_data_asan): ...new pass_data instance and...
22215 (make_pass_asan): ...new function.
22216 (pass_asan_O0): Convert from a global struct to a subclass of
22217 gimple_opt_pass along with...
22218 (pass_data_asan_O0): ...new pass_data instance and...
22219 (make_pass_asan_O0): ...new function.
22220 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
22221 subclass of rtl_opt_pass along with...
22222 (pass_data_inc_dec): ...new pass_data instance and...
22223 (make_pass_inc_dec): ...new function.
22224 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
22225 a subclass of rtl_opt_pass along with...
22226 (pass_data_reorder_blocks): ...new pass_data instance and...
22227 (make_pass_reorder_blocks): ...new function.
22228 (pass_duplicate_computed_gotos): Convert from a global struct to a
22229 subclass of rtl_opt_pass along with...
22230 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
22231 (make_pass_duplicate_computed_gotos): ...new function.
22232 (pass_partition_blocks): Convert from a global struct to a subclass of
22233 rtl_opt_pass along with...
22234 (pass_data_partition_blocks): ...new pass_data instance and...
22235 (make_pass_partition_blocks): ...new function.
22236 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
22237 struct to a subclass of rtl_opt_pass along with...
22238 (pass_data_branch_target_load_optimize1): ...new pass_data instance
22239 and...
22240 (make_pass_branch_target_load_optimize1): ...new function.
22241 (pass_branch_target_load_optimize2): Convert from a global struct to a
22242 subclass of rtl_opt_pass along with...
22243 (pass_data_branch_target_load_optimize2): ...new pass_data instance
22244 and...
22245 (make_pass_branch_target_load_optimize2): ...new function.
22246 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
22247 of rtl_opt_pass along with...
22248 (pass_data_jump): ...new pass_data instance and...
22249 (make_pass_jump): ...new function.
22250 (pass_jump2): Convert from a global struct to a subclass of
22251 rtl_opt_pass along with...
22252 (pass_data_jump2): ...new pass_data instance and...
22253 (make_pass_jump2): ...new function.
22254 * cfgexpand.c (pass_expand): Convert from a global struct to a
22255 subclass of rtl_opt_pass along with...
22256 (pass_data_expand): ...new pass_data instance and...
22257 (make_pass_expand): ...new function.
22258 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
22259 of rtl_opt_pass along with...
22260 (pass_data_free_cfg): ...new pass_data instance and...
22261 (make_pass_free_cfg): ...new function.
22262 (pass_into_cfg_layout_mode): Convert from a global struct to a
22263 subclass of rtl_opt_pass along with...
22264 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
22265 (make_pass_into_cfg_layout_mode): ...new function.
22266 (pass_outof_cfg_layout_mode): Convert from a global struct to a
22267 subclass of rtl_opt_pass along with...
22268 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
22269 (make_pass_outof_cfg_layout_mode): ...new function.
22270 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
22271 struct to a subclass of gimple_opt_pass along with...
22272 (pass_data_build_cgraph_edges): ...new pass_data instance and...
22273 (make_pass_build_cgraph_edges): ...new function.
22274 (pass_rebuild_cgraph_edges): Convert from a global struct to a
22275 subclass of gimple_opt_pass along with...
22276 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
22277 (make_pass_rebuild_cgraph_edges): ...new function.
22278 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
22279 subclass of gimple_opt_pass along with...
22280 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
22281 and...
22282 (make_pass_remove_cgraph_callee_edges): ...new function.
22283 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
22284 struct to a subclass of rtl_opt_pass along with...
22285 (pass_data_stack_adjustments): ...new pass_data instance and...
22286 (make_pass_stack_adjustments): ...new function.
22287 * combine.c (pass_combine): Convert from a global struct to a subclass
22288 of rtl_opt_pass along with...
22289 (pass_data_combine): ...new pass_data instance and...
22290 (make_pass_combine): ...new function.
22291 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
22292 global struct to a subclass of rtl_opt_pass along with...
22293 (pass_data_compare_elim_after_reload): ...new pass_data instance
22294 and...
22295 (make_pass_compare_elim_after_reload): ...new function.
22296 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
22297 of rtl_opt_pass along with...
22298 (pass_data_rtl_cprop): ...new pass_data instance and...
22299 (make_pass_rtl_cprop): ...new function.
22300 * cse.c (pass_cse): Convert from a global struct to a subclass of
22301 rtl_opt_pass along with...
22302 (pass_data_cse): ...new pass_data instance and...
22303 (make_pass_cse): ...new function.
22304 (pass_cse2): Convert from a global struct to a subclass of
22305 rtl_opt_pass along with...
22306 (pass_data_cse2): ...new pass_data instance and...
22307 (make_pass_cse2): ...new function.
22308 (pass_cse_after_global_opts): Convert from a global struct to a
22309 subclass of rtl_opt_pass along with...
22310 (pass_data_cse_after_global_opts): ...new pass_data instance and...
22311 (make_pass_cse_after_global_opts): ...new function.
22312 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
22313 of rtl_opt_pass along with...
22314 (pass_data_ud_rtl_dce): ...new pass_data instance and...
22315 (make_pass_ud_rtl_dce): ...new function.
22316 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
22317 rtl_opt_pass along with...
22318 (pass_data_fast_rtl_dce): ...new pass_data instance and...
22319 (make_pass_fast_rtl_dce): ...new function.
22320 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
22321 a subclass of rtl_opt_pass along with...
22322 (pass_data_df_initialize_opt): ...new pass_data instance and...
22323 (make_pass_df_initialize_opt): ...new function.
22324 (pass_df_initialize_no_opt): Convert from a global struct to a
22325 subclass of rtl_opt_pass along with...
22326 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
22327 (make_pass_df_initialize_no_opt): ...new function.
22328 (pass_df_finish): Convert from a global struct to a subclass of
22329 rtl_opt_pass along with...
22330 (pass_data_df_finish): ...new pass_data instance and...
22331 (make_pass_df_finish): ...new function.
22332 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
22333 rtl_opt_pass along with...
22334 (pass_data_rtl_dse1): ...new pass_data instance and...
22335 (make_pass_rtl_dse1): ...new function.
22336 (pass_rtl_dse2): Convert from a global struct to a subclass of
22337 rtl_opt_pass along with...
22338 (pass_data_rtl_dse2): ...new pass_data instance and...
22339 (make_pass_rtl_dse2): ...new function.
22340 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
22341 subclass of rtl_opt_pass along with...
22342 (pass_data_dwarf2_frame): ...new pass_data instance and...
22343 (make_pass_dwarf2_frame): ...new function.
22344 * except.c (pass_set_nothrow_function_flags): Convert from a global
22345 struct to a subclass of rtl_opt_pass along with...
22346 (pass_data_set_nothrow_function_flags): ...new pass_data instance
22347 and...
22348 (make_pass_set_nothrow_function_flags): ...new function.
22349 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
22350 subclass of rtl_opt_pass along with...
22351 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
22352 and...
22353 (make_pass_convert_to_eh_region_ranges): ...new function.
22354 * final.c (pass_compute_alignments): Convert from a global struct to a
22355 subclass of rtl_opt_pass along with...
22356 (pass_data_compute_alignments): ...new pass_data instance and...
22357 (make_pass_compute_alignments): ...new function.
22358 (pass_final): Convert from a global struct to a subclass of
22359 rtl_opt_pass along with...
22360 (pass_data_final): ...new pass_data instance and...
22361 (make_pass_final): ...new function.
22362 (pass_shorten_branches): Convert from a global struct to a subclass of
22363 rtl_opt_pass along with...
22364 (pass_data_shorten_branches): ...new pass_data instance and...
22365 (make_pass_shorten_branches): ...new function.
22366 (pass_clean_state): Convert from a global struct to a subclass of
22367 rtl_opt_pass along with...
22368 (pass_data_clean_state): ...new pass_data instance and...
22369 (make_pass_clean_state): ...new function.
22370 * function.c (pass_instantiate_virtual_regs): Convert from a global
22371 struct to a subclass of rtl_opt_pass along with...
22372 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
22373 (make_pass_instantiate_virtual_regs): ...new function.
22374 (pass_leaf_regs): Convert from a global struct to a subclass of
22375 rtl_opt_pass along with...
22376 (pass_data_leaf_regs): ...new pass_data instance and...
22377 (make_pass_leaf_regs): ...new function.
22378 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
22379 subclass of rtl_opt_pass along with...
22380 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
22381 and...
22382 (make_pass_thread_prologue_and_epilogue): ...new function.
22383 (pass_match_asm_constraints): Convert from a global struct to a
22384 subclass of rtl_opt_pass along with...
22385 (pass_data_match_asm_constraints): ...new pass_data instance and...
22386 (make_pass_match_asm_constraints): ...new function.
22387 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
22388 subclass of rtl_opt_pass along with...
22389 (pass_data_rtl_fwprop): ...new pass_data instance and...
22390 (make_pass_rtl_fwprop): ...new function.
22391 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
22392 rtl_opt_pass along with...
22393 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
22394 (make_pass_rtl_fwprop_addr): ...new function.
22395 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
22396 rtl_opt_pass along with...
22397 (pass_data_rtl_pre): ...new pass_data instance and...
22398 (make_pass_rtl_pre): ...new function.
22399 (pass_rtl_hoist): Convert from a global struct to a subclass of
22400 rtl_opt_pass along with...
22401 (pass_data_rtl_hoist): ...new pass_data instance and...
22402 (make_pass_rtl_hoist): ...new function.
22403 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
22404 subclass of gimple_opt_pass along with...
22405 (pass_data_lower_cf): ...new pass_data instance and...
22406 (make_pass_lower_cf): ...new function.
22407 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
22408 from a global struct to a subclass of gimple_opt_pass along with...
22409 (pass_data_strength_reduction): ...new pass_data instance and...
22410 (make_pass_strength_reduction): ...new function.
22411 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
22412 of rtl_opt_pass along with...
22413 (pass_data_rtl_ifcvt): ...new pass_data instance and...
22414 (make_pass_rtl_ifcvt): ...new function.
22415 (pass_if_after_combine): Convert from a global struct to a subclass of
22416 rtl_opt_pass along with...
22417 (pass_data_if_after_combine): ...new pass_data instance and...
22418 (make_pass_if_after_combine): ...new function.
22419 (pass_if_after_reload): Convert from a global struct to a subclass of
22420 rtl_opt_pass along with...
22421 (pass_data_if_after_reload): ...new pass_data instance and...
22422 (make_pass_if_after_reload): ...new function.
22423 * init-regs.c (pass_initialize_regs): Convert from a global struct to
22424 a subclass of rtl_opt_pass along with...
22425 (pass_data_initialize_regs): ...new pass_data instance and...
22426 (make_pass_initialize_regs): ...new function.
22427 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
22428 of ipa_opt_pass_d along with...
22429 (pass_data_ipa_cp): ...new pass_data instance and...
22430 (make_pass_ipa_cp): ...new function.
22431 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
22432 global struct to a subclass of gimple_opt_pass along with...
22433 (pass_data_inline_parameters): ...new pass_data instance and...
22434 (make_pass_inline_parameters): ...new function.
22435 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
22436 subclass of gimple_opt_pass along with...
22437 (pass_data_early_inline): ...new pass_data instance and...
22438 (make_pass_early_inline): ...new function.
22439 (pass_ipa_inline): Convert from a global struct to a subclass of
22440 ipa_opt_pass_d along with...
22441 (pass_data_ipa_inline): ...new pass_data instance and...
22442 (make_pass_ipa_inline): ...new function.
22443 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
22444 struct to a subclass of gimple_opt_pass along with...
22445 (pass_data_local_pure_const): ...new pass_data instance and...
22446 (make_pass_local_pure_const): ...new function.
22447 (pass_ipa_pure_const): Convert from a global struct to a subclass of
22448 ipa_opt_pass_d along with...
22449 (pass_data_ipa_pure_const): ...new pass_data instance and...
22450 (make_pass_ipa_pure_const): ...new function.
22451 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
22452 to a subclass of ipa_opt_pass_d along with...
22453 (pass_data_ipa_reference): ...new pass_data instance and...
22454 (make_pass_ipa_reference): ...new function.
22455 * ipa-split.c (pass_split_functions): Convert from a global struct to
22456 a subclass of gimple_opt_pass along with...
22457 (pass_data_split_functions): ...new pass_data instance and...
22458 (make_pass_split_functions): ...new function.
22459 (pass_feedback_split_functions): Convert from a global struct to a
22460 subclass of gimple_opt_pass along with...
22461 (pass_data_feedback_split_functions): ...new pass_data instance and...
22462 (make_pass_feedback_split_functions): ...new function.
22463 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
22464 global struct to a subclass of simple_ipa_opt_pass along with...
22465 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
22466 instance and...
22467 (make_pass_ipa_function_and_variable_visibility): ...new function.
22468 (pass_ipa_free_inline_summary): Convert from a global struct to a
22469 subclass of simple_ipa_opt_pass along with...
22470 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
22471 (make_pass_ipa_free_inline_summary): ...new function.
22472 (pass_ipa_whole_program_visibility): Convert from a global struct to a
22473 subclass of ipa_opt_pass_d along with...
22474 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
22475 and...
22476 (make_pass_ipa_whole_program_visibility): ...new function.
22477 (pass_ipa_profile): Convert from a global struct to a subclass of
22478 ipa_opt_pass_d along with...
22479 (pass_data_ipa_profile): ...new pass_data instance and...
22480 (make_pass_ipa_profile): ...new function.
22481 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
22482 ipa_opt_pass_d along with...
22483 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
22484 (make_pass_ipa_cdtor_merge): ...new function.
22485 * ira.c (pass_ira): Convert from a global struct to a subclass of
22486 rtl_opt_pass along with...
22487 (pass_data_ira): ...new pass_data instance and...
22488 (make_pass_ira): ...new function.
22489 (pass_reload): Convert from a global struct to a subclass of
22490 rtl_opt_pass along with...
22491 (pass_data_reload): ...new pass_data instance and...
22492 (make_pass_reload): ...new function.
22493 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
22494 subclass of rtl_opt_pass along with...
22495 (pass_data_cleanup_barriers): ...new pass_data instance and...
22496 (make_pass_cleanup_barriers): ...new function.
22497 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
22498 of rtl_opt_pass along with...
22499 (pass_data_loop2): ...new pass_data instance and...
22500 (make_pass_loop2): ...new function.
22501 (pass_rtl_loop_init): Convert from a global struct to a subclass of
22502 rtl_opt_pass along with...
22503 (pass_data_rtl_loop_init): ...new pass_data instance and...
22504 (make_pass_rtl_loop_init): ...new function.
22505 (pass_rtl_loop_done): Convert from a global struct to a subclass of
22506 rtl_opt_pass along with...
22507 (pass_data_rtl_loop_done): ...new pass_data instance and...
22508 (make_pass_rtl_loop_done): ...new function.
22509 (pass_rtl_move_loop_invariants): Convert from a global struct to a
22510 subclass of rtl_opt_pass along with...
22511 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
22512 (make_pass_rtl_move_loop_invariants): ...new function.
22513 (pass_rtl_unswitch): Convert from a global struct to a subclass of
22514 rtl_opt_pass along with...
22515 (pass_data_rtl_unswitch): ...new pass_data instance and...
22516 (make_pass_rtl_unswitch): ...new function.
22517 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
22518 subclass of rtl_opt_pass along with...
22519 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
22520 and...
22521 (make_pass_rtl_unroll_and_peel_loops): ...new function.
22522 (pass_rtl_doloop): Convert from a global struct to a subclass of
22523 rtl_opt_pass along with...
22524 (pass_data_rtl_doloop): ...new pass_data instance and...
22525 (make_pass_rtl_doloop): ...new function.
22526 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
22527 a subclass of rtl_opt_pass along with...
22528 (pass_data_lower_subreg): ...new pass_data instance and...
22529 (make_pass_lower_subreg): ...new function.
22530 (pass_lower_subreg2): Convert from a global struct to a subclass of
22531 rtl_opt_pass along with...
22532 (pass_data_lower_subreg2): ...new pass_data instance and...
22533 (make_pass_lower_subreg2): ...new function.
22534 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
22535 struct to a subclass of ipa_opt_pass_d along with...
22536 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
22537 (make_pass_ipa_lto_gimple_out): ...new function.
22538 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
22539 of ipa_opt_pass_d along with...
22540 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
22541 (make_pass_ipa_lto_finish_out): ...new function.
22542 * mode-switching.c (pass_mode_switching): Convert from a global struct
22543 to a subclass of rtl_opt_pass along with...
22544 (pass_data_mode_switching): ...new pass_data instance and...
22545 (make_pass_mode_switching): ...new function.
22546 * modulo-sched.c (pass_sms): Convert from a global struct to a
22547 subclass of rtl_opt_pass along with...
22548 (pass_data_sms): ...new pass_data instance and...
22549 (make_pass_sms): ...new function.
22550 * omp-low.c (pass_expand_omp): Convert from a global struct to a
22551 subclass of gimple_opt_pass along with...
22552 (pass_data_expand_omp): ...new pass_data instance and...
22553 (make_pass_expand_omp): ...new function.
22554 (pass_lower_omp): Convert from a global struct to a subclass of
22555 gimple_opt_pass along with...
22556 (pass_data_lower_omp): ...new pass_data instance and...
22557 (make_pass_lower_omp): ...new function.
22558 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
22559 of gimple_opt_pass along with...
22560 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
22561 (make_pass_diagnose_omp_blocks): ...new function.
22562 * passes.c (pass_early_local_passes): Convert from a global struct to
22563 a subclass of simple_ipa_opt_pass along with...
22564 (pass_data_early_local_passes): ...new pass_data instance and...
22565 (make_pass_early_local_passes): ...new function.
22566 (pass_all_early_optimizations): Convert from a global struct to a
22567 subclass of gimple_opt_pass along with...
22568 (pass_data_all_early_optimizations): ...new pass_data instance and...
22569 (make_pass_all_early_optimizations): ...new function.
22570 (pass_all_optimizations): Convert from a global struct to a subclass
22571 of gimple_opt_pass along with...
22572 (pass_data_all_optimizations): ...new pass_data instance and...
22573 (make_pass_all_optimizations): ...new function.
22574 (pass_all_optimizations_g): Convert from a global struct to a subclass
22575 of gimple_opt_pass along with...
22576 (pass_data_all_optimizations_g): ...new pass_data instance and...
22577 (make_pass_all_optimizations_g): ...new function.
22578 (pass_rest_of_compilation): Convert from a global struct to a subclass
22579 of rtl_opt_pass along with...
22580 (pass_data_rest_of_compilation): ...new pass_data instance and...
22581 (make_pass_rest_of_compilation): ...new function.
22582 (pass_postreload): Convert from a global struct to a subclass of
22583 rtl_opt_pass along with...
22584 (pass_data_postreload): ...new pass_data instance and...
22585 (make_pass_postreload): ...new function.
22586 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
22587 subclass of rtl_opt_pass along with...
22588 (pass_data_gcse2): ...new pass_data instance and...
22589 (make_pass_gcse2): ...new function.
22590 * postreload.c (pass_postreload_cse): Convert from a global struct to
22591 a subclass of rtl_opt_pass along with...
22592 (pass_data_postreload_cse): ...new pass_data instance and...
22593 (make_pass_postreload_cse): ...new function.
22594 * predict.c (pass_profile): Convert from a global struct to a subclass
22595 of gimple_opt_pass along with...
22596 (pass_data_profile): ...new pass_data instance and...
22597 (make_pass_profile): ...new function.
22598 (pass_strip_predict_hints): Convert from a global struct to a subclass
22599 of gimple_opt_pass along with...
22600 (pass_data_strip_predict_hints): ...new pass_data instance and...
22601 (make_pass_strip_predict_hints): ...new function.
22602 * recog.c (pass_peephole2): Convert from a global struct to a subclass
22603 of rtl_opt_pass along with...
22604 (pass_data_peephole2): ...new pass_data instance and...
22605 (make_pass_peephole2): ...new function.
22606 (pass_split_all_insns): Convert from a global struct to a subclass of
22607 rtl_opt_pass along with...
22608 (pass_data_split_all_insns): ...new pass_data instance and...
22609 (make_pass_split_all_insns): ...new function.
22610 (pass_split_after_reload): Convert from a global struct to a subclass
22611 of rtl_opt_pass along with...
22612 (pass_data_split_after_reload): ...new pass_data instance and...
22613 (make_pass_split_after_reload): ...new function.
22614 (pass_split_before_regstack): Convert from a global struct to a
22615 subclass of rtl_opt_pass along with...
22616 (pass_data_split_before_regstack): ...new pass_data instance and...
22617 (make_pass_split_before_regstack): ...new function.
22618 (pass_split_before_sched2): Convert from a global struct to a subclass
22619 of rtl_opt_pass along with...
22620 (pass_data_split_before_sched2): ...new pass_data instance and...
22621 (make_pass_split_before_sched2): ...new function.
22622 (pass_split_for_shorten_branches): Convert from a global struct to a
22623 subclass of rtl_opt_pass along with...
22624 (pass_data_split_for_shorten_branches): ...new pass_data instance
22625 and...
22626 (make_pass_split_for_shorten_branches): ...new function.
22627 * ree.c (pass_ree): Convert from a global struct to a subclass of
22628 rtl_opt_pass along with...
22629 (pass_data_ree): ...new pass_data instance and...
22630 (make_pass_ree): ...new function.
22631 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
22632 subclass of rtl_opt_pass along with...
22633 (pass_data_stack_regs): ...new pass_data instance and...
22634 (make_pass_stack_regs): ...new function.
22635 (pass_stack_regs_run): Convert from a global struct to a subclass of
22636 rtl_opt_pass along with...
22637 (pass_data_stack_regs_run): ...new pass_data instance and...
22638 (make_pass_stack_regs_run): ...new function.
22639 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
22640 subclass of rtl_opt_pass along with...
22641 (pass_data_cprop_hardreg): ...new pass_data instance and...
22642 (make_pass_cprop_hardreg): ...new function.
22643 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
22644 subclass of rtl_opt_pass along with...
22645 (pass_data_reginfo_init): ...new pass_data instance and...
22646 (make_pass_reginfo_init): ...new function.
22647 * regmove.c (pass_regmove): Convert from a global struct to a subclass
22648 of rtl_opt_pass along with...
22649 (pass_data_regmove): ...new pass_data instance and...
22650 (make_pass_regmove): ...new function.
22651 * regrename.c (pass_regrename): Convert from a global struct to a
22652 subclass of rtl_opt_pass along with...
22653 (pass_data_regrename): ...new pass_data instance and...
22654 (make_pass_regrename): ...new function.
22655 * reorg.c (pass_delay_slots): Convert from a global struct to a
22656 subclass of rtl_opt_pass along with...
22657 (pass_data_delay_slots): ...new pass_data instance and...
22658 (make_pass_delay_slots): ...new function.
22659 (pass_machine_reorg): Convert from a global struct to a subclass of
22660 rtl_opt_pass along with...
22661 (pass_data_machine_reorg): ...new pass_data instance and...
22662 (make_pass_machine_reorg): ...new function.
22663 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
22664 of rtl_opt_pass along with...
22665 (pass_data_sched): ...new pass_data instance and...
22666 (make_pass_sched): ...new function.
22667 (pass_sched2): Convert from a global struct to a subclass of
22668 rtl_opt_pass along with...
22669 (pass_data_sched2): ...new pass_data instance and...
22670 (make_pass_sched2): ...new function.
22671 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
22672 to a subclass of rtl_opt_pass along with...
22673 (pass_data_stack_ptr_mod): ...new pass_data instance and...
22674 (make_pass_stack_ptr_mod): ...new function.
22675 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
22676 to a subclass of rtl_opt_pass along with...
22677 (pass_data_rtl_store_motion): ...new pass_data instance and...
22678 (make_pass_rtl_store_motion): ...new function.
22679 * tracer.c (pass_tracer): Convert from a global struct to a subclass
22680 of gimple_opt_pass along with...
22681 (pass_data_tracer): ...new pass_data instance and...
22682 (make_pass_tracer): ...new function.
22683 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
22684 to a subclass of gimple_opt_pass along with...
22685 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
22686 (make_pass_diagnose_tm_blocks): ...new function.
22687 (pass_lower_tm): Convert from a global struct to a subclass of
22688 gimple_opt_pass along with...
22689 (pass_data_lower_tm): ...new pass_data instance and...
22690 (make_pass_lower_tm): ...new function.
22691 (pass_tm_init): Convert from a global struct to a subclass of
22692 gimple_opt_pass along with...
22693 (pass_data_tm_init): ...new pass_data instance and...
22694 (make_pass_tm_init): ...new function.
22695 (pass_tm_mark): Convert from a global struct to a subclass of
22696 gimple_opt_pass along with...
22697 (pass_data_tm_mark): ...new pass_data instance and...
22698 (make_pass_tm_mark): ...new function.
22699 (pass_tm_edges): Convert from a global struct to a subclass of
22700 gimple_opt_pass along with...
22701 (pass_data_tm_edges): ...new pass_data instance and...
22702 (make_pass_tm_edges): ...new function.
22703 (pass_tm_memopt): Convert from a global struct to a subclass of
22704 gimple_opt_pass along with...
22705 (pass_data_tm_memopt): ...new pass_data instance and...
22706 (make_pass_tm_memopt): ...new function.
22707 (pass_ipa_tm): Convert from a global struct to a subclass of
22708 simple_ipa_opt_pass along with...
22709 (pass_data_ipa_tm): ...new pass_data instance and...
22710 (make_pass_ipa_tm): ...new function.
22711 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
22712 subclass of gimple_opt_pass along with...
22713 (pass_data_call_cdce): ...new pass_data instance and...
22714 (make_pass_call_cdce): ...new function.
22715 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
22716 subclass of gimple_opt_pass along with...
22717 (pass_data_build_cfg): ...new pass_data instance and...
22718 (make_pass_build_cfg): ...new function.
22719 (pass_split_crit_edges): Convert from a global struct to a subclass of
22720 gimple_opt_pass along with...
22721 (pass_data_split_crit_edges): ...new pass_data instance and...
22722 (make_pass_split_crit_edges): ...new function.
22723 (pass_warn_function_return): Convert from a global struct to a
22724 subclass of gimple_opt_pass along with...
22725 (pass_data_warn_function_return): ...new pass_data instance and...
22726 (make_pass_warn_function_return): ...new function.
22727 (pass_warn_function_noreturn): Convert from a global struct to a
22728 subclass of gimple_opt_pass along with...
22729 (pass_data_warn_function_noreturn): ...new pass_data instance and...
22730 (make_pass_warn_function_noreturn): ...new function.
22731 (pass_warn_unused_result): Convert from a global struct to a subclass
22732 of gimple_opt_pass along with...
22733 (pass_data_warn_unused_result): ...new pass_data instance and...
22734 (make_pass_warn_unused_result): ...new function.
22735 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
22736 a subclass of gimple_opt_pass along with...
22737 (pass_data_merge_phi): ...new pass_data instance and...
22738 (make_pass_merge_phi): ...new function.
22739 * tree-complex.c (pass_lower_complex): Convert from a global struct to
22740 a subclass of gimple_opt_pass along with...
22741 (pass_data_lower_complex): ...new pass_data instance and...
22742 (make_pass_lower_complex): ...new function.
22743 (pass_lower_complex_O0): Convert from a global struct to a subclass of
22744 gimple_opt_pass along with...
22745 (pass_data_lower_complex_O0): ...new pass_data instance and...
22746 (make_pass_lower_complex_O0): ...new function.
22747 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
22748 subclass of gimple_opt_pass along with...
22749 (pass_data_lower_eh): ...new pass_data instance and...
22750 (make_pass_lower_eh): ...new function.
22751 (pass_refactor_eh): Convert from a global struct to a subclass of
22752 gimple_opt_pass along with...
22753 (pass_data_refactor_eh): ...new pass_data instance and...
22754 (make_pass_refactor_eh): ...new function.
22755 (pass_lower_resx): Convert from a global struct to a subclass of
22756 gimple_opt_pass along with...
22757 (pass_data_lower_resx): ...new pass_data instance and...
22758 (make_pass_lower_resx): ...new function.
22759 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
22760 of gimple_opt_pass along with...
22761 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
22762 (make_pass_lower_eh_dispatch): ...new function.
22763 (pass_cleanup_eh): Convert from a global struct to a subclass of
22764 gimple_opt_pass along with...
22765 (pass_data_cleanup_eh): ...new pass_data instance and...
22766 (make_pass_cleanup_eh): ...new function.
22767 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
22768 to a subclass of simple_ipa_opt_pass along with...
22769 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
22770 (make_pass_ipa_lower_emutls): ...new function.
22771 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
22772 a subclass of gimple_opt_pass along with...
22773 (pass_data_if_conversion): ...new pass_data instance and...
22774 (make_pass_if_conversion): ...new function.
22775 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
22776 subclass of gimple_opt_pass along with...
22777 (pass_data_build_ssa): ...new pass_data instance and...
22778 (make_pass_build_ssa): ...new function.
22779 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
22780 global struct to a subclass of gimple_opt_pass along with...
22781 (pass_data_loop_distribution): ...new pass_data instance and...
22782 (make_pass_loop_distribution): ...new function.
22783 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
22784 subclass of gimple_opt_pass along with...
22785 (pass_data_mudflap_1): ...new pass_data instance and...
22786 (make_pass_mudflap_1): ...new function.
22787 (pass_mudflap_2): Convert from a global struct to a subclass of
22788 gimple_opt_pass along with...
22789 (pass_data_mudflap_2): ...new pass_data instance and...
22790 (make_pass_mudflap_2): ...new function.
22791 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
22792 subclass of gimple_opt_pass along with...
22793 (pass_data_mudflap_1): ...new pass_data instance and...
22794 (make_pass_mudflap_1): ...new function.
22795 (pass_mudflap_2): Convert from a global struct to a subclass of
22796 gimple_opt_pass along with...
22797 (pass_data_mudflap_2): ...new pass_data instance and...
22798 (make_pass_mudflap_2): ...new function.
22799 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
22800 gimple_opt_pass along with...
22801 (pass_data_nrv): ...new pass_data instance and...
22802 (make_pass_nrv): ...new function.
22803 (pass_return_slot): Convert from a global struct to a subclass of
22804 gimple_opt_pass along with...
22805 (pass_data_return_slot): ...new pass_data instance and...
22806 (make_pass_return_slot): ...new function.
22807 * tree-object-size.c (pass_object_sizes): Convert from a global struct
22808 to a subclass of gimple_opt_pass along with...
22809 (pass_data_object_sizes): ...new pass_data instance and...
22810 (make_pass_object_sizes): ...new function.
22811 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
22812 global struct to a subclass of gimple_opt_pass along with...
22813 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
22814 and...
22815 (make_pass_cleanup_cfg_post_optimizing): ...new function.
22816 (pass_fixup_cfg): Convert from a global struct to a subclass of
22817 gimple_opt_pass along with...
22818 (pass_data_fixup_cfg): ...new pass_data instance and...
22819 (make_pass_fixup_cfg): ...new function.
22820 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
22821 (make_pass_mudflap_1): ...new function.
22822 (pass_mudflap_2): Replace declaration with that of...
22823 (make_pass_mudflap_2): ...new function.
22824 (pass_asan): Replace declaration with that of...
22825 (make_pass_asan): ...new function.
22826 (pass_asan_O0): Replace declaration with that of...
22827 (make_pass_asan_O0): ...new function.
22828 (pass_tsan): Replace declaration with that of...
22829 (make_pass_tsan): ...new function.
22830 (pass_tsan_O0): Replace declaration with that of...
22831 (make_pass_tsan_O0): ...new function.
22832 (pass_lower_cf): Replace declaration with that of...
22833 (make_pass_lower_cf): ...new function.
22834 (pass_refactor_eh): Replace declaration with that of...
22835 (make_pass_refactor_eh): ...new function.
22836 (pass_lower_eh): Replace declaration with that of...
22837 (make_pass_lower_eh): ...new function.
22838 (pass_lower_eh_dispatch): Replace declaration with that of...
22839 (make_pass_lower_eh_dispatch): ...new function.
22840 (pass_lower_resx): Replace declaration with that of...
22841 (make_pass_lower_resx): ...new function.
22842 (pass_build_cfg): Replace declaration with that of...
22843 (make_pass_build_cfg): ...new function.
22844 (pass_early_tree_profile): Replace declaration with that of...
22845 (make_pass_early_tree_profile): ...new function.
22846 (pass_cleanup_eh): Replace declaration with that of...
22847 (make_pass_cleanup_eh): ...new function.
22848 (pass_sra): Replace declaration with that of...
22849 (make_pass_sra): ...new function.
22850 (pass_sra_early): Replace declaration with that of...
22851 (make_pass_sra_early): ...new function.
22852 (pass_early_ipa_sra): Replace declaration with that of...
22853 (make_pass_early_ipa_sra): ...new function.
22854 (pass_tail_recursion): Replace declaration with that of...
22855 (make_pass_tail_recursion): ...new function.
22856 (pass_tail_calls): Replace declaration with that of...
22857 (make_pass_tail_calls): ...new function.
22858 (pass_tree_loop): Replace declaration with that of...
22859 (make_pass_tree_loop): ...new function.
22860 (pass_tree_loop_init): Replace declaration with that of...
22861 (make_pass_tree_loop_init): ...new function.
22862 (pass_lim): Replace declaration with that of...
22863 (make_pass_lim): ...new function.
22864 (pass_tree_unswitch): Replace declaration with that of...
22865 (make_pass_tree_unswitch): ...new function.
22866 (pass_predcom): Replace declaration with that of...
22867 (make_pass_predcom): ...new function.
22868 (pass_iv_canon): Replace declaration with that of...
22869 (make_pass_iv_canon): ...new function.
22870 (pass_scev_cprop): Replace declaration with that of...
22871 (make_pass_scev_cprop): ...new function.
22872 (pass_empty_loop): Replace declaration with that of...
22873 (make_pass_empty_loop): ...new function.
22874 (pass_record_bounds): Replace declaration with that of...
22875 (make_pass_record_bounds): ...new function.
22876 (pass_graphite): Replace declaration with that of...
22877 (make_pass_graphite): ...new function.
22878 (pass_graphite_transforms): Replace declaration with that of...
22879 (make_pass_graphite_transforms): ...new function.
22880 (pass_if_conversion): Replace declaration with that of...
22881 (make_pass_if_conversion): ...new function.
22882 (pass_loop_distribution): Replace declaration with that of...
22883 (make_pass_loop_distribution): ...new function.
22884 (pass_vectorize): Replace declaration with that of...
22885 (make_pass_vectorize): ...new function.
22886 (pass_slp_vectorize): Replace declaration with that of...
22887 (make_pass_slp_vectorize): ...new function.
22888 (pass_complete_unroll): Replace declaration with that of...
22889 (make_pass_complete_unroll): ...new function.
22890 (pass_complete_unrolli): Replace declaration with that of...
22891 (make_pass_complete_unrolli): ...new function.
22892 (pass_parallelize_loops): Replace declaration with that of...
22893 (make_pass_parallelize_loops): ...new function.
22894 (pass_loop_prefetch): Replace declaration with that of...
22895 (make_pass_loop_prefetch): ...new function.
22896 (pass_iv_optimize): Replace declaration with that of...
22897 (make_pass_iv_optimize): ...new function.
22898 (pass_tree_loop_done): Replace declaration with that of...
22899 (make_pass_tree_loop_done): ...new function.
22900 (pass_ch): Replace declaration with that of...
22901 (make_pass_ch): ...new function.
22902 (pass_ccp): Replace declaration with that of...
22903 (make_pass_ccp): ...new function.
22904 (pass_phi_only_cprop): Replace declaration with that of...
22905 (make_pass_phi_only_cprop): ...new function.
22906 (pass_build_ssa): Replace declaration with that of...
22907 (make_pass_build_ssa): ...new function.
22908 (pass_build_alias): Replace declaration with that of...
22909 (make_pass_build_alias): ...new function.
22910 (pass_build_ealias): Replace declaration with that of...
22911 (make_pass_build_ealias): ...new function.
22912 (pass_dominator): Replace declaration with that of...
22913 (make_pass_dominator): ...new function.
22914 (pass_dce): Replace declaration with that of...
22915 (make_pass_dce): ...new function.
22916 (pass_dce_loop): Replace declaration with that of...
22917 (make_pass_dce_loop): ...new function.
22918 (pass_cd_dce): Replace declaration with that of...
22919 (make_pass_cd_dce): ...new function.
22920 (pass_call_cdce): Replace declaration with that of...
22921 (make_pass_call_cdce): ...new function.
22922 (pass_merge_phi): Replace declaration with that of...
22923 (make_pass_merge_phi): ...new function.
22924 (pass_split_crit_edges): Replace declaration with that of...
22925 (make_pass_split_crit_edges): ...new function.
22926 (pass_pre): Replace declaration with that of...
22927 (make_pass_pre): ...new function.
22928 (pass_profile): Replace declaration with that of...
22929 (make_pass_profile): ...new function.
22930 (pass_strip_predict_hints): Replace declaration with that of...
22931 (make_pass_strip_predict_hints): ...new function.
22932 (pass_lower_complex_O0): Replace declaration with that of...
22933 (make_pass_lower_complex_O0): ...new function.
22934 (pass_lower_complex): Replace declaration with that of...
22935 (make_pass_lower_complex): ...new function.
22936 (pass_lower_vector): Replace declaration with that of...
22937 (make_pass_lower_vector): ...new function.
22938 (pass_lower_vector_ssa): Replace declaration with that of...
22939 (make_pass_lower_vector_ssa): ...new function.
22940 (pass_lower_omp): Replace declaration with that of...
22941 (make_pass_lower_omp): ...new function.
22942 (pass_diagnose_omp_blocks): Replace declaration with that of...
22943 (make_pass_diagnose_omp_blocks): ...new function.
22944 (pass_expand_omp): Replace declaration with that of...
22945 (make_pass_expand_omp): ...new function.
22946 (pass_expand_omp_ssa): Replace declaration with that of...
22947 (make_pass_expand_omp_ssa): ...new function.
22948 (pass_object_sizes): Replace declaration with that of...
22949 (make_pass_object_sizes): ...new function.
22950 (pass_strlen): Replace declaration with that of...
22951 (make_pass_strlen): ...new function.
22952 (pass_fold_builtins): Replace declaration with that of...
22953 (make_pass_fold_builtins): ...new function.
22954 (pass_stdarg): Replace declaration with that of...
22955 (make_pass_stdarg): ...new function.
22956 (pass_early_warn_uninitialized): Replace declaration with that of...
22957 (make_pass_early_warn_uninitialized): ...new function.
22958 (pass_late_warn_uninitialized): Replace declaration with that of...
22959 (make_pass_late_warn_uninitialized): ...new function.
22960 (pass_cse_reciprocals): Replace declaration with that of...
22961 (make_pass_cse_reciprocals): ...new function.
22962 (pass_cse_sincos): Replace declaration with that of...
22963 (make_pass_cse_sincos): ...new function.
22964 (pass_optimize_bswap): Replace declaration with that of...
22965 (make_pass_optimize_bswap): ...new function.
22966 (pass_optimize_widening_mul): Replace declaration with that of...
22967 (make_pass_optimize_widening_mul): ...new function.
22968 (pass_warn_function_return): Replace declaration with that of...
22969 (make_pass_warn_function_return): ...new function.
22970 (pass_warn_function_noreturn): Replace declaration with that of...
22971 (make_pass_warn_function_noreturn): ...new function.
22972 (pass_cselim): Replace declaration with that of...
22973 (make_pass_cselim): ...new function.
22974 (pass_phiopt): Replace declaration with that of...
22975 (make_pass_phiopt): ...new function.
22976 (pass_forwprop): Replace declaration with that of...
22977 (make_pass_forwprop): ...new function.
22978 (pass_phiprop): Replace declaration with that of...
22979 (make_pass_phiprop): ...new function.
22980 (pass_tree_ifcombine): Replace declaration with that of...
22981 (make_pass_tree_ifcombine): ...new function.
22982 (pass_dse): Replace declaration with that of...
22983 (make_pass_dse): ...new function.
22984 (pass_nrv): Replace declaration with that of...
22985 (make_pass_nrv): ...new function.
22986 (pass_rename_ssa_copies): Replace declaration with that of...
22987 (make_pass_rename_ssa_copies): ...new function.
22988 (pass_sink_code): Replace declaration with that of...
22989 (make_pass_sink_code): ...new function.
22990 (pass_fre): Replace declaration with that of...
22991 (make_pass_fre): ...new function.
22992 (pass_check_data_deps): Replace declaration with that of...
22993 (make_pass_check_data_deps): ...new function.
22994 (pass_copy_prop): Replace declaration with that of...
22995 (make_pass_copy_prop): ...new function.
22996 (pass_vrp): Replace declaration with that of...
22997 (make_pass_vrp): ...new function.
22998 (pass_uncprop): Replace declaration with that of...
22999 (make_pass_uncprop): ...new function.
23000 (pass_return_slot): Replace declaration with that of...
23001 (make_pass_return_slot): ...new function.
23002 (pass_reassoc): Replace declaration with that of...
23003 (make_pass_reassoc): ...new function.
23004 (pass_rebuild_cgraph_edges): Replace declaration with that of...
23005 (make_pass_rebuild_cgraph_edges): ...new function.
23006 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
23007 (make_pass_remove_cgraph_callee_edges): ...new function.
23008 (pass_build_cgraph_edges): Replace declaration with that of...
23009 (make_pass_build_cgraph_edges): ...new function.
23010 (pass_local_pure_const): Replace declaration with that of...
23011 (make_pass_local_pure_const): ...new function.
23012 (pass_tracer): Replace declaration with that of...
23013 (make_pass_tracer): ...new function.
23014 (pass_warn_unused_result): Replace declaration with that of...
23015 (make_pass_warn_unused_result): ...new function.
23016 (pass_diagnose_tm_blocks): Replace declaration with that of...
23017 (make_pass_diagnose_tm_blocks): ...new function.
23018 (pass_lower_tm): Replace declaration with that of...
23019 (make_pass_lower_tm): ...new function.
23020 (pass_tm_init): Replace declaration with that of...
23021 (make_pass_tm_init): ...new function.
23022 (pass_tm_mark): Replace declaration with that of...
23023 (make_pass_tm_mark): ...new function.
23024 (pass_tm_memopt): Replace declaration with that of...
23025 (make_pass_tm_memopt): ...new function.
23026 (pass_tm_edges): Replace declaration with that of...
23027 (make_pass_tm_edges): ...new function.
23028 (pass_split_functions): Replace declaration with that of...
23029 (make_pass_split_functions): ...new function.
23030 (pass_feedback_split_functions): Replace declaration with that of...
23031 (make_pass_feedback_split_functions): ...new function.
23032 (pass_strength_reduction): Replace declaration with that of...
23033 (make_pass_strength_reduction): ...new function.
23034 (pass_ipa_lower_emutls): Replace declaration with that of...
23035 (make_pass_ipa_lower_emutls): ...new function.
23036 (pass_ipa_function_and_variable_visibility): Replace declaration with
23037 that of...
23038 (make_pass_ipa_function_and_variable_visibility): ...new function.
23039 (pass_ipa_tree_profile): Replace declaration with that of...
23040 (make_pass_ipa_tree_profile): ...new function.
23041 (pass_early_local_passes): Replace declaration with that of...
23042 (make_pass_early_local_passes): ...new function.
23043 (pass_ipa_whole_program_visibility): Replace declaration with that
23044 of...
23045 (make_pass_ipa_whole_program_visibility): ...new function.
23046 (pass_ipa_lto_gimple_out): Replace declaration with that of...
23047 (make_pass_ipa_lto_gimple_out): ...new function.
23048 (pass_ipa_increase_alignment): Replace declaration with that of...
23049 (make_pass_ipa_increase_alignment): ...new function.
23050 (pass_ipa_inline): Replace declaration with that of...
23051 (make_pass_ipa_inline): ...new function.
23052 (pass_ipa_free_lang_data): Replace declaration with that of...
23053 (make_pass_ipa_free_lang_data): ...new function.
23054 (pass_ipa_free_inline_summary): Replace declaration with that of...
23055 (make_pass_ipa_free_inline_summary): ...new function.
23056 (pass_ipa_cp): Replace declaration with that of...
23057 (make_pass_ipa_cp): ...new function.
23058 (pass_ipa_reference): Replace declaration with that of...
23059 (make_pass_ipa_reference): ...new function.
23060 (pass_ipa_pure_const): Replace declaration with that of...
23061 (make_pass_ipa_pure_const): ...new function.
23062 (pass_ipa_pta): Replace declaration with that of...
23063 (make_pass_ipa_pta): ...new function.
23064 (pass_ipa_lto_finish_out): Replace declaration with that of...
23065 (make_pass_ipa_lto_finish_out): ...new function.
23066 (pass_ipa_tm): Replace declaration with that of...
23067 (make_pass_ipa_tm): ...new function.
23068 (pass_ipa_profile): Replace declaration with that of...
23069 (make_pass_ipa_profile): ...new function.
23070 (pass_ipa_cdtor_merge): Replace declaration with that of...
23071 (make_pass_ipa_cdtor_merge): ...new function.
23072 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
23073 of...
23074 (make_pass_cleanup_cfg_post_optimizing): ...new function.
23075 (pass_init_datastructures): Replace declaration with that of...
23076 (make_pass_init_datastructures): ...new function.
23077 (pass_fixup_cfg): Replace declaration with that of...
23078 (make_pass_fixup_cfg): ...new function.
23079 (pass_expand): Replace declaration with that of...
23080 (make_pass_expand): ...new function.
23081 (pass_instantiate_virtual_regs): Replace declaration with that of...
23082 (make_pass_instantiate_virtual_regs): ...new function.
23083 (pass_rtl_fwprop): Replace declaration with that of...
23084 (make_pass_rtl_fwprop): ...new function.
23085 (pass_rtl_fwprop_addr): Replace declaration with that of...
23086 (make_pass_rtl_fwprop_addr): ...new function.
23087 (pass_jump): Replace declaration with that of...
23088 (make_pass_jump): ...new function.
23089 (pass_jump2): Replace declaration with that of...
23090 (make_pass_jump2): ...new function.
23091 (pass_lower_subreg): Replace declaration with that of...
23092 (make_pass_lower_subreg): ...new function.
23093 (pass_cse): Replace declaration with that of...
23094 (make_pass_cse): ...new function.
23095 (pass_fast_rtl_dce): Replace declaration with that of...
23096 (make_pass_fast_rtl_dce): ...new function.
23097 (pass_ud_rtl_dce): Replace declaration with that of...
23098 (make_pass_ud_rtl_dce): ...new function.
23099 (pass_rtl_dce): Replace declaration with that of...
23100 (make_pass_rtl_dce): ...new function.
23101 (pass_rtl_dse1): Replace declaration with that of...
23102 (make_pass_rtl_dse1): ...new function.
23103 (pass_rtl_dse2): Replace declaration with that of...
23104 (make_pass_rtl_dse2): ...new function.
23105 (pass_rtl_dse3): Replace declaration with that of...
23106 (make_pass_rtl_dse3): ...new function.
23107 (pass_rtl_cprop): Replace declaration with that of...
23108 (make_pass_rtl_cprop): ...new function.
23109 (pass_rtl_pre): Replace declaration with that of...
23110 (make_pass_rtl_pre): ...new function.
23111 (pass_rtl_hoist): Replace declaration with that of...
23112 (make_pass_rtl_hoist): ...new function.
23113 (pass_rtl_store_motion): Replace declaration with that of...
23114 (make_pass_rtl_store_motion): ...new function.
23115 (pass_cse_after_global_opts): Replace declaration with that of...
23116 (make_pass_cse_after_global_opts): ...new function.
23117 (pass_rtl_ifcvt): Replace declaration with that of...
23118 (make_pass_rtl_ifcvt): ...new function.
23119 (pass_into_cfg_layout_mode): Replace declaration with that of...
23120 (make_pass_into_cfg_layout_mode): ...new function.
23121 (pass_outof_cfg_layout_mode): Replace declaration with that of...
23122 (make_pass_outof_cfg_layout_mode): ...new function.
23123 (pass_loop2): Replace declaration with that of...
23124 (make_pass_loop2): ...new function.
23125 (pass_rtl_loop_init): Replace declaration with that of...
23126 (make_pass_rtl_loop_init): ...new function.
23127 (pass_rtl_move_loop_invariants): Replace declaration with that of...
23128 (make_pass_rtl_move_loop_invariants): ...new function.
23129 (pass_rtl_unswitch): Replace declaration with that of...
23130 (make_pass_rtl_unswitch): ...new function.
23131 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
23132 (make_pass_rtl_unroll_and_peel_loops): ...new function.
23133 (pass_rtl_doloop): Replace declaration with that of...
23134 (make_pass_rtl_doloop): ...new function.
23135 (pass_rtl_loop_done): Replace declaration with that of...
23136 (make_pass_rtl_loop_done): ...new function.
23137 (pass_web): Replace declaration with that of...
23138 (make_pass_web): ...new function.
23139 (pass_cse2): Replace declaration with that of...
23140 (make_pass_cse2): ...new function.
23141 (pass_df_initialize_opt): Replace declaration with that of...
23142 (make_pass_df_initialize_opt): ...new function.
23143 (pass_df_initialize_no_opt): Replace declaration with that of...
23144 (make_pass_df_initialize_no_opt): ...new function.
23145 (pass_reginfo_init): Replace declaration with that of...
23146 (make_pass_reginfo_init): ...new function.
23147 (pass_inc_dec): Replace declaration with that of...
23148 (make_pass_inc_dec): ...new function.
23149 (pass_stack_ptr_mod): Replace declaration with that of...
23150 (make_pass_stack_ptr_mod): ...new function.
23151 (pass_initialize_regs): Replace declaration with that of...
23152 (make_pass_initialize_regs): ...new function.
23153 (pass_combine): Replace declaration with that of...
23154 (make_pass_combine): ...new function.
23155 (pass_if_after_combine): Replace declaration with that of...
23156 (make_pass_if_after_combine): ...new function.
23157 (pass_ree): Replace declaration with that of...
23158 (make_pass_ree): ...new function.
23159 (pass_partition_blocks): Replace declaration with that of...
23160 (make_pass_partition_blocks): ...new function.
23161 (pass_match_asm_constraints): Replace declaration with that of...
23162 (make_pass_match_asm_constraints): ...new function.
23163 (pass_regmove): Replace declaration with that of...
23164 (make_pass_regmove): ...new function.
23165 (pass_split_all_insns): Replace declaration with that of...
23166 (make_pass_split_all_insns): ...new function.
23167 (pass_fast_rtl_byte_dce): Replace declaration with that of...
23168 (make_pass_fast_rtl_byte_dce): ...new function.
23169 (pass_lower_subreg2): Replace declaration with that of...
23170 (make_pass_lower_subreg2): ...new function.
23171 (pass_mode_switching): Replace declaration with that of...
23172 (make_pass_mode_switching): ...new function.
23173 (pass_sms): Replace declaration with that of...
23174 (make_pass_sms): ...new function.
23175 (pass_sched): Replace declaration with that of...
23176 (make_pass_sched): ...new function.
23177 (pass_ira): Replace declaration with that of...
23178 (make_pass_ira): ...new function.
23179 (pass_reload): Replace declaration with that of...
23180 (make_pass_reload): ...new function.
23181 (pass_clean_state): Replace declaration with that of...
23182 (make_pass_clean_state): ...new function.
23183 (pass_branch_prob): Replace declaration with that of...
23184 (make_pass_branch_prob): ...new function.
23185 (pass_value_profile_transformations): Replace declaration with that
23186 of...
23187 (make_pass_value_profile_transformations): ...new function.
23188 (pass_postreload_cse): Replace declaration with that of...
23189 (make_pass_postreload_cse): ...new function.
23190 (pass_gcse2): Replace declaration with that of...
23191 (make_pass_gcse2): ...new function.
23192 (pass_split_after_reload): Replace declaration with that of...
23193 (make_pass_split_after_reload): ...new function.
23194 (pass_branch_target_load_optimize1): Replace declaration with that
23195 of...
23196 (make_pass_branch_target_load_optimize1): ...new function.
23197 (pass_thread_prologue_and_epilogue): Replace declaration with that
23198 of...
23199 (make_pass_thread_prologue_and_epilogue): ...new function.
23200 (pass_stack_adjustments): Replace declaration with that of...
23201 (make_pass_stack_adjustments): ...new function.
23202 (pass_peephole2): Replace declaration with that of...
23203 (make_pass_peephole2): ...new function.
23204 (pass_if_after_reload): Replace declaration with that of...
23205 (make_pass_if_after_reload): ...new function.
23206 (pass_regrename): Replace declaration with that of...
23207 (make_pass_regrename): ...new function.
23208 (pass_cprop_hardreg): Replace declaration with that of...
23209 (make_pass_cprop_hardreg): ...new function.
23210 (pass_reorder_blocks): Replace declaration with that of...
23211 (make_pass_reorder_blocks): ...new function.
23212 (pass_branch_target_load_optimize2): Replace declaration with that
23213 of...
23214 (make_pass_branch_target_load_optimize2): ...new function.
23215 (pass_leaf_regs): Replace declaration with that of...
23216 (make_pass_leaf_regs): ...new function.
23217 (pass_split_before_sched2): Replace declaration with that of...
23218 (make_pass_split_before_sched2): ...new function.
23219 (pass_compare_elim_after_reload): Replace declaration with that of...
23220 (make_pass_compare_elim_after_reload): ...new function.
23221 (pass_sched2): Replace declaration with that of...
23222 (make_pass_sched2): ...new function.
23223 (pass_stack_regs): Replace declaration with that of...
23224 (make_pass_stack_regs): ...new function.
23225 (pass_stack_regs_run): Replace declaration with that of...
23226 (make_pass_stack_regs_run): ...new function.
23227 (pass_df_finish): Replace declaration with that of...
23228 (make_pass_df_finish): ...new function.
23229 (pass_compute_alignments): Replace declaration with that of...
23230 (make_pass_compute_alignments): ...new function.
23231 (pass_duplicate_computed_gotos): Replace declaration with that of...
23232 (make_pass_duplicate_computed_gotos): ...new function.
23233 (pass_variable_tracking): Replace declaration with that of...
23234 (make_pass_variable_tracking): ...new function.
23235 (pass_free_cfg): Replace declaration with that of...
23236 (make_pass_free_cfg): ...new function.
23237 (pass_machine_reorg): Replace declaration with that of...
23238 (make_pass_machine_reorg): ...new function.
23239 (pass_cleanup_barriers): Replace declaration with that of...
23240 (make_pass_cleanup_barriers): ...new function.
23241 (pass_delay_slots): Replace declaration with that of...
23242 (make_pass_delay_slots): ...new function.
23243 (pass_split_for_shorten_branches): Replace declaration with that of...
23244 (make_pass_split_for_shorten_branches): ...new function.
23245 (pass_split_before_regstack): Replace declaration with that of...
23246 (make_pass_split_before_regstack): ...new function.
23247 (pass_convert_to_eh_region_ranges): Replace declaration with that
23248 of...
23249 (make_pass_convert_to_eh_region_ranges): ...new function.
23250 (pass_shorten_branches): Replace declaration with that of...
23251 (make_pass_shorten_branches): ...new function.
23252 (pass_set_nothrow_function_flags): Replace declaration with that of...
23253 (make_pass_set_nothrow_function_flags): ...new function.
23254 (pass_dwarf2_frame): Replace declaration with that of...
23255 (make_pass_dwarf2_frame): ...new function.
23256 (pass_final): Replace declaration with that of...
23257 (make_pass_final): ...new function.
23258 (pass_rtl_seqabstr): Replace declaration with that of...
23259 (make_pass_rtl_seqabstr): ...new function.
23260 (pass_release_ssa_names): Replace declaration with that of...
23261 (make_pass_release_ssa_names): ...new function.
23262 (pass_early_inline): Replace declaration with that of...
23263 (make_pass_early_inline): ...new function.
23264 (pass_inline_parameters): Replace declaration with that of...
23265 (make_pass_inline_parameters): ...new function.
23266 (pass_update_address_taken): Replace declaration with that of...
23267 (make_pass_update_address_taken): ...new function.
23268 (pass_convert_switch): Replace declaration with that of...
23269 (make_pass_convert_switch): ...new function.
23270 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
23271 to a subclass of simple_ipa_opt_pass along with...
23272 (pass_data_ipa_tree_profile): ...new pass_data instance and...
23273 (make_pass_ipa_tree_profile): ...new function.
23274 * tree-sra.c (pass_sra_early): Convert from a global struct to a
23275 subclass of gimple_opt_pass along with...
23276 (pass_data_sra_early): ...new pass_data instance and...
23277 (make_pass_sra_early): ...new function.
23278 (pass_sra): Convert from a global struct to a subclass of
23279 gimple_opt_pass along with...
23280 (pass_data_sra): ...new pass_data instance and...
23281 (make_pass_sra): ...new function.
23282 (pass_early_ipa_sra): Convert from a global struct to a subclass of
23283 gimple_opt_pass along with...
23284 (pass_data_early_ipa_sra): ...new pass_data instance and...
23285 (make_pass_early_ipa_sra): ...new function.
23286 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
23287 subclass of gimple_opt_pass along with...
23288 (pass_data_ccp): ...new pass_data instance and...
23289 (make_pass_ccp): ...new function.
23290 (pass_fold_builtins): Convert from a global struct to a subclass of
23291 gimple_opt_pass along with...
23292 (pass_data_fold_builtins): ...new pass_data instance and...
23293 (make_pass_fold_builtins): ...new function.
23294 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
23295 subclass of gimple_opt_pass along with...
23296 (pass_data_copy_prop): ...new pass_data instance and...
23297 (make_pass_copy_prop): ...new function.
23298 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
23299 global struct to a subclass of gimple_opt_pass along with...
23300 (pass_data_rename_ssa_copies): ...new pass_data instance and...
23301 (make_pass_rename_ssa_copies): ...new function.
23302 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
23303 subclass of gimple_opt_pass along with...
23304 (pass_data_dce): ...new pass_data instance and...
23305 (make_pass_dce): ...new function.
23306 (pass_dce_loop): Convert from a global struct to a subclass of
23307 gimple_opt_pass along with...
23308 (pass_data_dce_loop): ...new pass_data instance and...
23309 (make_pass_dce_loop): ...new function.
23310 (pass_cd_dce): Convert from a global struct to a subclass of
23311 gimple_opt_pass along with...
23312 (pass_data_cd_dce): ...new pass_data instance and...
23313 (make_pass_cd_dce): ...new function.
23314 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
23315 subclass of gimple_opt_pass along with...
23316 (pass_data_dominator): ...new pass_data instance and...
23317 (make_pass_dominator): ...new function.
23318 (pass_phi_only_cprop): Convert from a global struct to a subclass of
23319 gimple_opt_pass along with...
23320 (pass_data_phi_only_cprop): ...new pass_data instance and...
23321 (make_pass_phi_only_cprop): ...new function.
23322 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
23323 subclass of gimple_opt_pass along with...
23324 (pass_data_dse): ...new pass_data instance and...
23325 (make_pass_dse): ...new function.
23326 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
23327 a subclass of gimple_opt_pass along with...
23328 (pass_data_forwprop): ...new pass_data instance and...
23329 (make_pass_forwprop): ...new function.
23330 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
23331 struct to a subclass of gimple_opt_pass along with...
23332 (pass_data_tree_ifcombine): ...new pass_data instance and...
23333 (make_pass_tree_ifcombine): ...new function.
23334 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
23335 subclass of gimple_opt_pass along with...
23336 (pass_data_ch): ...new pass_data instance and...
23337 (make_pass_ch): ...new function.
23338 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
23339 subclass of gimple_opt_pass along with...
23340 (pass_data_tree_loop): ...new pass_data instance and...
23341 (make_pass_tree_loop): ...new function.
23342 (pass_tree_loop_init): Convert from a global struct to a subclass of
23343 gimple_opt_pass along with...
23344 (pass_data_tree_loop_init): ...new pass_data instance and...
23345 (make_pass_tree_loop_init): ...new function.
23346 (pass_lim): Convert from a global struct to a subclass of
23347 gimple_opt_pass along with...
23348 (pass_data_lim): ...new pass_data instance and...
23349 (make_pass_lim): ...new function.
23350 (pass_tree_unswitch): Convert from a global struct to a subclass of
23351 gimple_opt_pass along with...
23352 (pass_data_tree_unswitch): ...new pass_data instance and...
23353 (make_pass_tree_unswitch): ...new function.
23354 (pass_predcom): Convert from a global struct to a subclass of
23355 gimple_opt_pass along with...
23356 (pass_data_predcom): ...new pass_data instance and...
23357 (make_pass_predcom): ...new function.
23358 (pass_vectorize): Convert from a global struct to a subclass of
23359 gimple_opt_pass along with...
23360 (pass_data_vectorize): ...new pass_data instance and...
23361 (make_pass_vectorize): ...new function.
23362 (pass_graphite): Convert from a global struct to a subclass of
23363 gimple_opt_pass along with...
23364 (pass_data_graphite): ...new pass_data instance and...
23365 (make_pass_graphite): ...new function.
23366 (pass_graphite_transforms): Convert from a global struct to a subclass
23367 of gimple_opt_pass along with...
23368 (pass_data_graphite_transforms): ...new pass_data instance and...
23369 (make_pass_graphite_transforms): ...new function.
23370 (pass_check_data_deps): Convert from a global struct to a subclass of
23371 gimple_opt_pass along with...
23372 (pass_data_check_data_deps): ...new pass_data instance and...
23373 (make_pass_check_data_deps): ...new function.
23374 (pass_iv_canon): Convert from a global struct to a subclass of
23375 gimple_opt_pass along with...
23376 (pass_data_iv_canon): ...new pass_data instance and...
23377 (make_pass_iv_canon): ...new function.
23378 (pass_scev_cprop): Convert from a global struct to a subclass of
23379 gimple_opt_pass along with...
23380 (pass_data_scev_cprop): ...new pass_data instance and...
23381 (make_pass_scev_cprop): ...new function.
23382 (pass_record_bounds): Convert from a global struct to a subclass of
23383 gimple_opt_pass along with...
23384 (pass_data_record_bounds): ...new pass_data instance and...
23385 (make_pass_record_bounds): ...new function.
23386 (pass_complete_unroll): Convert from a global struct to a subclass of
23387 gimple_opt_pass along with...
23388 (pass_data_complete_unroll): ...new pass_data instance and...
23389 (make_pass_complete_unroll): ...new function.
23390 (pass_complete_unrolli): Convert from a global struct to a subclass of
23391 gimple_opt_pass along with...
23392 (pass_data_complete_unrolli): ...new pass_data instance and...
23393 (make_pass_complete_unrolli): ...new function.
23394 (pass_parallelize_loops): Convert from a global struct to a subclass
23395 of gimple_opt_pass along with...
23396 (pass_data_parallelize_loops): ...new pass_data instance and...
23397 (make_pass_parallelize_loops): ...new function.
23398 (pass_loop_prefetch): Convert from a global struct to a subclass of
23399 gimple_opt_pass along with...
23400 (pass_data_loop_prefetch): ...new pass_data instance and...
23401 (make_pass_loop_prefetch): ...new function.
23402 (pass_iv_optimize): Convert from a global struct to a subclass of
23403 gimple_opt_pass along with...
23404 (pass_data_iv_optimize): ...new pass_data instance and...
23405 (make_pass_iv_optimize): ...new function.
23406 (pass_tree_loop_done): Convert from a global struct to a subclass of
23407 gimple_opt_pass along with...
23408 (pass_data_tree_loop_done): ...new pass_data instance and...
23409 (make_pass_tree_loop_done): ...new function.
23410 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
23411 struct to a subclass of gimple_opt_pass along with...
23412 (pass_data_cse_reciprocals): ...new pass_data instance and...
23413 (make_pass_cse_reciprocals): ...new function.
23414 (pass_cse_sincos): Convert from a global struct to a subclass of
23415 gimple_opt_pass along with...
23416 (pass_data_cse_sincos): ...new pass_data instance and...
23417 (make_pass_cse_sincos): ...new function.
23418 (pass_optimize_bswap): Convert from a global struct to a subclass of
23419 gimple_opt_pass along with...
23420 (pass_data_optimize_bswap): ...new pass_data instance and...
23421 (make_pass_optimize_bswap): ...new function.
23422 (pass_optimize_widening_mul): Convert from a global struct to a
23423 subclass of gimple_opt_pass along with...
23424 (pass_data_optimize_widening_mul): ...new pass_data instance and...
23425 (make_pass_optimize_widening_mul): ...new function.
23426 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
23427 subclass of gimple_opt_pass along with...
23428 (pass_data_phiopt): ...new pass_data instance and...
23429 (make_pass_phiopt): ...new function.
23430 (pass_cselim): Convert from a global struct to a subclass of
23431 gimple_opt_pass along with...
23432 (pass_data_cselim): ...new pass_data instance and...
23433 (make_pass_cselim): ...new function.
23434 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
23435 subclass of gimple_opt_pass along with...
23436 (pass_data_phiprop): ...new pass_data instance and...
23437 (make_pass_phiprop): ...new function.
23438 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
23439 subclass of gimple_opt_pass along with...
23440 (pass_data_pre): ...new pass_data instance and...
23441 (make_pass_pre): ...new function.
23442 (pass_fre): Convert from a global struct to a subclass of
23443 gimple_opt_pass along with...
23444 (pass_data_fre): ...new pass_data instance and...
23445 (make_pass_fre): ...new function.
23446 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
23447 subclass of gimple_opt_pass along with...
23448 (pass_data_reassoc): ...new pass_data instance and...
23449 (make_pass_reassoc): ...new function.
23450 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
23451 subclass of gimple_opt_pass along with...
23452 (pass_data_sink_code): ...new pass_data instance and...
23453 (make_pass_sink_code): ...new function.
23454 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
23455 subclass of gimple_opt_pass along with...
23456 (pass_data_strlen): ...new pass_data instance and...
23457 (make_pass_strlen): ...new function.
23458 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
23459 struct to a subclass of gimple_opt_pass along with...
23460 (pass_data_build_alias): ...new pass_data instance and...
23461 (make_pass_build_alias): ...new function.
23462 (pass_build_ealias): Convert from a global struct to a subclass of
23463 gimple_opt_pass along with...
23464 (pass_data_build_ealias): ...new pass_data instance and...
23465 (make_pass_build_ealias): ...new function.
23466 (pass_ipa_pta): Convert from a global struct to a subclass of
23467 simple_ipa_opt_pass along with...
23468 (pass_data_ipa_pta): ...new pass_data instance and...
23469 (make_pass_ipa_pta): ...new function.
23470 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
23471 subclass of gimple_opt_pass along with...
23472 (pass_data_uncprop): ...new pass_data instance and...
23473 (make_pass_uncprop): ...new function.
23474 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
23475 global struct to a subclass of gimple_opt_pass along with...
23476 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
23477 (make_pass_late_warn_uninitialized): ...new function.
23478 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
23479 to a subclass of gimple_opt_pass along with...
23480 (pass_data_init_datastructures): ...new pass_data instance and...
23481 (make_pass_init_datastructures): ...new function.
23482 (pass_early_warn_uninitialized): Convert from a global struct to a
23483 subclass of gimple_opt_pass along with...
23484 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
23485 (make_pass_early_warn_uninitialized): ...new function.
23486 (pass_update_address_taken): Convert from a global struct to a
23487 subclass of gimple_opt_pass along with...
23488 (pass_data_update_address_taken): ...new pass_data instance and...
23489 (make_pass_update_address_taken): ...new function.
23490 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
23491 struct to a subclass of gimple_opt_pass along with...
23492 (pass_data_release_ssa_names): ...new pass_data instance and...
23493 (make_pass_release_ssa_names): ...new function.
23494 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
23495 subclass of gimple_opt_pass along with...
23496 (pass_data_stdarg): ...new pass_data instance and...
23497 (make_pass_stdarg): ...new function.
23498 * tree-switch-conversion.c (pass_convert_switch): Convert from a
23499 global struct to a subclass of gimple_opt_pass along with...
23500 (pass_data_convert_switch): ...new pass_data instance and...
23501 (make_pass_convert_switch): ...new function.
23502 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
23503 to a subclass of gimple_opt_pass along with...
23504 (pass_data_tail_recursion): ...new pass_data instance and...
23505 (make_pass_tail_recursion): ...new function.
23506 (pass_tail_calls): Convert from a global struct to a subclass of
23507 gimple_opt_pass along with...
23508 (pass_data_tail_calls): ...new pass_data instance and...
23509 (make_pass_tail_calls): ...new function.
23510 * tree-vect-generic.c (pass_lower_vector): Convert from a global
23511 struct to a subclass of gimple_opt_pass along with...
23512 (pass_data_lower_vector): ...new pass_data instance and...
23513 (make_pass_lower_vector): ...new function.
23514 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
23515 gimple_opt_pass along with...
23516 (pass_data_lower_vector_ssa): ...new pass_data instance and...
23517 (make_pass_lower_vector_ssa): ...new function.
23518 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
23519 to a subclass of gimple_opt_pass along with...
23520 (pass_data_slp_vectorize): ...new pass_data instance and...
23521 (make_pass_slp_vectorize): ...new function.
23522 (pass_ipa_increase_alignment): Convert from a global struct to a
23523 subclass of simple_ipa_opt_pass along with...
23524 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
23525 (make_pass_ipa_increase_alignment): ...new function.
23526 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
23527 gimple_opt_pass along with...
23528 (pass_data_vrp): ...new pass_data instance and...
23529 (make_pass_vrp): ...new function.
23530 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
23531 subclass of simple_ipa_opt_pass along with...
23532 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
23533 (make_pass_ipa_free_lang_data): ...new function.
23534 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
23535 gimple_opt_pass along with...
23536 (pass_data_tsan): ...new pass_data instance and...
23537 (make_pass_tsan): ...new function.
23538 (pass_tsan_O0): Convert from a global struct to a subclass of
23539 gimple_opt_pass along with...
23540 (pass_data_tsan_O0): ...new pass_data instance and...
23541 (make_pass_tsan_O0): ...new function.
23542 * var-tracking.c (pass_variable_tracking): Convert from a global
23543 struct to a subclass of rtl_opt_pass along with...
23544 (pass_data_variable_tracking): ...new pass_data instance and...
23545 (make_pass_variable_tracking): ...new function.
23546 * web.c (pass_web): Convert from a global struct to a subclass of
23547 rtl_opt_pass along with...
23548 (pass_data_web): ...new pass_data instance and...
23549 (make_pass_web): ...new function.
23550 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
23551 declaration with that of...
23552 (make_pass_mode_switch_use): ...new function.
23553 (pass_resolve_sw_modes): Replace declaration with that of...
23554 (make_pass_resolve_sw_modes): ...new function.
23555 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
23556 from a global struct to a subclass of rtl_opt_pass along with...
23557 (pass_data_mode_switch_use): ...new pass_data instance and...
23558 (make_pass_mode_switch_use): ...new function.
23559 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
23560 from a global struct to a subclass of rtl_opt_pass along with...
23561 (pass_data_resolve_sw_modes): ...new pass_data instance and...
23562 (make_pass_resolve_sw_modes): ...new function.
23563 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
23564 struct to a subclass of rtl_opt_pass along with...
23565 (pass_data_insert_vzeroupper): ...new pass_data instance and...
23566 (make_pass_insert_vzeroupper): ...new function.
23567 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
23568 global struct to a subclass of rtl_opt_pass along with...
23569 (pass_data_work_around_errata): ...new pass_data instance and...
23570 (make_pass_work_around_errata): ...new function.
23571 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
23572 struct to a subclass of rtl_opt_pass along with...
23573 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
23574 (make_pass_mips_machine_reorg2): ...new function.
23575
23576 2013-08-05 David Malcolm <dmalcolm@redhat.com>
23577
23578 * passes.c (pass_manager::operator new): New.
23579
23580 2013-08-05 David Malcolm <dmalcolm@redhat.com>
23581
23582 Handwritten part of conversion of passes to C++ classes.
23583
23584 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
23585 (toplev.o): Add dep on PASS_MANAGER_H.
23586 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
23587 of early local pases to reflect this moving from a global to a
23588 member of gcc::pass_manager.
23589 (cgraph_add_new_function): Likewise.
23590 * lto-cgraph.c (lto_output_node): Update for conversion of
23591 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
23592 * passes.c (opt_pass::clone): New.
23593 (opt_pass::gate): New.
23594 (opt_pass::execute): New.
23595 (opt_pass::opt_pass): New.
23596 (pass_manager::execute_early_local_passes): New.
23597 (pass_manager::execute_pass_mode_switching): new.
23598 (finish_optimization_passes): Convert to...
23599 (pass_manager::finish_optimization_passes): ...this.
23600 (finish_optimization_passes): Update for conversion of passes to
23601 C++ classes.
23602 (register_dump_files_1): Use has_gate since we cannot portably
23603 check a vtable entry against NULL.
23604 (dump_one_pass): Likewise.
23605 (ipa_write_summaries_2): Likewise.
23606 (ipa_write_optimization_summaries_1): Likewise.
23607 (ipa_read_summaries_1): Likewise.
23608 (ipa_read_optimization_summaries_1): Likewise.
23609 (execute_ipa_stmt_fixups): Likewise.
23610 (pass_manager::pass_manager): Rewrite pass-creation, invoking
23611 pass-creation functions rather than wiring up globals, and
23612 storing the results in fields of pass_manager generated using
23613 pass-instances.def.
23614 (pass_manager::dump_profile_report): Update for conversion of
23615 passes to C++ classes.
23616 (pass_manager::execute_ipa_summary_passes): Likewise.
23617 (execute_one_ipa_transform_pass): Likewise.
23618 (execute_one_pass): Use has_gate and has_execute since we cannot
23619 portably check a vtable entry against NULL.
23620 * pass_manager.h (pass_manager::finish_optimization_passes): New.
23621 (pass_manager): Use pass-instances.def to add fields for the
23622 various pass instances.
23623 * toplev.c (finalize): Update for move of
23624 finish_optimization_passes to a method of gcc::pass_manager.
23625 * toplev.h (finish_optimization_passes): Move to method of class
23626 pass_manager.
23627 * tree-pass.h (struct pass_data): New.
23628 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
23629 (opt_pass::gate): Convert to virtual function.
23630 (opt_pass::~opt_pass): New.
23631 (opt_pass::clone): New.
23632 (opt_pass::execute): Convert to virtual function.
23633 (opt_pass::opt_pass): New.
23634 (opt_pass::ctxt_): new.
23635 (gimple_opt_pass): Convert to subclass of opt_pass.
23636 (gimple_opt_pass::gimple_opt_pass): New.
23637 (rtl_opt_pass): Convert to subclass of opt_pass.
23638 (rtl_opt_pass::rtl_opt_pass): New.
23639 (ipa_opt_pass_d): Convert to subclass of opt_pass.
23640 (ipa_opt_pass_d::ipa_opt_pass_d): New.
23641 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
23642 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
23643 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
23644 invocation of pass_mode_switching to reflect this moving from a
23645 global to a member of gcc::pass_manager.
23646 (ix86_option_override): Rework how pass_insert_vzeroupper is
23647 added to the pass_manager to reflect autogenerated changes.
23648 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
23649
23650 2013-08-05 Richard Earnshaw <rearnsha@arm.com>
23651
23652 PR rtl-optimization/57708
23653 * recog.c (peep2_find_free_register): Validate all regs in a
23654 multi-reg mode.
23655
23656 2013-08-05 Jan Hubicka <jh@suse.cz>
23657
23658 PR lto/57602
23659 * cgraph.c (verify_cgraph_node): Accept local flags from other
23660 partitions.
23661 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
23662 (function_and_variable_visibility): Likewise.
23663 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
23664
23665 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
23666
23667 * graph.c (init_graph_slim_pretty_print): Remove.
23668 (print_graph_cfg): Do not call it. Use local pretty printer.
23669 (start_graph_dump): Likewise.
23670
23671 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
23672
23673 * gimple-pretty-print.c (buffer): Remove.
23674 (initialized): Likewise.
23675 (maybe_init_pretty_print): Likewise.
23676 (print_gimple_stmt): Do not call it. Use non-static local
23677 pretty_printer variable.
23678 (print_gimple_expr): Likewise.
23679 (print_gimple_seq): Likewise.
23680 (gimple_dump_bb): Likewise.
23681
23682 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
23683
23684 * asan.c (asan_pp): Remove.
23685 (asan_pp_initialized): Likewise.
23686 (asan_pp_initialize): Likewise.
23687 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
23688 (asan_emit_stack_protection): Tidy. Use local pretty printer.
23689 (asan_add_global): Likewise.
23690
23691 2013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
23692
23693 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
23694 * diagnostic.h (diagnostic_flush_buffer): Adjust.
23695 * pretty-print.c (pp_formatted_text_data): Likewise.
23696 (pp_indent): Rename from pp_base_indent.
23697 (pp_format): Rename from pp_base_format.
23698 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
23699 (pp_format_verbatim): Rename from pp_base_format_verbatim.
23700 (pp_flush): Rename from pp_base_flush.
23701 (pp_set_line_maximum_length): Rename from
23702 pp_base_set_line_maximum_length.
23703 (pp_clear_output_area): Rename from pp_base_clear_output_area.
23704 (pp_set_prefix): Rename from pp_base_set_prefix.
23705 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
23706 (pp_emit_prefix): Rename from pp_base_emit_prefix.
23707 (pp_append_text): Rename from pp_base_append_text.
23708 (pp_formatted_text): Rename from pp_base_formatted_text.
23709 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
23710 (pp_remaining_character_count_for_line): Rename from
23711 pp_base_remaining_character_count_for_line.
23712 (pp_newline): Rename from pp_base_newline.
23713 (pp_character): Rename from pp_base_character.
23714 (pp_string): Rename from pp_base_string.
23715 (pp_maybe_space): Rename from pp_base_maybe_space.
23716 * asan.c (asan_pp_string): Adjust.
23717 (asan_emit_stack_protection): Likewise.
23718 (asan_add_global): Likewise.
23719 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
23720 * tree-mudflap.c (mf_varname_tree): Likewise.
23721 * tree-pretty-print.c (pp_tree_identifier): Rename from
23722 pp_base_tree_identifier.
23723 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
23724 Declare as function.
23725
23726 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
23727
23728 * pretty-print.h (pp_bar_bar): New.
23729 (pp_ampersand_ampersand): Likewise.
23730 (pp_less_equal): Likewise.
23731 (pp_greater_equal): Likewise.
23732 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
23733 printer functions instead of pp_string or operators and punctuators.
23734 (dump_gimple_call): Likewise.
23735 (dump_gimple_omp_for): Likewise.
23736 (dump_gimple_transaction): Likewise.
23737 (dump_gimple_phi): Likewise.
23738 (pp_gimple_stmt_1): Likewise.
23739 * sched-vis.c (print_insn): Likewise.
23740 * tree-mudflap.c (mf_varname_tree): Likewise.
23741 * tree-pretty-print.c (dump_block_node): Likewise.
23742 (dump_generic_node): Likewise.
23743
23744 2013-08-02 Jan Hubicka <jh@suse.cz>
23745
23746 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
23747 boundaries.
23748 * lto-streamer-out.c (tree_is_indexable): Results decls and
23749 parm decls are not indexable.
23750 (DFS_write_tree_body): Do not follow args and results.
23751 (hash_tree): Likewise.
23752 (output_functions): Rearrange so struct function is needed
23753 only when real body is output; be able to also ouptut abstract
23754 functions; output DECL_ARGUMENTS and DECL_RESULT.
23755 (lto_output): When not in WPA, ale store abstract functions.
23756 (write_symbol): Do not care about RESULT_DECL.
23757 (output_symbol_p): Handle correctly sbtract decls.
23758 * lto-streamer-in.c (input_function): Rearrange so struct
23759 function can be NULL at entry; allow streaming of
23760 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
23761 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
23762 sanity check during LTO.
23763 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
23764 RESULT_DECl and DECL_ARGUMENTS.
23765 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
23766 Likewise.
23767
23768 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
23769
23770 * pretty-print.h (pp_underscore): New.
23771 (pp_comma): Tidy.
23772 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
23773 printer functions instead of pp_character.
23774 (dump_binary_rhs): Likewise.
23775 (dump_ternary_rhs): Likewise.
23776 (dump_gimple_call_args): Likewise.
23777 (pp_points_to_solution): Likewise.
23778 (dump_gimple_call): Likewise.
23779 (dump_gimple_switch): Likewise.
23780 (dump_gimple_cond): Likewise.
23781 (dump_gimple_bind): Likewise.
23782 (dump_gimple_try): Likewise.
23783 (dump_gimple_omp_for): Likewise.
23784 (dump_gimple_omp_continue): Likewise.
23785 (dump_gimple_omp_single): Likewise.
23786 (dump_gimple_omp_sections): Likewise.
23787 (dump_gimple_omp_block): Likewise.
23788 (dump_gimple_omp_critical): Likewise.
23789 (dump_gimple_transaction): Likewise.
23790 (dump_gimple_asm): Likewise.
23791 (dump_gimple_phi): Likewise.
23792 (dump_gimple_omp_parallel): Likewise.
23793 (dump_gimple_omp_task): Likewise.
23794 (dump_gimple_omp_atomic_load): Likewise.
23795 (dump_gimple_omp_atomic_store): Likewise.
23796 (dump_gimple_mem_ops): Likewise.
23797 (pp_gimple_stmt_1): Likewise.
23798 (pp_cfg_jump): Likewise.
23799 (dump_implicit_edges): Likewise.
23800 (gimple_dump_bb_for_graph): Likewise.
23801 * graph.c (draw_cfg_node): Likewise.
23802 * langhooks.c (lhd_print_error_function): Likewise.
23803 * sched-vis.c (print_exp): Likewise.
23804 (print_value): Likewise.
23805 (print_pattern): Likewise.
23806 (print_insn): Likewise.
23807 (rtl_dump_bb_for_graph): Likewise.
23808 * tree-pretty-print.c (dump_function_declaration): Likewise.
23809 (dump_array_domain): Likewise.
23810 (dump_omp_clause): Likewise.
23811 (dump_location): Likewise.
23812 (dump_generic_node): Likewise.
23813 (print_struct_decl): Likewise.
23814 * diagnostic.c (diagnostic_show_locus): Use pp_space.
23815
23816 2013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
23817
23818 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
23819 candidate table when replacing a candidate statement.
23820 (replace_rhs_if_not_dup): Likewise.
23821 (replace_one_candidate): Likewise.
23822
23823 2013-08-02 Jan Hubicka <jh@suse.cz>
23824 Martin Liska <marxin.liska@gmail.com>
23825
23826 * cgraphunit.c (add_new_function): Fix logic when adding from
23827 late IPA pass.
23828 (assemble_thunk): Rename to ...
23829 (expand_thunk); .. this one; export; get it working with
23830 general functions; make produced gimple valid.
23831 * cgraph.h (expand_thunk): Declare.
23832
23833 2013-08-02 Jan Hubicka <jh@suse.cz>
23834
23835 * ipa-cp.c (gather_context_independent_values): Use
23836 ipa_get_param_move_cost.
23837 (get_replacement_map): Remove PARAM; move parameter folding
23838 into tree-inline.c
23839 (create_specialized_node): Update.
23840 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
23841 assert that we have gimple body; update move_cost.
23842 (count_formal_params): Assert that we have gimple body.
23843 (ipa_dump_param): New function.
23844 (ipa_alloc_node_params): Break out from ...
23845 (ipa_initialize_node_params): ... here.
23846 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
23847 (ipa_write_node_info): Stream move costs.
23848 (ipa_read_node_info): Read move costs.
23849 (ipa_update_after_lto_read): Do not recompute node params.
23850 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
23851 (ipa_get_param): Check we are not in WPA.
23852 (ipa_get_param_move_cost): New.
23853 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
23854 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
23855 parm numbers to be present.
23856
23857 2013-08-02 Vladimir Makarov <vmakarov@redhat.com>
23858
23859 PR rtl-optimization/58048
23860 * lra-constraints.c (process_alt_operands): Don't check asm
23861 operand on register.
23862
23863 2013-08-02 Eric Botcazou <ebotcazou@adacore.com>
23864
23865 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
23866 the implied StoreLoad barrier for atomic operations if before.
23867
23868 2013-08-02 Jan Hubicka <jh@suse.cz>
23869 Martin Liska <marxin.liska@gmail.com>
23870
23871 * cgraph.c (cgraph_function_body_availability): Do not check
23872 cgraph flags.
23873 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
23874 symtab_node_availability): Declare.
23875 * ipa.c (can_replace_by_local_alias): New.
23876 (function_and_variable_visibility): Use it.
23877 * symtab.c (symtab_for_node_and_aliases,
23878 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
23879
23880 2013-08-02 Vladimir Makarov <vmakarov@redhat.com>
23881
23882 PR rtl-optimization/57963
23883 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
23884 (lra_constraints): Use them.
23885
23886 2013-08-02 Sofiane Naci <sofiane.naci@arm.com>
23887
23888 * config/arm/types.md (define_attr "type"): Add "load_acq"
23889 and "store_rel".
23890 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
23891 changes.
23892 (cortex_a53_store1): Likewise.
23893
23894 2013-08-01 Jan Hubicka <jh@suse.cz>
23895
23896 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
23897 partitions are not needed.
23898
23899 2013-08-01 Uros Bizjak <ubizjak@gmail.com>
23900
23901 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
23902 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
23903 MAYBE_NON_Q_CLASS_P where appropriate.
23904
23905 2013-08-01 Jan Hubicka <jh@suse.cz>
23906
23907 * cgraph.h (release_function_body): Declare.
23908 * tree.c (free_lang_data_in_decl): Free, parameters and return values
23909 of unused delcarations.
23910
23911 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23912
23913 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
23914 RTL form when subtracting a constant.
23915
23916 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23917
23918 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
23919 Generate canonical plus rtx with negated immediate instead of minus
23920 where appropriate.
23921 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
23922
23923 2013-08-01 Jan Hubicka <jh@suse.cz>
23924
23925 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
23926 (cgraph_release_function_body): Likewise.
23927 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
23928 * cgraph.h (cgrpah_node): Rename abstract_and_needed
23929 to used_as_abstract_origin.
23930 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
23931 symbols used as abstract origins.
23932 * cgraphunit.c (analyze_functions): Update.
23933 * ipa.c (symtab_remove_unreachable_nodes): Recompute
23934 used_as_abstract_origin.
23935 * tree-inline.c (tree_function_versioning): Update
23936 used_as_abstract_origin; be ready for DECL_RESULT and
23937 DECL_ARGUMENTS to be NULL.
23938
23939 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
23940 for abstract functions.
23941 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
23942 real symbols.
23943
23944 2013-08-01 Jan Hubicka <jh@suse.cz>
23945
23946 * profile.c (compute_value_histograms): Fix thinko.
23947
23948 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
23949
23950 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
23951 aarch-common-protos.h to extra_headers.
23952 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
23953 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
23954 * config/aarch64/t-aarch64 (aarch-common.o): Define.
23955
23956 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
23957
23958 * config/aarch64/aarch64.md (define_attr "type"): Delete.
23959 Include "../arm/types.md". Define "type" attribute for all patterns.
23960 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
23961 attribute changes.
23962
23963 2013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
23964
23965 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
23966 to support power8 load fusion.
23967 (fusion_gpr_mem_load): Likewise.
23968
23969 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
23970
23971 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
23972 declarations for power8 load fusion.
23973 (emit_fusion_gpr_load): Likewise.
23974
23975 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
23976 tuning for power8, turn on fusion mode by default. Turn on sign
23977 extending fusion mode if normal fusion mode is on, and we are at
23978 -O2 or -O3.
23979 (fusion_gpr_load_p): New function, return true if we can fuse an
23980 addis instruction with a dependent load to a GPR.
23981 (emit_fusion_gpr_load): Emit the instructions for power8 load
23982 fusion to GPRs.
23983
23984 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
23985 (VSX load fusion peepholes): New peepholes to fuse together an
23986 addi instruction with a VSX load instruction.
23987
23988 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
23989 peepholes to fuse an addis instruction with a load to a GPR base
23990 register. If we are supporting sign extending fusions, convert
23991 sign extending loads to zero extending loads and add an explicit
23992 sign extension.
23993
23994 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
23995
23996 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
23997 aarch-common-protos.h to extra_headers.
23998 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
23999 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
24000 (arm_early_store_addr_dep): Likewise.
24001 (arm_no_early_alu_shift_dep): Likewise.
24002 (arm_no_early_alu_shift_value_dep): Likewise.
24003 (arm_no_early_mul_dep): Likewise.
24004 (arm_no_early_store_addr_dep): Likewise.
24005 (arm_mac_accumulator_is_mul_result): Likewise.
24006 (arm_mac_accumulator_is_result): Likewise.
24007 * config/arm/aarch-common.c: ... here. New file.
24008 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
24009 here to ...
24010 (arm_early_store_addr_dep): Likewise.
24011 (arm_no_early_alu_shift_dep): Likewise.
24012 (arm_no_early_alu_shift_value_dep): Likewise.
24013 (arm_no_early_mul_dep): Likewise.
24014 (arm_no_early_store_addr_dep): Likewise.
24015 (arm_mac_accumulator_is_mul_result): Likewise.
24016 (arm_mac_accumulator_is_result): Likewise.
24017 * config/arm/aarch-common-protos.h: ... here. New file.
24018 * config/arm/t-arm (aarch-common.o): Define.
24019
24020 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
24021
24022 * config/arm/arm.md: Include new file "types.md".
24023 (define_attr "type"): Move from here to ...
24024 (define_attr "mul32"): Likewise.
24025 (define_attr "mul64"): Likewise.
24026 * config/arm/types.md: ... here. New file.
24027
24028 2013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
24029
24030 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
24031 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
24032
24033 2013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24034
24035 * gen-pass-instances.awk: Fix offset of substr().
24036
24037 2013-07-31 David Malcolm <dmalcolm@redhat.com>
24038
24039 * Makefile.in (pass-instances.def): New.
24040 (passes.o): Replace dependency on passes.def with one on
24041 pass-instances.def
24042
24043 * gen-pass-instances.awk: New.
24044
24045 * passes.c (pass_manager::pass_manager): Use pass-instances.def
24046 rather than passes.def, updating local definition of NEXT_PASS
24047 macro to add an extra NUM parameter (currently unused).
24048
24049 2013-07-30 David Malcolm <dmalcolm@redhat.com>
24050
24051 * Makefile.in (PASS_MANAGER_H): New.
24052 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
24053 (passes.o): Likewise.
24054 (statistics.o): Likewise.
24055 (cgraphunit.o): Likewise.
24056 (context.o): Depend on PASS_MANAGER_H.
24057
24058 * pass_manager.h: New.
24059
24060 * cgraphunit.c (cgraph_add_new_function): Update for moves
24061 of globals to fields of pass_manager.
24062 (analyze_function): Likewise.
24063 (expand_function): Likewise.
24064 (ipa_passes): Likewise.
24065 (compile): Likewise.
24066
24067 * context.c (context::context): New.
24068 * context.h (context::context): New.
24069 (context::get_passes): New.
24070 (context::passes_): New.
24071
24072 * lto-cgraph.c (input_node): Update for moves of globals to
24073 fields of pass_manager.
24074
24075 * passes.c (all_passes): Remove, in favor of a field of the
24076 same name within the new class pass_manager.
24077 (all_small_ipa_passes): Likewise.
24078 (all_lowering_passes): Likewise.
24079 (all_regular_ipa_passes): Likewise.
24080 (all_late_ipa_passes): Likewise.
24081 (all_lto_gen_passes): Likewise.
24082 (passes_by_id): Likewise.
24083 (passes_by_id_size): Likewise.
24084 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
24085 the new class pass_manager.
24086 (set_pass_for_id): Convert to...
24087 (pass_manager::set_pass_for_id): ...method.
24088 (get_pass_for_id): Convert to...
24089 (pass_manager::get_pass_for_id): ...method.
24090 (register_one_dump_file): Move body of implementation into...
24091 (pass_manager::register_one_dump_file): ...here.
24092 (register_dump_files_1): Convert to...
24093 (pass_manager::register_dump_files_1): ...method.
24094 (register_dump_files): Convert to...
24095 (pass_manager::register_dump_files): ...method.
24096 (create_pass_tab): Update for moves of globals to fields of
24097 pass_manager.
24098 (dump_passes): Move body of implementation into...
24099 (pass_manager::dump_passes): ...here.
24100 (register_pass): Move body of implementation into...
24101 (pass_manager::register_pass): ...here.
24102 (init_optimization_passes): Convert into...
24103 (pass_manager::pass_manager): ...constructor for new
24104 pass_manager class, and initialize the pass_lists array.
24105 (check_profile_consistency): Update for moves of globals to
24106 fields of pass_manager.
24107 (dump_profile_report): Move body of implementation into...
24108 (pass_manager::dump_profile_report): ...here.
24109 (ipa_write_summaries_1): Update for moves of pass lists from
24110 being globals to fields of pass_manager.
24111 (ipa_write_optimization_summaries): Likewise.
24112 (ipa_read_summaries): Likewise.
24113 (ipa_read_optimization_summaries): Likewise.
24114 (execute_all_ipa_stmt_fixups): Likewise.
24115
24116 * statistics.c (statistics_fini): Update for moves of globals to
24117 fields of pass_manager.
24118
24119 * toplev.c (general_init): Replace call to
24120 init_optimization_passes with construction of the pass_manager
24121 instance.
24122
24123 * tree-pass.h (all_passes): Remove, in favor of a field of the
24124 same name within the new class pass_manager.
24125 (all_small_ipa_passes): Likewise.
24126 (all_lowering_passes): Likewise.
24127 (all_regular_ipa_passes): Likewise.
24128 (all_lto_gen_passes): Likewise.
24129 (all_late_ipa_passes): Likewise.
24130 (passes_by_id): Likewise.
24131 (passes_by_id_size): Likewise.
24132 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
24133 the new class pass_manager.
24134 (get_pass_for_id): Remove.
24135
24136 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
24137
24138 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
24139 configs.
24140
24141 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
24142
24143 * arm.md (mulhi3): New expand pattern.
24144
24145 2013-07-30 Jan Hubicka <jh@suse.cz>
24146 Martin Liska <marxin.liska@gmail.com>
24147
24148 * profile.c (compute_value_histograms): Do not ICE when
24149 there is mismatch only on some counters.
24150
24151 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
24152
24153 PR rtl-optimization/57637
24154 * function.c (move_insn_for_shrink_wrap): Also check the
24155 GEN set of the LIVE problem for the liveness analysis
24156 if it exists, otherwise give up.
24157
24158 2013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
24159
24160 PR tree-optimization/57993
24161 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
24162 replaced statement in the candidate table.
24163 (phi_add_costs): Return infinite cost when the hidden basis does
24164 not dominate all phis on which the candidate is dependent.
24165 (replace_one_candidate): Record replaced statement in the
24166 candidate table.
24167
24168 2013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
24169
24170 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
24171 (ashlv2si3): New expander.
24172 (*ashlv2si3_i): New define_insn_and_split.
24173 * predicates.md (float_operation): Allow patterns with three
24174 basic sub-patterns.
24175
24176 PR rtl-optimization/58021
24177 * mode-switching.c (create_pre_exit): Always split off preceding
24178 insns if we are not at the basic block head.
24179
24180 2013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
24181
24182 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
24183 (UCLIBC_DYNAMIC_LINKER): New macro.
24184 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
24185 `-mnan=2008'.
24186 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
24187 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
24188 `-mnan=2008'.
24189 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
24190 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
24191 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
24192 for SF and DF modes. Use ieee_quad_format for TF mode.
24193 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
24194 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
24195 (mips_option_override): Handle `-mnan=legacy'.
24196 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
24197 `-mabs=2008' and `-mnan=2008'.
24198 (OPTION_DEFAULT_SPECS): Add "nan" default.
24199 (ASM_SPEC): Handle `-mnan='.
24200 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
24201 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
24202 comment accordingly.
24203 (neg<mode>2): Likewise.
24204 * config/mips/mips.opt (mabs, mnan): New options.
24205 * doc/install.texi (Configuration): Document `--with-nan=' option.
24206 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
24207 `-mnan=' options.
24208 (MIPS Options): Document them.
24209 * config.gcc <mips*-*-*>: Handle `--with-nan='.
24210 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
24211 * configure: Regenerate.
24212 * config.in: Regenerate.
24213
24214 2013-07-29 Uros Bizjak <ubizjak@gmail.com>
24215
24216 * config/i386/i386.md (float post-reload splitters): Do not check
24217 for subregs of SSE registers.
24218
24219 2013-07-29 Uros Bizjak <ubizjak@gmail.com>
24220 H.J. Lu <hongjiu.lu@intel.com>
24221
24222 PR target/57954
24223 PR target/57988
24224 * config/i386/i386.md (post-reload splitter
24225 to avoid partial SSE reg dependency stalls): New pattern.
24226
24227 2013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
24228
24229 * config/s390/s390.md ("movcc"): Swap load and store instructions.
24230
24231 2013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
24232
24233 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
24234 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
24235
24236 2013-07-26 Cary Coutant <ccoutant@google.com>
24237
24238 * dwarf2out.c (die_checksum_ordered): Don't include template
24239 instantiations in signature.
24240 (is_template_parameter): New function.
24241 (is_template_instantiation): New function.
24242 (generate_skeleton_bottom_up): Don't include template instantiations
24243 in type unit DIE.
24244 (generate_skeleton): Likewise.
24245 (break_out_comdat_types): Move recursive call to break out nested
24246 types earlier.
24247 (prune_unused_types_mark_generic_parms_dies): Call
24248 is_template_parameter.
24249
24250 2013-07-26 Ian Bolton <ian.bolton@arm.com>
24251
24252 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
24253 uses vector registers.
24254 * config/aarch64/iterators.md: Add attributes rtn and vas.
24255
24256 2013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24257 Richard Earnshaw <richard.earnshaw@arm.com>
24258
24259 * combine.c (simplify_comparison): Re-canonicalize operands
24260 where appropriate.
24261 * config/arm/arm.md (movcond_addsi): New splitter.
24262
24263 2013-07-25 Sterling Augustine <saugustine@google.com>
24264
24265 * dwarf2out.c (size_of_pubnames): Move code to...
24266 (include_pubname_in_output): ...here. New.
24267 (want_pubnames): Rearrange.
24268 (output_pubnames): Call include_pubname_in_output. Move assertion.
24269
24270 2013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
24271
24272 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
24273
24274 2013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
24275
24276 PR target/38836
24277 * doc/extend.texi: Remove obsolete builtins. Fix
24278 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
24279
24280 2013-07-25 Jan Hubicka <jh@suse.cz>
24281
24282 * cgraph.c (release_function_body): Break out from ...
24283 (cgraph_release_function_body): ... this one; also release DECL_RESULT
24284 and DECL_ARGUMENTS.
24285 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
24286 old_tree in the map.
24287 (create_specialized_node): Update.
24288 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
24289 into index.
24290 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
24291 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
24292 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
24293 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
24294 DECL_RESULT.
24295
24296 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24297
24298 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
24299 addsi3_carryin_alt2_<optab>): Correct output template.
24300
24301 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24302
24303 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
24304 Adjust for arm_restrict_it.
24305 Remove trailing whitespace.
24306
24307 2013-07-25  Mark Kettenis  <kettenis@openbsd.org>
24308
24309 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
24310 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
24311
24312 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
24313
24314 2013-07-25 Vladimir Makarov <vmakarov@redhat.com>
24315
24316 PR rtl-optimization/57960
24317 * lra-constraints.c (process_alt_operands): Use the right mode
24318 when checking strict_low.
24319
24320 2013-07-25 Jan Hubicka <jh@suse.cz>
24321
24322 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
24323 * cgraph.c (cgraph_remove_node): Do not release function body
24324 when in cgraph streaming.
24325 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
24326 in other partitions are not considered reachable; fix handling of
24327 clones.
24328
24329 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24330
24331 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
24332
24333 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24334
24335 PR target/19599
24336 PR target/57731
24337 PR target/57837
24338 * config/arm/arm.md ("*sibcall_insn): Replace use of
24339 Ss with US. Adjust output for v5 and v4t.
24340 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
24341
24342 * config/arm/constraints.md ("Ss"): Rename to US.
24343
24344 2013-07-25 Terry Guo <terry.guo@arm.com>
24345
24346 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
24347 shift_add/shift_sub0/shift_sub1 RTXs.
24348
24349 2013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
24350 Anton Blanchard <anton@au1.ibm.com>
24351
24352 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
24353 (altivec_vpks<VI_char>ss): Likewise.
24354 (altivec_vpks<VI_char>us): Likewise.
24355 (altivec_vpku<VI_char>us): Likewise.
24356 (altivec_vpku<VI_char>um): Likewise.
24357
24358 2013-07-24 David Malcolm <dmalcolm@redhat.com>
24359
24360 Introduce context class.
24361
24362 * Makefile.in (CONTEXT_H): New.
24363 (OBJS): Add context.o.
24364 (toplev.o): Add CONTEXT_H to dependencies.
24365 (context.o): New.
24366
24367 * toplev.c (general_init): Create the singleton gcc::context instance.
24368
24369 * context.c: New.
24370
24371 * context.h: New.
24372
24373 2013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
24374
24375 PR rtl-optimization/57968
24376 * mode-switching.c (create_pre_exit): Allow instructions that
24377 don't set a return register to need a non-exit mode.
24378
24379 2013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
24380 Anton Blanchard <anton@au1.ibm.com>
24381
24382 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
24383 operands to vperm for little endian.
24384 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
24385 of lvsl to create the control mask for a vperm for little endian.
24386
24387 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24388 Anton Blanchard <anton@au1.ibm.com>
24389
24390 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
24391 two operands for little-endian.
24392
24393 2013-07-23 Steve Ellcey <sellcey@mips.com>
24394
24395 * config/mips/mips.c (mips_case_values_threshold): New.
24396 (TARGET_CASE_VALUES_THRESHOLD): Define.
24397
24398 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24399 Anton Blanchard <anton@au1.ibm.com>
24400
24401 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
24402 selection of field for vector splat in little endian mode.
24403
24404 2013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
24405
24406 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
24407 expanders to rs6000.md.
24408 (ior<mode>3): Likewise.
24409 (and<mode>3): Likewise.
24410 (one_cmpl<mode>2): Likewise.
24411 (nor<mode>3): Likewise.
24412 (andc<mode>3): Likewise.
24413 (eqv<mode>3): Likewise.
24414 (nand<mode>3): Likewise.
24415 (orc<mode>3): Likewise.
24416
24417 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
24418 declaration.
24419
24420 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
24421 to split multi-word logical operations.
24422 (rs6000_split_logical_di): Likewise.
24423 (rs6000_split_logical): Likewise.
24424
24425 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
24426 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
24427 and allow TImode operations in 32-bit.
24428 (vsx_and<mode>3_64bit): Likewise.
24429 (vsx_ior<mode>3_32bit): Likewise.
24430 (vsx_ior<mode>3_64bit): Likewise.
24431 (vsx_xor<mode>3_32bit): Likewise.
24432 (vsx_xor<mode>3_64bit): Likewise.
24433 (vsx_one_cmpl<mode>2_32bit): Likewise.
24434 (vsx_one_cmpl<mode>2_64bit): Likewise.
24435 (vsx_nor<mode>3_32bit): Likewise.
24436 (vsx_nor<mode>3_64bit): Likewise.
24437 (vsx_andc<mode>3_32bit): Likewise.
24438 (vsx_andc<mode>3_64bit): Likewise.
24439 (vsx_eqv<mode>3_32bit): Likewise.
24440 (vsx_eqv<mode>3_64bit): Likewise.
24441 (vsx_nand<mode>3_32bit): Likewise.
24442 (vsx_nand<mode>3_64bit): Likewise.
24443 (vsx_orc<mode>3_32bit): Likewise.
24444 (vsx_orc<mode>3_64bit): Likewise.
24445
24446 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
24447 logical types in GPRs.
24448
24449 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
24450 logical insns to rs6000.md, and allow TImode operations in
24451 32-bit.
24452 (altivec_ior<mode>3): Likewise.
24453 (altivec_xor<mode>3): Likewise.
24454 (altivec_one_cmpl<mode>2): Likewise.
24455 (altivec_nor<mode>3): Likewise.
24456 (altivec_andc<mode>3): Likewise.
24457
24458 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
24459 attributes for moving the 128-bit logical operations into
24460 rs6000.md.
24461 (BOOL_REGS_OUTPUT): Likewise.
24462 (BOOL_REGS_OP1): Likewise.
24463 (BOOL_REGS_OP2): Likewise.
24464 (BOOL_REGS_UNARY): Likewise.
24465 (BOOL_REGS_AND_CR0): Likewise.
24466 (one_cmpl<mode>2): Add support for DI logical operations on
24467 32-bit, splitting the operations to 32-bit.
24468 (anddi3): Likewise.
24469 (iordi3): Likewise.
24470 (xordi3): Likewise.
24471 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
24472 changes to combine the 32/64-bit code, allow logical operations on
24473 TI mode in 32-bit, and to use similar match_operator patterns like
24474 scalar mode uses. Combine the Altivec and VSX code for logical
24475 operations, and move it here.
24476 (ior<mode>3, 128-bit types): Likewise.
24477 (xor<mode>3, 128-bit types): Likewise.
24478 (one_cmpl<mode>3, 128-bit types): Likewise.
24479 (nor<mode>3, 128-bit types): Likewise.
24480 (andc<mode>3, 128-bit types): Likewise.
24481 (eqv<mode>3, 128-bit types): Likewise.
24482 (nand<mode>3, 128-bit types): Likewise.
24483 (orc<mode>3, 128-bit types): Likewise.
24484 (and<mode>3_internal): Likewise.
24485 (bool<mode>3_internal): Likewise.
24486 (boolc<mode>3_internal1): Likewise.
24487 (boolc<mode>3_internal2): Likewise.
24488 (boolcc<mode>3_internal1): Likewise.
24489 (boolcc<mode>3_internal2): Likewise.
24490 (eqv<mode>3_internal1): Likewise.
24491 (eqv<mode>3_internal2): Likewise.
24492 (one_cmpl1<mode>3_internal): Likewise.
24493
24494 2013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
24495
24496 * config/microblaze/microblaze.c (microblaze_expand_prologue):
24497 Rename flag_stack_usage to flag_stack_usage_info.
24498
24499 2013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
24500
24501 * config/microblaze/sync.md: New file.
24502 * config/microblaze/microblaze.md: Include sync.md
24503 * config/microblaze/microblaze.c: Add print_operand 'y'.
24504 * config/microblaze/constraints.md: Add memory_contraint
24505 'Q' which is a single register.
24506
24507 2013-07-23 Eric Botcazou <ebotcazou@adacore.com>
24508
24509 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
24510
24511 2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
24512
24513 * reload.c (find_reloads): Exit loop once we find this operand
24514 cannot be reloaded somehow for this alternative.
24515
24516 * reload.c (find_reloads): Exit loop once we find a hard register.
24517
24518 * rtlanal.c (computed_jump_p): Exit loop once we find label
24519 reference is used.
24520
24521 * i386.c (ix86_pad_returns): Exit loop after setting replace.
24522
24523 * cfgloopmanip.c (remove_path): Exit loop after setting
24524 irred_invalidated.
24525
24526 * gensupport.c (subst_dup): Avoid loop if code is not
24527 MATCH_DUP nor MATCH_OP_DUP.
24528
24529 2013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
24530
24531 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
24532
24533 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
24534
24535 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
24536 true for SP_REGNUM if mode == ptr_mode.
24537 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
24538 with value R0_REGNUM + 31.
24539
24540 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
24541
24542 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
24543 pad pointer-typed argument downward.
24544
24545 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
24546
24547 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
24548 and __ILP32__ when the ILP32 model is in use.
24549
24550 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
24551
24552 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
24553 (aarch64_load_symref_appropriately): In the case of
24554 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
24555 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
24556 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
24557 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
24558 if 'mode' doesn't equal to 'ptr_mode'.
24559 (aarch64_output_mi_thunk): Add an assertion on the alignment of
24560 'vcall_offset'; change to call aarch64_emit_move differently depending
24561 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
24562 to calculate the upper bound of 'vcall_offset'.
24563 (aarch64_cannot_force_const_mem): Change to also return true if
24564 mode != ptr_mode.
24565 (aarch64_legitimize_reload_address): In the case of large
24566 displacements, add new local variable 'xmode' and an assertion
24567 based on it; change to use 'xmode' to generate the new rtx and
24568 reload.
24569 (aarch64_asm_trampoline_template): Change to generate the template
24570 differently depending on TARGET_ILP32 or not; change to use
24571 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
24572 (aarch64_trampoline_size): Removed.
24573 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
24574 and replace immediate literals with it. Change to use 'ptr_mode'
24575 instead of 'DImode' and call convert_memory_address if the mode
24576 of 'fnaddr' doesn't equal to 'ptr_mode'.
24577 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
24578 to output symbol.
24579 (aarch64_elf_asm_destructor): Likewise.
24580 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
24581 on TARGET_ILP32 instead of aarch64_trampoline_size.
24582 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
24583 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
24584 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
24585 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
24586 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
24587 (storewb_pair<GPI:mode>_<P:mode>): ... this.
24588 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
24589 depending on the value of 'mode'.
24590 (add_losym_<mode>): New.
24591 (ldr_got_small_<mode>): New, based on ldr_got_small.
24592 (ldr_got_small): Remove.
24593 (ldr_got_small_sidi): New.
24594 * config/aarch64/iterators.md (P): New.
24595 (PTR): Change to 'ptr_mode' in the condition.
24596
24597 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
24598
24599 * config.gcc (aarch64*-*-*): Support --with-abi.
24600 (aarch64*-*-elf): Support --with-multilib-list.
24601 (aarch64*-*-linux*): Likewise.
24602 (supported_defaults): Add abi to aarch64*-*-*.
24603 * configure.ac: Mention AArch64 for --with-multilib-list.
24604 * configure: Re-generated.
24605 * config/aarch64/biarchilp32.h: New file.
24606 * config/aarch64/biarchlp64.h: New file.
24607 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
24608 (ABI_SPEC): Ditto.
24609 (MULTILIB_DEFAULTS): Ditto.
24610 (DRIVER_SELF_SPECS): Ditto.
24611 (ASM_SPEC): Update to also substitute -mabi.
24612 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
24613 file whose name depends on -mabi= and -mbig-endian.
24614 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
24615 TARGET_ILP32.
24616 (POINTER_SIZE): New define.
24617 (POINTERS_EXTEND_UNSIGNED): Ditto.
24618 (enum aarch64_abi_type): New enumeration tag.
24619 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
24620 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
24621 (TARGET_ILP32): New define.
24622 * config/aarch64/aarch64.opt (mabi): New.
24623 (aarch64_abi): New.
24624 (ilp32, lp64): New values for -mabi.
24625 * config/aarch64/t-aarch64 (comma): New define.
24626 (MULTILIB_OPTIONS): Ditto.
24627 (MULTILIB_DIRNAMES): Ditto.
24628 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
24629 * doc/invoke.texi: Document -mabi for AArch64.
24630
24631 2013-07-23 Georg-Johann Lay <avr@gjlay.de>
24632
24633 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
24634
24635 2013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
24636 Anton Blanchard <anton@au1.ibm.com>
24637
24638 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
24639 endianness when selecting field to splat.
24640
24641 2013-07-22 Eric Christopher <echristo@gmail.com>
24642
24643 * dwarf2out.c (die_odr_checksum): New function to use
24644 CHECKSUM_ macros and ULEB128 for DIE tag.
24645 (generate_type_signature): Use.
24646
24647 2013-07-22 Eric Botcazou <ebotcazou@adacore.com>
24648
24649 * config.gcc (sparc*-*-*): Accept leon3 processor.
24650 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
24651 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
24652 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
24653 * config/sparc/sparc.opt (enum processor_type): Add leon3.
24654 (mfix-ut699): Adjust comment.
24655 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
24656 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
24657 (CPP_CPU_SPEC): Likewise.
24658 (ASM_CPU_SPEC): Likewise.
24659 * config/sparc/sparc.c (leon3_cost): New constant.
24660 (sparc_option_override): Add leon3 support.
24661 (mem_ref): New function.
24662 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
24663 (sparc_do_work_around_errata): Look into the instruction in the delay
24664 slot and adjust accordingly. Add fix for the data cache nullify issues
24665 of the UT699. Change insertion position for the NOP.
24666 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
24667 (leon3_load): New reservation.
24668 (leon_store): Bump latency to 2.
24669 (grfpu): New automaton.
24670 (grfpu_alu): New unit.
24671 (grfpu_ds): Likewise.
24672 (leon_fp_alu): Adjust.
24673 (leon_fp_mult): Delete.
24674 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
24675 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
24676 * config/sparc/sparc.md (cpu): Add leon3.
24677 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
24678 (swapsi): Likewise.
24679 (atomic_test_and_set): Likewise.
24680 (ldstub): Likewise.
24681
24682 2013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
24683
24684 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
24685 default for R5900 targets.
24686 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
24687 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
24688 * config/mips/mips.c (mips_option_override): Report an error for
24689 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
24690 for -march=r5900 -mhard-float.
24691
24692 2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
24693
24694 * df-problems.c (can_move_insns_across): Exit loop once we
24695 find a non-fixed, non-global register.
24696
24697 * ipa-pure-const.c (propagate_nothrow): Exit loop after
24698 setting can_throw.
24699
24700 * omega.c (omega_eliminate_red): Break after setting red_found.
24701 (omega_problem_has_red_equations): Similarly after setting found.
24702 (omega_query_variable): Similarly after setting coupled.
24703
24704 2013-07-22 Marek Polacek <polacek@redhat.com>
24705
24706 * gimplify.c: Don't include gimple.h twice.
24707
24708 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24709
24710 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
24711 instead of TARGET_THUMB1.
24712 (Pz): New constraint.
24713 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
24714 encodings.
24715 (compare_negsi_si): Likewise.
24716 (compare_addsi2_op0): Likewise.
24717 (compare_addsi2_op1): Likewise.
24718 (addsi3_carryin_<optab>): Likewise.
24719 (addsi3_carryin_alt2_<optab>): Likewise.
24720 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
24721 for arm_restrict_it.
24722 (subsi3_carryin): Likewise.
24723 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
24724 (minmax_arithsi): Disable for arm_restrict_it.
24725 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
24726 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
24727 (satsi_<SAT:code>_shift): Likewise.
24728 (arm_shiftsi3): Add alternative for 16-bit encoding.
24729 (arm32_movhf): Disable for arm_restrict_it.
24730 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
24731 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
24732
24733 2013-07-22 Sofiane Naci <sofiane.naci@arm.com>
24734
24735 * config/arm/arm.md (attribute "insn"): Delete.
24736 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
24737 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
24738 (not_shiftsi): Update for attribute change.
24739 (not_shiftsi_compare0): Likewise.
24740 (not_shiftsi_compare0_scratch): Likewise.
24741 (arm_one_cmplsi2): Likewise.
24742 (thumb1_one_cmplsi2): Likewise.
24743 (notsi_compare0): Likewise.
24744 (notsi_compare0_scratch): Likewise.
24745 (thumb1_movdi_insn): Likewise.
24746 (arm_movsi_insn): Likewise.
24747 (movhi_insn_arch4): Likewise.
24748 (movhi_bytes): Likewise.
24749 (arm_movqi_insn): Likewise.
24750 (thumb1_movqi_insn): Likewise.
24751 (arm32_movhf): Likewise.
24752 (thumb1_movhf): Likewise.
24753 (arm_movsf_soft_insn): Likewise.
24754 (thumb1_movsf_insn): Likewise.
24755 (thumb_movdf_insn): Likewise.
24756 (movsicc_insn): Likewise.
24757 (movsfcc_soft_insn): Likewise.
24758 (and_scc): Likewise.
24759 (cond_move): Likewise.
24760 (if_move_not): Likewise.
24761 (if_not_move): Likewise.
24762 (if_shift_move): Likewise.
24763 (if_move_shift): Likewise.
24764 (if_shift_shift): Likewise.
24765 (if_not_arith): Likewise.
24766 (if_arith_not): Likewise.
24767 (cond_move_not): Likewise.
24768 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
24769 (neon_mov<mode>): Likewise.
24770 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
24771 (thumb2_movsi_vfp): Likewise.
24772 (movsf_vfp): Likewise.
24773 (thumb2_movsf_vfp): Likewise.
24774 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
24775 change.
24776 (cortexa7_older_only): Likewise.
24777 (cortexa7_younger): Likewise.
24778 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
24779 (1020alu_shift_op): Likewise.
24780 (1020alu_shift_reg_op): Likewise.
24781 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
24782 (alu_shift_op): Likewise.
24783 (alu_shift_reg_op): Likewise.
24784 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
24785 (11_alu_shift_op): Likewise.
24786 (11_alu_shift_reg_op): Likewise.
24787 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
24788 (9_alu_shift_reg_op): Likewise.
24789 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
24790 change.
24791 (cortex_a15_alu_shift): Likewise.
24792 (cortex_a15_alu_shift_reg): Likewise.
24793 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
24794 (cortex_a5_alu_shift): Likewise.
24795 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
24796 change.
24797 (cortex_a53_alu_shift): Likewise.
24798 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
24799 change.
24800 (cortex_a7_alu_reg): Likewise.
24801 (cortex_a7_alu_shift): Likewise.
24802 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
24803 (cortex_a8_alu_shift): Likewise.
24804 (cortex_a8_alu_shift_reg): Likewise.
24805 (cortex_a8_mov): Likewise.
24806 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
24807 (cortex_a9_dp_shift): Likewise.
24808 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
24809 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
24810 (cortex_r4_mov): Likewise.
24811 (cortex_r4_alu_shift): Likewise.
24812 (cortex_r4_alu_shift_reg): Likewise.
24813 * config/arm/fa526.md (526_alu_op): Update for attribute change.
24814 (526_alu_shift_op): Likewise.
24815 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
24816 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
24817 (626te_alu_shift_op): Likewise.
24818 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
24819 (726te_alu_op): Likewise.
24820 (726te_alu_shift_op): Likewise.
24821 (726te_alu_shift_reg_op): Likewise.
24822 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
24823 (mp626_alu_shift_op): Likewise.
24824 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
24825 (pj4_alu_e1_conds): Likewise.
24826 (pj4_alu): Likewise.
24827 (pj4_alu_conds): Likewise.
24828 (pj4_shift): Likewise.
24829 (pj4_shift_conds): Likewise.
24830 (pj4_alu_shift): Likewise.
24831 (pj4_alu_shift_conds): Likewise.
24832
24833 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24834
24835 * config/arm/predicates.md (shiftable_operator_strict_it):
24836 New predicate.
24837 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
24838 Disable cond_exec version for arm_restrict_it.
24839 (thumb2_smaxsi3): Convert to generate cond_exec.
24840 (thumb2_sminsi3): Likewise.
24841 (thumb32_umaxsi3): Likewise.
24842 (thumb2_uminsi3): Likewise.
24843 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
24844 (thumb2_neg_abssi2): Likewise.
24845 (thumb2_mov_scc): Add alternative for 16-bit encoding.
24846 (thumb2_movsicc_insn): Adjust alternatives.
24847 (thumb2_mov_negscc): Disable for arm_restrict_it.
24848 (thumb2_mov_negscc_strict_it): New pattern.
24849 (thumb2_mov_notscc_strict_it): New pattern.
24850 (thumb2_mov_notscc): Disable for arm_restrict_it.
24851 (thumb2_ior_scc): Likewise.
24852 (thumb2_ior_scc_strict_it): New pattern.
24853 (thumb2_cond_move): Adjust for arm_restrict_it.
24854 (thumb2_cond_arith): Disable for arm_restrict_it.
24855 (thumb2_cond_arith_strict_it): New pattern.
24856 (thumb2_cond_sub): Adjust for arm_restrict_it.
24857 (thumb2_movcond): Likewise.
24858 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
24859 (thumb2_zero_extendhisi2_v6): Likewise.
24860 (thumb2_zero_extendqisi2_v6): Likewise.
24861 (orsi_notsi_si): Likewise.
24862 (orsi_not_shiftsi_si): Likewise.
24863
24864 2013-07-22 Georg-Johann Lay <avr@gjlay.de>
24865
24866 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
24867 instruction sequence is 1 byte shorter.
24868
24869 2013-07-22 Uros Bizjak <ubizjak@gmail.com>
24870
24871 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
24872 it is not needed after split.
24873
24874 2013-07-20 Iain Sandoe <iain@codesourcery.com>
24875
24876 PR target/51784
24877 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
24878 second label for nonlocal goto receivers. Don't output pic base labels
24879 unless we're producing PIC; mark that action unreachable().
24880 (ix86_save_reg): If the function contains a nonlocal label, save the
24881 PIC base reg.
24882 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
24883 * config/darwin.c (emitted_pic_label_num): New GTY.
24884 (update_pic_label_number_if_needed): New.
24885 (machopic_output_function_base_name): Adjust for nonlocal receiver
24886 case.
24887 (machopic_should_output_picbase_label): New.
24888 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
24889 (nonlocal_goto_receiver): New insn and split.
24890
24891 2013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
24892
24893 * config/aarch64/aarch64-builtins.c
24894 (aarch64_fold_builtin): Fold abs in all modes.
24895 * config/aarch64/aarch64-simd-builtins.def
24896 (abs): Enable for all modes.
24897 * config/aarch64/arm_neon.h
24898 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
24899 (vabs_f64): Add missing intrinsic.
24900
24901 2013-07-19 Ian Bolton <ian.bolton@arm.com>
24902
24903 * config/aarch64/arm_neon.h (vabs_s64): New function
24904
24905 2013-07-19 Georg-Johann Lay <avr@gjlay.de>
24906
24907 PR target/57516
24908 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
24909 * config/avr/avr.md (adjust_len): Add `round'.
24910 * config/avr/avr-protos.h (avr_out_round): New prototype.
24911 (avr_out_plus): Add `out_label' argument.
24912 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
24913 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
24914 Handle the case where `insn' is just a pattern.
24915 (avr_out_bitop): Handle the case where `insn' is just a pattern.
24916 (avr_out_round): New function.
24917 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
24918
24919 2013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
24920
24921 * config/microblaze/microblaze.c (microblaze_expand_prologue):
24922 Add check for flag_stack_usage to handle -fstack-usage support
24923
24924 2013-07-18 Pat Haugen <pthaugen@us.ibm.com>
24925
24926 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
24927 interaction for new Power8 flags and VSX.
24928
24929 2013-07-18 Sriraman Tallam <tmsriram@google.com>
24930
24931 PR middle-end/57698
24932 * tree-inline.c (expand_call_inline): Emit errors during
24933 early_inlining only if optimization is not turned on.
24934
24935 2013-07-18 David Malcolm <dmalcolm@redhat.com>
24936
24937 * passes.def: New.
24938
24939 * passes.c (init_optimization_passes): Move the construction of
24940 the pass hierarchy into a new passes.def file.
24941
24942 * Makefile.in (passes.o): Add dependency on passes.def.
24943
24944 2013-07-18 David Malcolm <dmalcolm@redhat.com>
24945
24946 * passes.c (init_optimization_passes): Introduce macros for
24947 constructing the tree of passes (INSERT_PASSES_AFTER,
24948 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
24949 TERMINATE_PASS_LIST).
24950
24951 2013-07-18 Vladimir Makarov <vmakarov@redhat.com>
24952 Wei Mi <wmi@google.com>
24953
24954 PR rtl-optimization/57878
24955 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
24956 top.
24957 (reload_pseudo_compare_func): Check nregs first for reload
24958 pseudos.
24959
24960 2013-07-18 David Malcolm <dmalcolm@redhat.com>
24961
24962 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
24963
24964 2013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
24965
24966 * read-rtl.c (validate_const_int): Once an invalid character is
24967 seen, quit the loop.
24968
24969 * gengtype.c (write_roots): Similarly once we find the "deletable"
24970 or "if_marked" option.
24971
24972 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
24973
24974 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
24975 "xtab" and "sat". Move value "clz" from here to ...
24976 (attriubte "type"): ... here.
24977 (satsi_<SAT:code>): Delete "insn" attribute.
24978 (satsi_<SAT:code>_shift): Likewise.
24979 (arm_zero_extendqisi2addsi): Likewise.
24980 (arm_extendqisi2addsi): Likewise.
24981 (clzsi2): Update for attribute changes.
24982 (rbitsi2): Likewise.
24983 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
24984 attribute.
24985 (arm_usatsihi): Likewise.
24986 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
24987
24988 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
24989
24990 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
24991 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
24992 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
24993 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
24994 in alphabetical order.
24995 (attribute "core_cycles"): Update for attribute changes.
24996 (arm_addsi3): Likewise.
24997 (addsi3_compare0): Likewise.
24998 (addsi3_compare0_scratch): Likewise.
24999 (addsi3_compare_op1): Likewise.
25000 (addsi3_compare_op2): Likewise.
25001 (compare_addsi2_op0): Likewise.
25002 (compare_addsi2_op1): Likewise.
25003 (addsi3_carryin_shift_<optab>): Likewise.
25004 (subsi3_carryin_shift): Likewise.
25005 (rsbsi3_carryin_shift): Likewise.
25006 (arm_subsi3_insn): Likewise.
25007 (subsi3_compare0): Likewise.
25008 (subsi3_compare): Likewise.
25009 (arm_andsi3_insn): Likewise.
25010 (thumb1_andsi3_insn): Likewise.
25011 (andsi3_compare0): Likewise.
25012 (andsi3_compare0_scratch): Likewise.
25013 (zeroextractsi_compare0_scratch
25014 (andsi_not_shiftsi_si): Likewise.
25015 (iorsi3_insn): Likewise.
25016 (iorsi3_compare0): Likewise.
25017 (iorsi3_compare0_scratch): Likewise.
25018 (arm_xorsi3): Likewise.
25019 (thumb1_xorsi3_insn): Likewise.
25020 (xorsi3_compare0): Likewise.
25021 (xorsi3_compare0_scratch): Likewise.
25022 (satsi_<SAT:code>_shift): Likewise.
25023 (rrx): Likewise.
25024 (arm_shiftsi3): Likewise.
25025 (shiftsi3_compare0): Likewise.
25026 (not_shiftsi): Likewise.
25027 (not_shiftsi_compare0): Likewise.
25028 (not_shiftsi_compare0_scratch): Likewise.
25029 (arm_one_cmplsi2): Likewise.
25030 (thumb_one_complsi2): Likewise.
25031 (notsi_compare0): Likewise.
25032 (notsi_compare0_scratch): Likewise.
25033 (thumb1_zero_extendhisi2): Likewise.
25034 (arm_zero_extendhisi2): Likewise.
25035 (arm_zero_extendhisi2_v6): Likewise.
25036 (arm_zero_extendhisi2addsi): Likewise.
25037 (thumb1_zero_extendqisi2): Likewise.
25038 (thumb1_zero_extendqisi2_v6): Likewise.
25039 (arm_zero_extendqisi2): Likewise.
25040 (arm_zero_extendqisi2_v6): Likewise.
25041 (arm_zero_extendqisi2addsi): Likewise.
25042 (thumb1_extendhisi2): Likewise.
25043 (arm_extendhisi2): Likewise.
25044 (arm_extendhisi2_v6): Likewise.
25045 (arm_extendqisi): Likewise.
25046 (arm_extendqisi_v6): Likewise.
25047 (arm_extendqisi2addsi): Likewise.
25048 (thumb1_extendqisi2): Likewise.
25049 (thumb1_movdi_insn): Likewise.
25050 (arm_movsi_insn): Likewise.
25051 (movsi_compare0): Likewise.
25052 (movhi_insn_arch4): Likewise.
25053 (movhi_bytes): Likewise.
25054 (arm_movqi_insn): Likewise.
25055 (thumb1_movqi_insn): Likewise.
25056 (arm32_movhf): Likewise.
25057 (thumb1_movhf): Likewise.
25058 (arm_movsf_soft_insn): Likewise.
25059 (thumb1_movsf_insn): Likewise.
25060 (movdf_soft_insn): Likewise.
25061 (thumb_movdf_insn): Likewise.
25062 (arm_cmpsi_insn): Likewise.
25063 (cmpsi_shiftsi): Likewise.
25064 (cmpsi_shiftsi_swp): Likewise.
25065 (arm_cmpsi_negshiftsi_si): Likewise.
25066 (movsicc_insn): Likewise.
25067 (movsfcc_soft_insn): Likewise.
25068 (arith_shiftsi): Likewise.
25069 (arith_shiftsi_compare0
25070 (arith_shiftsi_compare0_scratch
25071 (sub_shiftsi): Likewise.
25072 (sub_shiftsi_compare0
25073 (sub_shiftsi_compare0_scratch
25074 (and_scc): Likewise.
25075 (cond_move): Likewise.
25076 (if_plus_move): Likewise.
25077 (if_move_plus): Likewise.
25078 (if_move_not): Likewise.
25079 (if_not_move): Likewise.
25080 (if_shift_move): Likewise.
25081 (if_move_shift): Likewise.
25082 (if_shift_shift): Likewise.
25083 (if_not_arith): Likewise.
25084 (if_arith_not): Likewise.
25085 (cond_move_not): Likewise.
25086 (thumb1_ashlsi3): Set type attribute.
25087 (thumb1_ashrsi3): Likewise.
25088 (thumb1_lshrsi3): Likewise.
25089 (thumb1_rotrsi3): Likewise.
25090 (shiftsi3_compare0_scratch): Likewise.
25091 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
25092 (neon_mov<mode>): Likewise.
25093 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
25094 attribute changes.
25095 (thumb2_movsi_insn): Likewise.
25096 (thumb2_cmpsi_neg_shiftsi): Likewise.
25097 (thumb2_extendqisi_v6): Likewise.
25098 (thumb2_zero_extendhisi2_v6): Likewise.
25099 (thumb2_zero_extendqisi2_v6): Likewise.
25100 (thumb2_shiftsi3_short): Likewise.
25101 (thumb2_addsi3_compare0_scratch): Likewise.
25102 (orsi_not_shiftsi_si): Likewise.
25103 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
25104 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
25105 changes.
25106 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
25107 (1020alu_shift_op): Likewise.
25108 (1020alu_shift_reg_op): Likewise.
25109 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
25110 (alu_shift_op): Likewise.
25111 (alu_shift_reg_op): Likewise.
25112 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
25113 (11_alu_shift_op): Likewise.
25114 (11_alu_shift_reg_op): Likewise.
25115 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
25116 (9_alu_shift_reg_op): Likewise.
25117 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
25118 changes.
25119 (cortex_a15_alu_shift): Likewise.
25120 (cortex_a15_alu_shift_reg): Likewise.
25121 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
25122 changes.
25123 (cortex_a5_alu_shift): Likewise.
25124 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
25125 changes.
25126 (cortex_a53_alu_shift): Likewise.
25127 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
25128 changes.
25129 (cortex_a7_alu_reg): Likewise.
25130 (cortex_a7_alu_shift): Likewise.
25131 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
25132 changes.
25133 (cortex_a8_alu_shift): Likewise.
25134 (cortex_a8_alu_shift_reg): Likewise.
25135 (cortex_a8_mov): Likewise.
25136 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
25137 (cortex_a9_dp_shift): Likewise.
25138 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
25139 changes.
25140 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
25141 changes.
25142 (cortex_r4_mov): Likewise.
25143 (cortex_r4_alu_shift): Likewise.
25144 (cortex_r4_alu_shift_reg): Likewise.
25145 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
25146 (526_alu_shift_op): Likewise.
25147 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
25148 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
25149 (626te_alu_shift_op): Likewise.
25150 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
25151 (726te_alu_op): Likewise.
25152 (726te_alu_shift_op): Likewise.
25153 (726te_alu_shift_reg_op): Likewise.
25154 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
25155 (mp626_alu_shift_op): Likewise.
25156 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
25157 (pj4_alu_e1_conds): Likewise.
25158 (pj4_alu): Likewise.
25159 (pj4_alu_conds): Likewise.
25160 (pj4_shift): Likewise.
25161 (pj4_shift_conds): Likewise.
25162 (pj4_alu_shift): Likewise.
25163 (pj4_alu_shift_conds): Likewise.
25164 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
25165 changes.
25166 (cortexa7_older_only): Likewise.
25167 (cortexa7_younger): Likewise.
25168
25169 2013-07-18 David Malcolm <dmalcolm@redhat.com>
25170
25171 * ipa-pure-const.c (generate_summary): Rename to...
25172 (pure_const_generate_summary): ... this.
25173
25174 2013-07-17 Iain Sandoe <iain@codesourcery.com>
25175
25176 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
25177
25178 2013-07-17 Yvan Roux <yvan.roux@linaro.org>
25179
25180 PR target/57909
25181 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
25182 usage in HI mode.
25183
25184 2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25185
25186 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
25187 enabled without -march=zEC12.
25188 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
25189 flags to be set.
25190
25191 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
25192
25193 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
25194 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
25195 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
25196 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
25197 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
25198 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
25199 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
25200 ISA_HAS_FP4.
25201 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
25202 and ISA_HAS_NMADD3_NMSUB3.
25203 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
25204 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
25205 (nmsub4<mode>, nmsub3<mode>): Likewise.
25206 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
25207
25208 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
25209
25210 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
25211 TARGET_MIPS5400 checking.
25212
25213 2013-07-16 Jakub Jelinek <jakub@redhat.com>
25214 Peter Bergner <bergner@vnet.ibm.com>
25215
25216 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
25217 registers in the comment.
25218 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
25219 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
25220 rather than FIRST_PSEUDO_REGISTERS.
25221
25222 2013-07-16 Peter Bergner <bergner@vnet.ibm.com>
25223
25224 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
25225 enable extra ISA flags with TARGET_HTM.
25226
25227 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
25228
25229 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
25230 Fix comment typos.
25231
25232 2013-07-15 Cong Hou <congh@google.com>
25233
25234 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
25235 in compare function for sorting.
25236
25237 2013-07-15 Peter Bergner <bergner@vnet.ibm.com>
25238
25239 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
25240 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
25241 * config/rs6000/rs6000.opt: Add -mhtm option.
25242 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
25243 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
25244 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
25245 __HTM__ if the HTM instructions are available.
25246 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
25247 htm_spr_reg_operand): New define_predicates.
25248 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
25249 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
25250 Include htm.md.
25251 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
25252 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
25253 HTM builtin functions.
25254 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
25255 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
25256 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
25257 (rs6000_builtin_mask_calculate): Likewise.
25258 (rs6000_option_override_internal): Likewise.
25259 (bdesc_htm): Add new HTM builtin support.
25260 (htm_spr_num): New function.
25261 (htm_spr_regno): Likewise.
25262 (rs6000_htm_spr_icode): Likewise.
25263 (htm_expand_builtin): Likewise.
25264 (htm_init_builtins): Likewise.
25265 (rs6000_expand_builtin): Add support for HTM builtin functions.
25266 (rs6000_init_builtins): Likewise.
25267 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
25268 option.
25269 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
25270 (TARGET_HTM, MASK_HTM): Define macros.
25271 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
25272 (FIXED_REGISTERS): Likewise.
25273 (CALL_USED_REGISTERS): Likewise.
25274 (CALL_REALLY_USED_REGISTERS): Likewise.
25275 (REG_ALLOC_ORDER): Likewise.
25276 (enum reg_class): Likewise.
25277 (REG_CLASS_NAMES): Likewise.
25278 (REG_CLASS_CONTENTS): Likewise.
25279 (REGISTER_NAMES): Likewise.
25280 (ADDITIONAL_REGISTER_NAMES): Likewise.
25281 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
25282 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
25283 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
25284 * config/rs6000/htm.md: New file.
25285 * config/rs6000/htmintrin.h: New file.
25286 * config/rs6000/htmxlintrin.h: New file.
25287
25288 2013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
25289
25290 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
25291 Define SYMBOL_TINY_GOT, update comment.
25292 * config/aarch64/aarch64.c
25293 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
25294 (aarch64_expand_mov_immediate): Likewise.
25295 (aarch64_print_operand): Likewise.
25296 (aarch64_classify_symbol): Likewise.
25297 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
25298 (ldr_got_tiny): Define.
25299
25300 2013-07-13 Tobias Grosser <tobias@grosser.es>
25301
25302 PR tree-optimization/54094
25303 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
25304 scheduling dimension for the parallelism check from the polyhedral
25305 information in the AST.
25306 * graphite-dependences.c (carries_deps): Do not assume the schedule is
25307 in 2D + 1 form.
25308
25309 2013-07-13 Jason Merrill <jason@redhat.com>
25310
25311 * print-tree.c (debug_vec_tree): Use debug_raw.
25312 (debug_raw (vec<tree, va_gc> &)): New.
25313 (debug_raw (vec<tree, va_gc> *)): New.
25314 * tree.h: Declare them.
25315
25316 2013-07-13 Bin Cheng <bin.cheng@arm.com>
25317
25318 * ifcvt.c (ifcvt_after_combine): New static variable.
25319 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
25320 for size.
25321 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
25322 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
25323 rest_of_handle_if_after_reload): Pass new argument for if_convert.
25324
25325 2013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
25326
25327 * config/mips/mips.c (mips_expand_call): Remove empty statement.
25328
25329 2013-07-12 Michael Matz <matz@suse.de>
25330
25331 PR middle-end/55771
25332 * convert.c (convert_to_real): Reject non-float inner types.
25333
25334 2013-07-12 Tejas Belagod <tejas.belagod@arm.com>
25335
25336 * config/aarch64/aarch64-protos.h
25337 (aarch64_simd_immediate_valid_for_move): Remove.
25338 * config/aarch64/aarch64.c (simd_immediate_info): New member.
25339 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
25340 cases.
25341 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
25342
25343 2013-07-11 Steve Ellcey <sellcey@mips.com>
25344
25345 * config/mips/mips.c (mips_conditional_register_usage): Do not
25346 use t[0-7] registers in MIPS16 mode when optimizing for size.
25347
25348 2013-07-11 Sriraman Tallam <tmsriram@google.com>
25349
25350 * config/i386/i386.c (dispatch_function_versions): Fix array
25351 indexing of function_version_info to match actual_versions.
25352
25353 2013-07-11 Teresa Johnson <tejohnson@google.com>
25354
25355 * vec.h (struct va_gc): Move release out-of-line.
25356 (va_gc::release): Call ggc_free on released vec.
25357
25358 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25359
25360 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
25361 Require GOT register as additional operand in UNSPEC.
25362 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
25363 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
25364 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
25365 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
25366 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
25367 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
25368 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
25369
25370 2013-07-11 Georg-Johann Lay <avr@gjlay.de>
25371
25372 PR target/57631
25373 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
25374 name seen by assembler/linker rather if available.
25375
25376 2013-07-11 Andreas Schwab <schwab@suse.de>
25377
25378 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
25379
25380 2013-07-10 Vladimir Makarov <vmakarov@redhat.com>
25381
25382 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
25383
25384 2013-07-10 Joseph Myers <joseph@codesourcery.com>
25385
25386 * doc/tm.texi.in: Move hook documentation to ....
25387 * target.def: ... here.
25388
25389 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
25390 text on @hook line.
25391 * doc/tm.texi: Regenerate.
25392
25393 2013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
25394
25395 PR c++/57869
25396 * doc/invoke.texi: Document -Wconditionally-supported.
25397
25398 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
25399
25400 PR target/57844
25401 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
25402 of my_fp.
25403
25404 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
25405
25406 PR target/57506
25407 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
25408 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
25409 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
25410 Remove duplicate devices.
25411 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
25412 * config/avr/t-multilib: Regenerate.
25413 * config/avr/avr-tables.opt: Regenerate.
25414 * doc/avr-mmcu.texi: Regenerate.
25415
25416 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
25417
25418 PR target/56987
25419 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
25420
25421 2013-07-10 Graham Stott <graham.stott@btinternet.com>
25422
25423 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
25424 the cost of MULT when optimizing for size.
25425
25426 2013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
25427
25428 * config/cr16/cr16-protos.h: Don't include target.h.
25429
25430 2013-07-09 Joseph Myers <joseph@codesourcery.com>
25431
25432 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
25433 adjust register size for TDmode and TFmode for VSX registers.
25434
25435 2013-07-08 Kai Tietz <ktietz@redhat.com>
25436
25437 PR target/56892
25438 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
25439 hook_bool_const_tree_true.
25440
25441 2013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25442
25443 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
25444 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
25445 * config/s390/s390.md: Define FPR*_REGNUM constants.
25446 Fix FPR2_REGNUM constant (18 -> 17).
25447 ("*trunc<BFP:mode><DFP_ALL:mode>2")
25448 ("*trunc<DFP_ALL:mode><BFP:mode>2")
25449 ("trunc<BFP:mode><DFP_ALL:mode>2")
25450 ("trunc<DFP_ALL:mode><BFP:mode>2")
25451 ("*extend<BFP:mode><DFP_ALL:mode>2")
25452 ("*extend<DFP_ALL:mode><BFP:mode>2")
25453 ("extend<BFP:mode><DFP_ALL:mode>2")
25454 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
25455 FPR4_REGNUM.
25456
25457 2013-07-08 Graham Stott <graham.stott@btinternet.com>
25458
25459 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
25460
25461 2013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25462
25463 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
25464 and cfun_fpr_bit_p to cfun_fpr_save_p.
25465 (s390_frame_area, s390_register_info, s390_frame_info)
25466 (s390_emit_prologue, s390_emit_epilogue)
25467 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
25468 register numbers.
25469 * config/s390/s390.h: Define *_REGNUM macros for floating point
25470 register numbers.
25471
25472 2013-07-08 Eric Botcazou <ebotcazou@adacore.com>
25473
25474 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
25475
25476 2013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
25477
25478 PR rtl-optimization/57786
25479 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
25480 and break out of the loop when it is set to false.
25481
25482 2013-07-08 Jakub Jelinek <jakub@redhat.com>
25483
25484 PR target/57819
25485 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
25486 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
25487 (const_int 63)) 0)).
25488 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
25489 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
25490 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
25491
25492 PR rtl-optimization/57829
25493 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
25494 mask bits outside of mode are just sign-extension from mode to HWI.
25495
25496 2013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
25497
25498 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
25499 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
25500 adjust_address instead of change_address to keep info about alignment.
25501 (emit_strmov): Remove.
25502 (emit_memmov): New function.
25503 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
25504 (expand_movmem_epilogue): Likewise and return updated rtx for
25505 destination.
25506 (expand_constant_movmem_prologue): Likewise and return updated rtx for
25507 destination and source.
25508 (decide_alignment): Refactor, handle vector_loop.
25509 (ix86_expand_movmem): Likewise.
25510 (ix86_expand_setmem): Likewise.
25511 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
25512
25513 2013-07-07 Uros Bizjak <ubizjak@gmail.com>
25514
25515 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
25516 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
25517
25518 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
25519
25520 * config/i386/sse.md (sse_movlhps): Change alternative 3
25521 of operand 2 to "m".
25522
25523 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
25524
25525 PR target/57807
25526 * config/i386/sse.md (iptr): New mode attribute.
25527 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
25528 (<sse>_vm<plusminus_insn><mode>3): Ditto.
25529 (<sse>_vmmul<mode>3): Ditto.
25530 (<sse>_vmdiv<mode>3): Ditto.
25531 (sse_vmrcpv4sf2): Ditto.
25532 (<sse>_vmsqrt<mode>2): Ditto.
25533 (sse_vmrsqrtv4sf2): Ditto.
25534 (<sse>_vm<code><mode>3): Ditto.
25535 (avx_vmcmp<mode>3): Ditto.
25536 (<sse>_vmmaskcmp<mode>3): Ditto.
25537 (<sse>_comi): Ditto.
25538 (<sse>_ucomi): Ditto.
25539 (*xop_vmfrcz_<mode>): Ditto.
25540 (*fmai_fmadd_<mode>): Ditto.
25541 (*fmai_fmsub_<mode>): Ditto.
25542 (*fmai_fnmadd_<mode>): Ditto.
25543 (*fmai_fnmsub_<mode>): Ditto.
25544 (*fma4i_vmfmadd_<mode>): Ditto.
25545 (*fma4i_vmfmsub_<mode>): Ditto.
25546 (*fma4i_vmfnmadd_<mode>): Ditto.
25547 (*fma4i_vmfnmsub_<mode>): Ditto.
25548 (*xop_vmfrcz_<mode>): Ditto.
25549 (sse_cvtps2pi): Ditto.
25550 (sse_cvttps2pi): Ditto.
25551 (sse_cvtss2si): Ditto.
25552 (sse_cvtss2si_2): Ditto.
25553 (sse_cvtss2siq_2): Ditto.
25554 (sse_cvttss2si): Ditto.
25555 (sse_cvttss2siq): Ditto.
25556 (sse_cvtsd2si): Ditto.
25557 (sse_cvtsd2si_2): Ditto.
25558 (sse_cvtsd2siq_2): Ditto.
25559 (sse_cvttsd2si): Ditto.
25560 (sse_cvttsd2siq): Ditto.
25561 (sse_cvtsd2ss): Ditto.
25562 (sse_cvtss2sd): Ditto.
25563 (avx2_pbroadcast<mode>): Ditto.
25564 (avx2_pbroadcast<mode>_1): Ditto.
25565 (*avx_vperm_broadcast_v4sf): Ditto.
25566
25567 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
25568 (sse_movlhps): Ditto.
25569 (sse_storehps): Ditto.
25570 (sse_loadhps): Ditto.
25571 (sse_storelps): Ditto.
25572 (sse_loadlps): Ditto.
25573 (*vec_concatv4sf): Ditto.
25574 (*vec_interleave_highv2df): Ditto.
25575 (*vec_interleave_lowv2df): Ditto.
25576 (*vec_extractv2df_1_sse): Ditto.
25577 (*vec_extractv2df_0_sse): Ditto.
25578 (sse2_storelpd): Ditto.
25579 (sse2_loadlpd): Ditto.
25580 (sse2_movsd): Ditto.
25581 (*vec_concatv4si): Ditto.
25582 (vec_concatv2di): Ditto.
25583
25584 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
25585 for Intel asm dialect.
25586 (mmx_punpcklwd): Ditto.
25587 (mmx_punpckldq): Ditto.
25588
25589 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
25590 for intel assembler dialect.
25591
25592 2013-07-06 Jakub Jelinek <jakub@redhat.com>
25593
25594 PR target/29776
25595 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
25596 for BUILT_IN_C{LZ,LRSB}*.
25597 * tree.h (CASE_INT_FN): Add FN##IMAX case.
25598 * tree-vrp.c (extract_range_basic): Handle
25599 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
25600 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
25601 fall thru to code calling set_value*.
25602 * builtins.c (expand_builtin): Remove *IMAX cases.
25603 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
25604 if width is bigger than 2*HWI.
25605
25606 2013-07-05 Vladimir Makarov <vmakarov@redhat.com>
25607
25608 PR rtl-optimization/55342
25609 * lra-int.h (lra_subreg_reload_pseudos): New.
25610 * lra.c: Add undoing optional reloads to the block diagram.
25611 (lra_subreg_reload_pseudos): New.
25612 (lra_optional_reload_pseudos): Change comments.
25613 (lra): Init and clear lra_subreg_reload_pseudos. Clear
25614 lra_optional_reload_pseudos after undo transformations.
25615 * lra-assigns.c (pseudo_prefix_title): New.
25616 (lra_setup_reg_renumber): Use it.
25617 (spill_for): Ditto. Check subreg reload pseudos too.
25618 (assign_by_spills): Consider subreg reload pseudos too.
25619 * lra-constraints.c (simplify_operand_subreg): Use
25620 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
25621 (curr_insn_transform): Recognize and do optional reloads.
25622 (undo_optional_reloads): New.
25623 (lra_undo_inheritance): Call undo_optional_reloads.
25624
25625 2013-07-05 Thomas Quinot <quinot@adacore.com>
25626
25627 * tree-complex.c (expand_complex_operations_1): Fix typo.
25628
25629 2013-07-04 Tejas Belagod <tejas.belagod@arm.com>
25630
25631 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
25632 (tune_params): New member 'const vec_costs'.
25633 * config/aarch64/aarch64.c (generic_vector_cost): New.
25634 (generic_tunings): New member 'generic_vector_cost'.
25635 (aarch64_builtin_vectorization_cost): New.
25636 (aarch64_add_stmt_cost): New.
25637 (TARGET_VECTORIZE_ADD_STMT_COST): New.
25638 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
25639
25640 2013-07-03 Jakub Jelinek <jakub@redhat.com>
25641
25642 PR target/57777
25643 * config/i386/predicates.md (vsib_address_operand): Disallow
25644 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
25645
25646 2013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
25647
25648 PR middle-end/55030
25649 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
25650 expand_builtin_setjmp_receiver.
25651 (expand_label): Adjust, call expand_builtin_setjmp_receiver
25652 with NULL for the label parameter.
25653 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
25654 the frame-pointer. Adjust comments.
25655 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
25656 only if LABEL is non-NULL.
25657
25658 2013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
25659
25660 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
25661 (ARM_ABI_AAPCS64): Ditto.
25662 (arm_abi): Ditto.
25663 (ARM_DEFAULT_ABI): Ditto.
25664
25665 2013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
25666
25667 * config/aarch64/aarch64-builtins.c
25668 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
25669 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
25670 (st1): Likewise.
25671 * config/aarch64/aarch64-simd.md
25672 (aarch64_ld1<VALL:mode>): New.
25673 (aarch64_st1<VALL:mode>): Likewise.
25674 * config/aarch64/arm_neon.h
25675 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
25676
25677 2013-07-02 Sriraman Tallam <tmsriram@google.com>
25678
25679 * config/i386/i386.c (gate_insert_vzeroupper): Check if
25680 target ISA is AVX.
25681 (ix86_option_override_internal):Turn on all -mavx target flags by
25682 default as they are dependent on AVX anyway.
25683
25684 2013-07-02 Cary Coutant <ccoutant@google.com>
25685
25686 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
25687 deterministic hash.
25688 (loc_checksum_ordered): Likewise.
25689 (hash_loc_operands): Remove inline keyword.
25690
25691 2013-07-02 Jakub Jelinek <jakub@redhat.com>
25692
25693 PR tree-optimization/57741
25694 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
25695 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
25696 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
25697 Allow REAL_CST step_exprs if flag_associative_math.
25698 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
25699
25700 2013-07-02 Ian Bolton <ian.bolton@arm.com>
25701
25702 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
25703
25704 2013-07-02 Ian Bolton <ian.bolton@arm.com>
25705
25706 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
25707
25708 2013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25709
25710 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
25711 encoding.
25712 (iorsi3_insn): Likewise.
25713 (arm_xorsi3): Likewise.
25714
25715 2013-07-01 Sofiane Naci <sofiane.naci@arm.com>
25716
25717 * arm.md (attribute "wtype"): Delete. Move attribute values from here
25718 to ...
25719 (attribute "type"): ... here, and prefix with "wmmx_".
25720 (attribute "core_cycles"): Update for attribute changes.
25721 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
25722 (tbcstv4hi): Likewise.
25723 (tbcstv2si): Likewise.
25724 (iwmmxt_iordi3): Likewise.
25725 (iwmmxt_xordi3): Likewise.
25726 (iwmmxt_anddi3): Likewise.
25727 (iwmmxt_nanddi3): Likewise.
25728 (iwmmxt_arm_movdi): Likewise.
25729 (iwmmxt_movsi_insn): Likewise.
25730 (mov<mode>_internal): Likewise.
25731 (and<mode>3_iwmmxt): Likewise.
25732 (ior<mode>3_iwmmxt): Likewise.
25733 (xor<mode>3_iwmmxt): Likewise.
25734 (add<mode>3_iwmmxt): Likewise.
25735 (ssaddv8qi3): Likewise.
25736 (ssaddv4hi3): Likewise.
25737 (ssaddv2si3): Likewise.
25738 (usaddv8qi3): Likewise.
25739 (usaddv4hi3): Likewise.
25740 (usaddv2si3): Likewise.
25741 (sub<mode>3_iwmmxt): Likewise.
25742 (sssubv8qi3): Likewise.
25743 (sssubv4hi3): Likewise.
25744 (sssubv2si3): Likewise.
25745 (ussubv8qi3): Likewise.
25746 (ussubv4hi3): Likewise.
25747 (ussubv2si3): Likewise.
25748 (mulv4hi3_iwmmxt): Likewise.
25749 (smulv4hi3_highpart): Likewise.
25750 (umulv4hi3_highpart): Likewise.
25751 (iwmmxt_wmacs): Likewise.
25752 (iwmmxt_wmacsz): Likewise.
25753 (iwmmxt_wmacu): Likewise.
25754 (iwmmxt_wmacuz): Likewise.
25755 (iwmmxt_clrdi): Likewise.
25756 (iwmmxt_clrv8qi): Likewise.
25757 (iwmmxt_clr4hi): Likewise.
25758 (iwmmxt_clr2si): Likewise.
25759 (iwmmxt_uavgrndv8qi3): Likewise.
25760 (iwmmxt_uavgrndv4hi3): Likewise.
25761 (iwmmxt_uavgv8qi3): Likewise.
25762 (iwmmxt_uavgv4hi3): Likewise.
25763 (iwmmxt_tinsrb): Likewise.
25764 (iwmmxt_tinsrh): Likewise.
25765 (iwmmxt_tinsrw): Likewise.
25766 (iwmmxt_textrmub): Likewise.
25767 (iwmmxt_textrmsb): Likewise.
25768 (iwmmxt_textrmuh): Likewise.
25769 (iwmmxt_textrmsh): Likewise.
25770 (iwmmxt_textrmw): Likewise.
25771 (iwmxxt_wshufh): Likewise.
25772 (eqv8qi3): Likewise.
25773 (eqv4hi3): Likewise.
25774 (eqv2si3): Likewise.
25775 (gtuv8qi3): Likewise.
25776 (gtuv4hi3): Likewise.
25777 (gtuv2si3): Likewise.
25778 (gtv8qi3): Likewise.
25779 (gtv4hi3): Likewise.
25780 (gtv2si3): Likewise.
25781 (smax<mode>3_iwmmxt): Likewise.
25782 (umax<mode>3_iwmmxt): Likewise.
25783 (smin<mode>3_iwmmxt): Likewise.
25784 (umin<mode>3_iwmmxt): Likewise.
25785 (iwmmxt_wpackhss): Likewise.
25786 (iwmmxt_wpackwss): Likewise.
25787 (iwmmxt_wpackdss): Likewise.
25788 (iwmmxt_wpackhus): Likewise.
25789 (iwmmxt_wpackwus): Likewise.
25790 (iwmmxt_wpackdus): Likewise.
25791 (iwmmxt_wunpckihb): Likewise.
25792 (iwmmxt_wunpckihh): Likewise.
25793 (iwmmxt_wunpckihw): Likewise.
25794 (iwmmxt_wunpckilb): Likewise.
25795 (iwmmxt_wunpckilh): Likewise.
25796 (iwmmxt_wunpckilw): Likewise.
25797 (iwmmxt_wunpckehub): Likewise.
25798 (iwmmxt_wunpckehuh): Likewise.
25799 (iwmmxt_wunpckehuw): Likewise.
25800 (iwmmxt_wunpckehsb): Likewise.
25801 (iwmmxt_wunpckehsh): Likewise.
25802 (iwmmxt_wunpckehsw): Likewise.
25803 (iwmmxt_wunpckelub): Likewise.
25804 (iwmmxt_wunpckeluh): Likewise.
25805 (iwmmxt_wunpckeluw): Likewise.
25806 (iwmmxt_wunpckelsb): Likewise.
25807 (iwmmxt_wunpckelsh): Likewise.
25808 (iwmmxt_wunpckelsw): Likewise.
25809 (ror<mode>3): Likewise.
25810 (ashr<mode>3_iwmmxt): Likewise.
25811 (lshr<mode>3_iwmmxt): Likewise.
25812 (ashl<mode>3_iwmmxt): Likewise.
25813 (ror<mode>3_di): Likewise.
25814 (ashr<mode>3_di): Likewise.
25815 (lshr<mode>3_di): Likewise.
25816 (ashl<mode>3_di): Likewise.
25817 (iwmmxt_wmadds): Likewise.
25818 (iwmmxt_wmaddu): Likewise.
25819 (iwmmxt_tmia): Likewise.
25820 (iwmmxt_tmiaph): Likewise.
25821 (iwmmxt_tmiabb): Likewise.
25822 (iwmmxt_tmiatb): Likewise.
25823 (iwmmxt_tmiabt): Likewise.
25824 (iwmmxt_tmiatt): Likewise.
25825 (iwmmxt_tmovmskb): Likewise.
25826 (iwmmxt_tmovmskh): Likewise.
25827 (iwmmxt_tmovmskw): Likewise.
25828 (iwmmxt_waccb): Likewise.
25829 (iwmmxt_wacch): Likewise.
25830 (iwmmxt_waccw): Likewise.
25831 (iwmmxt_waligni): Likewise.
25832 (iwmmxt_walignr): Likewise.
25833 (iwmmxt_walignr0): Likewise.
25834 (iwmmxt_walignr1): Likewise.
25835 (iwmmxt_walignr2): Likewise.
25836 (iwmmxt_walignr3): Likewise.
25837 (iwmmxt_wsadb): Likewise.
25838 (iwmmxt_wsadh): Likewise.
25839 (iwmmxt_wsadbz): Likewise.
25840 (iwmmxt_wsadhz): Likewise.
25841 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
25842 (iwmmxt_wabsdiffb): Likewise.
25843 (iwmmxt_wabsdiffh): Likewise.
25844 (iwmmxt_wabsdiffw): Likewise.
25845 (iwmmxt_waddsubhx): Likewise
25846 (iwmmxt_wsubaddhx): Likewise.
25847 (addc<mode>3): Likewise.
25848 (iwmmxt_avg4): Likewise.
25849 (iwmmxt_avg4r): Likewise.
25850 (iwmmxt_wmaddsx): Likewise.
25851 (iwmmxt_wmaddux): Likewise.
25852 (iwmmxt_wmaddsn): Likewise.
25853 (iwmmxt_wmaddun): Likewise.
25854 (iwmmxt_wmulwsm): Likewise.
25855 (iwmmxt_wmulwum): Likewise.
25856 (iwmmxt_wmulsmr): Likewise.
25857 (iwmmxt_wmulumr): Likewise.
25858 (iwmmxt_wmulwsmr): Likewise.
25859 (iwmmxt_wmulwumr): Likewise.
25860 (iwmmxt_wmulwl): Likewise.
25861 (iwmmxt_wqmulm): Likewise.
25862 (iwmmxt_wqmulwm): Likewise.
25863 (iwmmxt_wqmulmr): Likewise.
25864 (iwmmxt_wqmulwmr): Likewise.
25865 (iwmmxt_waddbhusm): Likewise.
25866 (iwmmxt_waddbhusl): Likewise.
25867 (iwmmxt_wqmiabb): Likewise.
25868 (iwmmxt_wqmiabt): Likewise.
25869 (iwmmxt_wqmiatb): Likewise.
25870 (iwmmxt_wqmiatt): Likewise.
25871 (iwmmxt_wqmiabbn): Likewise.
25872 (iwmmxt_wqmiabtn): Likewise.
25873 (iwmmxt_wqmiatbn): Likewise.
25874 (iwmmxt_wqmiattn): Likewise.
25875 (iwmmxt_wmiabb): Likewise.
25876 (iwmmxt_wmiabt): Likewise.
25877 (iwmmxt_wmiatb): Likewise.
25878 (iwmmxt_wmiatt): Likewise.
25879 (iwmmxt_wmiabbn): Likewise.
25880 (iwmmxt_wmiabtn): Likewise.
25881 (iwmmxt_wmiatbn): Likewise.
25882 (iwmmxt_wmiattn): Likewise.
25883 (iwmmxt_wmiawbb): Likewise.
25884 (iwmmxt_wmiawbt): Likewise.
25885 (iwmmxt_wmiawtb): Likewise.
25886 (iwmmxt_wmiawtt): Likewise.
25887 (iwmmxt_wmiawbbn): Likewise.
25888 (iwmmxt_wmiawbtn): Likewise.
25889 (iwmmxt_wmiawtbn): Likewise.
25890 (iwmmxt_wmiawttn): Likewise.
25891 (iwmmxt_wmerge): Likewise.
25892 (iwmmxt_tandc<mode>3): Likewise.
25893 (iwmmxt_torc<mode>3): Likewise.
25894 (iwmmxt_torvsc<mode>3): Likewise.
25895 (iwmmxt_textrc<mode>3): Likewise.
25896 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
25897 (wmmxt_pack): Likewise.
25898 (wmmxt_mult_c1): Likewise.
25899 (wmmxt_mult_c2): Likewise.
25900 (wmmxt_alu_c1): Likewise.
25901 (wmmxt_alu_c2): Likewise.
25902 (wmmxt_alu_c3): Likewise.
25903 (wmmxt_transfer_c1): Likewise.
25904 (wmmxt_transfer_c2): Likewise.
25905 (wmmxt_transfer_c3): Likewise.
25906 (marvell_f_iwmmxt_wstr): Likewise.
25907 (marvell_f_iwmmxt_wldr): Likewise.
25908
25909 2013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
25910
25911 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
25912
25913 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
25914
25915 Revert:
25916 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
25917 * lra-constraints.c (need_for_split_p): Check call used hard regs
25918 living through calls.
25919
25920 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
25921 call used regs for call insn.
25922
25923 2013-06-28 Jakub Jelinek <jakub@redhat.com>
25924
25925 PR target/57736
25926 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
25927 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
25928
25929 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
25930
25931 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
25932
25933 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
25934
25935 * lra-constraints.c (need_for_split_p): Check call used hard regs
25936 living through calls.
25937
25938 2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
25939
25940 PR target/57744
25941 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
25942 to tie with any other modes. Eliminate Altivec vector mode tests,
25943 since these are a subset of ALTIVEC or VSX vector modes. Simplify
25944 code, to return 0 if testing MODE2 for a condition, if we've
25945 already tested MODE1 for the same condition.
25946
25947 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
25948
25949 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
25950 layout.
25951
25952 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
25953
25954 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
25955 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
25956
25957 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
25958
25959 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
25960 Define.
25961 (aarch64_symbolic_constant_p): Remove.
25962 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
25963 static. Fix line length and white space.
25964 (aarch64_symbolic_constant_p): Remove.
25965 * config/aarch64/predicates.md (aarch64_valid_symref):
25966 Use aarch64_classify_symbol_expression.
25967
25968 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25969
25970 * config/arm/constraints.md (Ts): New constraint.
25971 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
25972 16-bit encodings.
25973 (compare_scc): Use "Ts" constraint for operand 0.
25974 (ior_scc_scc): Likewise.
25975 (and_scc_scc): Likewise.
25976 (and_scc_scc_nodom): Likewise.
25977 (ior_scc_scc_cmp): Likewise for operand 7.
25978 (and_scc_scc_cmp): Likewise.
25979 * config/arm/thumb2.md (thumb2_movsi_insn):
25980 Add alternatives for 16-bit encodings.
25981 (thumb2_movhi_insn): Likewise.
25982 (thumb2_movsicc_insn): Likewise.
25983 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
25984 (thumb2_negscc): Use "Ts" constraint.
25985 Move mvn instruction outside cond_exec block.
25986 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
25987 for 16-bit encodings.
25988
25989 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25990
25991 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
25992 encoding.
25993 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
25994 (mulsi3subsi): Likewise.
25995 (mulsidi3adddi): Likewise.
25996 (mulsidi3_v6): Likewise.
25997 (umulsidi3_v6): Likewise.
25998 (umulsidi3adddi_v6): Likewise.
25999 (smulsi3_highpart_v6): Likewise.
26000 (umulsi3_highpart_v6): Likewise.
26001 (mulhisi3tb): Likewise.
26002 (mulhisi3bt): Likewise.
26003 (mulhisi3tt): Likewise.
26004 (maddhisi4): Likewise.
26005 (maddhisi4tb): Likewise.
26006 (maddhisi4tt): Likewise.
26007 (maddhidi4): Likewise.
26008 (maddhidi4tb): Likewise.
26009 (maddhidi4tt): Likewise.
26010 (zeroextractsi_compare0_scratch): Likewise.
26011 (insv_zero): Likewise.
26012 (insv_t2): Likewise.
26013 (anddi_notzesidi_di): Likewise.
26014 (anddi_notsesidi_di): Likewise.
26015 (andsi_notsi_si): Likewise.
26016 (iordi_zesidi_di): Likewise.
26017 (xordi_zesidi_di): Likewise.
26018 (andsi_iorsi3_notsi): Likewise.
26019 (smax_0): Likewise.
26020 (smax_m1): Likewise.
26021 (smin_0): Likewise.
26022 (not_shiftsi): Likewise.
26023 (unaligned_loadsi): Likewise.
26024 (unaligned_loadhis): Likewise.
26025 (unaligned_loadhiu): Likewise.
26026 (unaligned_storesi): Likewise.
26027 (unaligned_storehi): Likewise.
26028 (extv_reg): Likewise.
26029 (extzv_t2): Likewise.
26030 (divsi3): Likewise.
26031 (udivsi3): Likewise.
26032 (arm_zero_extendhisi2addsi): Likewise.
26033 (arm_zero_extendqisi2addsi): Likewise.
26034 (compareqi_eq0): Likewise.
26035 (arm_extendhisi2_v6): Likewise.
26036 (arm_extendqisi2addsi): Likewise.
26037 (arm_movt): Likewise.
26038 (thumb2_ldrd): Likewise.
26039 (thumb2_ldrd_base): Likewise.
26040 (thumb2_ldrd_base_neg): Likewise.
26041 (thumb2_strd): Likewise.
26042 (thumb2_strd_base): Likewise.
26043 (thumb2_strd_base_neg): Likewise.
26044 (arm_negsi2): Add alternative for 16-bit encoding.
26045 (arm_one_cmplsi2): Likewise.
26046
26047 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26048
26049 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
26050 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
26051 (movdfcc): Likewise.
26052 * config/arm/vfp.md (*thumb2_movsf_vfp):
26053 Disable predication for arm_restrict_it.
26054 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
26055 (*thumb2_movdfcc_vfp): Likewise.
26056 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
26057 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
26058 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
26059 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
26060 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
26061 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
26062 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
26063 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
26064 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
26065 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
26066 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
26067 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
26068 Disable predication for arm_restrict_it.
26069
26070 2013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
26071
26072 * config/i386/bmiintrin.h (_bextr_u32): New.
26073 (_bextr_u64): Ditto.
26074
26075 2013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
26076
26077 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
26078 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
26079 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
26080 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
26081 * config/mips/n32-elf.h: ...this new file.
26082
26083 2013-06-27 Marc Glisse <marc.glisse@inria.fr>
26084
26085 PR target/57224
26086 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
26087 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
26088
26089 2013-06-27 Catherine Moore <clm@codesourcery.com>
26090
26091 * config/mips/mips-tables.opt: Regenerate.
26092 * config/mips/mips-cpus.def: Add m14ke and m14kec.
26093 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
26094 * doc/invoke.texi: Add -m14kc.
26095
26096 2013-06-27 Jakub Jelinek <jakub@redhat.com>
26097
26098 PR target/57623
26099 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
26100 constraints of operand 1 and 2.
26101
26102 PR target/57623
26103 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
26104 to match RTL canonicalization. Swap predicates and
26105 constraints of operand 1 and 2.
26106
26107 2013-06-27 Vladimir Makarov <vmakarov@redhat.com>
26108
26109 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
26110 Process OP_INOUT regs for splitting too.
26111
26112 2013-06-27 Jakub Jelinek <jakub@redhat.com>
26113
26114 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
26115 decl before the loop, initialize to NULL.
26116 (vectorizable_load): Initialize ptr_incr to NULL.
26117
26118 2013-06-27 Martin Jambor <mjambor@suse.cz>
26119
26120 PR lto/57208
26121 * ipa-ref.h (ipa_maybe_record_reference): Declare.
26122 * ipa-ref.c (ipa_maybe_record_reference): New function.
26123 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
26124 * ipa-cp.c (create_specialized_node): Record potential references from
26125 aggvals.
26126 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
26127
26128 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
26129
26130 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
26131 parameter 'mode' of type 'enum machine_mode mode'; change to pass
26132 'mode' to force_reg.
26133 (aarch64_add_offset): Update calls to aarch64_force_temporary.
26134 (aarch64_expand_mov_immediate): Likewise.
26135
26136 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
26137
26138 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
26139 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
26140
26141 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26142
26143 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
26144 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
26145 (struct machine_function): Add tbegin_p.
26146 (s390_canonicalize_comparison): Fold CC mode compares to
26147 conditional jump if possible.
26148 (s390_emit_jump): Return the emitted jump.
26149 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
26150 Handle CCRAWmode compares.
26151 (s390_option_override): Default to -mhtm if available.
26152 (s390_reg_clobbered_rtx): Handle floating point regs as well.
26153 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
26154 FPRs instead of df_regs_ever_live_p.
26155 (s390_optimize_nonescaping_tx): New function.
26156 (s390_init_frame_layout): Extend clobbered_regs array to cover
26157 FPRs as well.
26158 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
26159 (s390_expand_tbegin): New function.
26160 (enum s390_builtin): New enum definition.
26161 (code_for_builtin): New array definition.
26162 (s390_init_builtins): New function.
26163 (s390_expand_builtin): New function.
26164 (TARGET_INIT_BUILTINS): Define.
26165 (TARGET_EXPAND_BUILTIN): Define.
26166 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
26167 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
26168 (s390_alc_comparison): Likewise.
26169 * config/s390/s390-modes.def: Add CCRAWmode.
26170 * config/s390/s390.h (processor_flags): Add PF_TX.
26171 (TARGET_CPU_HTM): Define macro.
26172 (TARGET_HTM): Define macro.
26173 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
26174 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
26175 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
26176 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
26177 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
26178 (TBEGIN_MASK, TBEGINC_MASK): New constants.
26179 ("*cc_to_int"): Move up.
26180 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
26181 constants other than 0.
26182 ("*ccraw_to_int"): New insn and splitter definition.
26183 ("tbegin", "tbegin_nofloat", "tbegin_retry")
26184 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
26185 ("tx_assist"): New expander.
26186 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
26187 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
26188 * config/s390/s390.opt: Add -mhtm option.
26189 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
26190 * config/s390/htmxlintrin.h: New file.
26191 * config/s390/htmintrin.h: New file.
26192 * config/s390/s390intrin.h: New file.
26193 * doc/extend.texi: Document htm builtins.
26194 * config.gcc: Add the new header files to extra_headers.
26195
26196 2013-06-26 Thomas Schwinge <thomas@codesourcery.com>
26197
26198 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
26199 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
26200
26201 2013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
26202 Pat Haugen <pthaugen@us.ibm.com>
26203 Peter Bergner <bergner@vnet.ibm.com>
26204
26205 * config/rs6000/power8.md: New.
26206 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
26207 setting for power8 entry.
26208 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
26209 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
26210 test for Power4/Power5 only.
26211 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
26212 support.
26213 (force_new_group): Adjust comment.
26214 * config/rs6000/rs6000.md: Include power8.md.
26215
26216 2013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
26217
26218 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
26219 * config/arm/arm-protos.h (arm_max_conditional_execute): New
26220 declaration.
26221 (tune_params): Update comment.
26222 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
26223 (arm_max_conditional_execute): New function.
26224 (thumb2_final_prescan_insn): Use max_insn_skipped and
26225 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
26226
26227 2013-06-25 Jakub Jelinek <jakub@redhat.com>
26228
26229 PR tree-optimization/57705
26230 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
26231 SSA_NAME step, provided that it is not defined inside the loop.
26232 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
26233 (get_initial_def_for_induction): Handle SSA_NAME IV step.
26234
26235 2013-06-25 Martin Jambor <mjambor@suse.cz>
26236
26237 PR middle-end/57670
26238 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
26239 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
26240 calls in the dump.
26241 (ipa_note_param_call): Initialize member_ptr flag.
26242 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
26243 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
26244 (ipa_write_indirect_edge_info): Stream member_ptr flag.
26245 (ipa_read_indirect_edge_info): Likewise.
26246
26247 2013-06-25 Richard Biener <rguenther@suse.de>
26248
26249 PR middle-end/56977
26250 * passes.c (init_optimization_passes): Move pass_fold_builtins
26251 and pass_dce earlier with -Og.
26252
26253 2013-06-25 Eric Botcazou <ebotcazou@adacore.com>
26254
26255 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
26256 <BIT_FIELD_REF>: Remove trailing TAB.
26257 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
26258 remove blank line.
26259
26260 2013-06-24 Martin Jambor <mjambor@suse.cz>
26261
26262 PR tree-optimization/57358
26263 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
26264 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
26265 (ipa_analyze_params_uses): Generate pessimistic info when true.
26266
26267 2013-06-24 Martin Jambor <mjambor@suse.cz>
26268
26269 PR tree-optimization/57539
26270 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
26271 global.inlined_to of the new node to it. All callers changed.
26272 * ipa-inline-transform.c (clone_inlined_nodes): New variable
26273 inlining_into, pass it to cgraph_clone_node.
26274 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
26275 ipa_free_edge_args_substructures.
26276 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
26277 rdesc linked list. Do not assert rdesc edges have inlined caller.
26278 Assert we have found an rdesc in the rdesc list.
26279
26280 2013-06-24 Richard Biener <rguenther@suse.de>
26281
26282 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
26283 (pointer_set_lookup): Declare.
26284 (class pointer_map): New template class implementing a
26285 generic pointer to T map.
26286 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
26287 pointer_map<T>::contains, pointer_map<T>::insert,
26288 pointer_map<T>::traverse): New functions.
26289 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
26290 (pointer_set_lookup): New function.
26291 (pointer_set_contains): Use pointer_set_lookup.
26292 (pointer_set_insert): Likewise.
26293 (insert_aux): Remove.
26294 (struct pointer_map_t): Embed a pointer_set_t.
26295 (pointer_map_create): Adjust.
26296 (pointer_map_destroy): Likewise.
26297 (pointer_map_contains): Likewise.
26298 (pointer_map_insert): Likewise.
26299 (pointer_map_traverse): Likewise.
26300 * tree-streamer.h (struct streamer_tree_cache_d): Use a
26301 pointer_map<unsigned> instead of a pointer_map_t.
26302 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
26303 (streamer_tree_cache_lookup): Likewise.
26304 (streamer_tree_cache_create): Likewise.
26305 (streamer_tree_cache_delete): Likewise.
26306 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
26307 pointer_map<unsigned> instead of a pointer_map_t.
26308 (lto_init_tree_ref_encoder): Adjust.
26309 (lto_destroy_tree_ref_encoder): Likewise.
26310 * lto-section-out.c (lto_output_decl_index): Likewise.
26311 (lto_record_function_out_decl_state): Likewise.
26312 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
26313
26314 2013-06-24 Richard Biener <rguenther@suse.de>
26315
26316 PR tree-optimization/57488
26317 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
26318
26319 2013-06-24 Alan Modra <amodra@gmail.com>
26320
26321 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
26322 (gen_easy_altivec_constant): Likewise.
26323 * config/rs6000/predicates.md (easy_vector_constant_add_self,
26324 easy_vector_constant_msb): Likewise.
26325
26326 2013-06-23 Jakub Jelinek <jakub@redhat.com>
26327
26328 PR target/57688
26329 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
26330 add missing return true.
26331
26332 2013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
26333
26334 PR target/52483
26335 * config/sh/predicates.md (general_extend_operand): Invoke
26336 general_movsrc_operand for memory operands.
26337 (general_movsrc_operand): Allow reg+reg addressing, do not use
26338 general_operand for memory operands.
26339
26340 2013-06-23 Sriraman Tallam <tmsriram@google.com>
26341
26342 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
26343 when current target options does not apply.
26344 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
26345 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
26346 * config/i386/bmiintrin.h: Pass appropriate target
26347 attributes to header.
26348 * config/i386/mmintrin.h: Ditto.
26349 * config/i386/nmmintrin.h: Ditto.
26350 * config/i386/avx2intrin.h: Ditto.
26351 * config/i386/fxsrintrin.h: Ditto.
26352 * config/i386/tbmintrin.h: Ditto.
26353 * config/i386/xsaveintrin.h: Ditto.
26354 * config/i386/f16cintrin.h: Ditto.
26355 * config/i386/xtestintrin.h: Ditto.
26356 * config/i386/xsaveoptintrin.h: Ditto.
26357 * config/i386/bmi2intrin.h: Ditto.
26358 * config/i386/lzcntintrin.h: Ditto.
26359 * config/i386/smmintrin.h: Ditto.
26360 * config/i386/wmmintrin.h: Ditto.
26361 * config/i386/x86intrin.h: Remove all header include guards.
26362 * config/i386/prfchwintrin.h: Ditto.
26363 * config/i386/pmmintrin.h: Ditto.
26364 * config/i386/tmmintrin.h: Ditto.
26365 * config/i386/xmmintrin.h: Ditto.
26366 * config/i386/popcntintrin.h: Ditto.
26367 * config/i386/rdseedintrin.h: Ditto.
26368 * config/i386/ammintrin.h: Ditto.
26369 * config/i386/emmintrin.h: Ditto.
26370 * config/i386/immintrin.h: Remove all header include guards.
26371 * config/i386/fma4intrin.h: Ditto.
26372 * config/i386/lwpintrin.h: Ditto.
26373 * config/i386/xopintrin.h: Ditto.
26374 * config/i386/ia32intrin.h: Ditto.
26375 * config/i386/avxintrin.h: Ditto.
26376 * config/i386/rtmintrin.h: Ditto.
26377 * config/i386/fmaintrin.h: Ditto.
26378 * config/i386/mm3dnow.h: Ditto.
26379
26380 2013-06-22 Sriraman Tallam <tmsriram@google.com>
26381
26382 * common/config/i386/i386-common.c: Handle LZCNT.
26383
26384 2013-06-22 Andi Kleen <ak@linux.intel.com>
26385
26386 * doc/extend.texi: Use __atomic_store_n instead of
26387 __atomic_store in HLE example.
26388
26389 2013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
26390
26391 * config/sh/sh.c: Remove <cstdlib> workaround.
26392
26393 2013-06-21 Andi Kleen <ak@linux.intel.com>
26394
26395 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
26396
26397 2013-06-21 Andi Kleen <ak@linux.intel.com>
26398
26399 * doc/extend.texi: Document that __atomic_clear and
26400 __atomic_test_and_set should only be used with bool.
26401
26402 2013-06-20 Jan Hubicka <jh@suse.cz>
26403
26404 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
26405 types_same_for_odr.
26406 * tree.c (decls_same_for_odr): New function.
26407 (same_for_edr): New function.
26408 (types_same_for_odr): New function.
26409 (get_binfo_at_offset): Use it.
26410 * tree.h (types_same_for_odr): Declare.
26411
26412 2013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
26413 Jason Merrill <jason@redhat.com>
26414
26415 * system.h: Include <cstdlib> as well as <stdlib.h>.
26416
26417 2013-06-20 Uros Bizjak <ubizjak@gmail.com>
26418
26419 PR target/57655
26420 * config/i386/i386.c (construct_container): Report error if
26421 long double is used with disabled x87 float returns.
26422
26423 2013-06-20 Jan Hubicka <jh@suse.cz>
26424
26425 * lto-cgraph.c (input_symtab): Do not set cgraph state.
26426
26427 2013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
26428
26429 PR rtl-optimization/57425
26430 PR rtl-optimization/57569
26431 * alias.c (write_dependence_p): Remove parameters mem_mode and
26432 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
26433 Changed all callers.
26434 (canon_anti_dependence): Get comments and semantics in sync.
26435 Add parameter mem_canonicalized. Changed all callers.
26436 * rtl.h (canon_anti_dependence): Update prototype.
26437
26438 2013-06-20 Richard Biener <rguenther@suse.de>
26439
26440 * data-streamer-in.c (streamer_read_uhwi): Optimize single
26441 byte case, inline streamer_read_uchar and defer section
26442 overrun check.
26443
26444 2013-06-20 Richard Biener <rguenther@suse.de>
26445
26446 PR tree-optimization/57584
26447 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
26448 SSA names into the expanded expression that take part in
26449 abnormal coalescing.
26450
26451 2013-06-19 Sharad Singhai <singhai@google.com>
26452
26453 * gcov.c (print_usage): Handle new option.
26454 (process_args): Ditto.
26455 (get_gcov_intermediate_filename): New function.
26456 (output_intermediate_file): New function.
26457 (output_gcov_file): New function
26458 (generate_results): Handle new option.
26459 (release_function): Relase demangled name.
26460 (read_graph_file): Handle demangled name.
26461 (output_lines): Ditto.
26462 * doc/gcov.texi: Document gcov intermediate format.
26463
26464 2013-06-19 Vladimir Makarov <vmakarov@redhat.com>
26465
26466 PR bootstrap/57604
26467 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
26468 (lra_emit_add): Use the functions. Add comment about Y as an
26469 address segment.
26470
26471 2013-06-19 David Edelsohn <dje.gcc@gmail.com>
26472
26473 PR driver/57652
26474 * collect2.c (collect_atexit): New.
26475 (collect_exit): Delete.
26476 (main): Register collect_atexit with atexit.
26477 (collect_wait): Change collect_exit to exit.
26478 (do_wait): Same.
26479 * collect2.h (collect_exit): Delete.
26480 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
26481
26482 2013-06-19 Wei Mi <wmi@google.com>
26483
26484 PR rtl-optimization/57518
26485 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
26486 if regno is used in paradoxical subreg.
26487 (update_equiv_regs): Check pdx_subregs[regno] before
26488 set a reg to be equivalent with a mem.
26489
26490 2013-06-19 Matthias Klose <doko@ubuntu.com>
26491
26492 PR driver/57651
26493 * file-find.h (find_a_file): Add a mode parameter.
26494 * file-find.c (find_a_file): Likewise.
26495 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
26496 with X_OK for the executables.
26497 * collect2.c (main): Call find_a_file with X_OK.
26498
26499 2013-06-19 Steve Ellcey <sellcey@mips.com>
26500
26501 PR target/56942
26502 * config/mips/mips.md (casesi_internal_mips16_<mode>):
26503 Use NEXT_INSN instead of next_real_insn.
26504
26505 2013-06-19 Jan Hubicka <jh@suse.cz>
26506
26507 * cgraph.h (const_value_known_p): Replace by ...
26508 (ctor_for_folding): .. this one.
26509 * cgraphunit.c (process_function_and_variable_attributes): Use it.
26510 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
26511 * expr.c (expand_expr_real_1): Likewise.
26512 (string_constant): Likewise.
26513 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
26514 * ipa.c (process_references): Likewise.
26515 (symtab_remove_unreachable_nodes): Likewise.
26516 * ipa-inline-analysis.c (param_change_prob): Likewise.
26517 * gimple-fold.c (canonicalize_constructor_val): Likewise.
26518 (get_base_constructor): Likwise.
26519 * varpool.c (varpool_remove_node): Likewise.
26520 (varpool_remove_initializer): LIkewise.
26521 (dump_varpool_node): LIkwise.
26522 (const_value_known_p): Rewrite to ...
26523 (ctor_for_folding): ... this one.
26524
26525 2013-06-19 Jakub Jelinek <jakub@redhat.com>
26526
26527 PR driver/57651
26528 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
26529 PERSONALITY in $PATH derived prefixes.
26530
26531 2013-06-19 Jeff Law <law@redhat.com>
26532
26533 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
26534 in comment.
26535
26536 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
26537 (simplify_bitwise_binary): Use it to simpify certain binary ops on
26538 booleans.
26539
26540 2013-06-19 Sofiane Naci <sofiane.naci@arm.com>
26541
26542 * config/arm/vfp.md: Move VFP instruction classification documentation
26543 to ...
26544 * config/arm/arm.md: ... here. Update instruction classification
26545 documentation.
26546
26547 2013-06-19 Richard Earnshaw <rearnsha@arm.com>
26548
26549 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
26550 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
26551 pattern. Use more efficient sequences on ARMv5 and Thumb2.
26552
26553 2013-06-19 Steven Bosscher <steven@gcc.gnu.org>
26554
26555 PR target/57609
26556 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
26557 with NEXT_INSN. Use tablejump_p to check for jump table data
26558 insns.
26559
26560 2013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
26561
26562 PR c++/56544
26563 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
26564 that now in C++ the value is correct per the C++ standards.
26565
26566 2013-06-19 Richard Biener <rguenther@suse.de>
26567
26568 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
26569 for global context.
26570
26571 2013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26572
26573 Revert:
26574 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26575
26576 PR target/57609
26577 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
26578 with next_active_insn.
26579
26580 2013-06-18 Sriraman Tallam <tmsriram@google.com>
26581
26582 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
26583 functions are inlined during failures to flag an error.
26584 * tree-inline.c (expand_call_inline): Allow the error to be flagged
26585 in early inline pass.
26586
26587 2013-06-18 H.J. Lu <hongjiu.lu@intel.com>
26588
26589 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
26590 in comments.
26591
26592 2013-06-18 Julian Brown <julian@codesourcery.com>
26593
26594 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
26595 Permit virtual register pre-reload if !strict.
26596 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
26597 change.
26598 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
26599 prototype.
26600 * config/arm/neon.md (movmisalign<mode>): Use
26601 neon_perm_struct_or_reg_operand instead of
26602 neon_struct_or_register_operand.
26603 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
26604 neon_permissive_struct_operand instead of neon_struct_operand.
26605 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
26606 neon_vector_mem_operand.
26607 * config/arm/predicates.md (neon_struct_operand): Adjust call to
26608 neon_vector_mem_operand.
26609 (neon_permissive_struct_operand): New.
26610 (neon_struct_or_register_operand): Rename to...
26611 (neon_perm_struct_or_reg_operand): This. Adjust call to
26612 neon_vector_mem_operand.
26613
26614 2013-06-18 Richard Biener <rguenther@suse.de>
26615
26616 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
26617 * lto-streamer.h: Include pointer-set.h.
26618 (struct lto_decl_slot): Remove.
26619 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
26620 Remove next_index entry.
26621 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
26622 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
26623 (lto_init_tree_ref_encoder): Adjust.
26624 (lto_destroy_tree_ref_encoder): Likewise.
26625 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
26626 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
26627 (lto_output_decl_index): Adjust.
26628 (lto_new_out_decl_state): Likewise.
26629 (lto_record_function_out_decl_state): Likewise.
26630 * lto-streamer-out.c (copy_function): Likewise.
26631
26632 2013-06-18 Richard Biener <rguenther@suse.de>
26633
26634 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
26635 * cgraphunit.c: Include cfgloop.h.
26636 (init_lowered_empty_function): Initialize the loop tree.
26637 (assemble_thunk): Insert new BBs into loops.
26638
26639 2013-06-18 Richard Biener <rguenther@suse.de>
26640
26641 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
26642 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
26643 the map from cache entry to cache index optional.
26644 (streamer_tree_cache_replace_tree): Adjust accordingly.
26645 (streamer_tree_cache_append): Likewise.
26646 (streamer_tree_cache_delete): Likewise.
26647 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
26648 streamer cache map from cache entry to cache index.
26649 * lto-streamer-out.c (create_output_block): Adjust.
26650
26651 2013-06-18 Sofiane Naci <sofiane.naci@arm.com>
26652
26653 * config/arm/arm.md (attribute "insn"): Move multiplication and
26654 division attributes to...
26655 (attribute "type"): ... here. Remove mult.
26656 (attribute "mul32"): New attribute.
26657 (attribute "mul64"): Add umaal.
26658 (*arm_mulsi3): Update attributes.
26659 (*arm_mulsi3_v6): Likewise.
26660 (*thumb_mulsi3): Likewise.
26661 (*thumb_mulsi3_v6): Likewise.
26662 (*mulsi3_compare0): Likewise.
26663 (*mulsi3_compare0_v6): Likewise.
26664 (*mulsi_compare0_scratch): Likewise.
26665 (*mulsi_compare0_scratch_v6): Likewise.
26666 (*mulsi3addsi): Likewise.
26667 (*mulsi3addsi_v6): Likewise.
26668 (*mulsi3addsi_compare0): Likewise.
26669 (*mulsi3addsi_compare0_v6): Likewise.
26670 (*mulsi3addsi_compare0_scratch): Likewise.
26671 (*mulsi3addsi_compare0_scratch_v6): Likewise.
26672 (*mulsi3subsi): Likewise.
26673 (*mulsidi3adddi): Likewise.
26674 (*mulsi3addsi_v6): Likewise.
26675 (*mulsidi3adddi_v6): Likewise.
26676 (*mulsidi3_nov6): Likewise.
26677 (*mulsidi3_v6): Likewise.
26678 (*umulsidi3_nov6): Likewise.
26679 (*umulsidi3_v6): Likewise.
26680 (*umulsidi3adddi): Likewise.
26681 (*umulsidi3adddi_v6): Likewise.
26682 (*smulsi3_highpart_nov6): Likewise.
26683 (*smulsi3_highpart_v6): Likewise.
26684 (*umulsi3_highpart_nov6): Likewise.
26685 (*umulsi3_highpart_v6): Likewise.
26686 (mulhisi3): Likewise.
26687 (*mulhisi3tb): Likewise.
26688 (*mulhisi3bt): Likewise.
26689 (*mulhisi3tt): Likewise.
26690 (maddhisi4): Likewise.
26691 (*maddhisi4tb): Likewise.
26692 (*maddhisi4tt): Likewise.
26693 (maddhidi4): Likewise.
26694 (*maddhidi4tb): Likewise.
26695 (*maddhidi4tt): Likewise.
26696 (divsi3): Likewise.
26697 (udivsi3): Likewise.
26698 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
26699 (thumb2_mulsi_short_compare0): Likewise.
26700 (thumb2_mulsi_short_compare0_scratch): Likewise.
26701 * config/arm/arm1020e.md (1020mult1): Update attribute change.
26702 (1020mult2): Likewise.
26703 (1020mult3): Likewise.
26704 (1020mult4): Likewise.
26705 (1020mult5): Likewise.
26706 (1020mult6): Likewise.
26707 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
26708 change.
26709 (cortex_a15_mult64): Likewise.
26710 (cortex_a15_sdiv): Likewise.
26711 (cortex_a15_udiv): Likewise.
26712 * config/arm/arm1026ejs.md (mult1): Update attribute change.
26713 (mult2): Likewise.
26714 (mult3): Likewise.
26715 (mult4): Likewise.
26716 (mult5): Likewise.
26717 (mult6): Likewise.
26718 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
26719 (pj4_ir_div): Likewise.
26720 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
26721 (11_mult2): Likewise.
26722 (11_mult3): Likewise.
26723 (11_mult4): Likewise.
26724 (11_mult5): Likewise.
26725 (11_mult6): Likewise.
26726 (11_mult7): Likewise.
26727 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
26728 (cortex_a8_mla): Likewise.
26729 (cortex_a8_mull): Likewise.
26730 (cortex_a8_smulwy): Likewise.
26731 (cortex_a8_smlald): Likewise.
26732 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
26733 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
26734 (cortex_r4_mul_3): Likewise.
26735 (cortex_r4_mla_4): Likewise.
26736 (cortex_r4_mla_3): Likewise.
26737 (cortex_r4_smlald): Likewise.
26738 (cortex_r4_mull): Likewise.
26739 (cortex_r4_sdiv): Likewise.
26740 (cortex_r4_udiv): Likewise.
26741 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
26742 (cortex_a7_idiv): Likewise.
26743 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
26744 (9_mult2): Likewise.
26745 (9_mult3): Likewise.
26746 (9_mult4): Likewise.
26747 (9_mult5): Likewise.
26748 (9_mult6): Likewise.
26749 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
26750 (cortex_a53_sdiv): Likewise.
26751 (cortex_a53_udiv): Likewise.
26752 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
26753 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
26754 (mp626_mult2): Likewise.
26755 (mp626_mult3): Likewise.
26756 (mp626_mult4): Likewise.
26757 * config/arm/fa526.md (526_mult1): Update attribute change.
26758 (526_mult2): Likewise.
26759 * config/arm/arm-generic.md (mult): Update attribute change.
26760 (mult_ldsched_strongarm): Likewise.
26761 (mult_ldsched): Likewise.
26762 (multi_cycle): Likewise.
26763 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
26764 * config/arm/fa606te.md (606te_mult1): Update attribute change.
26765 (606te_mult2): Likewise.
26766 (606te_mult3): Likewise.
26767 (606te_mult4): Likewise.
26768 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
26769 (cortex_a9_mac16): Likewise.
26770 (cortex_a9_multiply): Likewise.
26771 (cortex_a9_mac): Likewise.
26772 (cortex_a9_multiply_long): Likewise.
26773 * config/arm/fa626te.md (626te_mult1): Update attribute change.
26774 (626te_mult2): Likewise.
26775 (626te_mult3): Likewise.
26776 (626te_mult4): Likewise.
26777
26778 2013-06-18 Richard Biener <rguenther@suse.de>
26779
26780 PR lto/57334
26781 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
26782
26783 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26784
26785 PR target/57609
26786 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
26787 with next_active_insn.
26788
26789 2013-06-18 Alan Modra <amodra@gmail.com>
26790
26791 * config/rs6000/rs6000.h (enum data_align): New.
26792 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
26793 (DATA_ABI_ALIGNMENT): Define.
26794 (CONSTANT_ALIGNMENT): Correct comment.
26795 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
26796 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
26797
26798 2013-06-17 David Malcolm <dmalcolm@redhat.com>
26799
26800 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
26801 ATTRIBUTE_UNUSED marking.
26802
26803 2013-06-17 Sofiane Naci <sofiane.naci@arm.com>
26804
26805 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
26806 alternative and update.
26807 (aarch64_dup_lanedi): Delete.
26808 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
26809 * config/aarch64/aarch64-simd-builtins.def: Update.
26810
26811 2013-06-17 Richard Biener <rguenther@suse.de>
26812
26813 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
26814 (lto_input_scc): Declare.
26815 (lto_input_tree_1): Likewise.
26816 (struct lto_stats_d): Add num_tree_bodies_output and
26817 num_pickle_refs_output.
26818 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
26819 (lto_read_tree_1): Split out from ...
26820 (lto_read_tree): ... this.
26821 (lto_input_scc): New function.
26822 (lto_input_tree_1): Split out from ...
26823 (lto_input_tree): ... this. Handle LTO_tree_scc.
26824 (lto_data_in_create): Create the streamer cache without hashes.
26825 * lto-streamer-out.c (create_output_block): Create the streamer
26826 cache with hashes when not doing WPA.
26827 (lto_write_tree_1): Split out from ...
26828 (lto_write_tree): ... this.
26829 (get_symbol_initial_value): New function.
26830 (lto_output_tree_1): Split out from ...
26831 (lto_output_tree): ... this. Write trees as series of SCCs
26832 using a DFS walk via DFS_write_tree.
26833 (struct sccs, struct scc_entry): New types.
26834 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
26835 (DFS_write_tree_body): New function.
26836 (DFS_write_tree): Likewise.
26837 (hash_tree): Likewise.
26838 (scc_entry_compare): Likewise.
26839 (hash_scc): Likewise.
26840 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
26841 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
26842 TREE_CHAIN as regular reference.
26843 (streamer_read_integer_cst): Remove.
26844 (streamer_get_pickled_tree): Adjust.
26845 * tree-streamer-out.c (streamer_write_chain): Disable streaming
26846 of DECL_EXTERNALs in BLOCK_VARS for now.
26847 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
26848 reference.
26849 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
26850 Add hash value argument and record that if hashes are recorded
26851 in the cache.
26852 (streamer_tree_cache_insert_1): Adjust.
26853 (streamer_tree_cache_insert): Likewise.
26854 (streamer_tree_cache_insert_at): Rename to ...
26855 (streamer_tree_cache_replace_tree): ... this and adjust.
26856 (streamer_tree_cache_append): Adjust.
26857 (record_common_node): Likewise.
26858 (streamer_tree_cache_create): Add argument whether to
26859 record hash values together with trees.
26860 (streamer_tree_cache_delete): Adjust.
26861 * tree-streamer.h (struct streamer_tree_cache_d): Add
26862 vector of hashes.
26863 (streamer_read_integer_cst): Remove.
26864 (streamer_tree_cache_insert): Adjust.
26865 (streamer_tree_cache_append): Likewise.
26866 (streamer_tree_cache_insert_at): Rename to ...
26867 (streamer_tree_cache_replace_tree): ... this and adjust.
26868 (streamer_tree_cache_create): Add argument whether to record hashes.
26869 (streamer_tree_cache_get): Rename to ...
26870 (streamer_tree_cache_get_tree): ... this.
26871 (streamer_tree_cache_get_hash): New function.
26872 * tree.c (cache_integer_cst): New function.
26873 * tree.h (cache_integer_cst): Declare.
26874 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
26875 * lto-symtab.c (lto_varpool_replace_node): Only release
26876 DECL_INITIAL of non-prevailing decls.
26877 * varpool.c (varpool_remove_initializer): Do not release
26878 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
26879
26880 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
26881
26882 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
26883 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
26884 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
26885 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
26886 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
26887 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
26888 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
26889 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
26890 instead of TARGET_64BIT.
26891 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
26892 Require ISA_HAS_<D>DIV.
26893
26894 2013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
26895
26896 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
26897 (mips*-*-linux*): Move default with_llsc setting to where other
26898 defaults are set.
26899 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
26900 with_arch block.
26901 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
26902 Likewise. Remove default with_tune setting. Move default float
26903 setting to its own block. Handle with_llsc in the same block as above.
26904
26905 2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
26906
26907 PR rtl-optimization/57425
26908 PR rtl-optimization/57569
26909 * alias.c (write_dependence_p): Add new parameters mem_mode,
26910 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
26911 Changed all callers.
26912 (canon_anti_dependence): New function.
26913 * cse.c (check_dependence): Use canon_anti_dependence.
26914 * cselib.c (cselib_invalidate_mem): Likewise.
26915 * rtl.h (canon_anti_dependence): Declare.
26916
26917 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
26918
26919 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
26920 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
26921 ".set mips3" for 64-bit targets.
26922
26923 2013-06-15 Dehao Chen <dehao@google.com>
26924
26925 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
26926 * gimple-low.c (gimple_check_call_matching_types): Likewise.
26927 (gimple_check_call_args): Likewise.
26928 * value-prof.c (check_ic_target): Likewise.
26929 * ipa-inline.c (early_inliner): Likewise.
26930 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
26931 * cgraph.c (cgraph_create_edge_1): Likewise.
26932 (cgraph_make_edge_direct): Likewise.
26933
26934 2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
26935
26936 PR target/57615
26937 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
26938 rs6000_output_move_128bit to handle emitting quad memory
26939 operations. Set attribute length to 8 bytes.
26940
26941 2013-06-14 Vidya Praveen <vidyapraveen@arm.com>
26942
26943 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
26944 New pattern.
26945 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
26946 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
26947 (aarch64_<su>mlsl<mode>): Likewise.
26948
26949 2013-06-14 Mike Stump <mikestump@comcast.net>
26950
26951 * Makefile.in (TARGET_H): Add insn-codes.h.
26952
26953 2013-06-14 Alan Modra <amodra@gmail.com>
26954
26955 PR middle-end/57134
26956 PR middle-end/57586
26957 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
26958 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
26959 bitfield expansion when EXPAND_MEMORY.
26960 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
26961
26962 2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
26963
26964 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
26965 test for clearing quad memory on 32-bit later.
26966
26967 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
26968
26969 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
26970 (fold_negate_expr): Likewise.
26971 (fold_real_zero_addition_p): Handle vectors.
26972 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
26973
26974 2013-06-14 Alan Modra <amodra@gmail.com>
26975
26976 * varasm.c (force_const_mem): Revert 2013-06-07 change.
26977
26978 2013-06-13 Jan Hubicka <jh@suse.cz>
26979
26980 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
26981 Local comdats are not externally visible.
26982 * symtab.c (dump_symtab_base): Dump externally visible.
26983 (verify_symtab_base): Verify back links in the symtab hash.
26984
26985 2013-06-13 Bin Cheng <bin.cheng@arm.com>
26986
26987 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
26988 CONVERT_EXPR as equal nodes.
26989
26990 2013-06-13 Bin Cheng <bin.cheng@arm.com>
26991
26992 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
26993
26994 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
26995
26996 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
26997 Generalize to complex and vector.
26998 * tree.c (build_all_ones_cst): New function.
26999 * tree.h (build_all_ones_cst): Declare it.
27000
27001 2013-06-13 Alan Modra <amodra@gmail.com>
27002
27003 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
27004 * config/rs6000/rs6000.md (signbittf2): New insn.
27005 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
27006 (abstf2_internal, cmptf_internal2): Likewise.
27007 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
27008
27009 2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
27010 Pat Haugen <pthaugen@us.ibm.com>
27011 Peter Bergner <bergner@vnet.ibm.com>
27012
27013 * config/rs6000/rs6000.c (emit_load_locked): Add support for
27014 power8 byte, half-word, and quad-word atomic instructions.
27015 (emit_store_conditional): Likewise.
27016 (rs6000_expand_atomic_compare_and_swap): Likewise.
27017 (rs6000_expand_atomic_op): Likewise.
27018
27019 * config/rs6000/sync.md (larx): Add new modes for power8.
27020 (stcx): Likewise.
27021 (AINT): New mode iterator to include TImode as well as normal
27022 integer modes on power8.
27023 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
27024 that VSX registers are not considered. Use AINT mode iterator
27025 instead of INT1 to allow inclusion of quad word atomic operations
27026 on power8.
27027 (load_locked<mode>): Likewise.
27028 (store_conditional<mode>): Likewise.
27029 (atomic_compare_and_swap<mode>): Likewise.
27030 (atomic_exchange<mode>): Likewise.
27031 (atomic_nand<mode>): Likewise.
27032 (atomic_fetch_<fetchop_name><mode>): Likewise.
27033 (atomic_nand_fetch<mode>): Likewise.
27034 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
27035 each type.
27036 (ATOMIC): On power8, add QImode, HImode modes.
27037 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
27038 modes that promote to SImode.
27039 (load_lockedti): Convert TImode arguments to PTImode, so that we
27040 get a guaranteed even/odd register pair.
27041 (load_lockedpti): Likewise.
27042 (store_conditionalti): Likewise.
27043 (store_conditionalpti): Likewise.
27044
27045 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
27046 atomic load/store instructions.
27047 (HSI): Likewise.
27048
27049 2013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
27050
27051 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
27052 loads.
27053 (insn_count): New attribute, with most cases extracted from...
27054 (length): ...here. Redefine most cases in terms of insn_count.
27055 (single_insn): Delete.
27056 (can_delay): Use insn_count to check for single instructions.
27057 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
27058 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
27059 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
27060 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
27061 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
27062 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
27063 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
27064 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
27065 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
27066 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
27067 rather than "length".
27068 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
27069 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
27070 Use "insn_count" rather than "length".
27071 * config/mips/mips-dsp.md
27072 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
27073 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
27074 length attributes.
27075
27076 2013-06-12 Marc Glisse <marc.glisse@inria.fr>
27077
27078 PR tree-optimization/57361
27079 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
27080
27081 2013-06-12 Sofiane Naci <sofiane.naci@arm.com>
27082
27083 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
27084 to split.
27085 (aarch64_simd_combine<mode>): New instruction expansion.
27086 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
27087 function prototype.
27088 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
27089 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
27090
27091 2013-06-12 Jan Hubicka <jh@suse.cz>
27092
27093 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
27094 decl has when in streaming stage.
27095 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
27096 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
27097
27098 2013-06-12 Roland Stigge <stigge@antcom.de>
27099
27100 PR target/57578
27101 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
27102
27103 2013-06-12 Jakub Jelinek <jakub@redhat.com>
27104
27105 PR tree-optimization/57537
27106 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
27107 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
27108
27109 2013-06-12 Richard Biener <rguenther@suse.de>
27110
27111 * data-streamer.h (streamer_write_char_stream): CSE
27112 obs->current_pointer.
27113 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
27114 streamer_write_char_stream manually and optimize the resulting loop.
27115 (streamer_write_hwi_stream): Likewise.
27116
27117 2013-06-12 Jan Hubicka <jh@suse.cz>
27118
27119 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
27120 * cgraph.h (varpool_create_empty_node): Declare.
27121 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
27122 duplicated nodes.
27123 * symtab.c (symtab_unregister_node): Be lax about missin entries
27124 in node hash.
27125 (symtab_get_node): Update comment.
27126 * varpool.c (varpool_create_empty_node): Break out from ...
27127 (varpool_node_for_decl): ... here.
27128 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
27129
27130 2013-06-12 Eric Botcazou <ebotcazou@adacore.com>
27131
27132 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
27133 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
27134 part. Use straight-line flow at the end.
27135 <COMPONENT_REF>: Remove superfluous else.
27136 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
27137
27138 2013-06-12 Jakub Jelinek <jakub@redhat.com>
27139
27140 PR target/56564
27141 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
27142 target hook even for !TREE_PUBLIC decls. If no resolution info
27143 is available, return false for common and external decls.
27144
27145 2013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
27146
27147 * config/rl78/constraints.md (U): New constraint.
27148 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
27149 valloc attribute.
27150
27151 2013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
27152
27153 PR target/57589
27154 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
27155 to allow returning address to AT_PLATFORM name.
27156
27157 2013-06-11 Jan Hubicka <jh@suse.cz>
27158
27159 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
27160 * cgraph.h (symtab_node_base): Add weakref flag.
27161 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
27162 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
27163 (output_weakrefs): Use weakref flag.
27164 * fold-const.c (simple_operand_p): Handle WEAK.
27165 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
27166 * ipa.c (varpool_externally_visible_p): Drop weakref.
27167 (function_and_variable_visibility): Update comment; fix weakref
27168 sanity checks; do not clear DECL_WEAK on them.
27169 * lto-cgraph.c (lto_output_node): update.
27170 (lto_output_varpool_node): Update.
27171 (input_overwrite_node): Update.
27172 (input_node): Update.
27173 (input_varpool_node): Update.
27174 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
27175 (lto_symtab_merge_symbols): Add sanity check.
27176 (lto_symtab_prevailing_decl): Do not special case weakrefs.
27177 * passes.c (rest_of_decl_compilation): Set static flag, too.
27178 * symtab.c (dump_symtab_base): Dump weakref.
27179 (verify_symtab_base): Sanity check weakrefs.
27180 (symtab_make_decl_local): Remove duplicated code.
27181 (symtab_alias_ultimate_target): Simplify.
27182 * varpool.c (varpool_create_variable_alias): Set weakref flag.
27183
27184 2013-06-11 Tom de Vries <tom@codesourcery.com>
27185
27186 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
27187 sequence_vect == NULL.
27188
27189 2013-06-11 DJ Delorie <dj@redhat.com>
27190
27191 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
27192 (rl78_unwind_word_mode): New.
27193
27194 2013-06-11 David Malcolm <dmalcolm@redhat.com>
27195
27196 * final.c (debug_prefix_maps): Make static.
27197
27198 2013-06-11 David Malcolm <dmalcolm@redhat.com>
27199
27200 * function.c (initial_trampoline): Remove stray copy.
27201
27202 2013-06-11 Sofiane Naci <sofiane.naci@arm.com>
27203
27204 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
27205
27206 2013-06-11 Martin Jambor <mjambor@suse.cz>
27207
27208 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
27209 within bounds at the beginning of the function.
27210
27211 2013-06-11 Alan Modra <amodra@gmail.com>
27212
27213 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
27214 reporting.
27215 (get_named_section): Don't NULL !DECL_P decl.
27216
27217 2013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
27218
27219 * doc/invoke.texi (core-avx2): Document.
27220 (slm): Likewise.
27221 (atom): Updated with MOVBE.
27222
27223 2013-06-11 Richard Biener <rguenther@suse.de>
27224
27225 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
27226
27227 2013-06-11 Anton Blanchard <anton@samba.org>
27228
27229 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
27230 correct shift value in little-endian mode.
27231
27232 2013-06-11 Jakub Jelinek <jakub@redhat.com>
27233
27234 PR target/56564
27235 * varasm.c (get_variable_align): Move #endif to the right place.
27236
27237 2013-06-10 Cary Coutant <ccoutant@google.com>
27238
27239 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
27240 for hash so that hash table traversal order is deterministic.
27241
27242 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
27243 Pat Haugen <pthaugen@us.ibm.com>
27244 Peter Bergner <bergner@vnet.ibm.com>
27245
27246 * config/rs6000/vector.md (GPR move splitter): Do not split moves
27247 of vectors in GPRS if they are direct moves or quad word load or
27248 store moves.
27249
27250 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
27251 declaration.
27252 (direct_move_p): Likewise.
27253 (quad_load_store_p): Likewise.
27254
27255 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
27256 classes into bins based on the physical register type.
27257 (reg_class_to_reg_type): Likewise.
27258 (IS_STD_REG_TYPE): Likewise.
27259 (IS_FP_VECT_REG_TYPE): Likewise.
27260 (reload_fpr_gpr): Arrays to determine what insn to use if we can
27261 use direct move instructions.
27262 (reload_gpr_vsx): Likewise.
27263 (reload_vsx_gpr): Likewise.
27264 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
27265 information that is a simplification of register classes. Also
27266 precalculate direct move reload helpers.
27267 (direct_move_p): New function to return true if the operation can
27268 be done as a direct move instruciton.
27269 (quad_load_store_p): New function to return true if the operation
27270 is a quad memory operation.
27271 (rs6000_legitimize_address): If quad memory, only allow register
27272 indirect for TImode addresses.
27273 (rs6000_legitimate_address_p): Likewise.
27274 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
27275 (rs6000_reload_register_type): Likewise.
27276 (register_to_reg_type): Return register type.
27277 (rs6000_secondary_reload_simple_move): New helper function for
27278 secondary reload and secondary memory needed to identify anything
27279 that is a simple move, and does not need reloading.
27280 (rs6000_secondary_reload_direct_move): New helper function for
27281 secondary reload to identify cases that can be done with several
27282 instructions via the direct move instructions.
27283 (rs6000_secondary_reload_move): New helper function for secondary
27284 reload to identify moves between register types that can be done.
27285 (rs6000_secondary_reload): Add support for quad memory operations
27286 and for direct move.
27287 (rs6000_secondary_memory_needed): Likewise.
27288 (rs6000_debug_secondary_memory_needed): Change argument names.
27289 (rs6000_output_move_128bit): New function to return the move to
27290 use for 128-bit moves, including knowing about the various
27291 limitations of quad memory operations.
27292
27293 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
27294 memory operations. call rs6000_output_move_128bit for the actual
27295 instruciton(s) to generate.
27296 (vsx_movti_64bit): Likewise.
27297
27298 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
27299 (UNSPEC_P8V_MTVSRWZ): Likewise.
27300 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
27301 (UNSPEC_P8V_MTVSRD): Likewise.
27302 (UNSPEC_P8V_XXPERMDI): Likewise.
27303 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
27304 (UNSPEC_FUSION_GPR): Likewise.
27305 (FMOVE128_GPR): New iterator for direct move.
27306 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
27307 (f32_sv): Likewise.
27308 (f32_dm): Likewise.
27309 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
27310 loads and direct move instructions.
27311 (zero_extendsidi2_lfiwzx): Likewise.
27312 (extendsidi2_lfiwax): Likewise.
27313 (extendsidi2_nocell): Likewise.
27314 (floatsi<mode>2_lfiwax): Likewise.
27315 (lfiwax): Likewise.
27316 (floatunssi<mode>2_lfiwzx): Likewise.
27317 (lfiwzx): Likewise.
27318 (fix_trunc<mode>_stfiwx): Likewise.
27319 (fixuns_trunc<mode>_stfiwx): Likewise.
27320 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
27321 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
27322 (parity<mode>2_cmpb): Set length/type attr.
27323 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
27324 for 'mr.' to fast_compare.
27325 (bpermd_<mode>): Change type attr to popcnt.
27326 (p8_fmrgow_<mode>): New insns for power8 direct move support.
27327 (p8_mtvsrwz_1): Likewise.
27328 (p8_mtvsrwz_2): Likewise.
27329 (reload_fpr_from_gpr<mode>): Likewise.
27330 (p8_mtvsrd_1): Likewise.
27331 (p8_mtvsrd_2): Likewise.
27332 (p8_xxpermdi_<mode>): Likewise.
27333 (reload_vsx_from_gpr<mode>): Likewise.
27334 (reload_vsx_from_gprsf): Likewise.
27335 (p8_mfvsrd_3_<mode>): LIkewise.
27336 (reload_gpr_from_vsx<mode>): Likewise.
27337 (reload_gpr_from_vsxsf): Likewise.
27338 (p8_mfvsrd_4_disf): Likewise.
27339 (multi-word GPR splits): Do not split direct moves or quad memory
27340 operations.
27341
27342 2013-06-10 David Malcolm <dmalcolm@redhat.com>
27343
27344 * tree-into-ssa.c (interesting_blocks): Make static.
27345
27346 2013-06-10 Jakub Jelinek <jakub@redhat.com>
27347
27348 PR target/56564
27349 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
27350 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
27351 Use DATA_ABI_ALIGNMENT for that case instead if defined.
27352 (get_variable_align): New function.
27353 (get_variable_section, emit_bss, emit_common,
27354 assemble_variable_contents, place_block_symbol): Use
27355 get_variable_align instead of DECL_ALIGN.
27356 (assemble_noswitch_variable): Add align argument, use it
27357 instead of DECL_ALIGN.
27358 (assemble_variable): Adjust caller. Use get_variable_align
27359 instead of DECL_ALIGN.
27360 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
27361 caller.
27362 (DATA_ABI_ALIGNMENT): Define.
27363 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
27364 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
27365 opt is false, only return the psABI mandated alignment increase.
27366 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
27367 (DATA_ABI_ALIGNMENT): ... this.
27368 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
27369 (DATA_ABI_ALIGNMENT): ... this.
27370 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
27371 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
27372 (DATA_ABI_ALIGNMENT): ... this.
27373 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
27374 * doc/tm.texi: Regenerated.
27375
27376 2013-06-10 Uros Bizjak <ubizjak@gmail.com>
27377
27378 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
27379 cmp_code to construct REG_EQUAL note.
27380
27381 2013-06-09 Jakub Jelinek <jakub@redhat.com>
27382
27383 PR target/57568
27384 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
27385 that operands[2] doesn't overlap with operands[0].
27386
27387 2013-06-09 David Edelsohn <dje.gcc@gmail.com>
27388 Jan Hubicka <jh@suse.cz>
27389
27390 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
27391 hack to mark symbols as used.
27392
27393 2013-06-08 Vladimir Makarov <vmakarov@redhat.com>
27394
27395 PR rtl-optimization/57559
27396 * lra-constraints.c (process_alt_operands): Don't discourage
27397 memory with known offset for offsetable memory constraint.
27398 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
27399
27400 2013-06-08 Eric Botcazou <ebotcazou@adacore.com>
27401
27402 * varasm.c (struct oc_local_state): Reorder fields.
27403 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
27404 and adjust accordingly.
27405 (output_constructor): Reorder initialization code and adjust call to
27406 output_constructor_bitfield.
27407
27408 2013-06-07 Jan Hubicka <jh@suse.cz>
27409
27410 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
27411
27412 2013-06-07 David Malcolm <dmalcolm@redhat.com>
27413
27414 * tree-object-size.c (unknown): Make const.
27415
27416 2013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27417
27418 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
27419 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
27420 for last alternative in the cpu_facility attribute.
27421
27422 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27423
27424 PR target/56315
27425 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
27426 (xordi3): Change operand 2 constraint to arm_xordi_operand.
27427 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
27428 * config/arm/constraints.md (Dg): New constraint.
27429 * config/arm/neon.md (xordi3_neon): Remove.
27430 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
27431 * config/arm/predicates.md (arm_xordi_operand): New predicate.
27432
27433 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27434
27435 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
27436 Clean up alternatives.
27437
27438 2013-06-07 Alan Modra <amodra@gmail.com>
27439
27440 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
27441 va_list_gpr_size.
27442
27443 2013-06-07 Alan Modra <amodra@gmail.com>
27444
27445 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
27446
27447 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27448
27449 * config/arm/constraints.md (Df): New constraint.
27450 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
27451 Correct length attribute for last two alternatives.
27452
27453 2013-06-07 Alan Modra <amodra@gmail.com>
27454
27455 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
27456 override user -mfp-in-toc.
27457 (offsettable_ok_by_alignment): Consider just the current access
27458 rather than the whole object, unless BLKmode. Handle
27459 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
27460 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
27461 for -mcmodel=medium.
27462 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
27463 override user -mfp-in-toc or -msum-in-toc. Default to
27464 -mno-fp-in-toc for -mcmodel=medium.
27465
27466 2013-06-06 DJ Delorie <dj@redhat.com>
27467
27468 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
27469 TARGET_VALID_POINTER_MODE.
27470
27471 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
27472 Pat Haugen <pthaugen@us.ibm.com>
27473 Peter Bergner <bergner@vnet.ibm.com>
27474
27475 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
27476 Document new power8 builtins.
27477
27478 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
27479 condition code register, to allow 128-bit logical operations to be
27480 done in the VSX or GPR registers.
27481 (nor<mode>3): Use the canonical form for nor.
27482 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
27483 vclz*, and vpopcnt* vector instructions.
27484 (nand<mode>3): Likewise.
27485 (orc<mode>3): Likewise.
27486 (clz<mode>2): LIkewise.
27487 (popcount<mode>2): Likewise.
27488
27489 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
27490 that only the GPRs are recognized.
27491
27492 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
27493 support for new power8 builtins.
27494
27495 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
27496 builtin functions.
27497 (xscvdpspn): Likewise.
27498 (vclz): Likewise.
27499 (vclzb): Likewise.
27500 (vclzh): Likewise.
27501 (vclzw): Likewise.
27502 (vclzd): Likewise.
27503 (vpopcnt): Likewise.
27504 (vpopcntb): Likewise.
27505 (vpopcnth): Likewise.
27506 (vpopcntw): Likewise.
27507 (vpopcntd): Likewise.
27508 (vgbbd): Likewise.
27509 (vmrgew): Likewise.
27510 (vmrgow): Likewise.
27511 (eqv): Likewise.
27512 (eqv_v16qi3): Likewise.
27513 (eqv_v8hi3): Likewise.
27514 (eqv_v4si3): Likewise.
27515 (eqv_v2di3): Likewise.
27516 (eqv_v4sf3): Likewise.
27517 (eqv_v2df3): Likewise.
27518 (nand): Likewise.
27519 (nand_v16qi3): Likewise.
27520 (nand_v8hi3): Likewise.
27521 (nand_v4si3): Likewise.
27522 (nand_v2di3): Likewise.
27523 (nand_v4sf3): Likewise.
27524 (nand_v2df3): Likewise.
27525 (orc): Likewise.
27526 (orc_v16qi3): Likewise.
27527 (orc_v8hi3): Likewise.
27528 (orc_v4si3): Likewise.
27529 (orc_v2di3): Likewise.
27530 (orc_v4sf3): Likewise.
27531 (orc_v2df3): Likewise.
27532
27533 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
27534 allow power8 quad mode in 64-bit.
27535 (rs6000_builtin_vectorized_function): Add support to vectorize
27536 ISA 2.07 count leading zeros, population count builtins.
27537 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
27538 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
27539 (builtin_function_type): Add vgbbd builtin function which takes an
27540 unsigned argument.
27541 (altivec_expand_vec_perm_const): Add support for new power8 merge
27542 instructions.
27543
27544 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
27545 that does not include TImdoe for use with 32-bit.
27546 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
27547 instructions.
27548 (UNSPEC_VSX_CVDPSPN): Likewise.
27549 (vsx_xscvdpspn): Likewise.
27550 (vsx_xscvspdpn): Likewise.
27551 (vsx_xscvdpspn_scalar): Likewise.
27552 (vsx_xscvspdpn_directmove): Likewise.
27553 (vsx_and<mode>3): Split logical operations into 32-bit and
27554 64-bit. Add support to do logical operations on TImode as well as
27555 VSX vector types. Allow logical operations to be done in either
27556 VSX registers or in general purpose registers in 64-bit mode. Add
27557 splitters if GPRs were used. For AND, add clobber of CCmode to
27558 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
27559 encoding.
27560 (vsx_and<mode>3_32bit): Likewise.
27561 (vsx_and<mode>3_64bit): Likewise.
27562 (vsx_ior<mode>3): Likewise.
27563 (vsx_ior<mode>3_32bit): Likewise.
27564 (vsx_ior<mode>3_64bit): Likewise.
27565 (vsx_xor<mode>3): Likewise.
27566 (vsx_xor<mode>3_32bit): Likewise.
27567 (vsx_xor<mode>3_64bit): Likewise.
27568 (vsx_one_cmpl<mode>2): Likewise.
27569 (vsx_one_cmpl<mode>2_32bit): Likewise.
27570 (vsx_one_cmpl<mode>2_64bit): Likewise.
27571 (vsx_nor<mode>3): Likewise.
27572 (vsx_nor<mode>3_32bit): Likewise.
27573 (vsx_nor<mode>3_64bit): Likewise.
27574 (vsx_andc<mode>3): Likewise.
27575 (vsx_andc<mode>3_32bit): Likewise.
27576 (vsx_andc<mode>3_64bit): Likewise.
27577 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
27578 and xxlorc instructions.
27579 (vsx_eqv<mode>3_64bit): Likewise.
27580 (vsx_nand<mode>3_32bit): Likewise.
27581 (vsx_nand<mode>3_64bit): Likewise.
27582 (vsx_orc<mode>3_32bit): Likewise.
27583 (vsx_orc<mode>3_64bit): Likewise.
27584
27585 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
27586
27587 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
27588 instruction.
27589 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
27590 (p8_vmrgow): Likewise.
27591 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
27592 GPRs to be split under VSX.
27593 (p8v_clz<mode>2): Add power8 count leading zero support.
27594 (p8v_popcount<mode>2): Add power8 population count support.
27595 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
27596 support.
27597
27598 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
27599 instruction.
27600
27601 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
27602 builtin functions.
27603 (vec_nand): Likewise.
27604 (vec_vclz): Likewise.
27605 (vec_vclzb): Likewise.
27606 (vec_vclzd): Likewise.
27607 (vec_vclzh): Likewise.
27608 (vec_vclzw): Likewise.
27609 (vec_vgbbd): Likewise.
27610 (vec_vmrgew): Likewise.
27611 (vec_vmrgow): Likewise.
27612 (vec_vpopcnt): Likewise.
27613 (vec_vpopcntb): Likewise.
27614 (vec_vpopcntd): Likewise.
27615 (vec_vpopcnth): Likewise.
27616 (vec_vpopcntw): Likewise.
27617
27618 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
27619
27620 PR rtl-optimization/57468
27621 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
27622 spilled pseudos.
27623
27624 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
27625
27626 PR rtl-optimization/57459
27627 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
27628 type when setting live regs.
27629
27630 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
27631
27632 * config/s390/s390.opt (mlra): New option.
27633 * config/s390/s390.c (s390_decompose_address): Check displacement
27634 for all registers for LRA.
27635 (s390_secondary_reload): Don't used secondary reloads for LRA.
27636 (s390_lra_p): New function.
27637 (TARGET_LRA_P): Define.
27638 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
27639 of attribute cpu_facility to zarch for the last alternative.
27640 (*cmpmem_short): Ditto.
27641
27642 2013-06-06 Eric Botcazou <ebotcazou@adacore.com>
27643
27644 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
27645 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
27646 (arm_expand_prologue): Likewise.
27647
27648 2013-06-06 Teresa Johnson <tejohnson@google.com>
27649
27650 PR c++/53743
27651 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
27652 as this is now done by redirect_edge_and_branch_force.
27653 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
27654 barriers, and fix interaction with splitting.
27655 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
27656 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
27657 reflect changes made in the routine.
27658 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
27659 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
27660 since this is called in cfglayout mode, and replace partition fixup
27661 with assert as that is now done by force_nonfallthru_and_redirect.
27662 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
27663 already be marked with region crossing note.
27664 (insert_section_boundary_note): Make non-static, gate on flag
27665 has_bb_partition, rewrite to also check for multiple partitions.
27666 (rest_of_handle_reorder_blocks): Remove call to
27667 insert_section_boundary_note, now done later during free_cfg.
27668 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
27669 * bb-reorder.h (insert_section_boundary_note): Declare.
27670 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
27671 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
27672 invoke insert_section_boundary_note.
27673 (try_redirect_by_replacing_jump): Remove unnecessary
27674 check for region crossing note.
27675 (fixup_partition_crossing): New function.
27676 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
27677 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
27678 in non-cfglayout mode.
27679 (force_nonfallthru_and_redirect): Fixup partition boundaries,
27680 remove old code that tried to do this. Emit barrier correctly
27681 when we are in cfglayout mode.
27682 (last_bb_in_partition): New function.
27683 (rtl_split_edge): Correctly fixup partition boundaries.
27684 (commit_one_edge_insertion): Remove old code that tried to
27685 fixup region crossing edge since this is now handled in
27686 split_block, and set up insertion point correctly since
27687 block may now end in a jump.
27688 (verify_hot_cold_block_grouping): Guard against checking when not in
27689 linearized RTL mode.
27690 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
27691 notes.
27692 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
27693 rtl_verify_flow_info, so not called in cfglayout mode.
27694 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
27695 (fixup_reorder_chain): Remove old code that attempted to fixup region
27696 crossing note as this is now handled in force_nonfallthru_and_redirect.
27697 (duplicate_insn_chain): Don't duplicate switch section notes.
27698 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
27699 note.
27700 * basic-block.h (emit_barrier_after_bb): Declare.
27701
27702 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27703
27704 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
27705 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
27706 arm_usatsihi): Adjust alternatives for arm_restrict_it.
27707
27708 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27709
27710 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
27711 where appropriate.
27712 * config/arm/ldmstm.md: Regenerate.
27713
27714 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27715
27716 * config/arm/sync.md (atomic_loaddi_1):
27717 Disable predication for arm_restrict_it.
27718 (arm_load_exclusive<mode>): Likewise.
27719 (arm_load_exclusivesi): Likewise.
27720 (arm_load_exclusivedi): Likewise.
27721 (arm_load_acquire_exclusive<mode>): Likewise.
27722 (arm_load_acquire_exclusivesi): Likewise.
27723 (arm_load_acquire_exclusivedi): Likewise.
27724 (arm_store_exclusive<mode>): Likewise.
27725 (arm_store_exclusive<mode>): Likewise.
27726 (arm_store_release_exclusivedi): Likewise.
27727 (arm_store_release_exclusive<mode>): Likewise.
27728
27729 2013-06-06 Richard Biener <rguenther@suse.de>
27730
27731 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
27732 after LTO_null.
27733 (lto_tag_is_tree_code_p): Adjust.
27734 (lto_tag_is_gimple_code_p): Likewise.
27735 (lto_gimple_code_to_tag): Likewise.
27736 (lto_tag_to_gimple_code): Likewise.
27737 (lto_tree_code_to_tag): Likewise.
27738 (lto_tag_to_tree_code): Likewise.
27739 * data-streamer.h (streamer_write_hwi_in_range): Use
27740 uhwi streaming to stream the normalized range.
27741 (streamer_read_hwi_in_range): Likewise.
27742
27743 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27744
27745 * config/arm/arm.md (enabled_for_depr_it): New attribute.
27746 (predicable_short_it): Likewise.
27747 (predicated): Likewise.
27748 (enabled): Handle above.
27749 (define_cond_exec): Set predicated attribute to yes.
27750
27751 2013-06-05 Mike Stump <mikestump@comcast.net>
27752
27753 * gdbinit.in (__FUNCTION__): Add.
27754
27755 2013-06-05 Uros Bizjak <ubizjak@gmail.com>
27756
27757 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
27758 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
27759
27760 2013-06-05 Jan Hubicka <jh@suse.cz>
27761
27762 * varasm.c (mark_decl_referenced): Revert the removal until targets
27763 are fixed.
27764
27765 2013-06-05 David Edelsohn <dje.gcc@gmail.com>
27766
27767 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
27768 instead of mark_decl_referenced.
27769
27770 2013-06-05 Jan Hubicka <jh@suse.cz>
27771
27772 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
27773 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
27774 and symtab_used_from_object_file_p.
27775 (cgraph_make_node_local_1): Clear forced_by_abi.
27776 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
27777 * cgraph.h (symtab_node_base): Add forced_by_abi.
27778 (decide_is_variable_needed): Remove.
27779 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
27780 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
27781 (decide_is_symbol_needed): ... this one; handle symbols in general;
27782 always analyze virtuals; honnor forced_by_abi.
27783 (cgraph_finalize_function): Update.
27784 (varpool_finalize_decl): Update.
27785 (symbol_defined_and_needed): Remove.
27786 (analyze_functions): Update.
27787 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
27788 output_refs, input_overwrite_node): Handle forced_by_abi.
27789 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
27790 (address_taken_from_non_vtable_p): ... this one.
27791 (comdat_can_be_unshared_p_1): New function.
27792 (cgraph_comdat_can_be_unshared_p): Rename to ...
27793 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
27794 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
27795 (function_and_variable_visibility): Clear forced_by_abi as needed.
27796 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
27797 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
27798 * symtab.c (dump_symtab_base): Dump forced_by_abi.
27799 * varpool.c (decide_is_variable_needed): Remove.
27800
27801 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27802
27803 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
27804 (arm_option_override): Override arm_restrict_it where appropriate.
27805 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
27806 * config/arm/arm.opt (mrestrict-it): New command-line option.
27807 * doc/invoke.texi: Document -mrestrict-it.
27808
27809 2013-06-05 David Malcolm <dmalcolm@redhat.com>
27810
27811 * tsan.c (tsan_atomic_table): Make const.
27812
27813 2013-06-05 Richard Biener <rguenther@suse.de>
27814
27815 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
27816 index associated with the tree we are supposed to replace.
27817 * tree-streamer-out.c (pack_ts_base_value_fields): Output
27818 TREE_ASM_WRITTEN as zero for everything but SSA names.
27819
27820 2013-06-05 David Malcolm <dmalcolm@redhat.com>
27821
27822 * tree-ssa-structalias.c (call_stmt_vars): Make static.
27823
27824 2013-06-04 Jan Hubicka <jh@suse.cz>
27825
27826 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
27827 (input_node, input_varpool_node): Handle correctly external same
27828 body aliases.
27829 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
27830 nodes at ltrans stage.
27831
27832 2013-06-04 Jan Hubicka <jh@suse.cz>
27833
27834 * ipa-inline.c (update_caller_keys): Fix availability test.
27835 (update_callee_keys): Likewise.
27836 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
27837 to follow ELF standard.
27838
27839 2013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
27840
27841 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
27842 (mips64r5900el-*-elf*): New configurations.
27843 * config/mips/mips-cpus.def (r5900): New processor.
27844 * config/mips/mips-tables.opt: Regenerate.
27845 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
27846 (mips_issue_rate): Handle PROCESSOR_R5900.
27847 (mips_reorg_process_insns): Force reorder mode for the R5900.
27848 * config/mips/mips.h (TARGET_MIPS5900): Define.
27849 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
27850 TARGET_MIPS5900.
27851 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
27852 TARGET_MIPS5900.
27853 * config/mips/mips.md (processor): Add r5900.
27854 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
27855
27856 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27857
27858 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
27859 into function to generate MOVI instruction.
27860 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
27861 (aarch64_preferred_simd_mode): Turn into wrapper.
27862 (aarch64_output_scalar_simd_mov_immediate): New function.
27863 * config/aarch64/aarch64-protos.h: Add prototype for above.
27864
27865 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27866
27867 * config/aarch64/aarch64.c (simd_immediate_info): Remove
27868 element_char member.
27869 (sizetochar): Return signed char.
27870 (aarch64_simd_valid_immediate): Remove elchar and other
27871 unnecessary variables.
27872 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
27873 Calculate element_char as required.
27874 * config/aarch64/aarch64-protos.h: Update and move prototype
27875 for aarch64_output_simd_mov_immediate.
27876 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
27877 Update arguments.
27878
27879 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27880
27881 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
27882 information completed by aarch64_simd_valid_immediate.
27883 (aarch64_legitimate_constant_p): Update arguments.
27884 (aarch64_simd_valid_immediate): Work with struct rather than many
27885 pointers.
27886 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
27887 (aarch64_simd_make_constant): Update arguments.
27888 (aarch64_output_simd_mov_immediate): Work with struct rather than
27889 many pointers. Output immediate directly rather than as operand.
27890 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
27891 Update prototype.
27892 * config/aarch64/constraints.md (Dn): Update arguments.
27893
27894 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27895
27896 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
27897 longer static.
27898 (aarch64_simd_immediate_valid_for_move): Remove.
27899 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
27900 (aarch64_simd_make_constant): Update call.
27901 (aarch64_output_simd_mov_immediate): Update call.
27902 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
27903 Add prototype.
27904 * config/aarch64/constraints.md (Dn): Update call.
27905
27906 2013-06-04 Ian Bolton <ian.bolton@arm.com>
27907
27908 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
27909 return type to bool for prototype.
27910 (aarch64_legitimate_constant_p): Check for true instead of not -1.
27911 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
27912 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
27913
27914 2013-06-04 Catherine Moore <clm@codesourcery.com>
27915
27916 * config/mips/mips.opt (meva): New.
27917 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
27918 (ASM_SPEC): Handle -meva.
27919 * doc/invoke.texi (meva): Document.
27920
27921 2013-06-04 Alan Modra <amodra@gmail.com>
27922
27923 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
27924 constant output.
27925
27926 2013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27927
27928 * rtl.def: Add extra fourth optional field to define_cond_exec.
27929 * gensupport.c (process_one_cond_exec): Process attributes from
27930 define_cond_exec.
27931 * doc/md.texi: Document fourth field in define_cond_exec.
27932
27933 2013-06-04 Eric Botcazou <ebotcazou@adacore.com>
27934
27935 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
27936 out the processing order as in store_bit_field_1.
27937
27938 2013-06-04 Jan Hubicka <jh@suse.cz>
27939
27940 PR middle-end/57500
27941 * cgraphunit.c (cgraph_process_same_body_aliases): Create
27942 non-VAR_DECL node if it does not exist yet.
27943
27944 2013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
27945
27946 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
27947 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
27948 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
27949 target_cpu_default setting.
27950
27951 2013-06-03 Teresa Johnson <tejohnson@google.com>
27952
27953 * dumpfile.c (opt_info_switch_p): Change -fopt-info
27954 default to -fopt-info=optimized instead of all.
27955 * doc/invoke.texi: Ditto.
27956 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
27957 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
27958 (execute_vect_slp): Emit BB vectorization success under
27959 MSG_OPTIMIZED_LOCATIONS.
27960 * tree-vect-slp.c (vect_slp_transform_bb): Change
27961 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
27962 * tree-vect-loop.c (vect_transform_loop): Ditto.
27963
27964 2013-06-03 Jason Merrill <jason@redhat.com>
27965
27966 PR c++/57415
27967 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
27968 Use TARGET_EXPR for C++.
27969
27970 2013-06-03 Jakub Jelinek <jakub@redhat.com>
27971
27972 PR rtl-optimization/57268
27973 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
27974 if DEBUG_INSN_P (insn).
27975
27976 Reapply
27977 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
27978
27979 PR rtl-optimization/57268
27980 * sched-deps.c (sched_analyze_2): Flush dependence lists if
27981 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
27982
27983 2013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
27984
27985 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
27986 (ix86_avoid_lea_for_addr): Likewise.
27987 (exact_dependency_1): Likewise.
27988 (ix86_adjust_cost): Likewise.
27989 (swap_top_of_ready_list): Fix formatting and !reload_completed check
27990 removed.
27991 (do_reorder_for_imul): Fix typo, formatting and
27992 !reload_completed check removed.
27993 (ix86_sched_reorder): Fix typo and formatting.
27994 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
27995 list.
27996
27997 2013-06-03 Sofiane Naci <sofiane.naci@arm.com>
27998
27999 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
28000
28001 2013-06-03 Eric Botcazou <ebotcazou@adacore.com>
28002
28003 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
28004 <STRING_CST>: Likewise.
28005 <VECTOR_CST>: Likewise.
28006
28007 2013-06-01 Janus Weil <janus@gcc.gnu.org>
28008 Mikael Morin <mikael@gcc.gnu.org>
28009
28010 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
28011 * config.in: Regenerated.
28012 * configure: Regenerated.
28013
28014 2013-06-01 Jan Hubicka <jh@suse.cz>
28015
28016 PR middle-end/57366
28017 * cgraphunit.c (compile): When weakref is not supported,
28018 set up transparent aliases before final output pass.
28019 * varasm.c (assemble_alias): Do not try to do it here.
28020
28021 2013-06-01 Jan Hubicka <jh@suse.cz>
28022
28023 PR middle-end/57467
28024 * passes.c (for_per_function): Skip unanalyzed functions.
28025
28026 2013-06-01 Jan Hubicka <jh@suse.cz>
28027
28028 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
28029 (lto_symtab_merge_symbols_1): ... this one.
28030 (lto_symtab_merge_cgraph_nodes): Rename to ...
28031 (lto_symtab_merge_symbols): ... this one; simplify.
28032 * cgraph.c (same_body_aliases_done): Rename to ...
28033 (cpp_implicit_aliases_done): ... this one.
28034 (cgraph_create_function_alias): Update.
28035 (cgraph_same_body_alias): Update.
28036 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
28037 (verify_edge_corresponds_to_fndecl): Simplify.
28038 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
28039 (cgraph_node): Remove same_body_alias.
28040 (varpool_node): Remove alias_of and extra_name_alias.
28041 (same_body_aliases_done): Rename to ..
28042 (cpp_implicit_aliases_done): ... this one.
28043 (symtab_alias_ultimate_target): Add default parameter.
28044 (symtab_resolve_alias): New function.
28045 (fixup_same_cpp_alias_visibility): Declare.
28046 (cgraph_function_node): Add default parameter.
28047 (cgraph_node_asm_name): Likewise.
28048 (cgraph_function_or_thunk_node): Add default parameter; do
28049 not ICE when it is NULL.
28050 (varpool_variable_node): Likewise.
28051 * tree-emutls.c (create_emultls_var): Update.
28052 (ipa_lower_emutls): Update.
28053 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
28054 (cgraph_reset_node): Reset alias info.
28055 (cgraph_finalize_function): Update.
28056 (fixup_same_cpp_alias_visibility): Move to symtab.c.
28057 (analyze_function): Simplify.
28058 (cgraph_process_same_body_aliases): Simplify.
28059 (analyze_functions): Fixup same body aliases.
28060 (handle_alias_pairs): Simplify.
28061 (assemble_thunk): Update.
28062 (assemble_thunks_and_aliases): Update.
28063 (output_weakrefs): Rewrite.
28064 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
28065 (lto_output_varpool_node): Likewise.
28066 (compute_ltrans_boundary): Remve assert.
28067 (get_alias_symbol): New functoin.
28068 (input_node): Rewrite alias handling.
28069 (input_varpool_node): Likewise.
28070 * ipa-pure-const.c (propagate_pure_const): Fix formating.
28071 * ipa.c (process_references): Handle weakrefs correctly.
28072 (symtab_remove_unreachable_nodes): Likewise.
28073 * trans-mem.c (get_cg_data): Update.
28074 (ipa_tm_create_version_alias): Update.
28075 (ipa_tm_execute): Update.
28076 * symtab.c (dump_symtab_base): Dump aliases.
28077 (verify_symtab_base): Verify aliases.
28078 (symtab_node_availability): New function.
28079 (symtab_alias_ultimate_target): Simplify.
28080 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
28081 handle all the fixup cases.
28082 (symtab_resolve_alias): New function.
28083 * passes.c (ipa_write_summaries): Handle weakrefs.
28084 * varpool.c (varpool_analyze_node): Simplify.
28085 (assemble_aliases): Update.
28086 (varpool_create_variable_alias): Simplify.
28087 (varpool_extra_name_alias): Simplify.
28088 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
28089 (lto_symtab_merge_symbols): ... this one.
28090
28091 2013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
28092
28093 Revert
28094 PR rtl-optimization/57268
28095 * sched-deps.c (sched_analyze_2): Flush dependence lists if
28096 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
28097
28098 2013-06-01 Tobias Burnus <burnus@net-b.de>
28099
28100 Partially reverted:
28101 2013-05-31 Tobias Burnus <burnus@net-b.de>
28102
28103 PR middle-end/57073
28104 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
28105 further up.
28106
28107 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
28108
28109 PR rtl-optimization/57268
28110 * sched-deps.c (sched_analyze_2): Flush dependence lists if
28111 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
28112
28113 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
28114
28115 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
28116 unordered comparison operators when -fno-trapping-math is in effect
28117 on the e500.
28118 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
28119 and implement unordered comparison operators properly on the e500.
28120
28121 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
28122
28123 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
28124 for constant scalar integers.
28125 (simplify_relational_operation_1): Likewise.
28126
28127 2013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
28128
28129 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
28130 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
28131 Fix comment.
28132
28133 2013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
28134 Igor Zamyatin <igor.zamyatin@intel.com>
28135
28136 Silvermont (SLM) architecture performance tuning.
28137 * config/i386/i386.h (enum ix86_tune_indices): Add
28138 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
28139 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
28140
28141 * config/i386/i386.c (initial_ix86_tune_features)
28142 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
28143 (ix86_lea_outperforms): Handle Silvermont tuning.
28144 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
28145 call.
28146 (ix86_use_lea_for_mov): Likewise.
28147 (ix86_avoid_lea_for_addr): Likewise.
28148 (ix86_lea_for_add_ok): Likewise.
28149 (exact_dependency_1): New function.
28150 (exact_store_load_dependency): Likewise.
28151 (ix86_adjust_cost): Handle Silvermont tuning.
28152 (do_reoder_for_imul): Likewise.
28153 (swap_top_of_ready_list): New function.
28154 (ix86_sched_reorder): Changed to handle Silvermont tuning.
28155
28156 * config/i386/i386.md (peepholes that split memory operand in fp
28157 converts): New.
28158
28159 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
28160
28161 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
28162 Remove un-necessary braces.
28163
28164 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
28165
28166 * config/aarch64/aarch64.c (aarch64_classify_symbol):
28167 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
28168
28169 2013-05-31 Tobias Burnus <burnus@net-b.de>
28170
28171 PR middle-end/57073
28172 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
28173
28174 2013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28175
28176 PR target/56315
28177 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
28178 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
28179 * config/arm/neon.md (iordi3_neon): Remove.
28180 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
28181 * config/arm/predicates.md (imm_for_neon_logic_operand):
28182 Move to earlier in the file.
28183 (neon_logic_op2): Likewise.
28184 (arm_iordi_operand_neon): New predicate.
28185
28186 2013-05-31 Richard Biener <rguenther@suse.de>
28187
28188 PR tree-optimization/57478
28189 PR tree-optimization/57453
28190 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
28191 are life as well.
28192
28193 2013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
28194
28195 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
28196 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
28197
28198 2013-05-30 Tobias Burnus <burnus@net-b.de>
28199 Thomas Koenig <tkoenig@gcc.gnu.org>
28200
28201 PR middle-end/57073
28202 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
28203 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
28204
28205 2013-05-30 Steven Bosscher <steven@gcc.gnu.org>
28206
28207 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
28208
28209 2013-05-30 Vladimir Makarov <vmakarov@redhat.com>
28210
28211 * target.def (register_usage_leveling_p): New hook.
28212 * targhooks.c (default_register_usage_leveling_p): New.
28213 * targhooks.h (default_register_usage_leveling_p): New prototype.
28214 * lra-assigns.c (register_usage_leveling_p): Use the hook.
28215 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
28216 * doc/tm.texi: Update.
28217 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
28218
28219 2013-05-30 Ian Bolton <ian.bolton@arm.com>
28220
28221 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
28222 (*insv_reg<mode>): New define_insn.
28223
28224 2013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
28225
28226 PR rtl-optimization/57439
28227 * postreload.c (move2add_valid_value_p): Check that we have
28228 a zero subreg_regno_offset when accessing the register in
28229 the requested mode.
28230
28231 2013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
28232 Igor Zamyatin <igor.zamyatin@intel.com>
28233
28234 Silvermont (SLM) architecture pipeline model, tuning and
28235 insn selection.
28236 * config.gcc: Add slm config options and target.
28237
28238 * config/i386/slm.md: New.
28239
28240 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
28241
28242 * config/i386/i386-c.c (ix86_target_macros_internal): New case
28243 PROCESSOR_SLM.
28244 (ix86_target_macros_internal): Likewise.
28245
28246 * config/i386/i386.c (slm_cost): New cost.
28247 (m_SLM): New macro flag.
28248 (initial_ix86_tune_features): Set m_SLM.
28249 (x86_accumulate_outgoing_args): Likewise.
28250 (x86_arch_always_fancy_math_387): Likewise.
28251 (processor_target_table): Add slm cost.
28252 (cpu_names): Add slm cpu name.
28253 (x86_option_override_internal): Set SLM ISA.
28254 (ix86_issue_rate): New case PROCESSOR_SLM.
28255 (ia32_multipass_dfa_lookahead): Likewise.
28256 (fold_builtin_cpu): Add slm.
28257
28258 * config/i386/i386.h (TARGET_SLM): New target macro.
28259 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
28260 (processor_type): Add PROCESSOR_SLM.
28261
28262 * config/i386/i386.md (cpu): Add new value "slm".
28263 (slm.md): Include slm.md.
28264
28265 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
28266 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28267
28268 * config/arm/arm-protos.h: Add and update function protos.
28269 * config/arm/arm.c (use_simple_return_p): New added.
28270 (thumb2_expand_return): Check simple_return flag.
28271 * config/arm/arm.md: Add simple_return and conditional simple_return.
28272 * config/arm/iterators.md: Add iterator for return and simple_return.
28273
28274 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28275
28276 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
28277 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
28278 (arm_emit_vfp_multi_reg_pop): Likewise.
28279 (thumb2_emit_ldrd_pop): Likewise.
28280 (arm_expand_epilogue): Add misc REG_CFA notes.
28281 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
28282
28283 2013-05-29 Lawrence Crowl <crowl@google.com>
28284
28285 * config/arm/t-arm: Update for below.
28286
28287 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
28288 Change type to hash_table. Update dependent calls and types.
28289
28290 * config/i386/t-cygming: Update for below.
28291
28292 * config/i386/t-interix: Update for below.
28293
28294 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
28295 Change type to hash_table. Update dependent calls and types.
28296 (i386_find_on_wrapper_list::wrappers): Likewise.
28297
28298 * config/ia64/t-ia64: Update for below.
28299
28300 * config/ia64/ia64.c (bundle_state_table):
28301 Change type to hash_table. Update dependent calls and types.
28302
28303 * config/mips/mips.c (mips_reorg_process_insns::htab):
28304 Change type to hash_table. Update dependent calls and types.
28305
28306 * config/sol2.c (solaris_comdat_htab):
28307 Change type to hash_table. Update dependent calls and types.
28308
28309 * config/t-sol2: Update for above.
28310
28311 2013-05-29 Teresa Johnson <tejohnson@google.com>
28312
28313 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
28314 functions are not yet marked as defined.
28315
28316 2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
28317 Pat Haugen <pthaugen@us.ibm.com>
28318 Peter Bergner <bergner@vnet.ibm.com>
28319
28320 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
28321 instructions.
28322 (VEC_A): Likewise.
28323 (VEC_C): Likewise.
28324 (vrotl<mode>3): Likewise.
28325 (vashl<mode>3): Likewise.
28326 (vlshr<mode>3): Likewise.
28327 (vashr<mode>3): Likewise.
28328
28329 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28330 support for power8 V2DI builtins.
28331
28332 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
28333 power8 V2DI builtins.
28334 (vupkhsw): Likewise.
28335 (vupklsw): Likewise.
28336 (vaddudm): Likewise.
28337 (vminsd): Likewise.
28338 (vmaxsd): Likewise.
28339 (vminud): Likewise.
28340 (vmaxud): Likewise.
28341 (vpkudum): Likewise.
28342 (vpksdss): Likewise.
28343 (vpkudus): Likewise.
28344 (vpksdus): Likewise.
28345 (vrld): Likewise.
28346 (vsld): Likewise.
28347 (vsrd): Likewise.
28348 (vsrad): Likewise.
28349 (vsubudm): Likewise.
28350 (vcmpequd): Likewise.
28351 (vcmpgtsd): Likewise.
28352 (vcmpgtud): Likewise.
28353 (vcmpequd_p): Likewise.
28354 (vcmpgtsd_p): Likewise.
28355 (vcmpgtud_p): Likewise.
28356 (vupkhsw): Likewise.
28357 (vupklsw): Likewise.
28358 (vaddudm): Likewise.
28359 (vmaxsd): Likewise.
28360 (vmaxud): Likewise.
28361 (vminsd): Likewise.
28362 (vminud): Likewise.
28363 (vpksdss): Likewise.
28364 (vpksdus): Likewise.
28365 (vpkudum): Likewise.
28366 (vpkudus): Likewise.
28367 (vrld): Likewise.
28368 (vsld): Likewise.
28369 (vsrad): Likewise.
28370 (vsrd): Likewise.
28371 (vsubudm): Likewise.
28372
28373 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
28374 support for power8 V2DI instructions.
28375
28376 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
28377 power8 V2DI instructions. Combine pack and unpack insns to use an
28378 iterator for each mode. Check whether a particular mode supports
28379 Altivec instructions instead of just checking TARGET_ALTIVEC.
28380 (UNSPEC_VPKUWUM): Likewise.
28381 (UNSPEC_VPKSHSS): Likewise.
28382 (UNSPEC_VPKSWSS): Likewise.
28383 (UNSPEC_VPKUHUS): Likewise.
28384 (UNSPEC_VPKSHUS): Likewise.
28385 (UNSPEC_VPKUWUS): Likewise.
28386 (UNSPEC_VPKSWUS): Likewise.
28387 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
28388 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
28389 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
28390 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
28391 (UNSPEC_VUPKHSB): Likewise.
28392 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
28393 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
28394 (UNSPEC_VUPKHSH): Likewise.
28395 (UNSPEC_VUPKLSB): Likewise.
28396 (UNSPEC_VUPKLSH): Likewise.
28397 (VI2): Likewise.
28398 (VI_char): Likewise.
28399 (VI_scalar): Likewise.
28400 (VI_unit): Likewise.
28401 (VP): Likewise.
28402 (VP_small): Likewise.
28403 (VP_small_lc): Likewise.
28404 (VU_char): Likewise.
28405 (add<mode>3): Likewise.
28406 (altivec_vaddcuw): Likewise.
28407 (altivec_vaddu<VI_char>s): Likewise.
28408 (altivec_vadds<VI_char>s): Likewise.
28409 (sub<mode>3): Likewise.
28410 (altivec_vsubcuw): Likewise.
28411 (altivec_vsubu<VI_char>s): Likewise.
28412 (altivec_vsubs<VI_char>s): Likewise.
28413 (altivec_vavgs<VI_char>): Likewise.
28414 (altivec_vcmpbfp): Likewise.
28415 (altivec_eq<mode>): Likewise.
28416 (altivec_gt<mode>): Likewise.
28417 (altivec_gtu<mode>): Likewise.
28418 (umax<mode>3): Likewise.
28419 (smax<mode>3): Likewise.
28420 (umin<mode>3): Likewise.
28421 (smin<mode>3): Likewise.
28422 (altivec_vpkuhum): Likewise.
28423 (altivec_vpkuwum): Likewise.
28424 (altivec_vpkshss): Likewise.
28425 (altivec_vpkswss): Likewise.
28426 (altivec_vpkuhus): Likewise.
28427 (altivec_vpkshus): Likewise.
28428 (altivec_vpkuwus): Likewise.
28429 (altivec_vpkswus): Likewise.
28430 (altivec_vpks<VI_char>ss): Likewise.
28431 (altivec_vpks<VI_char>us): Likewise.
28432 (altivec_vpku<VI_char>us): Likewise.
28433 (altivec_vpku<VI_char>um): Likewise.
28434 (altivec_vrl<VI_char>): Likewise.
28435 (altivec_vsl<VI_char>): Likewise.
28436 (altivec_vsr<VI_char>): Likewise.
28437 (altivec_vsra<VI_char>): Likewise.
28438 (altivec_vsldoi_<mode>): Likewise.
28439 (altivec_vupkhsb): Likewise.
28440 (altivec_vupkhs<VU_char>): Likewise.
28441 (altivec_vupkls<VU_char>): Likewise.
28442 (altivec_vupkhsh): Likewise.
28443 (altivec_vupklsb): Likewise.
28444 (altivec_vupklsh): Likewise.
28445 (altivec_vcmpequ<VI_char>_p): Likewise.
28446 (altivec_vcmpgts<VI_char>_p): Likewise.
28447 (altivec_vcmpgtu<VI_char>_p): Likewise.
28448 (abs<mode>2): Likewise.
28449 (vec_unpacks_hi_v16qi): Likewise.
28450 (vec_unpacks_hi_v8hi): Likewise.
28451 (vec_unpacks_lo_v16qi): Likewise.
28452 (vec_unpacks_hi_<VP_small_lc>): Likewise.
28453 (vec_unpacks_lo_v8hi): Likewise.
28454 (vec_unpacks_lo_<VP_small_lc>): Likewise.
28455 (vec_pack_trunc_v8h): Likewise.
28456 (vec_pack_trunc_v4si): Likewise.
28457 (vec_pack_trunc_<mode>): Likewise.
28458
28459 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
28460 V2DI builtins.
28461 (vec_vmaxsd): Likewise.
28462 (vec_vmaxud): Likewise.
28463 (vec_vminsd): Likewise.
28464 (vec_vminud): Likewise.
28465 (vec_vpksdss): Likewise.
28466 (vec_vpksdus): Likewise.
28467 (vec_vpkudum): Likewise.
28468 (vec_vpkudus): Likewise.
28469 (vec_vrld): Likewise.
28470 (vec_vsld): Likewise.
28471 (vec_vsrad): Likewise.
28472 (vec_vsrd): Likewise.
28473 (vec_vsubudm): Likewise.
28474 (vec_vupkhsw): Likewise.
28475 (vec_vupklsw): Likewise.
28476
28477 2013-05-29 Jan Hubicka <jh@suse.cz>
28478
28479 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
28480 flags; reorder rest of fields in more consistent way.
28481 (varpool_node): Remove analyzed, finalized and alias.
28482 (cgraph_ndoe): Likewise.
28483 (symtab_alias_ultimate_target): New function.
28484 (cgraph_function_node): Move offline.
28485 (cgraph_reset_node): Declare.
28486 (cgraph_comdat_can_be_unshared_p): Remove.
28487 (varpool_remove_initializer): Declare.
28488 (varpool_first_defined_variable, varpool_next_defined_variable
28489 cgraph_first_defined_function, cgraph_next_defined_function): Update.
28490 (cgraph_function_with_gimple_body_p): Update.
28491 (varpool_all_refs_explicit_p): Update.
28492 (symtab_alias_target): New function.
28493 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
28494 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
28495 (cgraph_function_or_thunk_node): Simplify using
28496 symtab_alias_ultimate_target.
28497 (varpool_variable_node): Likewise.
28498 * cgraph.c (cgraph_create_function_alias): Update.
28499 (cgraph_add_thunk): Update.
28500 (cgraph_remove_node): Update.
28501 (dump_cgraph_node): Do not dump removed flags.
28502 (cgraph_function_body_availability): Update.
28503 (cgraph_propagate_frequency): Update.
28504 (verify_cgraph_node): Check sanity of local flag.
28505 (cgraph_function_node): Move here from cgraph.h; revamp for
28506 cgraph_function_or_thunk_node.
28507 * lto-symtab.c (lto_varpool_replace_node): Update.
28508 (lto_symtab_resolve_can_prevail_p): Update.
28509 (lto_symtab_merge_cgraph_nodes): Update.
28510 * ipa-cp.c (determine_versionability, initialize_node_lattices,
28511 propagate_constants_accross_call, devirtualization_time_bonus,
28512 ipcp_propagate_stage): Update.
28513 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
28514 * ipa-inline-transform.c (clone_inlined_nodes,
28515 preserve_function_body_p): Update.
28516 * ipa-reference.c (propagate): Update.
28517 (write_node_summary_p): Update.
28518 * toplev.c (wrapup_global_declaration_2): Update.
28519 * cgraphunit.c (cgraph_analyze_function): Rename to ...
28520 (analyze_function) ... this one.
28521 (cgraph_process_new_functions): Update.
28522 (cgraph_reset_node): Export.
28523 (cgraph_finalize_function): Update.
28524 (cgraph_add_new_function): Update.
28525 (process_function_and_variable_attributes): Update.
28526 (varpool_finalize_decl): Update.
28527 (symbol_finalized): Remove.
28528 (symbol_finalized_and_needed): Rename to ...
28529 (symbol_defined_and_needed): ... update.
28530 (cgraph_analyze_functions): Update.
28531 (handle_alias_pairs): Update.
28532 (mark_functions_to_output): Update.
28533 (assemble_thunk): Update.
28534 (output_in_order): Update.
28535 (output_weakrefs): Update.
28536 (finalize_compilation_unit): Update.
28537 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
28538 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
28539 input_node, input_varpool_node): Update.
28540 * dbxout.c (dbxout_expand_expr): Update.
28541 * cgraphclones.c (cgraph_clone_node): Update.
28542 (cgraph_copy_node_for_versioning): Update.
28543 (cgraph_materialize_clone): Update.
28544 (cgraph_materialize_all_clones): Update.
28545 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
28546 propagate_pure_const, propagate_nothrow): Update.
28547 * lto-streamer-out.c (lto_output, write_symbol): Update.
28548 * ipa-utils.c (ipa_reverse_postorder): Update.
28549 * ipa-inline.c (can_inline_edge_p): Update.
28550 (update_caller_keys, ipa_inline): Update.
28551 * dwarf2out.c (reference_to_unused,
28552 premark_types_used_by_global_vars_helper): Update.
28553 * tree-eh.c (tree_could_trap_p): Update.
28554 * ipa-split.c (consider_split, execute_split_functions): Update.
28555 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
28556 has_addr_references_p): Update; move ahead in file for better
28557 readability.
28558 (process_references): Simplify.
28559 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
28560 bodies are removed.
28561 (cgraph_comdat_can_be_unshared_p): Make static.
28562 (cgraph_externally_visible_p): Update.
28563 (varpool_externally_visible_p): Update.
28564 (function_and_variable_visibility): Update.
28565 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
28566 ipa_tm_mark_force_output_node): Update.
28567 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
28568 estimate_edge_devirt_benefit, inline_generate_summary,
28569 inline_write_summary): Update.
28570 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
28571 * ipa-prop.c (ipa_compute_jump_functions): Update.
28572 (ipa_print_node_params, ipa_prop_read_section,
28573 ipa_update_after_lto_read, read_replacements_section): Update.
28574 * varasm.c (mark_decl_referenced): Update.
28575 (assemble_alias, dump_tm_clone_pairs): Update.
28576 * tree-inline.c (copy_bb): Update.
28577 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
28578 Update.
28579 * symtab.c (dump_symtab_base): Print new flags.
28580 (verify_symtab_base): Verify new flags.
28581 (symtab_alias_ultimate_target): New function.
28582 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
28583 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
28584 Update.
28585 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
28586 Update.
28587 * i386.c (ix86_get_function_versions_dispatcher,
28588 ix86_generate_version_dispatcher_body): Update.
28589 (fold_builtin_cpu): Use varpool_add_new_variable.
28590 * varpool.c (varpool_remove_initializer): Break out from ...
28591 (varpool_remove_node): ... this one.
28592 (dump_varpool_node, varpool_node_for_asm,
28593 cgraph_variable_initializer_availability, varpool_analyze_node,
28594 varpool_assemble_decl, varpool_remove_unreferenced_decls,
28595 varpool_finalize_named_section_flags, varpool_create_variable_alias):
28596 Update.
28597
28598 2013-05-29 Jan Hubicka <jh@suse.cz>
28599
28600 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
28601
28602 2013-05-29 Easwaran Raman <eraman@google.com>
28603
28604 PR tree-optimization/57442
28605 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
28606 when control exits the main loop.
28607
28608 2013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
28609
28610 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
28611 and RX600.
28612 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
28613 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
28614 * rx/t-rx: Add rx100 under multi library matches option for nofpu
28615 option.
28616
28617 2013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28618
28619 PR tree-optimization/57441
28620 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
28621 Don't limit size of incr_vec to number of candidates.
28622
28623 2013-05-29 Steve Ellcey <sellcey@imgtec.com>
28624
28625 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
28626 and mips16 directories.
28627 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
28628 (MULTILIB_DIRNAMES): Ditto.
28629 (MULTILIB_EXCEPTIONS): Add new exceptions.
28630 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
28631 (MULTILIB_DIRNAMES): Ditto.
28632 (MULTILIB_EXCEPTIONS): Add new exceptions.
28633
28634 2012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
28635 Marcus Shawcroft <marcus.shawcroft@arm.com>
28636
28637 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
28638 SYMBOL_TINY_ABSOLUTE.
28639 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
28640 SYMBOL_TINY_ABSOLUTE.
28641 (aarch64_expand_mov_immediate): Likewise.
28642 (aarch64_classify_symbol): Likewise.
28643 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
28644 Permit SYMBOL_TINY_ABSOLUTE.
28645 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
28646
28647 2013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
28648 Marcus Shawcroft <marcus.shawcroft@arm.com>
28649
28650 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
28651 Refactor if/switch. Replace gcc_assert with if.
28652
28653 2013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
28654
28655 * config/i386/i386.c (initial_ix86_tune_features): Enable
28656 FP Reassociation for AMD bdver1 and bdver2.
28657
28658 2013-05-29 Martin Jambor <mjambor@suse.cz>
28659
28660 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
28661 and IMAGPART_EXPR do not occur within other handled_components.
28662
28663 2013-05-29 Richard Biener <rguenther@suse.de>
28664
28665 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
28666 access on whether the use is in the BB we currently try to
28667 vectorize.
28668 (vect_bb_vectorization_profitable_p): Pass the BB we currently
28669 vectorize to vect_bb_slp_scalar_cost.
28670
28671 2013-05-29 Richard Biener <rguenther@suse.de>
28672
28673 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
28674 computing scalar cost offsetted by stmts that are kept live
28675 by scalar uses.
28676 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
28677 for computation of scalar cost.
28678
28679 2013-05-28 Steve Ellcey <sellcey@mips.com>
28680
28681 * config/mips/mips-cpus.def (mips32r2): Change processor type.
28682
28683 2013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
28684
28685 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
28686 array notation built-in reduction functions.
28687 * doc/passes.texi (Passes): Added documentation about changes done
28688 for Cilk Plus.
28689 * doc/invoke.texi (C Dialect Options): Added documentation about
28690 the -fcilkplus flag.
28691 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
28692 (BUILTINS_DEF): Depend on cilkplus.def.
28693 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
28694 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
28695 * cilkplus.def: New file.
28696
28697 2013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
28698
28699 PR rtl-optimization/57439
28700 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
28701
28702 2013-05-28 Easwaran Raman <eraman@google.com>
28703
28704 PR tree-optimization/57337
28705 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
28706 (find_insert_point): Correctly identify the insertion point
28707 when two statements with the same UID is compared.
28708
28709 2013-05-28 Richard Biener <rguenther@suse.de>
28710
28711 PR tree-optimization/56787
28712 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
28713 from the list of data references.
28714 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
28715 clobbers.
28716 (vect_analyze_loop_operations): Likewise.
28717 (vect_transform_loop): Remove clobbers.
28718
28719 2013-05-28 Martin Jambor <mjambor@suse.cz>
28720
28721 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
28722 and REALPART_EXPRs have scalar type.
28723
28724 2013-05-28 Richard Biener <rguenther@suse.de>
28725
28726 PR tree-optimization/57411
28727 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
28728 virtual operands.
28729 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
28730 virtual operand propagation.
28731
28732 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
28733
28734 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
28735 destination register for bmasksi_vis.
28736 (vector_init_bshuffle): Likewise.
28737 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
28738
28739 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
28740
28741 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
28742 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
28743 mode if the instruction isn't available in the original mode.
28744 * config/sparc/sparc.opt (mfix-ut699): New option.
28745 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
28746 (divdf3): Turn into expander.
28747 (divdf3_nofix): New insn.
28748 (divdf3_fix): Likewise.
28749 (divsf3): Disable if -mfix-ut699.
28750 (sqrtdf2): Turn into expander.
28751 (sqrtdf2_nofix): New insn.
28752 (sqrtdf2_fix): Likewise.
28753 (sqrtsf2): Disable if -mfix-ut699.
28754
28755 2013-05-27 Richard Biener <rguenther@suse.de>
28756
28757 PR middle-end/57412
28758 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
28759 block for the new loop.
28760
28761 2013-05-27 Richard Biener <rguenther@suse.de>
28762
28763 PR tree-optimization/57343
28764 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
28765 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
28766 (number_of_iterations_cond): Do not build the folded tree.
28767
28768 2013-05-27 Richard Biener <rguenther@suse.de>
28769
28770 Revert
28771 PR middle-end/57381
28772 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
28773 OEP_CONSTANT_ADDRESS_OF retained.
28774
28775 PR tree-optimization/57417
28776 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
28777 for unchanged base.
28778 (set_ssa_val_to): Compare addresses using
28779 get_addr_base_and_unit_offset.
28780
28781 2013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
28782
28783 PR rtl-optimization/56833
28784 * postreload.c (move2add_record_mode): New function.
28785 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
28786 (move2add_use_add2_insn): Use move2add_record_sym_value.
28787 (move2add_use_add3_insn): Likewise.
28788 (reload_cse_move2add): Use move2add_valid_value_p and
28789 move2add_record_mode. Invalidate call-clobbered and REG_INC
28790 affected regs by setting reg_mode to VOIDmode.
28791 (move2add_note_store): Don't pretend the inside of a SUBREG is
28792 the actual destination. Invalidate single/leading registers by
28793 setting reg_mode to VOIDmode.
28794 Use move2add_record_sym_value, move2add_valid_value_p and
28795 move2add_record_mode.
28796
28797 2013-05-27 Richard Biener <rguenther@suse.de>
28798
28799 PR tree-optimization/57396
28800 * tree-affine.c (double_int_constant_multiple_p): Properly
28801 return false for val == 0 and div != 0.
28802
28803 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
28804
28805 * config/mips/mips.h: Use #elif in preprocessor conditions.
28806
28807 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
28808
28809 PR target/53916
28810 * config/mips/constraints.md (kl): New constraint.
28811 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
28812 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
28813 constraint for operand 0. Split after CSE for MIPS16. Emit a move
28814 from LO for MIPS16.
28815 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
28816
28817 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
28818
28819 PR target/55777
28820 * config/mips/mips.c (mips_can_inline_p): New function.
28821 (TARGET_CAN_INLINE_P): Define.
28822
28823 2013-05-25 Steven Bosscher <steven@gcc.gnu.org>
28824
28825 * sched-int.h (ds_t, dw_t): Make unsigned int.
28826 Fix documentation that describes how all the ds_t bits are used.
28827 Reserve the last bit for delayed-branch scheduling.
28828 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
28829 (BITS_PER_DEP_WEAK): Fix definition and documentation.
28830 (gen_dep_weak_1): Remove prototype.
28831 * sched-deps.c (get_dep_weak_1): Make static.
28832 * target.def (speculate_insn, needs_block_p, gen_spec_check,
28833 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
28834 * doc/tm.texi: Regenerate.
28835 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
28836
28837 2013-05-24 Steven Bosscher <steven@gcc.gnu.org>
28838
28839 PR debug/56950
28840 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
28841
28842 2013-05-24 Nathan Sidwell <nathan@codesourcery.com>
28843 Sandra Loosemore <sandra@codesourcery.com>
28844
28845 * config.gcc (powerpc-*): Allow native for with-cpu.
28846
28847 2013-05-24 Jeff Law <law@redhat.com>
28848
28849 PR tree-optimization/57124
28850 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
28851 conversion feeding a condition if the range has an overflow
28852 if -fstrict-overflow. Add warnings for when we do make the
28853 transformation.
28854
28855 2013-05-24 Dehao Chen <dehao@google.com>
28856
28857 * tree-cfg.c (locus_discrim_map): Fix the typo.
28858 (locus_discrim_hasher): Likewise.
28859 (locus_discrim_hasher::hash): Likewise.
28860 (locus_discrim_hasher::equal): Likewise.
28861
28862 2013-05-24 Martin Jambor <mjambor@suse.cz>
28863
28864 PR tree-optimization/57294
28865 * cgraph.h (ipa_record_stmt_references): Declare.
28866 * cgraphbuild.c (ipa_record_stmt_references): New function.
28867 (build_cgraph_edges): Use ipa_record_stmt_references.
28868 (rebuild_cgraph_edges): Likewise.
28869 (cgraph_rebuild_references): Likewise.
28870 * ipa-prop.c (ipa_modify_call_arguments): Discard references
28871 associated with the old statement and build references from the
28872 newly built statements.
28873 * ipa-ref.c (ipa_remove_stmt_references): New function.
28874 * ipa-ref.h (ipa_remove_stmt_references): Declare.
28875
28876 2013-05-24 Vladimir Makarov <vmakarov@redhat.com>
28877
28878 * lra-constraints.c (emit_spill_move): Use smaller mode for
28879 mem-mem moves.
28880 (check_and_process_move): Consider mem-reg moves for secondary
28881 too.
28882 (curr_insn_transform): Don't lose insns emitted before for
28883 secondary memory moves.
28884 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
28885 reg set up in the current insn.
28886
28887 2013-05-24 Dehao Chen <dehao@google.com>
28888
28889 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
28890 hash function.
28891 (locus_descrim_hasher::equal): Likewise.
28892 (build_gimple_cfg): New discriminator assignment algorithm.
28893 (make_edges): Likewise.
28894 (next_discriminator_for_locus): Likewise.
28895 (same_line_p): Likewise.
28896 (assign_discriminators): Likewise.
28897 (make_cond_expr_edges): Likewise.
28898 (make_gimple_switch_edges): Likewise.
28899 (make_goto_expr_edges): Likewise.
28900 (make_gimple_asm_edges): Likewise.
28901
28902 2013-05-24 Ian Bolton <ian.bolton@arm.com>
28903
28904 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
28905 X format specifier to only display bottom 16 bits.
28906 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
28907 immediate to match for operand 2, since it will be masked.
28908
28909 2013-05-24 Richard Biener <rguenther@suse.de>
28910
28911 PR tree-optimization/57287
28912 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
28913 all SSA names that occur in abnormal PHIs.
28914
28915 2013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
28916
28917 PR tree-ssa/57385
28918 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
28919 that index is not negative.
28920
28921 2013-05-24 Eric Botcazou <ebotcazou@adacore.com>
28922
28923 PR rtl-optimization/55177
28924 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
28925 (simplify_byte_swapping_operation): New.
28926 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
28927 (simplify_relational_operation_1): Deal with BSWAP.
28928
28929 2013-05-23 Richard Henderson <rth@redhat.com>
28930
28931 PR target/56742
28932 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
28933 (ix86_reorg): Call it.
28934
28935 2013-05-23 Uros Bizjak <ubizjak@gmail.com>
28936
28937 PR target/57379
28938 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
28939 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
28940 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
28941
28942 2013-05-23 Christian Bruel <christian.bruel@st.com>
28943
28944 PR debug/57351
28945 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
28946
28947 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
28948 Marcus Shawcroft <marcus.shawcroft@arm.com>
28949
28950 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
28951 * config/aarch64/constraints.md (Usa): Remove.
28952 * doc/md.texi (AArch64 Usa): Remove.
28953
28954 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
28955 Marcus Shawcroft <marcus.shawcroft@arm.com>
28956
28957 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
28958 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
28959 * config/aarch64/predicates.md (aarch64_const_address): Remove.
28960 (aarch64_mov_operand): Use aarch64_mov_operand_p.
28961
28962 2013-05-23 Vidya Praveen <vidyapraveen@arm.com>
28963
28964 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
28965 instruction (AdvSIMD).
28966 * config/aarch64/aarch64-builtins.c
28967 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
28968 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
28969
28970 2013-05-23 Martin Jambor <mjambor@suse.cz>
28971
28972 PR middle-end/57347
28973 * tree.h (contains_bitfld_component_ref_p): Declare.
28974 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
28975 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
28976 caller.
28977 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
28978 not access a bit-field. Assert all final offsets are byte-aligned.
28979
28980 2013-05-23 Richard Biener <rguenther@suse.de>
28981
28982 PR tree-optimization/57380
28983 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
28984 least one invariant or re-used load.
28985 * passes.c (init_optimization_passes): Move pass_phiprop before
28986 pass_forwprop.
28987
28988 2013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
28989
28990 * config/aarch64/aarch64-simd.md
28991 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
28992
28993 2013-05-23 Richard Biener <rguenther@suse.de>
28994
28995 PR middle-end/57381
28996 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
28997 OEP_CONSTANT_ADDRESS_OF retained.
28998
28999 2013-05-23 Jakub Jelinek <jakub@redhat.com>
29000
29001 PR middle-end/57344
29002 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
29003 don't lower unit. Handle unit not being always BITS_PER_WORD.
29004
29005 2013-05-23 Richard Biener <rguenther@suse.de>
29006
29007 PR rtl-optimization/57341
29008 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
29009 instead of true_dependence.
29010
29011 2013-05-22 David Malcolm <dmalcolm@redhat.com>
29012
29013 * bb-reorder.c (branch_threshold): Make const.
29014 (exec_threshold): Ditto.
29015
29016 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
29017 Pat Haugen <pthaugen@us.ibm.com>
29018 Peter Bergner <bergner@vnet.ibm.com>
29019
29020 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
29021 documentation for the power8 crypto builtins.
29022
29023 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
29024
29025 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
29026 macros for defining power8 builtin functions.
29027 (BU_P8V_AV_2): Likewise.
29028 (BU_P8V_AV_P): Likewise.
29029 (BU_P8V_VSX_1): Likewise.
29030 (BU_P8V_OVERLOAD_1): Likewise.
29031 (BU_P8V_OVERLOAD_2): Likewise.
29032 (BU_CRYPTO_1): Likewise.
29033 (BU_CRYPTO_2): Likewise.
29034 (BU_CRYPTO_3): Likewise.
29035 (BU_CRYPTO_OVERLOAD_1): Likewise.
29036 (BU_CRYPTO_OVERLOAD_2): Likewise.
29037 (XSCVSPDP): Fix typo, point to the correct instruction.
29038 (VCIPHER): Add power8 crypto builtins.
29039 (VCIPHERLAST): Likewise.
29040 (VNCIPHER): Likewise.
29041 (VNCIPHERLAST): Likewise.
29042 (VPMSUMB): Likewise.
29043 (VPMSUMH): Likewise.
29044 (VPMSUMW): Likewise.
29045 (VPERMXOR_V2DI): Likewise.
29046 (VPERMXOR_V4SI: Likewise.
29047 (VPERMXOR_V8HI: Likewise.
29048 (VPERMXOR_V16QI: Likewise.
29049 (VSHASIGMAW): Likewise.
29050 (VSHASIGMAD): Likewise.
29051 (VPMSUM): Likewise.
29052 (VPERMXOR): Likewise.
29053 (VSHASIGMA): Likewise.
29054
29055 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
29056 __CRYPTO__ if the crypto instructions are available.
29057 (altivec_overloaded_builtins): Add support for overloaded power8
29058 builtins.
29059
29060 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
29061 support for power8 crypto builtins.
29062 (builtin_function_type): Likewise.
29063 (altivec_init_builtins): Add support for builtins that take vector
29064 long long (V2DI) arguments.
29065
29066 * config/rs6000/crypto.md: New file, define power8 crypto
29067 instructions.
29068
29069 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
29070 Pat Haugen <pthaugen@us.ibm.com>
29071 Peter Bergner <bergner@vnet.ibm.com>
29072
29073 * doc/invoke.texi (Option Summary): Add power8 options.
29074 (RS/6000 and PowerPC Options): Likewise.
29075
29076 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
29077 constraints.md instead of rs6000.h. Reorder w* constraints. Add
29078 wm, wn, wr documentation.
29079
29080 * config/rs6000/constraints.md (wm): New constraint for VSX
29081 registers if direct move instructions are enabled.
29082 (wn): New constraint for no registers.
29083 (wq): New constraint for quad word even GPR registers.
29084 (wr): New constraint if 64-bit instructions are enabled.
29085 (wv): New constraint if power8 vector instructions are enabled.
29086 (wQ): New constraint for quad word memory locations.
29087
29088 * config/rs6000/predicates.md (const_0_to_15_operand): New
29089 constraint for 0..15 for crypto instructions.
29090 (gpc_reg_operand): If VSX allow registers in VSX registers as well
29091 as GPR and floating point registers.
29092 (int_reg_operand): New predicate to match only GPR registers.
29093 (base_reg_operand): New predicate to match base registers.
29094 (quad_int_reg_operand): New predicate to match even GPR registers
29095 for quad memory operations.
29096 (vsx_reg_or_cint_operand): New predicate to allow vector logical
29097 operations in both GPR and VSX registers.
29098 (quad_memory_operand): New predicate for quad memory operations.
29099 (reg_or_indexed_operand): New predicate for direct move support.
29100
29101 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
29102 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
29103 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
29104 (POWERPC_MASKS): Add power8 options.
29105 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
29106 various options.
29107
29108 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
29109 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
29110
29111 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
29112 (-mpower8-fusion): New power8 options.
29113 (-mpower8-fusion-sign): Likewise.
29114 (-mpower8-vector): Likewise.
29115 (-mcrypto): Likewise.
29116 (-mdirect-move): Likewise.
29117 (-mquad-memory): Likewise.
29118
29119 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
29120 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
29121 registers.
29122 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
29123 (rs6000_debug_vector_unit): Add p8_vector.
29124 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
29125 definitions. Also print fusion state.
29126 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
29127 (rs6000_builtin_mask_calculate): Add power8 builtin support.
29128 (rs6000_option_override_internal): Add support for power8.
29129 (rs6000_common_init_builtins): Add debugging for skipped builtins
29130 if -mdebug=builtin.
29131 (rs6000_adjust_cost): Add power8 support.
29132 (rs6000_issue_rate): Likewise.
29133 (insn_must_be_first_in_group): Likewise.
29134 (insn_must_be_last_in_group): Likewise.
29135 (force_new_group): Likewise.
29136 (rs6000_register_move_cost): Likewise.
29137 (rs6000_opt_masks): Likewise.
29138
29139 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
29140 power8 capable assembler, default to power7 options.
29141 (TARGET_DIRECT_MOVE): Likewise.
29142 (TARGET_CRYPTO): Likewise.
29143 (TARGET_P8_VECTOR): Likewise.
29144 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
29145 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
29146 (VECTOR_MEM_P8_VECTOR_P): Likewise.
29147 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
29148 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
29149 (TARGET_XSCVDPSPN): Likewise.
29150 (TARGET_XSCVSPDPN): Likewsie.
29151 (TARGET_SYNC_HI_QI): Likewise.
29152 (TARGET_SYNC_TI): Likewise.
29153 (MASK_CRYPTO): Likewise.
29154 (MASK_DIRECT_MOVE): Likewise.
29155 (MASK_P8_FUSION): Likewise.
29156 (MASK_P8_VECTOR): Likewise.
29157 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
29158 temporary used by some of the direct move instructions to get two FP
29159 temporary registers does not force creation of a stack frame.
29160 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
29161 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
29162 that any VSX registers are tieable, even if they are also an
29163 Altivec vector mode.
29164 (r6000_reg_class_enum): Add wm, wr, wv constraints.
29165 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
29166 (RS6000_BTM_CRYPTO): Likewise.
29167 (RS6000_BTM_COMMON): Likewise.
29168
29169 * config/rs6000/rs6000.md (cpu attribute): Add power8.
29170 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
29171 (enum rs6000_vector): Add power8 vector support.
29172
29173 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29174
29175 PR target/19599
29176 PR target/57340
29177 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
29178 (any_sibcall_could_use_r3): this and handle indirect calls.
29179 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
29180
29181 2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29182
29183 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
29184
29185 2013-05-22 Richard Biener <rguenther@suse.de>
29186
29187 PR middle-end/57349
29188 * profile.c (branch_prob): Do not split blocks that are
29189 abnormally receiving from ECF_RETURNS_TWICE functions.
29190
29191 2013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
29192
29193 * recog.c (offsettable_address_addr_space_p): Fix calculation of
29194 address mode. Move pointer mode initialization to the same place.
29195
29196 2013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
29197
29198 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
29199 while it has any effect.
29200
29201 2013-05-21 Easwaran Raman <eraman@google.com>
29202
29203 PR tree-optimization/57322
29204 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
29205 UID of the statement added to the BB to be 1.
29206
29207 2013-05-21 Jakub Jelinek <jakub@redhat.com>
29208
29209 PR tree-optimization/57331
29210 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
29211 of conversion from pointer type to integral type with integer.
29212
29213 2013-05-21 Martin Jambor <mjambor@suse.cz>
29214
29215 PR lto/57289
29216 * ipa-prop.c (ipa_read_node_info): Process param_used and
29217 controlled_uses in the same order as when writing.
29218
29219 2013-05-21 Magnus Granberg <baldrick@free.fr>
29220
29221 PR plugins/56754
29222 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
29223
29224 2013-05-21 Richard Biener <rguenther@suse.de>
29225
29226 PR tree-optimization/57318
29227 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
29228 estimate stmts with side-effects as likely eliminated.
29229
29230 2013-05-21 Richard Biener <rguenther@suse.de>
29231
29232 PR tree-optimization/57330
29233 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
29234 preserve the call stmts fntype.
29235
29236 2013-05-21 Richard Biener <rguenther@suse.de>
29237
29238 PR tree-optimization/57303
29239 * tree-ssa-sink.c (statement_sink_location): Improve killing
29240 stmt detection and properly handle self-assignments.
29241
29242 2013-05-21 Christian Bruel <christian.bruel@st.com>
29243
29244 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
29245 spanning registers. LEAF_REG_REMAP is supported only for contiguous
29246 registers. Set register size out of the PARALLEL loop.
29247
29248 2013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
29249
29250 PR target/56547
29251 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
29252 (*fmasf4, *fmasf4_media): New insns.
29253
29254 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
29255
29256 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
29257 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
29258 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
29259 (mips_idiv_insns): Update the comments to say that the returned
29260 instruction counts are in units of BASE_INSN_LENGTH.
29261 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
29262 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
29263 using 2 rather than 4 as the length of indirect MIPS16 and
29264 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
29265 length of a NOP. Don't divide MIPS16 lengths by 2.
29266 (mips16_split_long_branches): Assume a branch is long if the
29267 length is greater than 4 rather than 8.
29268 * config/mips/mips.md (length): Give MIPS16 lengths directly,
29269 rather than multiplying them by 2. Multiply instruction counts
29270 by BASE_INSN_LENGTH rather than 4.
29271 (*jump_mips16, tls_get_tp_mips16_<mode>)
29272 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
29273
29274 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
29275
29276 * config/mips/mips.md (extended_mips16): Remove branch case.
29277 (length): Remove duplicated extended_mips16 test.
29278
29279 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
29280
29281 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
29282
29283 2013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
29284
29285 * recog.h (Recog_data): Rename to...
29286 (recog_data_d): ...this.
29287 (recog_data): Update accordingly.
29288 * recog.c (recog_data): Likewise.
29289 * reload.c (save_recog_data): Likewise.
29290 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
29291 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
29292
29293 2013-05-17 Julian Brown <julian@codesourcery.com>
29294
29295 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
29296 found in a REG_EQUAL note, invalidate it.
29297
29298 2013-05-17 Easwaran Raman <eraman@google.com>
29299
29300 * tree-ssa-reassoc.c (find_insert_point): New function.
29301 (insert_stmt_after): Likewise.
29302 (get_def_stmt): Likewise.
29303 (ensure_ops_are_available): Likewise.
29304 (not_dominated_by): Likewise.
29305 (rewrite_expr_tree): Do not move statements beyond what is
29306 necessary. Remove call to swap_ops_for_binary_stmt...
29307 (reassociate_bb): ... and move it here.
29308 (build_and_add_sum): Assign UIDs for new statements.
29309 (linearize_expr): Likewise.
29310 (do_reassoc): Renumber gimple statement UIDs.
29311
29312 2013-05-17 Jan Hubicka <jh@suse.cz>
29313
29314 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
29315 weakrefs.
29316 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
29317 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
29318 weakrefs.
29319 (output_weakrefs): Update.
29320
29321 2013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
29322 Martin Jambor <mjambor@suse.cz>
29323
29324 PR middle-end/57276
29325 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
29326 value that corresponds to the given aggval is found in values vector.
29327
29328 2013-05-17 Uros Bizjak <ubizjak@gmail.com>
29329
29330 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
29331 sse, sse2, sse3, ssse3 and sse4a flags to options.
29332
29333 2013-05-17 David Malcolm <dmalcolm@redhat.com>
29334
29335 * gengtype-state.c: (s_expr_writer): New class, to handle
29336 prettifying of output layout of s-expressions.
29337 (state_writer): New class, to write out gtype.state.
29338 (state_written_type_count): Move this variable into member data of
29339 state_writer.
29340 (s_expr_writer::s_expr_writer): New code: constructor for new class
29341 (state_writer::state_writer(): ditto
29342 (s_expr_writer::write_new_line): New function
29343 (s_expr_writer::write_any_indent): ditto
29344 (s_expr_writer::begin_s_expr): ditto
29345 (s_expr_writer::end_s_expr): ditto
29346 (write_state_fileloc): convert to method of state_writer...
29347 (state_writer:: write_state_fileloc): ...and use methods of
29348 s_expr_writer to write indentation into the gtype.state output file
29349 to visually represent the hierarchical structure of the list
29350 structures
29351 (write_state_fields): ditto, renaming to...
29352 (state_writer::write_state_fields)
29353 (write_state_a_string): ditto, renaming to...
29354 (state_writer::write_state_a_string)
29355 (write_state_string_option): ditto, renaming to...
29356 (state_writer::write_state_string_option)
29357 (write_state_type_option): ditto, renaming to...
29358 (state_writer::write_state_type_option)
29359 (write_state_nested_option): ditto, renaming to...
29360 (state_writer::write_state_nested_option)
29361 (write_state_option): ditto, renaming to...
29362 (state_writer::write_state_option)
29363 (write_state_options): ditto, renaming to...
29364 (state_writer::write_state_options)
29365 (write_state_lang_bitmap): ditto, renaming to...
29366 (state_writer::write_state_lang_bitmap)
29367 (write_state_version): ditto, renaming to...
29368 (state_writer::write_state_version)
29369 (write_state_scalar_type): ditto, renaming to...
29370 (state_writer::write_state_scalar_type)
29371 (write_state_string_type): ditto, renaming to...
29372 (state_writer::write_state_string_type)
29373 (write_state_undefined_type): ditto, renaming to...
29374 (state_writer::write_state_undefined_type)
29375 (write_state_struct_union_type): ditto, renaming to...
29376 (state_writer::write_state_struct_union_type)
29377 (write_state_struct_type): ditto, renaming to...
29378 (state_writer::write_state_struct_type)
29379 (write_state_user_struct_type): ditto, renaming to...
29380 (state_writer::write_state_user_struct_type)
29381 (write_state_lang_struct_type): ditto, renaming to...
29382 (state_writer::write_state_lang_struct_type)
29383 (write_state_param_struct_type): ditto, renaming to...
29384 (state_writer::write_state_param_struct_type)
29385 (write_state_pointer_type): ditto, renaming to...
29386 (state_writer::write_state_pointer_type)
29387 (write_state_array_type): ditto, renaming to...
29388 (state_writer::write_state_array_type)
29389 (write_state_gc_used): ditto, renaming to...
29390 (state_writer::write_state_gc_used)
29391 (write_state_common_type_content): ditto, renaming to...
29392 (state_writer::write_state_common_type_content)
29393 (write_state_type): ditto, renaming to...
29394 (state_writer::write_state_type)
29395 (write_state_pair_list): ditto, renaming to...
29396 (state_writer::write_state_pair_list)
29397 (write_state_pair): ditto, renaming to...
29398 (state_writer::write_state_pair)
29399 (write_state_typedefs): ditto, renaming to...
29400 (state_writer::write_state_typedefs)
29401 (write_state_structures): ditto, renaming to...
29402 (state_writer::write_state_structures)
29403 (write_state_param_structs): ditto, renaming to...
29404 (state_writer::write_state_param_structs)
29405 (write_state_variables): ditto, renaming to...
29406 (state_writer::write_state_variables)
29407 (write_state_srcdir): ditto, renaming to...
29408 (state_writer::write_state_srcdir)
29409 (write_state_files_list): ditto, renaming to...
29410 (state_writer::write_state_files_list)
29411 (write_state_languages): ditto, renaming to...
29412 (state_writer::write_state_languages)
29413 (write_state): create a state_writer instance and use it when
29414 writing out the state file
29415
29416 2013-05-17 Mike Stump <mikestump@comcast.net>
29417
29418 PR rtl-optimization/57304
29419 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
29420 accessing DF_REF_REAL_LOC.
29421
29422 2013-05-17 Jakub Jelinek <jakub@redhat.com>
29423
29424 PR rtl-optimization/57281
29425 PR rtl-optimization/57300
29426 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
29427 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
29428 what the other splitter did if the registers are dead.
29429
29430 2013-05-17 Richard Biener <rguenther@suse.de>
29431
29432 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
29433 MEM_REF offsets.
29434
29435 2013-05-17 Jakub Jelinek <jakub@redhat.com>
29436
29437 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
29438 linking.
29439
29440 2013-05-17 Marek Polacek <polacek@redhat.com>
29441
29442 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
29443 length when doing non-zero store of storing '\0' to '\0'.
29444
29445 2013-05-17 Jakub Jelinek <jakub@redhat.com>
29446
29447 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
29448 vect_external_def oprnd1 with loop_vinfo, try to emit
29449 optional cast, negation and and stmts on the loop preheader
29450 edge instead of into the pattern def seq.
29451
29452 PR tree-optimization/57051
29453 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
29454 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
29455
29456 2013-05-16 Nick Clifton <nickc@redhat.com>
29457
29458 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
29459 (rl78_is_naked_func): New function.
29460 (rl78_expand_prologue): Skip prologue generation for naked functions.
29461 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
29462 * doc/extend.texi (naked): Add RL78 to the list of processors
29463 that supports this attribute.
29464
29465 2013-05-16 Jeff Law <law@redhat.com>
29466
29467 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
29468
29469 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
29470
29471 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
29472 cache parameters using detect_caches_amd also for CYRIX,
29473 NSC and TM2 signatures.
29474
29475 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
29476 Dzianis Kahanovich <mahatma@eu.by>
29477
29478 PR target/45359
29479 PR target/46396
29480 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
29481 VIA/Centaur processors and determine their cache parameters
29482 using detect_caches_amd.
29483
29484 2013-05-16 Teresa Johnson <tejohnson@google.com>
29485
29486 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
29487 (rtl_verify_edges): New function.
29488 (rtl_verify_bb_insns): Ditto.
29489 (rtl_verify_bb_pointers): Ditto.
29490 (rtl_verify_bb_insn_chain): Ditto.
29491 (rtl_verify_fallthru): Ditto.
29492 (rtl_verify_bb_layout): Ditto.
29493 (rtl_verify_flow_info_1): Outline checks into new functions.
29494 (rtl_verify_flow_info): Ditto.
29495
29496 2013-05-16 Steve Ellcey <sellcey@imgtec.com>
29497
29498 * cfghooks.c (copy_bbs): Add update_dominance argument.
29499 * cfghooks.h (copy_bbs): Update prototype.
29500 * tree-cfg.c (gimple_duplicate_sese_region):
29501 Add update_dominance argument.
29502 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
29503 * tree-ssa-loop-ch.c (copy_loop_headers): Update
29504 gimple_duplicate_sese_region call.
29505 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
29506 Update copy_bbs call.
29507 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
29508 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
29509
29510 2013-05-16 Jakub Jelinek <jakub@redhat.com>
29511
29512 * tree-vectorizer.h (NUM_PATTERNS): Increment.
29513 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
29514 vect_recog_rotate_pattern.
29515 (vect_recog_rotate_pattern): New function.
29516
29517 2013-05-16 Jason Merrill <jason@redhat.com>
29518
29519 * Makefile.in (LLINKER): New variable.
29520 (mostlyclean): Remove link mutex.
29521 * configure.ac: Handle --enable-link-mutex.
29522 * lock-and-run.sh: New script.
29523
29524 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29525
29526 PR target/19599
29527 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
29528 for NULL decl.
29529
29530 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29531
29532 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
29533
29534 2013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
29535
29536 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
29537 * config/arm/arm.c (next_consecutive_mem): New function.
29538 (gen_movmem_ldrd_strd): Likewise.
29539 * config/arm/arm.md (movmemqi): Update condition and code.
29540 (unaligned_loaddi, unaligned_storedi): New patterns.
29541
29542 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29543
29544 * config.gcc: Obsolete *-*-solaris2.9*.
29545 * doc/install.texi (Specific, *-*-solaris2*): Document it.
29546
29547 2013-05-16 Richard Biener <rguenther@suse.de>
29548
29549 * passes.c (init_optimization_passes): Move pass_parallelize_loops
29550 earlier, after GRAPHITE transforms and IV canonicalization.
29551
29552 2013-05-16 Jakub Jelinek <jakub@redhat.com>
29553
29554 * omp-low.c (extract_omp_for_data): For collapsed loops,
29555 if at least one of the loops is known at compile time to
29556 iterate zero times, set count to 0.
29557 (expand_omp_regimplify_p): New function.
29558 (expand_omp_for_generic): For collapsed loops, if at least
29559 one of the loops isn't known to iterate at least once,
29560 add runtime check with setting count to 0.
29561 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
29562 For unsigned types if it isn't known at compile time that
29563 the loop will iterate at least once, add runtime check to bypass
29564 the whole loop if initial condition isn't true.
29565
29566 2013-05-16 Nathan Sidwell <nathan@codesourcery.com>
29567
29568 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
29569
29570 2013-05-16 Marc Glisse <marc.glisse@inria.fr>
29571
29572 PR middle-end/57286
29573 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
29574 transformations to avoid an infinite loop.
29575
29576 2013-05-16 Marek Polacek <polacek@redhat.com>
29577
29578 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
29579
29580 2013-05-15 Leif Ekblad <leif@rdos.net>
29581
29582 * config/i386/i386.c (ix86_decompose_address): Use
29583 DEFAULT_TLS_SEG_REG to access TLS segment register.
29584 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
29585 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
29586 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
29587
29588 2013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
29589
29590 PR target/57260
29591 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
29592 sibling calls to functions that would normally be lazily bound,
29593 unless $gp is call-clobbered.
29594
29595 2013-05-15 Uros Bizjak <ubizjak@gmail.com>
29596
29597 * config/i386/i386.c (ix86_option_override_internal): Update
29598 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
29599 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
29600 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
29601 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
29602 of TARGET_3DNOW.
29603 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
29604
29605 2013-05-15 Andreas Schwab <schwab@suse.de>
29606
29607 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
29608 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
29609 third operand.
29610
29611 2013-05-15 Teresa Johnson <tejohnson@google.com>
29612
29613 * loop-unroll.c (report_unroll_peel): Check decision before
29614 emitting unroll/peel message.
29615
29616 2013-05-15 Teresa Johnson <tejohnson@google.com>
29617
29618 * function.h (has_bb_partition): New rtl_data flag.
29619 (bb_reorder_complete): Ditto.
29620 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
29621 instead of flag_reorder_blocks_and_partition.
29622 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
29623 with some enhancements.
29624 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
29625 * bb-reorder.c (connect_traces): Check for has_bb_partition
29626 instead of flag_reorder_blocks_and_partition.
29627 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
29628 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
29629 verify_hot_cold_block_grouping.
29630 (partition_hot_cold_basic_blocks): Set has_bb_partition.
29631
29632 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29633
29634 PR target/19599
29635 * config/arm/predicates.md (call_insn_operand): New predicate.
29636 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
29637 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
29638 if insn is not a tail call.
29639 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
29640 registers.
29641 * config/arm/arm.h (enum reg_class): New caller save register class.
29642 (REG_CLASS_NAMES): Likewise.
29643 (REG_CLASS_CONTENTS): Likewise.
29644 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
29645 without decls.
29646
29647 2013-05-15 Richard Biener <rguenther@suse.de>
29648
29649 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
29650 of MSG_OPTIMIZED_LOCATIONS.
29651 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
29652 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
29653 message.
29654 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
29655 of MSG_OPTIMIZED_LOCATIONS.
29656 (execute_vect_slp): Likewise.
29657 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
29658 (vect_create_cond_for_alias_checks): Likewise.
29659 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
29660 (vect_recog_widen_mult_pattern): Likewise.
29661 (vect_recog_widen_sum_pattern): Likewise.
29662 (vect_recog_over_widening_pattern): Likewise.
29663 (vect_recog_widen_shift_pattern): Likewise.
29664 (vect_recog_vector_vector_shift_pattern): Likewise.
29665 (vect_recog_divmod_pattern): Likewise.
29666 (vect_recog_mixed_size_cond_pattern): Likewise.
29667 (vect_recog_bool_pattern): Likewise.
29668 (vect_pattern_recog_1): Likewise.
29669
29670 2013-05-15 Martin Jambor <mjambor@suse.cz>
29671
29672 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
29673 non-functions to builtin_unreachable.
29674 * ipa-inline-transform.c (inline_call): Do not assert estimates were
29675 correct when new direct edges were discovered.
29676
29677 2013-05-15 Martin Jambor <mjambor@suse.cz>
29678
29679 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
29680 header, print symbol order instead of node uid, print more information
29681 about indirect edge targets.
29682 (ipa_make_edge_direct_to_target): Print symbol order instead of node
29683 uids.
29684 (ipa_make_edge_direct_to_target): Likewise.
29685 (remove_described_reference): Likewise.
29686 (propagate_controlled_uses): Likewise.
29687 (ipa_print_node_params): Also print symbol order.
29688 (ipcp_transform_function): Print symbol order instead of node uids.
29689 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
29690 (cgraph_get_create_real_symbol_node): Likewise.
29691 * ipa-cp.c (print_lattice): Likewise.
29692 (print_all_lattices): Likewise.
29693 (determine_versionability): Likewise.
29694 (initialize_node_lattices): Likewise.
29695 (estimate_local_effects): Likewise.
29696 (update_profiling_info): Likewise.
29697 (create_specialized_node): Likewise.
29698 (perhaps_add_new_callers): Likewise.
29699 (decide_about_value): Likewise.
29700 (decide_whether_version_node): Likewise.
29701 (identify_dead_nodes): Likewise.
29702 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
29703 (dump_inline_summary): Likewise.
29704 (estimate_node_size_and_time): Likewise.
29705 (inline_analyze_function): Likewise.
29706 * ipa-inline.c (report_inline_failed_reason): Likewise.
29707 (want_early_inline_function_p): Likewise.
29708 (edge_badness): Likewise.
29709 (update_edge_key): Likewise.
29710 (inline_small_functions): Likewise. Add dumping of order to two other
29711 dumps.
29712 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
29713 instead of node uids.
29714 (propagate_pure_const): Likewise.
29715 (propagate_pure_const): Likewise.
29716 * ipa-utils.c (dump_cgraph_node_set): Likewise.
29717 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
29718 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
29719 of node uids.
29720 * tree-pretty-print.c (dump_function_header): Likewise.
29721 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
29722 Print symbol order instead of node uids.
29723
29724 2013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29725
29726 * config/s390/s390.c (s390_register_move_cost): Don't impose the
29727 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
29728
29729 2013-05-15 Richard Biener <rguenther@suse.de>
29730
29731 PR tree-optimization/57275
29732 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
29733 return value for fail to do runtime alias checks for gather loads.
29734
29735 2013-05-15 Jan Hubicka <jh@suse.cz>
29736
29737 PR lto/57038
29738 PR lto/47375
29739 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
29740 weakrefs are not external.
29741 (lto_symtab_merge_decls): Fix thinko when dealing with
29742 non-lto_symtab decls.
29743 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
29744 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
29745 * varpool.c (dump_varpool_node): Dump more flags.
29746
29747 2013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
29748
29749 * config/i386/i386.c (processor_alias_table): Add instruction
29750 FSGSBASE for AMD bdver3 architecture.
29751
29752 2013-05-14 Jakub Jelinek <jakub@redhat.com>
29753
29754 * tree.c (warn_deprecated_use): Print file:line using locus color.
29755 * diagnostic.c (diagnostic_report_current_module): Print file:line
29756 and file:line:column using locus color.
29757
29758 2013-05-14 Mike Stump <mikestump@comcast.net>
29759
29760 * gdbinit.in: Add __null.
29761
29762 2013-05-14 Mike Stump <mikestump@comcast.net>
29763
29764 * recog.h: Rename struct recog_data to Recog_data.
29765 * recog.c: Likewise.
29766 * reload.c (can_reload_into): Likewise.
29767 * config/picochip/picochip.c: Likewise.
29768
29769 2013-05-14 Mike Stump <mikestump@comcast.net>
29770
29771 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
29772
29773 2013-05-14 Steven Bosscher <steven@gcc.gnu.org>
29774
29775 * resource.h (struct resources): Remove unch_memory member.
29776 (CLEAR_RESOURCE): Don't clear unch_memory.
29777 * resource.c (mark_referenced_resources): Don't set it.
29778 (mark_set_resources): Likewise.
29779 (mark_target_live_regs): Don't clear it.
29780 (init_resource_info): Likewise.
29781 * reorg.c (resource_conflicts_p): Don't compare it.
29782 (redundant_insn): Don't set it.
29783
29784 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
29785 Remove prototypes.
29786 * emit-rtl.c (next_label): Remove unused function.
29787 (skip_consecutive_labels, link_cc0_insns): Move to ...
29788 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
29789 only place where these functions are used, and make them static.
29790
29791 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
29792
29793 * fold-const.c (fold_negate_expr): Handle vectors.
29794 (fold_truth_not_expr): Make it static.
29795 (fold_invert_truthvalue): New static function.
29796 (invert_truthvalue_loc): Handle vectors. Do not call
29797 fold_truth_not_expr directly.
29798 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
29799 <TRUTH_NOT_EXPR>: Do not cast to boolean.
29800 (fold_comparison): Handle vector constants.
29801 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
29802 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
29803 * tree.h (fold_truth_not_expr): Remove declaration.
29804
29805 2013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
29806
29807 * config/aarch64/aarch64-simd.md
29808 (aarch64_vcond_internal<mode>): Rename to...
29809 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
29810 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
29811 float modes. Clarify all iterator modes.
29812 (vcond<mode><mode>): Use new name for vcond expanders.
29813 (vcond<v_cmp_result><mode>): Likewise.
29814 (vcondu<mode><mode>: Likewise.
29815 * config/aarch64/iterators.md (VDQF_COND): New.
29816
29817 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
29818
29819 PR bootstrap/57266
29820 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
29821 variable for the shift amount. Check that we shift by non-negative
29822 amounts.
29823
29824 2013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
29825
29826 PR target/42017
29827 * config/arm/arm.h (EPILOGUE_USES): Only return true
29828 for LR_REGNUM after epilogue_completed.
29829
29830 2013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
29831
29832 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
29833 is error_mark_node.
29834
29835 2013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29836
29837 PR target/57261
29838 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
29839 and Solaris 11+/x86 with gld.
29840 * configure: Regenerate.
29841
29842 2013-05-14 Jakub Jelinek <jakub@redhat.com>
29843
29844 * expmed.c (expand_shift_1): Canonicalize rotates by
29845 constant bitsize / 2 to bitsize - 1.
29846 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
29847 case ROTATERT>: Likewise.
29848
29849 Revert:
29850 2013-05-10 Jakub Jelinek <jakub@redhat.com>
29851
29852 * config/i386/i386.md (rotateinv): New code attr.
29853 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
29854 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
29855 roll $31, %eax, etc.
29856
29857 2013-05-14 Richard Biener <rguenther@suse.de>
29858
29859 PR middle-end/57235
29860 * tree-eh.c (sink_clobbers): Give up for successors with
29861 multiple predecessors and no virtual uses.
29862
29863 2013-05-14 Eric Botcazou <ebotcazou@adacore.com>
29864
29865 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
29866 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
29867
29868 2013-05-14 Jakub Jelinek <jakub@redhat.com>
29869
29870 PR middle-end/57251
29871 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
29872 the case when both op0 and op1 have VOIDmode.
29873
29874 2013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
29875
29876 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
29877 in multiply-accumulate mode.
29878
29879 2013-05-13 Guozhi Wei <carrot@google.com>
29880
29881 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
29882
29883 2013-05-13 Kai Tietz <ktietz@redhat.com>
29884
29885 PR target/56975
29886 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
29887 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
29888 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
29889 * config/i386/i386.c (ix86_option_override_internal): Likewise.
29890 (ix86_expand_prologue): Likewise.
29891 (ix86_expand_split_stack_prologue): Likewise.
29892 (legitimate_pic_address_disp_p): Likewise.
29893 (legitimize_pic_address): Likewise.
29894 (legitimize_tls_address): Likewise.
29895 (legitimize_pe_coff_symbol): Likewise.
29896 (output_pic_addr_const): Likewise.
29897 (construct_plt_address): Likewise.
29898 (ix86_expand_call): Likewise.
29899 (x86_output_mi_thunk): Likewise.
29900 (x86_function_profiler): Likewise.
29901
29902 2013-05-13 Sofiane Naci <sofiane.naci@arm.com>
29903
29904 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
29905 similar switch cases.
29906 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
29907 (aarch64_simd_mov_to_<mode>low): Delete.
29908 (aarch64_simd_mov_to_<mode>high): Delete.
29909 (move_lo_quad_<mode>): Add w<-r alternative.
29910 (aarch64_simd_move_hi_quad_<mode>): Likewise.
29911 (aarch64_simd_mov_from_*): Update type attribute.
29912 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
29913 statement.
29914
29915 2013-05-13 Jan Hubicka <jh@suse.cz>
29916
29917 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
29918 * config/i386/i386.c (ix86_compute_frame_layout,
29919 ix86_expand_epilogue, emit_i387_cw_initialization,
29920 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
29921 ix86_local_alignment): Fix use of size/speed predicates.
29922
29923 2013-05-13 Jakub Jelinek <jakub@redhat.com>
29924
29925 PR tree-optimization/45216
29926 PR tree-optimization/57157
29927 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
29928 the (-Y) & (B - 1) variant if OP is |.
29929 * expmed.c (expand_shift_1): For rotations by const0_rtx just
29930 return shifted. Use (-op1) & (prec - 1) as other_amount
29931 instead of prec - op1.
29932
29933 2013-05-13 Martin Jambor <mjambor@suse.cz>
29934
29935 PR middle-end/42371
29936 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
29937 (ipa_constant_data): New type.
29938 (ipa_jump_func): Use ipa_constant_data to hold information about
29939 constant jump functions.
29940 (ipa_get_jf_constant): Adjust to jump function type changes.
29941 (ipa_get_jf_constant_rdesc): New function.
29942 (ipa_param_descriptor): New field controlled_uses.
29943 (ipa_get_controlled_uses): New function.
29944 (ipa_set_controlled_uses): Likewise.
29945 * ipa-ref.h (ipa_find_reference): Declare.
29946 * ipa-prop.c (ipa_cst_ref_desc): New type.
29947 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
29948 changes.
29949 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
29950 New parameter cs. Adjust all callers.
29951 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
29952 (remove_described_reference): New function.
29953 (jfunc_rdesc_usable): Likewise.
29954 (try_make_edge_direct_simple_call): Decrement controlled use count,
29955 attempt to remove reference if it hits zero.
29956 (combine_controlled_uses_counters): New function.
29957 (propagate_controlled_uses): Likewise.
29958 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
29959 (ipa_edge_duplication_hook): Duplicate reference descriptions.
29960 (ipa_print_node_params): Print described use counter.
29961 (ipa_write_jump_function): Adjust to jump function type changes.
29962 (ipa_read_jump_function): New parameter CS, pass it to
29963 ipa_set_jf_constant. Adjust caller.
29964 (ipa_write_node_info): Stream controlled use count
29965 (ipa_read_node_info): Likewise.
29966 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
29967 asserting.
29968 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
29969 count. Remove cloning-added reference if it reaches zero.
29970 * ipa-ref.c (ipa_find_reference): New function.
29971
29972 2013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
29973
29974 * config/i386/i386.c (processor_target_table): Modified default
29975 alignment values for AMD BD and BT architectures.
29976
29977 2013-05-13 Marc Glisse <marc.glisse@inria.fr>
29978
29979 * tree-vect-generic.c (uniform_vector_p): Move ...
29980 * tree.c (uniform_vector_p): ... here.
29981 * tree.h (uniform_vector_p): Declare it.
29982 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
29983 into a scalar.
29984
29985 2013-05-13 Jakub Jelinek <jakub@redhat.com>
29986
29987 PR tree-optimization/57230
29988 * tree-ssa-strlen.c (handle_char_store): Record length for
29989 array store from STRING_CST.
29990
29991 PR tree-optimization/57230
29992 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
29993 check.
29994
29995 2013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
29996
29997 * config/epiphany/epiphany.c (epiphany_init): Check size of
29998 NUM_MODES_FOR_MODE_SWITCHING.
29999 (epiphany_expand_prologue):
30000 Remove CONFIG_REGNUM initial value handling code.
30001 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
30002 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
30003 (emit_set_fp_mode, epiphany_mode_after): Likewise.
30004 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
30005 Don't return 1 for FP_MODE_NONE.
30006 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
30007 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
30008 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
30009 * config/epiphany/epiphany.md (save_config): New pattern.
30010
30011 2013-05-12 Uros Bizjak <ubizjak@gmail.com>
30012
30013 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
30014
30015 2013-05-10 Uros Bizjak <ubizjak@gmail.com>
30016
30017 * config/i386/i386.md (memory): Handle sseishft1.
30018 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
30019 (*vec_extractv2di_1): Ditto.
30020
30021 2013-05-10 Vladimir Makarov <vmakarov@redhat.com>
30022
30023 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
30024 saved registers.
30025
30026 2013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
30027
30028 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
30029 Add mthumb/march=armv7-a multilib.
30030 Add mthumb/march=armv7-r multilib.
30031 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
30032
30033 2013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
30034
30035 * config/v850/t-rtems: Add more multilibs.
30036
30037 2013-05-10 Richard Biener <rguenther@suse.de>
30038
30039 PR tree-optimization/57214
30040 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
30041 not propagate from SSA names that occur in abnormal PHI nodes.
30042
30043 2013-05-10 Marc Glisse <marc.glisse@inria.fr>
30044
30045 * stor-layout.c (element_precision): New function.
30046 * machmode.h (element_precision): Declare it.
30047 * tree.c (build_minus_one_cst): New function.
30048 (element_precision): Likewise.
30049 * tree.h (build_minus_one_cst): Declare new function.
30050 (element_precision): Likewise.
30051 * fold-const.c (operand_equal_p): Use element_precision.
30052 (fold_binary_loc): Handle vector types.
30053 * convert.c (convert_to_integer): Use element_precision.
30054 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
30055 separately.
30056
30057 2013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
30058
30059 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
30060 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
30061 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
30062 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
30063 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
30064 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
30065 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
30066 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
30067 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
30068 (Uuw8): New constraints.
30069 (Usb4): Move into alphabetical order.
30070 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
30071 (sd8_operand, ub8_operand, uw8_operand): New predicates.
30072 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
30073 previously unnamed patterns.
30074 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
30075 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
30076 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
30077 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
30078 of set_attr_alternative/if_then_else. Use extended_mips16 instead
30079 of specific lengths.
30080
30081 2013-05-10 Jakub Jelinek <jakub@redhat.com>
30082
30083 * config/i386/i386.md (rotateinv): New code attr.
30084 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
30085 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
30086 roll $31, %eax, etc.
30087
30088 PR tree-optimization/45216
30089 PR tree-optimization/57157
30090 * tree-ssa-forwprop.c (simplify_rotate): New function.
30091 (ssa_forward_propagate_and_combine): Call it.
30092
30093 2013-05-10 Richard Biener <rguenther@suse.de>
30094
30095 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
30096 disable peeling when we version for aliasing.
30097 (vector_alignment_reachable_p): Honor explicit user alignment.
30098 (vect_supportable_dr_alignment): Likewise.
30099 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
30100 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
30101 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
30102 then peeling to arrange for the cost-model check to come first.
30103
30104 2013-05-10 Alan Modra <amodra@gmail.com>
30105
30106 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
30107 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
30108 * configure: Regenerate.
30109
30110 2013-05-10 Alan Modra <amodra@gmail.com>
30111
30112 PR target/55033
30113 * varasm.c (default_elf_select_section): Move !DECL_P check..
30114 (get_named_section): ..to here before calling get_section_name.
30115 Adjust assertion.
30116 (default_section_type_flags): Add DECL_P check.
30117 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
30118 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
30119
30120 2013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
30121
30122 * config/epiphany/epiphany.c (epiphany_expand_prologue):
30123 When using gen_stack_adjust_str with a register offset, add a
30124 REG_FRAME_RELATED_EXPR note.
30125
30126 2013-05-09 Uros Bizjak <ubizjak@gmail.com>
30127
30128 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
30129 (*vec_extractv4si_zext_mem): Ditto.
30130 (*vec_extractv2di): Add 0->x and x->x alternatives.
30131 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
30132 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
30133
30134 2013-05-09 Jason Merrill <jason@redhat.com>
30135
30136 N3639 C++1y VLA support
30137 * gimplify.c (gimplify_vla_decl): Don't touch an existing
30138 DECL_VALUE_EXPR.
30139
30140 * tree.c (build_constructor_va): New.
30141 * tree.h: Declare it.
30142
30143 2013-05-09 Martin Jambor <mjambor@suse.cz>
30144
30145 PR lto/57084
30146 * gimple-fold.c (canonicalize_constructor_val): Call
30147 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
30148
30149 2013-05-09 Jan Hubicka <jh@suse.cz>
30150 Richard Biener <rguenther@suse.de>
30151
30152 PR lto/54095
30153 * symtab.c (symtab_make_decl_local): Do not add private names.
30154
30155 2013-05-09 Jan Hubicka <jh@suse.cz>
30156
30157 PR lto/54095
30158 * symtab.c (insert_to_assembler_name_hash): Handle clones.
30159 (unlink_from_assembler_name_hash): Likewise.
30160 (symtab_prevail_in_asm_name_hash, symtab_register_node,
30161 symtab_unregister_node, symtab_initialize_asm_name_hash,
30162 change_decl_assembler_name): Update.
30163
30164 2013-05-09 Sofiane Naci <sofiane.naci@arm.com>
30165
30166 * config/aarch64/aarch64.md: New movtf split.
30167 (*movtf_aarch64): Update.
30168 (aarch64_movdi_tilow): Handle TF modes and rename to
30169 aarch64_movdi_<mode>low.
30170 (aarch64_movdi_tihigh): Handle TF modes and rename to
30171 aarch64_movdi_<mode>high
30172 (aarch64_movtihigh_di): Handle TF modes and rename to
30173 aarch64_mov<mode>high_di
30174 (aarch64_movtilow_di): Handle TF modes and rename to
30175 aarch64_mov<mode>low_di
30176 (aarch64_movtilow_tilow): Remove spurious whitespace.
30177 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
30178 splits.
30179 (aarch64_print_operand): Update.
30180
30181 2013-05-09 Alan Modra <amodra@gmail.com>
30182
30183 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
30184 powerpc64le.
30185 * configure: Regenerate.
30186
30187 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
30188
30189 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
30190 splitter preparation statements.
30191 * config/i386/sse.md (*vec_extract* splitters): Ditto.
30192 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
30193 adjust_address_nv.
30194
30195 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30196
30197 * gimple-ssa-strength-reduction.c (count_candidates): Change
30198 return value to int.
30199 (analyze_candidates_and_replace): Change type of length to int.
30200
30201 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
30202
30203 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
30204 (*vec_extract<mode>): Use VI12_128 mode iterator.
30205 (*vec_extract<mode>_mem): Ditto.
30206 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
30207 attribute.
30208
30209 2013-05-08 Diego Novillo <dnovillo@google.com>
30210
30211 PR bootstrap/54659
30212
30213 Revert:
30214 2012-08-17 Diego Novillo <dnovillo@google.com>
30215
30216 PR bootstrap/54281
30217 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
30218 * config.in: Regenerate.
30219 * configure: Regenerate.
30220 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
30221
30222 2013-05-08 Jan Hubicka <jh@suse.cz>
30223
30224 PR lto/54095
30225 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
30226 * cgraph.h (symtab_node_base): Add unique_name.
30227 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
30228 input_overwrite_node, input_varpool_node): Stream unique_name.
30229 * cgraphclones.c (cgraph_create_virtual_clone,
30230 cgraph_function_versioning): Set unique_name.
30231 * ipa.c (function_and_variable_visibility): Set unique_name.
30232
30233 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30234
30235 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
30236 (alloc_cand_and_find_basis): Restrict conditional candidate
30237 processing to CAND_MULTs.
30238
30239 2013-05-08 Jan Hubicka <jh@suse.cz>
30240
30241 PR lto/54095
30242 lto-symtab.c (lto_symtab_symbol_p): New function.
30243 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
30244 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
30245 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
30246 Skip static symbols.
30247
30248 2013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
30249
30250 PR tree-optimization/57200
30251 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
30252 Only call inform if the preceding warning_at returns true.
30253
30254 2013-05-07 Han Shen <shenhan@google.com>
30255
30256 * cfgexpand.c (record_or_union_type_has_array_p): New function.
30257 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
30258 * common.opt (fstack-protector-strong): New option.
30259 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
30260 * doc/invoke.texi (Optimization Options): Document
30261 "-fstack-protector-strong".
30262 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
30263
30264 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
30265
30266 * config/mips/mips.c (mips_machine_reorg2): Return 0.
30267
30268 2013-05-07 Vladimir Makarov <vmakarov@redhat.com>
30269
30270 * ira.c (update_equiv_regs): Add insn having equiv memory even if
30271 it is not lhs of the insn.
30272 (setup_reg_equiv): Remove insn having equiv memory which it is not
30273 lhs of the insn.
30274 * lra-constraints.c (process_address): Try to improve generation
30275 code for address base + disp.
30276 (lra_constraints): Make correct the code for checking insn setting
30277 up backward equivalence. Remove insn only if it is in the init
30278 insn list.
30279 * lra-eliminations.c (update_reg_eliminate): Change return value.
30280 (lra_eliminate): Use the result.
30281
30282 2013-05-07 Uros Bizjak <ubizjak@gmail.com>
30283
30284 * config/i386/sse.md (ssescalarnummask): New mode attribute.
30285 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
30286 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
30287 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
30288 register target operands.
30289 (*vec_extractv8hi_sse2): New pattern.
30290 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
30291 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
30292 (*vec_extract<mode>_mem): New insn and split pattern.
30293
30294 2013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
30295
30296 * config/arm/arm.c (arm_asan_shadow_offset): New function.
30297 (TARGET_ASAN_SHADOW_OFFSET): Define.
30298 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
30299 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
30300
30301 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30302
30303 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
30304 (incr_vec_index): Return -1 if increment not found.
30305 (create_add_on_incoming_edge): Assert if increment not found.
30306 (record_increment): Limit number of increments recorded.
30307 (all_phi_incrs_profitable): Return false if an increment not found.
30308 (replace_profitable_candidates): Don't process increments that were
30309 not recorded.
30310 (analyze_candidates_and_replace): Limit size of incr_vec.
30311
30312 2013-05-07 Richard Biener <rguenther@suse.de>
30313
30314 * calls.c (special_function_p): setjmp-like functions are leaf.
30315 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
30316 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
30317
30318 2013-05-07 Sofiane Naci <sofiane.naci@arm.com>
30319
30320 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
30321 (aarch64_simd_mov<mode>): New expander.
30322 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
30323 (aarch64_simd_mov_to_<mode>high): Likewise.
30324 (aarch64_simd_mov_from_<mode>low): Likewise.
30325 (aarch64_simd_mov_from_<mode>high): Likewise.
30326 (aarch64_dup_lane<mode>): Update.
30327 (aarch64_dup_lanedi): New instruction pattern.
30328 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
30329 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
30330
30331 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30332
30333 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
30334 (replace_mult_candidate): Remove unnecessary argument; remove
30335 unnecessary parameter from call to introduce_cast_before_cand.
30336 (replace_unconditional_candidate): Remove unnecessary parameter
30337 from call to replace_mult_candidate.
30338 (replace_conditional_candidate): Likewise.
30339 (insert_initializers): Use make_temp_ssa_name.
30340 (introduce_cast_before_cand): Remove unnecessary argument; use
30341 make_temp_ssa_name.
30342 (replace_one_candidate): Remove unnecessary argument; remove
30343 unnecessary parameter from calls to introduce_cast_before_cand.
30344 (replace_profitable_candidates): Remove unnecessary parameters
30345 from calls to replace_one_candidate.
30346
30347 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30348
30349 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
30350 phi def as possibly hiding a basis for a CAND_ADD whose operands
30351 have been commuted in the analysis.
30352 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
30353
30354 2013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
30355
30356 * config/aarch64/aarch64.md
30357 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
30358 shift value between 0-4.
30359
30360 2013-05-07 Richard Biener <rguenther@suse.de>
30361
30362 * double-int.h (rshift): New overload.
30363 * double-int.c (rshift): New function.
30364 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
30365 (create_reference_ops_from_ref): Remove.
30366 (vn_reference_insert): Use shared ops for constructing the
30367 reference and copy it.
30368
30369 2013-05-07 Richard Biener <rguenther@suse.de>
30370
30371 PR middle-end/57190
30372 * tree-eh.c (sink_clobbers): Properly propagate
30373 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
30374
30375 2013-05-07 Jakub Jelinek <jakub@redhat.com>
30376
30377 PR tree-optimization/57149
30378 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
30379 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
30380 collect_phi_def_edges, execute_late_warn_uninitialized): Use
30381 uninit_undefined_value_p instead of ssa_undefined_value_p.
30382
30383 PR debug/57184
30384 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
30385 for modifier == EXPAND_INITIALIZER.
30386
30387 2013-05-07 Anton Blanchard <anton@samba.org>
30388
30389 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
30390 for powerpc64 little endian.
30391 * configure: Regenerate.
30392
30393 2013-05-06 Graham Stott <grahams@btinternet.com>
30394
30395 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
30396 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
30397 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
30398 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
30399
30400 2013-05-06 Graham Stott <grahams@btinternet.com>
30401
30402 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
30403 codes which allow non-lvalues.
30404
30405 2013-05-06 Marc Glisse <marc.glisse@inria.fr>
30406
30407 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
30408 components are all 1s.
30409 (integer_minus_onep): New function.
30410 * tree.h (integer_minus_onep): Declare it.
30411 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
30412 integer_minus_onep instead of integer_all_onesp.
30413
30414 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
30415
30416 PR target/52933
30417 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
30418 variations of these patterns.
30419
30420 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
30421
30422 * config/i386/i386.md (isa): Add x64_sse4 member.
30423 (enabled): Handle x64_sse4.
30424 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
30425 instruction for 64bit SSE4_1 targets. Update insn attributes.
30426 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
30427 instruction for SSE4_1 targets. Update insn attributes.
30428 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
30429 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
30430 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
30431 const_1 selector.
30432 (*vec_extractv4si): Rename from *sse4_1_pextrd.
30433 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
30434 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
30435
30436 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
30437
30438 PR target/57108
30439 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
30440
30441 2013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
30442
30443 * final.c (do_assembler_dialects): Don't handle curly braces and
30444 vertical bar escaped by % as dialect delimiters.
30445 (output_asm_insn): Print curly braces and vertical bar if escaped
30446 by % and ASSEMBLER_DIALECT defined.
30447 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
30448 * doc/tm.texi: Regenerated.
30449
30450 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
30451
30452 * config/mips/mips.c: Include tree-pass.h.
30453 (mips_reorg): Split in pre- and post-dbr_schedule parts.
30454 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
30455 (pass_mips_machine_reorg2): New machine specific pass.
30456 (insert_pass_mips_machine_reorg2): New pass plugin definition.
30457 (mips_option_override): Register the new pass.
30458 * rtl.h (cleanup_barriers): Remove prototype.
30459 (dbr_schedule): Likewise.
30460 * jump.c (cleanup_barriers): Make static.
30461 * reorg.c (dbr_schedule): Likewise.
30462
30463 2013-05-06 Richard Biener <rguenther@suse.de>
30464
30465 PR tree-optimization/57185
30466 * tree-parloops.c (add_field_for_reduction): Handle anonymous
30467 SSA names properly.
30468
30469 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
30470
30471 PR target/57106
30472 * config/i386/i386.c (add_parameter_dependencies): Add dependence
30473 between "first_arg" and "insn", not "last" and "insn".
30474
30475 2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30476
30477 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
30478 (find_candidates_in_block): Re-enable slsr_process_phi.
30479 (create_phi_basis): Fix double counting of candidate adjustment.
30480
30481 2013-05-06 Richard Biener <rguenther@suse.de>
30482
30483 PR middle-end/57147
30484 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
30485 the edge is also fallthru, preserve it and just clear the
30486 abnormal flag.
30487 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
30488 also complex, preserve that and just clear the fallthru flag.
30489 * tree-inline.c (update_ssa_across_abnormal_edges): Also
30490 update virtual operands.
30491
30492 2013-05-06 Alan Modra <amodra@gmail.com>
30493
30494 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
30495 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
30496 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
30497 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
30498 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
30499 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
30500
30501 2013-05-06 Alan Modra <amodra@gmail.com>
30502
30503 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
30504 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
30505 (DEFAULT_ASM_ENDIAN): Define.
30506 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
30507 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
30508 Update -K PIC clause from sysv4.h.
30509 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
30510 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
30511
30512 2013-05-06 Alan Modra <amodra@gmail.com>
30513
30514 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
30515 twice for little-endian.
30516 (ashrdi3_no_power, ashrdi3): Support little-endian.
30517
30518 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
30519
30520 PR target/55303
30521 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
30522 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
30523 related expanders.
30524 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
30525 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
30526 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
30527 New predicates.
30528
30529 2013-05-05 Steven Bosscher <steven@gcc.gnu.org>
30530 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30531
30532 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
30533 * config/pa/pa.opt: Make mbig-switch a no-op.
30534 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
30535 (CASE_VECTOR_MODE): Always return SImode.
30536 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
30537 for the !TARGET_BIG_SWITCH case.
30538 * config/pa/pa-linux.h: Likewise.
30539 * config/pa/pa-openbsd.h: Likewise.
30540 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
30541 * config/pa/pa.md (short_jump): Remove define_insn.
30542 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
30543 (casesi0): Remove define_insn.
30544 (type): Remove btable_branch.
30545 (pa_combine_type): Likewise.
30546 (in_nullified_branch_delay): Likewise.
30547 (in_call_delay): Likewise.
30548 (define_delay): Likewise.
30549 (define_insn_reservation "Z3"): Likewise.
30550 (define_insn_reservation "Z4"): Likewise.
30551 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
30552 (pa_adjust_insn_length): Remove adjustment for btable branches.
30553 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
30554 and mno-big-switch
30555
30556 2013-05-05 Uros Bizjak <ubizjak@gmail.com>
30557
30558 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
30559 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
30560 Add m->r,x alternatives.
30561 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
30562 splitters using SWI48x mode iterator.
30563 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
30564 TARGET_64BIT. Add m->x alternative.
30565 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
30566 Add o->x alternative. Enable for TARGET_SSE.
30567 (sse_storeq): Remove expander.
30568 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
30569 with memory input operand.
30570 (*vec_extractv2di_1 splitter): New.
30571 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
30572 * config/i386/i386.md (ssevecmodelower): New mode attribute.
30573
30574 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
30575
30576 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
30577 (INT_LOWPART): Delete.
30578 (extract_MB): Adjust.
30579 (extract_ME): Adjust.
30580 (print_operand): Adjust.
30581
30582 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
30583
30584 * config/rs6000/predicates.md (reg_or_add_cint_operand,
30585 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
30586 (reg_or_logical_cint_operand, easy_fp_constant,
30587 logical_const_operand): Delete "CONST_DOUBLE" case.
30588 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
30589 "HOST_BITS_PER_WIDE_INT == 64" test.
30590 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
30591 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
30592 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
30593 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
30594 test.
30595 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
30596 CONST_DOUBLE DImode/VOIDmode case.
30597 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
30598 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
30599 CONST_DOUBLE VOIDmode case.
30600 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
30601 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
30602 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
30603 Delete CONST_DOUBLE case.
30604 (splitters for mov FMOVE64 const_double): Delete
30605 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
30606 "HOST_BITS_PER_WIDE_INT >= 64" test.
30607 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
30608 case.
30609 (mov DI const_double): Delete.
30610
30611 2013-05-04 Jakub Jelinek <jakub@redhat.com>
30612
30613 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
30614 on op shows all bits zero in mode of a lowpart subreg, return zero.
30615
30616 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
30617
30618 PR target/57150
30619 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
30620 to save TFmode registers and DImode to save TImode registers for
30621 caller save operations.
30622 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
30623 mark being partially clobbered since they only use the first
30624 double word.
30625
30626 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
30627 and TDmode only use the upper 64-bits of each VSX register.
30628
30629 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30630
30631 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
30632 (find_candidates_in_block): Disable slsr_process_phi.
30633
30634 2013-05-03 Guozhi Wei <carrot@google.com>
30635
30636 * coverage.c (coverage_obj_init): Move the construction of gcov
30637 constructor to ...
30638 (build_init_ctor): ... here.
30639
30640 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30641
30642 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
30643 (slsr_cand_d): Redefine def_phi.
30644 (stride_status, phi_adjust_status, count_phis_status): New enums.
30645 (find_phi_def): New.
30646 (find_basis_for_base_expr): New.
30647 (find_basis_for_candidate): Handle hidden bases.
30648 (alloc_cand_and_find_basis): Handle phi candidates.
30649 (slsr_process_phi): New.
30650 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
30651 (create_mul_imm_cand): Likewise.
30652 (create_add_ssa_cand): Exclude phi base candidates.
30653 (create_add_imm_cand): Likewise.
30654 (slsr_process_cast): Likewise.
30655 (slsr_process_copy): Likewise.
30656 (find_candidates_in_block): Handle phi candidates.
30657 (dump_candidate): Likewise.
30658 (unconditional_cands): Delete.
30659 (unconditional_cands_with_known_stride_p): Delete.
30660 (phi_dependent_cand_p): New.
30661 (cand_increment): Handle phi-dependent candidates.
30662 (replace_dependent): Delete.
30663 (replace_mult_candidate): New.
30664 (replace_unconditional_candidate): New.
30665 (incr_vec_index): Move to avoid forward reference.
30666 (create_add_on_incoming_edge): New.
30667 (create_phi_basis): New.
30668 (replace_dependents): Delete.
30669 (replace_conditional_candidate): New.
30670 (phi_add_costs): New.
30671 (replace_uncond_cands_and_profitable_phis): New.
30672 (record_increment): Handle phi adjustments.
30673 (record_phi_increments): New.
30674 (record_increments): Handle phi adjustments.
30675 (phi_incr_cost): New.
30676 (lowest_cost_path): Handle phis.
30677 (total_savings): Likewise.
30678 (analyze_increments): Likewise.
30679 (ncd_with_phi): New.
30680 (ncd_of_cand_and_phis): New.
30681 (nearest_common_dominator_for_cands): Handle phi increments.
30682 (all_phi_incrs_profitable): New.
30683 (replace_profitable_candidates): Handle phi-dependent candidates.
30684 (analyze_candidates_and_replace): Likewise.
30685
30686 2013-05-03 Teresa Johnson <tejohnson@google.com>
30687
30688 PR bootstrap/57154
30689 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
30690 do not exceed REG_BR_PROB_BASE.
30691
30692 2013-05-03 Jeff Law <law@redhat.com>
30693
30694 PR tree-optimization/57144
30695 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
30696 operand of the condition will bit into the new type when eliminating
30697 a cast feeding a condition.
30698
30699 2013-05-03 Jakub Jelinek <jakub@redhat.com>
30700
30701 PR rtl-optimization/57130
30702 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
30703 of COMPARE as in_code to the recursive call if needed.
30704
30705 2013-05-03 Uros Bizjak <ubizjak@gmail.com>
30706
30707 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
30708 (enabled): Handle new members.
30709 * config/i386/sse.md (*vec_concatv2si): Merge from
30710 *vec_concatv2si_sse2 and vec_concatv2si_sse.
30711 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
30712
30713 2013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
30714
30715 PR tree-optimization/57027
30716 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
30717 for fnms opportunity, check we got the prerequisite kind
30718 of tree / gimple before using accessor functions.
30719
30720 2013-05-03 Richard Biener <rguenther@suse.de>
30721
30722 * double-int.h (lshift): New overload without precision
30723 and arith argument.
30724 (operator *=, operator +=, operator -=): Move ...
30725 * double-int.c (operator *=, operator +=, operator -=): ... here
30726 and implement more efficiently.
30727 (mul_double_with_sign): Remove.
30728 (lshift_double): Adjust to take unsinged shift argument, push
30729 dispatching code to callers.
30730 (mul_double_wide_with_sign): Add early out for callers that
30731 are not interested in high parts or overflow.
30732 (lshift): New function.
30733 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
30734 dispatch code here.
30735 (lrotate, rrotate): Use logical shifts.
30736 * expr.c (get_inner_reference): Use lshift.
30737 * fixed-value.c (do_fixed_divide): Likewise.
30738 * tree-dfa.c (get_ref_base_and_extent): Likewise.
30739 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
30740 (indirect_refs_may_alias_p): Likewise.
30741 (stmt_kills_ref_p_1): Likewise.
30742
30743 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
30744
30745 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
30746
30747 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
30748
30749 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
30750 scalar form of FABD instruction.
30751
30752 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
30753
30754 * lra-constraints.c (process_alt_operands): Add checking alt
30755 number to choose the best alternative.
30756
30757 2013-05-02 Richard Biener <rguenther@suse.de>
30758
30759 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
30760 bitmap and its handling.
30761 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
30762
30763 2013-05-02 Richard Biener <rguenther@suse.de>
30764
30765 PR middle-end/57140
30766 * tree-inline.c (copy_loops): Properly handle removed loops.
30767 (copy_cfg_body): Mark destination loops for fixup if source
30768 loops needed fixup.
30769
30770 2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
30771
30772 PR target/56732
30773 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
30774 generating simple_return for naked functions.
30775
30776 2013-05-02 Martin Jambor <mjambor@suse.cz>
30777
30778 PR middle-end/56988
30779 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
30780 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
30781 flags match.
30782 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
30783 ipa_agg_replacement_value structures.
30784 (known_aggs_to_agg_replacement_list): Likewise.
30785 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
30786 (read_agg_replacement_chain): Likewise.
30787 (ipcp_transform_function): Also check that by_ref flags match.
30788
30789 2013-05-02 Richard Biener <rguenther@suse.de>
30790
30791 * graphds.h (struct graph): Add obstack member.
30792 * graphds.c (new_graph): Initialize obstack and allocate
30793 vertices from it.
30794 (add_edge): Allocate edge from the obstack.
30795 (free_graph): Free the obstack instead of all edges and vertices.
30796
30797 2013-05-02 Teresa Johnson <tejohnson@google.com>
30798
30799 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
30800 divides.
30801 * cfg.c (update_bb_profile_for_threading): Ditto.
30802 * tree-inline.c (copy_bb): Ditto.
30803 (copy_edges_for_bb): Ditto.
30804 (initialize_cfun): Ditto.
30805 (copy_cfg_body): Ditto.
30806 (expand_call_inline): Ditto.
30807 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
30808 (estimate_node_size_and_time): Ditto.
30809 (inline_merge_summary): Ditto.
30810 * cgraphclones.c (cgraph_clone_edge): Ditto.
30811 (cgraph_clone_node): Ditto.
30812 * sched-rgn.c (compute_dom_prob_ps): Ditto.
30813 (compute_trg_info): Ditto.
30814
30815 2013-05-02 Ian Bolton <ian.bolton@arm.com>
30816
30817 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
30818 S reg when fp attribute set.
30819 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
30820
30821 2013-05-02 Ian Bolton <ian.bolton@arm.com>
30822
30823 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
30824 New pattern.
30825 (*and_one_cmplsi3_compare0_uxtw): Likewise.
30826 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
30827 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
30828
30829 2013-05-02 Richard Biener <rguenther@suse.de>
30830
30831 * tree-scalar-evolution.c (scev_info_hasher): Remove.
30832 (struct instantiate_cache_entry): New type.
30833 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
30834 (struct instantiate_cache_type): New type.
30835 (set_instantiated_value, get_instantiated_value): Remove.
30836 (get_instantiated_value_entry): New function.
30837 (instantiate_scev_name): Use the new cache and adjust.
30838 (instantiate_scev_poly): Adjust.
30839 (instantiate_scev_binary): Likewise.
30840 (instantiate_array_ref): Likewise.
30841 (instantiate_scev_convert): Likewise.
30842 (instantiate_scev_not): Likewise.
30843 (instantiate_scev_3): Likewise.
30844 (instantiate_scev_2): Likewise.
30845 (instantiate_scev_r): Likewise.
30846 (instantiate_scev): Likewise.
30847 (resolve_mixers): Likewise.
30848
30849 2013-05-01 Vladimir Makarov <vmakarov@redhat.com>
30850
30851 PR target/57091
30852 * lra-constraints.c (best_small_class_operands_num): Remove.
30853 (process_alt_operands): Remove small_class_operands_num. Take
30854 small classes operands into losers and only if the operand is not
30855 matched. Modify debugging output.
30856 (curr_insn_transform): Remove best_small_class_operands_num.
30857 Print insn name.
30858
30859 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30860
30861 * config/aarch64/aarch64-builtins.c
30862 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
30863 * config/aarch64/aarch64-simd-builtins.def
30864 (reduc_splus_): Add new modes.
30865 (reduc_uplus_): New.
30866 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
30867 (reduc_uplus_v4sf): Likewise.
30868 (reduc_splus_v4sf): Likewise.
30869 (aarch64_addv<mode>): Likewise.
30870 (reduc_uplus_<mode>): Likewise.
30871 (reduc_splus_<mode>): Likewise.
30872 (aarch64_addvv2di): Likewise.
30873 (reduc_uplus_v2di): Likewise.
30874 (reduc_splus_v2di): Likewise.
30875 (aarch64_addvv2si): Likewise.
30876 (reduc_uplus_v2si): Likewise.
30877 (reduc_splus_v2si): Likewise.
30878 (reduc_<sur>plus_<mode>): New.
30879 (reduc_<sur>plus_v2di): Likewise.
30880 (reduc_<sur>plus_v2si): Likewise.
30881 (reduc_<sur>plus_v4sf): Likewise.
30882 (aarch64_addpv4sf): Likewise.
30883 * config/aarch64/arm_neon.h
30884 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
30885 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
30886 add UNSPEC_SADDV, UNSPEC_UADDV.
30887 (SUADDV): New.
30888 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
30889
30890 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30891
30892 * config/aarch64/arm_neon.h
30893 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
30894
30895 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30896
30897 * config/aarch64/aarch64-builtins
30898 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
30899
30900 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30901
30902 * config/aarch64/aarch64-simd-builtins.def
30903 (reduc_smax_): New.
30904 (reduc_smin_): Likewise.
30905 (reduc_umax_): Likewise.
30906 (reduc_umin_): Likewise.
30907 (reduc_smax_nan_): Likewise.
30908 (reduc_smin_nan_): Likewise.
30909 (fmax): Remove.
30910 (fmin): Likewise.
30911 (smax): Update for V2SF, V4SF and V2DF modes.
30912 (smin): Likewise.
30913 (smax_nan): New.
30914 (smin_nan): Likewise.
30915 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
30916 (<su><maxmin><mode>3): ...This, refactor.
30917 (s<maxmin><mode>3): New.
30918 (<maxmin_uns><mode>3): Likewise.
30919 (reduc_<maxmin_uns>_<mode>): Refactor.
30920 (reduc_<maxmin_uns>_v4sf): Likewise.
30921 (reduc_<maxmin_uns>_v2si): Likewise.
30922 (aarch64_<fmaxmin><mode>: Remove.
30923 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
30924 new builtin names.
30925 (vmin<q>_f<32,64>): Likewise.
30926 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
30927 (FMAXMIN): New.
30928 (su): Add mappings for smax, smin, umax, umin.
30929 (maxmin): New.
30930 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
30931 (FMAXMIN): Rename as...
30932 (FMAXMIN_UNS): ...This.
30933 (maxminv): Remove.
30934 (fmaxminv): Likewise.
30935 (fmaxmin): Likewise.
30936 (maxmin_uns): New.
30937 (maxmin_uns_op): Likewise.
30938
30939 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30940
30941 * config/aarch64/arm_neon.h
30942 (vac<ge, gt><sd>_f<32, 64>): Rename to...
30943 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
30944 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
30945
30946 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30947
30948 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
30949 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
30950
30951 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30952
30953 * config/aarch64/aarch64-simd.md
30954 (vcond<mode>_internal): Handle special cases for constant masks.
30955 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
30956 (vcondu<mode><mode>): Likewise.
30957 (vcond<v_cmp_result><mode>): New.
30958
30959 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30960
30961 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
30962 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
30963 * config/aarch64/aarch64-simd-builtins.def
30964 (cmeq): Update to BUILTIN_VALLDI.
30965 (cmgt): Likewise.
30966 (cmge): Likewise.
30967 (cmle): Likewise.
30968 (cmlt): Likewise.
30969 * config/aarch64/arm_neon.h
30970 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
30971 to builtins or C as appropriate.
30972
30973 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
30974
30975 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
30976 (cmgeu): ...This.
30977 (cmhi): Rename to...
30978 (cmgtu): ...This.
30979 * config/aarch64/aarch64-simd.md
30980 (simd_mode): Add SF.
30981 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
30982 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
30983 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
30984 (cstore<mode>_neg): ...This.
30985 * config/aarch64/iterators.md
30986 (VALLF): new.
30987 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
30988 (COMPARISONS): New.
30989 (UCOMPARISONS): Likewise.
30990 (optab): Add missing comparisons.
30991 (n_optab): New.
30992 (cmp_1): Likewise.
30993 (cmp_2): Likewise.
30994 (CMP): Likewise.
30995 (cmp): Remove.
30996 (VCMP_S): Likewise.
30997 (VCMP_U): Likewise.
30998 (V_cmp_result): Add DF, SF modes.
30999 (v_cmp_result): Likewise.
31000 (v): Likewise.
31001 (vmtype): Likewise.
31002 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
31003
31004 2013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
31005
31006 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
31007 define_insn to define_insn_and_split.
31008 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
31009 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
31010 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
31011 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
31012 (thumb2_negscc): Likewise.
31013
31014 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
31015
31016 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
31017
31018 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
31019
31020 * config/arm/thumb2.md: Remove trailing whitespaces.
31021
31022 2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
31023
31024 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
31025 Use gen_int_mode rather than GEN_INT.
31026
31027 2013-04-30 H.J. Lu <hongjiu.lu@intel.com>
31028
31029 * value-prof.c (stream_in_histogram_value): Remove the strayed
31030 debug_gimple_stmt.
31031
31032 2013-04-30 Richard Biener <rguenther@suse.de>
31033
31034 PR middle-end/57122
31035 * cfghooks.c (split_edge): Properly check for the loop latch edge.
31036
31037 2013-04-30 Richard Biener <rguenther@suse.de>
31038
31039 PR middle-end/57107
31040 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
31041
31042 2013-04-30 Andrey Belevantsev <abel@ispras.ru>
31043
31044 PR rtl-optimization/56957
31045 PR rtl-optimization/57105
31046 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
31047 variable. Use just INSN_UID for determining whether an insn
31048 should be only disconnected from the insn stream.
31049 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
31050
31051 2013-04-30 Jakub Jelinek <jakub@redhat.com>
31052
31053 PR tree-optimization/57104
31054 * tsan.c (instrument_expr): Don't instrument accesses to
31055 DECL_HARD_REGISTER VAR_DECLs.
31056
31057 2013-04-30 Richard Biener <rguenther@suse.de>
31058
31059 * function.h (loops_for_fn): New inline function.
31060 (set_loops_for_fn): Likewise.
31061 * cfgloop.h (place_new_loop): Add struct function parameter.
31062 (get_loop): Likewise.
31063 (get_loops): Likewise.
31064 (number_of_loops): Likewise.
31065 (fel_next): Adjust.
31066 (fel_init): Likewise.
31067 * cfg.c (get_loop_copy): Adjust.
31068 * cfgloop.c (flow_loops_dump): Likewise.
31069 (record_loop_exits): Likewise.
31070 (verify_loop_structure): Likewise.
31071 * cfgloopanal.c (mark_irreducible_loops): Likewise.
31072 (estimate_reg_pressure_cost): Likewise.
31073 (mark_loop_exit_edges): Likewise.
31074 * cfgloopmanip.c (place_new_loop): Likewise.
31075 (add_loop): Likewise.
31076 (duplicate_loop): Likewise.
31077 * graph.c (draw_cfg_nodes): Likewise.
31078 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
31079 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
31080 (extract_affine_chrec): Likewise.
31081 (build_scop_iteration_domain): Likewise.
31082 * graphite.c (graphite_initialize): Likewise.
31083 * ira-build.c (create_loop_tree_nodes): Likewise.
31084 (more_one_region_p): Likewise.
31085 (rebuild_regno_allocno_maps): Likewise.
31086 (mark_loops_for_removal): Likewise.
31087 (mark_all_loops_for_removal): Likewise.
31088 (remove_unnecessary_regions): Likewise.
31089 (ira_build): Likewise.
31090 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
31091 * loop-init.c (fix_loop_structure): Likewise.
31092 (gate_rtl_move_loop_invariants): Likewise.
31093 (gate_rtl_unswitch): Likewise.
31094 (gate_rtl_unroll_and_peel_loops): Likewise.
31095 (rtl_doloop): Likewise.
31096 * lto-streamer-in.c (input_cfg): Likewise.
31097 * lto-streamer-out.c (output_cfg): Likewise.
31098 * modulo-sched.c (sms_schedule): Likewise.
31099 * predict.c (tree_estimate_probability): Likewise.
31100 (tree_estimate_probability_driver): Likewise.
31101 (estimate_loops): Likewise.
31102 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
31103 (move_sese_region_to_fn): Likewise.
31104 (debug_loop_num): Likewise.
31105 * tree-chrec.c (chrec_evaluate): Likewise.
31106 (hide_evolution_in_other_loops_than_loop): Likewise.
31107 (chrec_component_in_loop_num): Likewise.
31108 (reset_evolution_in_loop): Likewise.
31109 (evolution_function_is_invariant_rec_p): Likewise.
31110 * tree-if-conv.c (main_tree_if_conversion): Likewise.
31111 * tree-inline.c (copy_loops): Likewise.
31112 (copy_cfg_body): Likewise.
31113 (tree_function_versioning): Likewise.
31114 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
31115 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
31116 Likewise.
31117 (add_to_evolution_1): Likewise.
31118 (scev_const_prop): Likewise.
31119 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
31120 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
31121 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
31122 (tree_ssa_lim_initialize): Likewise.
31123 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
31124 (verify_loop_closed_ssa): Likewise.
31125 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
31126 (tree_ssa_loop_im): Likewise.
31127 (tree_ssa_loop_unswitch): Likewise.
31128 (tree_vectorize): Likewise.
31129 (check_data_deps): Likewise.
31130 (tree_ssa_loop_ivcanon): Likewise.
31131 (tree_ssa_loop_bounds): Likewise.
31132 (tree_complete_unroll): Likewise.
31133 (tree_complete_unroll_inner): Likewise.
31134 (tree_parallelize_loops): Likewise.
31135 (tree_ssa_loop_prefetch): Likewise.
31136 (tree_ssa_loop_ivopts): Likewise.
31137 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
31138 * tree-vectorizer.c (vectorize_loops): Likewise.
31139
31140 2013-04-29 Mike Frysinger <vapier@gentoo.org>
31141
31142 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
31143 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
31144 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
31145 with EABI_LINK_SPEC.
31146
31147 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
31148
31149 PR target/44578
31150 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
31151 alternative.
31152
31153 2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
31154
31155 PR target/57097
31156 * lra-constraints.c (process_alt_operands): Discourage a bit more
31157 using memory for pseudos. Print cost dump for alternatives.
31158 Modify cost values for conflicts with early clobbers.
31159 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
31160
31161 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
31162
31163 PR target/57098
31164 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
31165
31166 2013-04-29 Ian Bolton <ian.bolton@arm.com>
31167
31168 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
31169 from/to S register.
31170 (movdi_aarch64): Support LDR/STR from/to D register.
31171
31172 2013-04-29 Ian Bolton <ian.bolton@arm.com>
31173
31174 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
31175 or higher by default.
31176
31177 2013-04-29 Richard Biener <rguenther@suse.de>
31178
31179 PR middle-end/57075
31180 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
31181 even if not adding abnormal edges for calls that can make
31182 abnormal gotos.
31183
31184 2013-04-29 Richard Biener <rguenther@suse.de>
31185
31186 PR middle-end/57103
31187 * tree-cfg.c (move_stmt_op): Fix condition under which to update
31188 TREE_BLOCK.
31189 (move_stmt_r): Remove redundant checking.
31190
31191 2013-04-29 Teresa Johnson <tejohnson@google.com>
31192
31193 PR bootstrap/57077
31194 * basic-block.h (apply_scale): New function.
31195 (apply_probability): Use apply_scale.
31196 * gimple-streamer-in.c (input_bb): Ditto.
31197 * lto-streamer-in.c (input_cfg): Ditto.
31198 * lto-cgraph.c (merge_profile_summaries): Ditto.
31199 * tree-optimize.c (execute_fixup_cfg): Ditto.
31200 * tree-inline.c (copy_bb): Update comment to use apply_scale.
31201 (copy_edges_for_bb): Ditto.
31202 (copy_cfg_body): Ditto.
31203
31204 2013-04-29 Tom de Vries <tom@codesourcery.com>
31205
31206 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
31207 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
31208 (tail_merge_optimize): Handle current_loops == NULL.
31209
31210 2013-04-26 Jeff Law <law@redhat.com>
31211
31212 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
31213 (simplify_cond_using_ranges): Generalize code to simplify
31214 COND_EXPRs where one argument is a constant and the other
31215 is an SSA_NAME created by an integral type conversion.
31216
31217 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31218
31219 * config/arm/arm.md (store_minmaxsi): Use only when
31220 optimize_insn_for_size_p.
31221
31222 2013-04-29 Christian Bruel <christian.bruel@st.com>
31223
31224 PR target/57108
31225 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
31226
31227 2013-04-29 Richard Biener <rguenther@suse.de>
31228
31229 PR middle-end/57089
31230 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
31231 loop tree make sure to schedule a fixup for the child as well.
31232 (expand_omp_for_generic): Properly add loops.
31233 (expand_omp_for_static_nochunk): Likewise.
31234 (expand_omp_for_static_chunk): Likewise.
31235 (expand_omp_for): For the degenerate case fixup loops.
31236 (expand_omp_sections): Fix default bb placement in loops.
31237 (expand_omp_atomic_pipeline): Properly add loops.
31238
31239 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31240
31241 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
31242
31243 2013-04-29 Tom de Vries <tom@codesourcery.com>
31244
31245 * tree-ssa-tail-merge.c: Update header comment.
31246
31247 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
31248
31249 * config/aarch64/arm_neon.h
31250 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
31251 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
31252 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
31253 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
31254 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
31255 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
31256 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
31257 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
31258
31259 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
31260
31261 * config/aarch64/aarch64-simd.md
31262 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
31263 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
31264 fix_trunc, fixuns_trunc.
31265 (ftrunc<VDQF:mode>2): New.
31266 * config/aarch64/iterators.md (optab): Add fix, fixuns.
31267 (fix_trunc_optab): New.
31268
31269 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
31270
31271 * config/aarch64/aarch64-builtins.c
31272 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
31273 iceilf, lround, iroundf.
31274
31275 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
31276
31277 PR target/54349
31278 * config/i386/i386.h (enum ix86_tune_indices)
31279 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
31280 New, split from X86_TUNE_INTER_UNIT_MOVES.
31281 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
31282 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
31283 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
31284 (TARGET_INTER_UNIT_MOVES): Remove.
31285 * config/i386/i386.c (initial_ix86_tune_features): Update.
31286 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
31287 (ix86_expand_convert_uns_didf_sse): Use
31288 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
31289 (ix86_expand_vector_init_one_nonzero): Ditto.
31290 (ix86_expand_vector_init_interleave): Ditto.
31291 (inline_secondary_memory_needed): Return true for moves from SSE class
31292 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
31293 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
31294 * config/i386/constraints.md (Yi, Ym): Depend on
31295 TARGET_INTER_UNIT_MOVES_TO_VEC.
31296 (Yj, Yn): New constraints.
31297 * config/i386/i386.md (*movdi_internal): Change constraints of
31298 operand 1 from Yi to Yj and from Ym to Yn.
31299 (*movsi_internal): Ditto.
31300 (*movdf_internal): Ditto.
31301 (*movsf_internal): Ditto.
31302 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
31303 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
31304 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
31305 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
31306 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
31307 * config/i386/sse.md (movdi_to_sse): Ditto.
31308 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
31309 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
31310 TARGET_INTER_UNIT_MOVES.
31311 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
31312 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
31313 instead of TARGET_INTER_UNIT_MOVES.
31314 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
31315 operand 1 from Yi to Yj and from Ym to Yn.
31316
31317 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
31318
31319 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
31320 (float_truncate_hi_): Likewise.
31321 (float_extend_lo_): Likewise.
31322 (float_truncate_lo_): Likewise.
31323 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
31324 (aarch64_float_extend_lo_v2df): Likewise.
31325 (vec_unpacks_hi_v4sf): Likewise.
31326 (aarch64_float_truncate_lo_v2sf): Likewise.
31327 (aarch64_float_truncate_hi_v4sf): Likewise.
31328 (vec_pack_trunc_v2df): Likewise.
31329 (vec_pack_trunc_df): Likewise.
31330
31331 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
31332
31333 * config/aarch64/aarch64-builtins.c
31334 (aarch64_fold_builtin): Fold float conversions.
31335 * config/aarch64/aarch64-simd-builtins.def
31336 (floatv2si, floatv4si, floatv2di): New.
31337 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
31338 * config/aarch64/aarch64-simd.md
31339 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
31340 * config/aarch64/iterators.md (FLOATUORS): New.
31341 (optab): Add float, floatuns.
31342 (su_optab): Likewise.
31343
31344 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
31345
31346 * config/aarch64/aarch64-builtins.c
31347 (aarch64_builtin_vectorized_function): Use new names for
31348 fcvt builtins.
31349 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
31350 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
31351 (fcvtzu): Split as...
31352 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
31353 (fcvtas): Split as...
31354 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
31355 (fcvtau): Split as...
31356 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
31357 (fcvtps): Split as...
31358 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
31359 (fcvtpu): Split as...
31360 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
31361 (fcvtms): Split as...
31362 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
31363 (fcvtmu): Split as...
31364 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
31365 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
31366 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
31367 (lfrintnusf, lfrintnudf): Likewise.
31368 * config/aarch64/aarch64-simd.md
31369 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
31370 define_insn.
31371 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
31372 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
31373 (fcvt_pattern): Likewise.
31374
31375 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
31376
31377 * config/aarch64/aarch64-simd.md
31378 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
31379 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
31380
31381 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
31382
31383 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
31384 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
31385 (vrnd<a,m,n,p>_f32): Implement using builtins.
31386 (vrnd<i,x><q>_f<32, 64>): New.
31387
31388 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
31389
31390 * config/aarch64/aarch64-builtins.c
31391 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
31392 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
31393 (frintz): Rename to...
31394 (btrunc): ...this.
31395 (frintp): Rename to...
31396 (ceil): ...this.
31397 (frintm): Rename to...
31398 (floor): ...this.
31399 (frinti): Rename to...
31400 (nearbyint): ...this.
31401 (frintx): Rename to...
31402 (rint): ...this.
31403 (frinta): Rename to...
31404 (round): ...this.
31405 * config/aarch64/aarch64-simd.md
31406 (aarch64_frint<frint_suffix><mode>): Delete.
31407 (<frint_pattern><mode>2): Convert to insn.
31408 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
31409 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
31410 (frint_pattern): Likewise.
31411 (frint_suffix): Likewise.
31412
31413 2013-04-29 Richard Biener <rguenther@suse.de>
31414
31415 PR tree-optimization/57081
31416 * loop-init.c: Include tree-flow.h.
31417 (loop_optimizer_finalize): Free number of iteration estimates.
31418 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
31419
31420 2013-04-29 Jakub Jelinek <jakub@redhat.com>
31421
31422 PR tree-optimization/57083
31423 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
31424 non-singleton shift count range, zero extend low_bound for uns case.
31425
31426 * config/i386/predicates.md (general_vector_operand): New predicate.
31427 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
31428 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
31429 if they aren't nonimmediate operands. If their original values
31430 satisfy const_vector_equal_evenodd_p, don't shift them.
31431 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
31432 predicates. For the SSE4.1 case force operands[{1,2}] into registers
31433 if not nonimmediate_operand.
31434 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
31435 instead of register_operand.
31436 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
31437
31438 2013-04-28 Eric Botcazou <ebotcazou@adacore.com>
31439
31440 * stor-layout.c (finalize_size_functions): Allocate a structure and
31441 reset cfun before dumping the functions.
31442
31443 2013-04-27 Jakub Jelinek <jakub@redhat.com>
31444
31445 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
31446
31447 PR target/56866
31448 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
31449 use xop_pmacsdqh if uns_p.
31450 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
31451 the immediate rotate count.
31452
31453 2013-04-26 Vladimir Makarov <vmakarov@redhat.com>
31454
31455 * rtl.h (struct rtx_def): Add comment for field jump.
31456 (LRA_SUBREG_P): New macro.
31457 * recog.c (register_operand): Check LRA_SUBREG_P.
31458 * lra.c (lra): Add note at the end of RTL code. Align non-empty
31459 stack frame.
31460 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
31461 (lra_final_code_change): Skip subreg change for operators.
31462 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
31463 if there are no operand changes.
31464 * lra-constraints.c (curr_insn_set): New.
31465 (match_reload): Set LRA_SUBREG_P.
31466 (emit_spill_move): Ditto.
31467 (check_and_process_move): Use curr_insn_set. Process only single
31468 set insns. Don't initialize sec_mem_p and change_p.
31469 (simplify_operand_subreg): Use LRA_SUBREG_P.
31470 (reg_in_class_p): New function.
31471 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
31472 of #ifdef. Add code to remove cycling.
31473 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
31474 non-null disp. Reload inner instead of disp when base and index
31475 are null. Try to put lo_sum into register.
31476 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
31477 (check_and_process_move): Move code for move cost check to
31478 simple_move_p. Remove equiv_substitution.
31479 (simple_move_p): New function.
31480 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
31481 curr_insn_set. Call check_and_process_move only for single set
31482 insns. Use the new function. Move call of check_and_process_move
31483 after operand equiv substitution and address process.
31484
31485 2013-04-26 Jakub Jelinek <jakub@redhat.com>
31486
31487 PR go/57045
31488 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
31489 with nonlocal goto receivers or returns twice calls, ignore
31490 unininitialized values from abnormal edges to nl goto receiver
31491 or returns twice call.
31492
31493 2013-04-26 Jakub Jelinek <jakub@redhat.com>
31494
31495 PR tree-optimization/57051
31496 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
31497 and VEC_RSHIFT_EXPR if shift count is a multiple of element
31498 bitsize.
31499
31500 2013-04-26 Richard Biener <rguenther@suse.de>
31501
31502 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
31503 (expand_omp_taskreg): Likewise. Mark loops for fixup.
31504 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
31505 (fixup_loop_arrays_after_move): New function.
31506 (move_sese_region_to_fn): Properly outline the loop tree parts
31507 of the SESE region.
31508
31509 2013-04-26 Uros Bizjak <ubizjak@gmail.com>
31510
31511 * config/i386/i386.md (type, unit): Fix long lines.
31512
31513 2013-04-26 Richard Biener <rguenther@suse.de>
31514
31515 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
31516 (lto-streamer-out.o): Likewise.
31517 * cfgloop.c (init_loops_structure): Export, add struct function
31518 argument and adjust.
31519 (flow_loops_find): Adjust.
31520 * cfgloop.h (enum loop_estimation): Add EST_LAST.
31521 (init_loops_structure): Declare.
31522 * lto-streamer-in.c: Include cfgloop.h.
31523 (input_cfg): Input the loop tree.
31524 * lto-streamer-out.c: Include cfgloop.h.
31525 (output_cfg): Output the loop tree.
31526 (output_struct_function_base): Do not drop PROP_loops.
31527
31528 2013-03-26 Richard Biener <rguenther@suse.de>
31529
31530 * tree-cfg.c (execute_build_cfg): Build the loop tree.
31531 (pass_build_cfg): Provide PROP_loops.
31532 (move_sese_region_to_fn): Remove loops that are outlined into fn
31533 for now.
31534 * tree-inline.c: Include cfgloop.h.
31535 (initialize_cfun): Do not drop PROP_loops.
31536 (copy_loops): New function.
31537 (copy_cfg_body): Copy loop structure.
31538 (tree_function_versioning): Initialize destination loop tree.
31539 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
31540 (pass_parallelize_loops): Do IL verification.
31541 * loop-init.c (loop_optimizer_init): Fixup loops if required.
31542 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
31543 the CFG make sure we fixup loops as well.
31544 * tree-ssa-tail-merge.c: Include cfgloop.h.
31545 (replace_block_by): When merging loop latches mark loops for fixup.
31546 * lto-streamer-out.c (output_struct_function_base): Drop
31547 PROP_loops for now.
31548 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
31549 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
31550 * ipa-split.c: Include cfgloop.h.
31551 (split_function): Add the new return block to the loop tree root.
31552 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
31553 whether we have removed the forwarder block.
31554 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
31555 * cfgloop.h (place_new_loop): Declare.
31556 * cfgloopmanip.c (place_new_loop): Export.
31557 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
31558 (tree-switch-conversion.o): Likewise.
31559 (tree-complex.o): Likewise.
31560 (tree-inline.o): Likewise.
31561 (tree-ssa-tailmerge.o): Likewise.
31562 (ipa-split.o): Likewise.
31563 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
31564 (tree-ssa-copy.o): Likewise.
31565 * tree-switch-conversion.c: Include cfgloop.h
31566 (process_switch): If we emit a bit-test cascade, schedule loops
31567 for fixup.
31568 * tree-complex.c: Include cfgloop.h.
31569 (expand_complex_div_wide): Properly add new basic-blocks to loops.
31570 * asan.c: Include cfgloop.h.
31571 (create_cond_insert_point): Properly add new basic-blocks to
31572 loops, schedule loop fixup.
31573 * cfgloop.c (verify_loop_structure): Check that looks are not
31574 marked for fixup.
31575 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
31576 to loops.
31577 (expand_omp_for_generic): Likewise.
31578 (expand_omp_sections): Likewise.
31579 (expand_omp_atomic_pipeline): Schedule loops for fixup.
31580 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
31581 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
31582 is initialized, not when loops are present.
31583 * tree-parloops.c (parallelize_loops): Remove checking here.
31584 * passes.c (init_optimization_passes): Schedule a copy-propagation
31585 pass before complete unrolling of inner loops.
31586
31587 2013-04-26 Jakub Jelinek <jakub@redhat.com>
31588
31589 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
31590 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
31591 (colorize_init): Add argument to _WIN32 version.
31592 * toplev.c: Include diagnostic-color.h.
31593 (process_options): Default to -fdiagnostics-color=auto if
31594 GCC_COLORS env var is in the environment.
31595 * common.opt (fdiagnostics-color=): Add Var and Init.
31596 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
31597 env var is in the environment, the default is auto rather than never.
31598
31599 * diagnostic.h (file_name_as_prefix): Add context argument.
31600 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
31601 the string as locus.
31602 * langhooks.c (lhd_print_error_function): Adjust caller.
31603
31604 2013-04-25 Lawrence Crowl <crowl@google.com>
31605
31606 * var-tracking.c (shared_hash_def::htab):
31607 Change type to hash_table. Update dependent calls and types.
31608
31609 2013-04-25 Lawrence Crowl <crowl@google.com>
31610
31611 * Makefile.in: Update as needed below.
31612
31613 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
31614 Move declaration to after the type's method definitons.
31615
31616 * attribs.c (htab_t scoped_attributes::attribute_hash):
31617 Change type to hash_table. Update dependent calls and types.
31618
31619 * bitmap.c (htab_t bitmap_desc_hash):
31620 Change type to hash_table. Update dependent calls and types.
31621
31622 * cselib.c (htab_t cselib_hash_table):
31623 Change type to hash_table. Update dependent calls and types.
31624
31625 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
31626 (hash_string_slot_node): Move implementation into lto-streamer.h
31627 struct string_slot_hasher.
31628 (eq_string_slot_node): Likewise.
31629
31630 * data-streamer-out.c: Update output_block::string_hash_table
31631 dependent calls and types.
31632
31633 * dwarf2cfi.c (htab_t trace_index):
31634 Change type to hash_table. Update dependent calls and types.
31635
31636 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
31637 Change type to hash_table. Update dependent calls and types.
31638 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
31639 (htab_t optimize_external_refs::map): Likewise.
31640 (htab_t output_comp_unit::extern_map): Likewise.
31641 (htab_t output_comdat_type_unit::extern_map): Likewise.
31642 (htab_t output_macinfo::macinfo_htab): Likewise.
31643 (htab_t optimize_location_lists::htab): Likewise.
31644 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
31645
31646 * except.c (htab_t ehspec_hash_type):
31647 Change type to hash_table. Update dependent calls and types.
31648 (assign_filter_values::ttypes): Likewise.
31649 (assign_filter_values::ehspec): Likewise.
31650 (sjlj_assign_call_site_values::ar_hash): Likewise.
31651 (convert_to_eh_region_ranges::ar_hash): Likewise.
31652
31653 * gcse.c (htab_t pre_ldst_table):
31654 Change type to hash_table. Update dependent calls and types.
31655
31656 * ggc-common.c (htab_t saving_htab):
31657 Change type to hash_table. Update dependent calls and types.
31658 (htab_t loc_hash): Likewise.
31659 (htab_t ptr_hash): Likewise.
31660 (call_count): Rename ggc_call_count.
31661 (call_alloc): Rename ggc_call_alloc.
31662 (loc_descriptor): Rename make_loc_descriptor.
31663 (add_statistics): Rename ggc_add_statistics.
31664
31665 * ggc-common.c (saving_htab):
31666 Change type to hash_table. Update dependent calls and types.
31667
31668 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
31669 (push_gimplify_context): Likewise.
31670 (pop_gimplify_context): Likewise.
31671 (struct gimple_temp_hash_elt): Added.
31672 (struct gimplify_hasher): Likewise.
31673 (struct gimplify_ctx.temp_htab):
31674 Change type to hash_table. Update dependent calls and types.
31675
31676 * gimple-fold.c: Include gimplify-ctx.h.
31677
31678 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
31679 Change type to hash_table. Update dependent calls and types.
31680 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
31681 avoid potential global name collision.
31682
31683 * gimplify.c: Include gimplify-ctx.h.
31684 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
31685 (htab_t gimplify_ctx::temp_htab):
31686 Update dependent calls and types for new type hash_table.
31687 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
31688 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
31689
31690 * gimplify-ctx.h: New.
31691 (struct gimple_temp_hash_elt): Move from gimplify.c.
31692 (class gimplify_hasher): New.
31693 (struct gimplify_ctx): Move from gimple.h.
31694 (htab_t gimplify_ctx::temp_htab):
31695 Change type to hash_table. Update dependent calls and types.
31696
31697 * graphite-clast-to-gimple.c: Include graphite-htab.h.
31698 (htab_t ivs_params::newivs_index):
31699 Change type to hash_table. Update dependent calls and types.
31700 (htab_t ivs_params::params_index): Likewise.
31701 (htab_t print_generated_program::params_index): Likewise.
31702 (htab_t gloog::newivs_index): Likewise.
31703 (htab_t gloog::params_index): Likewise.
31704
31705 * graphite.c: Include graphite-htab.h.
31706 4htab_t graphite_transform_loops::bb_pbb_mapping):
31707 Change type to hash_table. Update dependent calls and types.
31708
31709 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
31710 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
31711 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
31712
31713 * graphite-dependences.c: Include graphite-htab.h.
31714 (loop_is_parallel_p): Change hash table type of parameter.
31715
31716 * graphite-htab.h: New.
31717 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
31718 (extern find_pbb_via_hash): Move from graphite-poly.h.
31719 (extern loop_is_parallel_p): Move from graphite-poly.h.
31720 (extern get_loop_body_pbbs): Move from graphite-poly.h.
31721
31722 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
31723 (extern loop_is_parallel_p): Move to graphite-htab.h.
31724 (extern get_loop_body_pbbs): Move to graphite-htab.h.
31725
31726 * haifa-sched.c (htab_t delay_htab):
31727 Change type to hash_table. Update dependent calls and types.
31728 (htab_t delay_htab_i2): Likewise.
31729
31730 * ira-color.c (htab_t allocno_hard_regs_htab):
31731 Change type to hash_table. Update dependent calls and types.
31732
31733 * ira-costs.c (htab_t cost_classes_htab):
31734 Change type to hash_table. Update dependent calls and types.
31735
31736 * loop-invariant.c (htab_t merge_identical_invariants::eq):
31737 Change type to hash_table. Update dependent calls and types.
31738
31739 * loop-iv.c (htab_t bivs):
31740 Change type to hash_table. Update dependent calls and types.
31741
31742 * loop-unroll.c (htab_t opt_info::insns_to_split):
31743 Change type to hash_table. Update dependent calls and types.
31744 (htab_t opt_info::insns_with_var_to_expand): Likewise.
31745
31746 * lto-streamer.h (struct string_slot): Move from data-streamer.h
31747 (struct string_slot_hasher): New.
31748 (htab_t output_block::string_hash_table):
31749 Change type to hash_table. Update dependent calls and types.
31750
31751 * lto-streamer-in.c (freeing_string_slot_hasher): New.
31752 (htab_t file_name_hash_table):
31753 Change type to hash_table. Update dependent calls and types.
31754
31755 * lto-streamer-out.c: Update output_block::string_hash_table dependent
31756 calls and types.
31757
31758 * lto-streamer.c (htab_t tree_htab):
31759 Change type to hash_table. Update dependent calls and types.
31760
31761 * omp-low.c: Include gimplify-ctx.h.
31762
31763 * passes.c (htab_t name_to_pass_map):
31764 Change type to hash_table. Update dependent calls and types.
31765 (pass_traverse): Rename to passes_pass_traverse.
31766
31767 * plugin.c (htab_t event_tab):
31768 Change type to hash_table. Update dependent calls and types.
31769
31770 * postreload-gcse.c (htab_t expr_table):
31771 Change type to hash_table. Update dependent calls and types.
31772 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
31773
31774 * sese.c (debug_rename_map_1): Make extern.
31775 (htab_t copy_bb_and_scalar_dependences::rename_map):
31776 Change type to hash_table. Update dependent calls and types.
31777
31778 * sese.h (extern debug_rename_map): Move to .c file.
31779
31780 * store-motion.c (htab_t store_motion_mems_table):
31781 Change type to hash_table. Update dependent calls and types.
31782
31783 * trans-mem.c (htab_t tm_new_mem_hash):
31784 Change type to hash_table. Update dependent calls and types.
31785
31786 * tree-browser.c (htab_t TB_up_ht):
31787 Change type to hash_table. Update dependent calls and types.
31788
31789 * tree-cfg.c (htab_t discriminator_per_locus):
31790 Change type to hash_table. Update dependent calls and types.
31791
31792 * tree-complex.c: Include tree-hasher.h
31793 (htab_t complex_variable_components):
31794 Change type to hash_table. Update dependent calls and types.
31795
31796 * tree-eh.c (htab_t finally_tree):
31797 Change type to hash_table. Update dependent calls and types.
31798
31799 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
31800 struct int_tree_hasher.
31801 (extern int_tree_map_eq): Likewise.
31802 (uid_decl_map_hash): Removed.
31803 (extern decl_tree_map_eq): Likewise.
31804
31805 * tree-hasher.h: New.
31806 (struct int_tree_hasher): New.
31807 (typedef int_tree_htab_type): New.
31808
31809 * tree-inline.c: Include gimplify-ctx.h.
31810
31811 * tree-mudflap.c: Include gimplify-ctx.h.
31812
31813 * tree-parloops.c: Include tree-hasher.h.
31814 (htab_t eliminate_local_variables_stmt::decl_address):
31815 Change type to hash_table. Update dependent calls and types.
31816 (htab_t separate_decls_in_region::decl_copies): Likewise.
31817
31818 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
31819 Change type to hash_table. Update dependent calls and types.
31820
31821 * tree-sra.c (candidates):
31822 Change type to hash_table. Update dependent calls and types.
31823
31824 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
31825 in tree-flow.h.
31826 (int_tree_map_hash): Likewise.
31827
31828 * tree-ssa-dom.c (htab_t avail_exprs):
31829 Change type to hash_table. Update dependent calls and types.
31830
31831 * tree-ssa-live.c (var_map_base_init::tree_to_index):
31832 Change type to hash_table. Update dependent calls and types.
31833
31834 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
31835 Change type to hash_table. Update dependent calls and types.
31836
31837 * tree-ssa-phiopt.c (seen_ssa_names):
31838 Change type to hash_table. Update dependent calls and types.
31839
31840 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
31841 Change type to hash_table. Update dependent calls and types.
31842
31843 * tree-ssa-uncprop.c (equiv):
31844 Change type to hash_table. Update dependent calls and types.
31845
31846 2013-04-25 Jakub Jelinek <jakub@redhat.com>
31847
31848 PR rtl-optimization/57003
31849 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
31850 call note_stores with kill_clobbered_value callback again after
31851 killing regs_invalidated_by_call.
31852
31853 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31854
31855 * config/aarch64/aarch64-simd.md
31856 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
31857 (aarch64_simd_bsl<mode>): Likewise.
31858 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
31859
31860 2013-04-25 Marek Polacek <polacek@redhat.com>
31861
31862 PR tree-optimization/57066
31863 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
31864
31865 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31866
31867 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
31868
31869 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31870
31871 * config/aarch64/aarch64-builtins.c
31872 (aarch64_fold_builtin): New.
31873 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
31874 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
31875 * config/aarch64/aarch64-simd-builtins.def (abs): New.
31876 * config/aarch64/arm_neon.h
31877 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
31878
31879 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31880 Tejas Belagod <tejas.belagod@arm.com>
31881
31882 * config/aarch64/aarch64-builtins.c
31883 (aarch64_gimple_fold_builtin): New.
31884 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
31885 * config/aarch64/aarch64-simd-builtins.def (addv): New.
31886 * config/aarch64/aarch64-simd.md (addpv4sf): New.
31887 (addvv4sf): Update.
31888 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
31889
31890 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
31891
31892 * config/aarch64/aarch64.md
31893 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
31894
31895 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
31896
31897 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
31898 (*ngcsi_uxtw): New pattern.
31899
31900 2013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31901 Julian Brown <julian@codesourcery.com>
31902
31903 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
31904 (TB_DREG): Add T_V4HF.
31905 (v4hf_UP): New macro.
31906 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
31907 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
31908 Handle initialisation of V4HF. Adjust initialisation of reinterpret
31909 built-ins.
31910 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
31911 (arm_vector_mode_supported_p): Handle V4HF.
31912 (arm_mangle_map): Handle V4HFmode.
31913 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
31914 * config/arm/arm_neon_builtins.def: Add entries for
31915 vcvtv4hfv4sf, vcvtv4sfv4hf.
31916 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
31917 (neon_vcvtv4hfv4sf): Likewise.
31918 * config/arm/neon-gen.ml: Handle half-precision floating point
31919 features.
31920 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
31921 * config/arm/arm_neon.h: Regenerate.
31922 * config/arm/neon.ml (type elts): Add F16.
31923 (type vectype): Add T_float16x4, T_floatHF.
31924 (type vecmode): Add V4HF.
31925 (type features): Add Requires_FP_bit feature.
31926 (elt_width): Handle F16.
31927 (elt_class): Likewise.
31928 (elt_of_class_width): Likewise.
31929 (mode_of_elt): Refactor.
31930 (type_for_elt): Handle F16, fix error messages.
31931 (vectype_size): Handle T_float16x4.
31932 (vcvt_sh): New function.
31933 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
31934 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
31935 (string_of_mode): Handle V4HF.
31936 * doc/arm-neon-intrinsics.texi: Regenerate.
31937
31938 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
31939
31940 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
31941 format specifier in 'X' case.
31942
31943 2013-04-25 Alan Modra <amodra@gmail.com>
31944
31945 PR target/57052
31946 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
31947 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
31948 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
31949 Repeat for many other rotate/shift and mask patterns using subregs.
31950 Name lshiftrt insns.
31951 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
31952 on WORDS_BIG_ENDIAN.
31953
31954 2013-04-25 Alan Modra <amodra@gmail.com>
31955
31956 * config.gcc: Support little-endian powerpc-linux targets.
31957 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
31958 (LINK_OS_LINUX_SPEC): Define.
31959 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
31960 Preserve MASK_LITTLE_ENDIAN.
31961 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
31962 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
31963 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
31964 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
31965 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
31966 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
31967 Correct fp word order for little-endian. Don't shift toc entries
31968 smaller than a word for little-endian.
31969 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
31970 (bswapdi2 splits): Correct low-part subreg for little-endian.
31971 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
31972 low/high where such is correct only for be.
31973 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
31974 little-endian for -mcall-aixdesc.
31975
31976 2013-04-25 Alan Modra <amodra@gmail.com>
31977
31978 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
31979 replace_equiv_address_nv.
31980
31981 2013-04-25 Alan Modra <amodra@gmail.com>
31982
31983 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
31984
31985 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
31986
31987 Revert:
31988 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
31989 * rtl.h (struct rtx_def): ...
31990
31991 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
31992
31993 PR rtl-optimizations/57046
31994 * lra-constraints (split_reg): Set up lra_risky_transformations_p
31995 for multi-reg splits.
31996
31997 2013-04-24 H.J. Lu <hongjiu.lu@intel.com>
31998
31999 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
32000
32001 2013-04-24 Sterling Augustine <saugustine@google.com>
32002
32003 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
32004 (comp_dir_string, debug_str_dwo_section): New.
32005 (DEBUG_STR_DWO_SECTION): Rename to ...
32006 (DEBUG_DWO_STR_SECTION): ... this.
32007 (DEBUG_NORM_STR_SECTION): Delete.
32008 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
32009 (DEBUG_STR_DWO_SECTION_FLAGS): New.
32010 (find_AT_string): Move most logic to ...
32011 (find_AT_string_in_table): ... here. New.
32012 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
32013 add_skeleton_AT_string. Delete logic.
32014 (output_skeleton_debug_sections): Remove call to
32015 add_top_level_skeleton_die_attrs.
32016 (add_comp_dir_attribute): Move logic to comp_dir_string.
32017 (dwarf2out_init): Initialize debug_str_dwo_section.
32018 (output_indirect_string): Call find_string_form.
32019 (output_indirect_strings): Rewrite.
32020 (prune_unused_types): Empty skeleton_debug_str_hash.
32021 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
32022 (dwarf2out_finish): Call output_indirect_strings.
32023
32024 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
32025
32026 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
32027
32028 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
32029
32030 * rtl.h (struct rtx_def): Add comment for field jump.
32031 (LRA_SUBREG_P): New macro.
32032 * recog.c (register_operand): Check LRA_SUBREG_P.
32033 * lra.c (lra): Add note at the end of RTL code. Align non-empty
32034 stack frame.
32035 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
32036 (lra_final_code_change): Skip subreg change for operators.
32037 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
32038 if there are no operand changes.
32039 * lra-constraints.c (curr_insn_set): New.
32040 (match_reload): Set LRA_SUBREG_P.
32041 (emit_spill_move): Ditto.
32042 (check_and_process_move): Use curr_insn_set. Process only single
32043 set insns. Don't initialize sec_mem_p and change_p.
32044 (simplify_operand_subreg): Use LRA_SUBREG_P.
32045 (reg_in_class_p): New function.
32046 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
32047 of #ifdef. Add code to remove cycling.
32048 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
32049 non-null disp. Reload inner instead of disp when base and index
32050 are null. Try to put lo_sum into register.
32051 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
32052 (check_and_process_move): Move code for move cost check to
32053 simple_move_p. Remove equiv_substitution.
32054 (simple_move_p): New function.
32055 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
32056 curr_insn_set. Call check_and_process_move only for single set
32057 insns. Use the new function. Move call of check_and_process_move
32058 after operand equiv substitution and address process.
32059
32060 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
32061
32062 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
32063 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
32064 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
32065
32066 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
32067
32068 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
32069
32070 2013-04-24 Marek Polacek <polacek@redhat.com>
32071
32072 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
32073 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
32074 (select_loops_exit_conditions): Likewise.
32075 (number_of_iterations_for_all_loops): Likewise.
32076 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
32077 (scev_analysis): Likewise.
32078
32079 2013-04-02 Catherine Moore <clm@codesourcery.com>
32080 Chao-ying Fu <fu@mips.com>
32081
32082 * config/mips/micromips.md (jraddiusp): New pattern.
32083 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
32084 instruction if possible.
32085
32086 2013-04-24 Alan Modra <amodra@gmail.com>
32087
32088 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
32089
32090 2013-04-24 Julian Brown <julian@codesourcery.com>
32091 Chung-Lin Tang <cltang@codesourcery.com>
32092
32093 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
32094 dependency behavior in enumeration type DIE generation. Add TODO note
32095 to comments about future DW_FORM_sdata/udata re-work of related code.
32096
32097 2013-04-23 Lawrence Crowl <crowl@google.com>
32098
32099 * Makefile.in: Update as needed below.
32100
32101 * hash-table.h (class hash_table):
32102 Correct many methods with parameter types compare_type to the correct
32103 value_type. (Correct code was unlikely to notice the change.)
32104 (hash_table::elements_with_deleted) New.
32105 (class hashtable::iterator): New.
32106 (hashtable::begin()): New.
32107 (hashtable::end()): New.
32108 (FOR_EACH_HASH_TABLE_ELEMENT): New.
32109
32110 * statistics.c (statistics_hashes):
32111 Change type to hash_table. Update dependent calls and types.
32112
32113 * tree-into-ssa.c (var_infos):
32114 Change type to hash_table. Update dependent calls and types.
32115
32116 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
32117 Change type to hash_table. Update dependent calls and types.
32118
32119 * tree-ssa-loop-im.c (struct mem_ref.refs):
32120 Change type to hash_table. Update dependent calls and types.
32121
32122 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
32123 Change type to hash_table. Update dependent calls and types.
32124
32125 * tree-ssa-sccvn.c (vn_tables_s::nary):
32126 Change type to hash_table. Update dependent calls and types.
32127 (vn_tables_s::phis): Likewise.
32128 (vn_tables_s::references): Likewise.
32129
32130 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
32131 (vn_reference_eq): Update parameter and return types.
32132
32133 * tree-ssa-structalias.c (pointer_equiv_class_table):
32134 Change type to hash_table. Update dependent calls and types.
32135 (location_equiv_class_table): Likewise.
32136
32137 * tree-vect-data-refs.c: Consequential changes for making
32138 peeling a hash_table.
32139
32140 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
32141 (destroy_loop_vec_info): Dependent hash_table update.
32142
32143 * tree-vectorizer.h (peeling_htab):
32144 Change type to hash_table. Update dependent calls and types.
32145
32146 2013-04-23 Shiva Chen <shiva0217@gmail.com>
32147
32148 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
32149 to check the register content is equal or not.
32150 * lra-constraints.c (match_reload): Use lra_assign_reg_val
32151 to assign register content record.
32152 * lra-eliminations.c (update_reg_eliminate): Use
32153 lra_update_reg_val_offset to update register content offset.
32154 * lra-int.h (struct lra_reg): Add offset member.
32155 (lra_reg_val_equal_p): New static inline function.
32156 (lra_update_reg_val_offset): New static inline function.
32157 (lra_assign_reg_val): New static inline function.
32158 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
32159 to assign register content record.
32160 (initialize_lra_reg_info_element): Initial offset to zero.
32161
32162 2013-04-23 Catherine Moore <clm@codesourcery.com>
32163
32164 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
32165 operands. Record compression.
32166
32167 2013-04-23 Xinliang David Li <davidxl@google.com>
32168
32169 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
32170
32171 2013-04-23 Richard Biener <rguenther@suse.de>
32172
32173 PR middle-end/57036
32174 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
32175 parameter, only add abnormal goto edges from the copied body
32176 if the call could perform abnormal gotos.
32177 (copy_cfg_body): Adjust.
32178
32179 2013-04-23 Sofiane Naci <sofiane.naci@arm.com>
32180
32181 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
32182
32183 2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
32184
32185 * coretypes.h (gimple_stmt_iterator): Add struct to make
32186 compatible with C.
32187
32188 2013-04-23 Richard Biener <rguenther@suse.de>
32189
32190 PR tree-optimization/57026
32191 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
32192 from SSA names occuring in abnormal PHI nodes.
32193
32194 2013-04-22 Andi Kleen <ak@linux.intel.com>
32195
32196 * lto/lto.c (print_lto_report_1): Fix LTO report names.
32197
32198 2013-04-22 Andi Kleen <ak@linux.intel.com>
32199
32200 * lto/lto.c (print_lto_report_1): Declare early.
32201 (read_cgraph_and_symbols): Call print_lto_report_1 early.
32202
32203 2013-04-22 Andi Kleen <ak@linux.intel.com>
32204
32205 * common.opt (-flto-report-wpa): Add.
32206 * doc/invoke.texi (-flto-report-wpa): Add.
32207 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
32208 (lto_main): dito.
32209
32210 2013-04-22 Xinliang David Li <davidxl@google.com>
32211
32212 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
32213 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
32214 * Makefile.in: New dependency
32215
32216 David Daney <ddaney.cavm@gmail.com>
32217
32218 * configure.ac (gcc_cv_as_micromips_support): Use the
32219 --fatal-warnings option.
32220 * configure: Regenerate.
32221
32222 2013-04-22 Marek Polacek <polacek@redhat.com>
32223
32224 PR sanitizer/56990
32225 * tsan.c (instrument_expr): Don't instrument expression
32226 in case its size is zero.
32227
32228 2013-04-22 Uros Bizjak <ubizjak@gmail.com>
32229
32230 PR target/57032
32231 Revert:
32232 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
32233
32234 * config/alpha/alpha.c (TARGET_LRA_P): New define.
32235
32236 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
32237
32238 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
32239 (gimple_stmt_iterator): New typedef.
32240 * gimple.h (gimple_stmt_iterator): Rename to...
32241 (gimple_stmt_iterator_d): ... This.
32242 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
32243 trees be valid for GIMPLE and GENERIC.
32244 (TARGET_GIMPLE_FOLD_BUILTIN): New.
32245 * gimple-fold.c (gimple_fold_call): Call target hook
32246 gimple_fold_builtin.
32247 * hooks.c (hook_bool_gsiptr_false): New.
32248 * hooks.h (hook_bool_gsiptr_false): New.
32249 * target.def (fold_stmt): New.
32250 * doc/tm.texi: Regenerate.
32251
32252 2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
32253
32254 PR target/57018
32255 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
32256 a set sp if no stack realignment.
32257
32258 2013-04-22 Nick Clifton <nickc@redhat.com>
32259
32260 * config.gcc (tilegx-linux): Extend extra_objs rather than
32261 overwriting it.
32262 (tilepro-linux): Likewise.
32263
32264 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
32265
32266 * config/aarch64/aarch64-builtins.c
32267 (CF): Remove.
32268 (CF0, CF1, CF2, CF3, CF4, CF10): New.
32269 (VAR<1-12>): Add MAP parameter.
32270 (BUILTIN_*): Likewise.
32271 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
32272 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
32273 (aarch64_ushl_n<mode>): Likewise.
32274 (aarch64_sshr_n<mode>): Likewise.
32275 (aarch64_ushr_n<mode>): Likewise.
32276 (aarch64_<maxmin><mode>): Likewise.
32277 (aarch64_sqrt<mode>): Likewise.
32278 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
32279 (vshr<q>_n_*): Likewise.
32280
32281 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
32282
32283 * config/aarch64/aarch64-builtins.c
32284 (aarch64_simd_builtin_type_mode): Handle SF types.
32285 (sf_UP): Define.
32286 (BUILTIN_GPF): Define.
32287 (aarch64_init_simd_builtins): Handle SF types.
32288 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
32289 (frecps): Likewise.
32290 (frecpx): Likewise.
32291 * config/aarch64/aarch64-simd.md
32292 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
32293 (aarch64_frecpe<mode>): New.
32294 (aarch64_frecps<mode>): Likewise.
32295 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
32296 (v8type): Add frecp<esx>.
32297 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
32298 (aarch64_frecps<mode>): Likewise.
32299 * config/aarch64/iterators.md (FRECP): New.
32300 (frecp_suffix): Likewise.
32301 * config/aarch64/arm_neon.h
32302 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
32303
32304 2013-04-22 Christian Bruel <christian.bruel@st.com>
32305
32306 PR target/56995
32307 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
32308 (REG_CLASS_NAMES): Idem.
32309 (REG_CLASS_CONTENTS): Idem.
32310 (REGCLASS_HAS_FP_REG): Idem.
32311 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
32312 (sh_conditional_register_usage): Idem.
32313
32314 2013-04-21 Jeff Law <law@redhat.com>
32315
32316 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
32317 (ssa_forward_propagate_and_combine): Use it.
32318
32319 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
32320
32321 * lra.c: Update the flow chart diagram.
32322
32323 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
32324
32325 PR rtl-optimization/56847
32326 * lra-constraints.c (process_alt_operands): Discourage alternative
32327 with non-matche doffsettable memory constraint fro memory with
32328 known offset.
32329
32330 2013-04-19 Richard Biener <rguenther@suse.de>
32331
32332 PR tree-optimization/56982
32333 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
32334 function.
32335 * gimplify.c (gimplify_call_expr): Notice special calls.
32336 (gimplify_modify_expr): Likewise.
32337 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
32338 abnormal control flow receivers.
32339 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
32340 in the same way as cfun->has_nonlocal_labels.
32341 (gimple_purge_dead_abnormal_call_edges): Likewise.
32342 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
32343 receivers start a basic-block.
32344
32345 2013-04-19 Richard Biener <rguenther@suse.de>
32346
32347 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
32348 member ...
32349 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
32350 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
32351 (SLP_TREE_LOAD_PERMUTATION): Add.
32352 (vect_transform_slp_perm_load): Adjust prototype.
32353 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
32354 (vect_free_slp_instance): Likewise.
32355 (vect_create_new_slp_node): Likewise.
32356 (vect_supported_slp_permutation_p): Remove.
32357 (vect_slp_rearrange_stmts): Adjust.
32358 (vect_supported_load_permutation_p): Likewise. Inline
32359 vect_supported_slp_permutation_p here.
32360 (vect_analyze_slp_instance): Compute load permutations per
32361 slp node instead of per instance.
32362 (vect_get_slp_defs): Adjust.
32363 (vect_transform_slp_perm_load): Likewise.
32364 (vect_schedule_slp_instance): Remove redundant code.
32365 (vect_schedule_slp): Remove hack for PR56270, add it ...
32366 * tree-vect-stmts.c (vectorizable_load): ... here, do not
32367 CSE loads for SLP. Adjust.
32368
32369 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
32370
32371 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
32372 spelling in two comments.
32373
32374 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
32375
32376 PR target/56797
32377 * config/arm/arm.c (load_multiple_sequence): Require SP
32378 as base register for loads if SP is in the register list.
32379
32380 2013-04-19 Martin Jambor <mjambor@suse.cz>
32381
32382 PR tree-optimization/56718
32383 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
32384 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
32385 and made public. Adjusted all callers.
32386 (ipa_intraprocedural_devirtualization): New function.
32387 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
32388 (ipa_intraprocedural_devirtualization): Likewise.
32389 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
32390
32391 2013-04-19 Richard Biener <rguenther@suse.de>
32392
32393 PR tree-optimization/57000
32394 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
32395
32396 2013-04-19 Terry Guo <terry.guo@arm.com>
32397
32398 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
32399 Replace with ...
32400 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
32401 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
32402 (cortex_m4_fmacs): Use new reservations.
32403 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
32404
32405 2013-04-18 Vladimir Makarov <vmakarov@redhat.com>
32406
32407 PR rtl-optimization/56999
32408 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
32409 related code.
32410 (lra_coalesce): Remove split_origin_bitmap and related code.
32411 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
32412 ranges if necessary.
32413
32414 2013-04-18 Uros Bizjak <ubizjak@gmail.com>
32415
32416 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
32417 New array.
32418 (ix86_expand_call): Remove clobbered_registers array and use
32419 x86_64_ms_sysv_extra_clobbered_registers instead.
32420 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
32421 Declare here.
32422 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
32423 predicate.
32424 * config/i386/i386.md (*call_rex64_ms_sysv): Use
32425 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
32426 (*call_value_rex64_ms_sysv): Ditto.
32427
32428 2013-04-18 Cary Coutant <ccoutant@google.com>
32429
32430 * dwarf2out.c (output_pubnames): Check die_perennial_p of
32431 parent instead of die_mark.
32432
32433 2013-04-18 Diego Novillo <dnovillo@google.com>
32434
32435 * gimple.c (create_gimple_tmp): New.
32436 (get_expr_type): New.
32437 (build_assign): New.
32438 (build_type_cast): New.
32439 * gimple.h (enum ssa_mode): Define.
32440 (gimple_seq_set_location): New.
32441 * asan.c (build_check_stmt): Change some gimple_build_* calls
32442 to use build_assign and build_type_cast.
32443
32444 2013-04-18 Richard Biener <rguenther@suse.de>
32445
32446 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
32447 handle negative step. Remove redundant checks.
32448 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
32449 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
32450 for negative step and grouped loads fail to vectorize.
32451
32452 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
32453
32454 * emit-rtl.c (reset_insn_used_flags): New function.
32455 (reset_all_used_flags): Use it.
32456 (verify_insn_sharing): New function.
32457 (verify_rtl_sharing): Fix verification for SEQUENCEs.
32458
32459 2013-04-18 Jakub Jelinek <jakub@redhat.com>
32460
32461 PR tree-optimization/56984
32462 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
32463 and (x >> M) >= N don't register any assertion if N << M is the
32464 minimum value.
32465
32466 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
32467
32468 * lower-subreg.c (resolve_simple_move): If called self-recursive,
32469 do not delete_insn insns that have not yet been emitted, only
32470 unlink them with remove_insn.
32471 * df-scan.c (df_insn_delete): Revert r197492.
32472
32473 2013-04-17 Steven Bosscher <steven@gcc.gnu.org>
32474
32475 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
32476 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
32477
32478 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
32479
32480 * config/arm/arm.md (movsicc_insn): Convert define_insn into
32481 define_insn_and_split.
32482 (and_scc,ior_scc,negscc): Likewise.
32483 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
32484
32485 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
32486
32487 * config/arm/arm.c (use_return_insn): Return 0 for targets that
32488 can benefit from using a sequence of LDRD instructions in epilogue
32489 instead of a single LDM instruction.
32490
32491 2013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
32492
32493 PR 45688
32494 * doc/extend.texi: Fix typo.
32495
32496 2013-04-17 Richard Biener <rguenther@suse.de>
32497
32498 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
32499 (vect_build_slp_tree): ... here.
32500 (vect_build_slp_tree_1): Compute which stmts of the SLP group
32501 match. Remove special-casing of mismatched complex loads.
32502 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
32503 re-try the match with swapped commutative operands.
32504 (vect_supported_load_permutation_p): Remove special-casing of
32505 mismatched complex loads.
32506 (vect_analyze_slp_instance): Adjust.
32507
32508 2013-04-17 Richard Biener <rguenther@suse.de>
32509
32510 PR rtl-optimization/56921
32511 * cfgloop.h (struct loop): Add simple_loop_desc member.
32512 (struct niter_desc): Mark with GTY(()).
32513 (simple_loop_desc): Do not use aux field but simple_loop_desc.
32514 * loop-iv.c (get_simple_loop_desc): Likewise.
32515 (free_simple_loop_desc): Likewise.
32516
32517 Revert
32518 2013-04-16 Richard Biener <rguenther@suse.de>
32519
32520 PR rtl-optimization/56921
32521 * loop-init.c (pass_rtl_move_loop_invariants): Add
32522 TODO_do_not_ggc_collect to todo_flags_finish.
32523 (pass_rtl_unswitch): Same.
32524 (pass_rtl_unroll_and_peel_loops): Same.
32525 (pass_rtl_doloop): Same.
32526
32527 2013-04-17 Eric Botcazou <ebotcazou@adacore.com>
32528
32529 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
32530 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
32531 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
32532 references.
32533 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
32534 * tree-streamer.c (record_common_node): Adjust reference in comment.
32535
32536 2013-04-17 Terry Guo <terry.guo@arm.com>
32537
32538 * config/arm/cortex-m4.md: Add a new bypass.
32539
32540 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
32541
32542 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
32543 New pattern.
32544 (*subs_<optab><mode>_multp2): New pattern.
32545 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
32546 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
32547
32548 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
32549
32550 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
32551 (*subs_mul_imm_<mode>): New pattern.
32552
32553 2013-04-16 David Edelsohn <dje.gcc@gmail.com>
32554
32555 PR target/56948
32556 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
32557 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
32558 (vsx_movti_32bit): Change j->wa to O->wa.
32559
32560 2013-04-16 Richard Biener <rguenther@suse.de>
32561
32562 PR rtl-optimization/56921
32563 * loop-init.c (pass_rtl_move_loop_invariants): Add
32564 TODO_do_not_ggc_collect to todo_flags_finish.
32565 (pass_rtl_unswitch): Same.
32566 (pass_rtl_unroll_and_peel_loops): Same.
32567 (pass_rtl_doloop): Same.
32568
32569 2013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
32570
32571 * config/arm/arm.c (emit_multi_reg_push): New declaration
32572 for an existing function.
32573 (arm_emit_strd_push): New function.
32574 (arm_expand_prologue): Used here.
32575 (arm_emit_ldrd_pop): New function.
32576 (arm_expand_epilogue): Used here.
32577 (arm_get_frame_offsets): Update condition.
32578 (arm_emit_multi_reg_pop): Add a special case for load of a single
32579 register with writeback.
32580
32581 2013-04-16 Uros Bizjak <ubizjak@gmail.com>
32582
32583 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
32584 description.
32585
32586 2013-04-16 Richard Biener <rguenther@suse.de>
32587
32588 PR tree-optimization/56756
32589 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
32590 (first_mem_ref_loc): New.
32591 (execute_sm): Place the load temporarily before a previous
32592 access instead of in the latch edge to ensure its SSA dependencies
32593 are defined at points dominating the load.
32594
32595 2013-04-16 Steven Bosscher <steven@gcc.gnu.org>
32596
32597 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
32598 correct fix by moving header and footer insn to the footer of
32599 the merged basic block. Clear BB_END of the merged-away block.
32600
32601 PR middle-end/43631
32602 * emit-rtl.c (make_note_raw): New function.
32603 (link_insn_into_chain): New static inline function.
32604 (add_insn): Use it.
32605 (add_insn_before, add_insn_after): Factor insn chain linking code...
32606 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
32607 using link_insn_into_chain.
32608 (note_outside_basic_block_p): New helper function for emit_note_after
32609 and emit_note_before.
32610 (emit_note_after): Use nobb variant of add_insn_after if the note
32611 should not be contained in a basic block.
32612 (emit_note_before): Use nobb variant of add_insn_before if the note
32613 should not be contained in a basic block.
32614 (emit_note_copy): Use make_note_raw.
32615 (emit_note): Likewise.
32616 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
32617 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
32618 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
32619 the moved barrier the tail of the basic block it follows.
32620 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
32621
32622 2013-04-15 Jakub Jelinek <jakub@redhat.com>
32623
32624 PR tree-optimization/56962
32625 * gimple-ssa-strength-reduction.c (record_increment): Only set
32626 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
32627 either rhs1 or rhs2 is equal to c->base_expr.
32628
32629 2013-04-15 Richard Biener <rguenther@suse.de>
32630
32631 PR tree-optimization/56933
32632 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
32633 member.
32634 (GROUP_READ_WRITE_DEPENDENCE): Remove.
32635 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
32636 * tree-vect-data-refs.c (vect_analyze_group_access): Move
32637 dependence check ...
32638 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
32639 ... here.
32640 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
32641 GROUP_READ_WRITE_DEPENDENCE.
32642
32643 2013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32644
32645 * emit-rtl.c (reset_all_used_flags): New function.
32646 (verify_rtl_sharing): Call reset_all_used_flags before and after
32647 performing the checks.
32648
32649 2013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32650
32651 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
32652 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
32653 * config/arm/constraints.md (De): New constraint.
32654 * config/arm/neon.md (anddi3_neon): Delete.
32655 (neon_vand<mode>): Expand to standard anddi3 pattern.
32656 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
32657 Move earlier in the file.
32658 (neon_inv_logic_op2): Likewise.
32659 (arm_anddi_operand_neon): New predicate.
32660
32661 2013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32662
32663 * configure.ac (gcc_cv_ld_as_needed): Set
32664 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
32665 Use -z ignore, -z record on *-*-solaris2*.
32666 (HAVE_LD_AS_NEEDED): Update comment.
32667 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
32668 * configure: Regenerate.
32669 * config.in: Regenerate.
32670 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
32671 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
32672 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
32673 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
32674 equivalents. Fix markup.
32675 * doc/tm.texi: Regenerate.
32676
32677 2013-04-15 Andrew Hsieh <andrewhsieh.google.com>
32678
32679 * config/i386/i386.opt: New option mstack-protector-guard=.
32680 * config/i386/i386-opts.h: Add enum stack_protector_guard.
32681 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
32682 TARGET_SSP_TLS_GUARD.
32683 * config/i386/i386.c (ix86_option_override_internal): Set
32684 ix86_stack_protector_guard.
32685 * config/i386/i386.md (stack_protect_set): Enable for
32686 TARGET_SSP_TLS_GUARD only.
32687 (stack_protect_set_<mode>): Ditto.
32688 (stack_protect_test): Ditto.
32689 (stack_protect_test_<mode>): Ditto.
32690 * doc/invoke.texi (i386 Option): Document.
32691
32692 2013-04-15 Eric Botcazou <ebotcazou@adacore.com>
32693
32694 PR target/56890
32695 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
32696 (S_MODES): Set H_MODE bit.
32697 (SF_MODES): Set only S_MODE and SF_MODE bits.
32698 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
32699 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
32700 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
32701 <MODE_FLOAT>: Likewise.
32702
32703 2013-04-15 Joey Ye <joey.ye@arm.com>
32704
32705 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
32706
32707 2013-04-15 Joey Ye <joey.ye@arm.com>
32708
32709 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
32710 for real far jump.
32711 (thumb_far_jump_used_p): Count instruction size and set
32712 far_jump_used.
32713
32714 2013-04-14 Eric Botcazou <ebotcazou@adacore.com>
32715
32716 * reorg.c (fill_simple_delay_slots): Reindent block of code.
32717 * resource.c (mark_target_live_regs): Reformat conditional block.
32718
32719 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
32720
32721 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
32722 notes, they are emitted only just before final.
32723 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
32724
32725 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
32726
32727 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
32728 * cfgrtl.c (delete_insn): Call it here instead.
32729 * lra-spills.c (lra_final_code_change): Use delete_insn.
32730 * haifa-sched.c (sched_remove_insn): Likewise.
32731 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
32732 returning to the nop pool.
32733 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
32734 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
32735
32736 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
32737
32738 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
32739 * doc/tm.texi: Regenerated.
32740
32741 2013-04-12 Uros Bizjak <ubizjak@gmail.com>
32742
32743 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
32744 QImode checks.
32745
32746 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
32747
32748 * df-core.c (df_find_def): Compare register numbers.
32749 (df_find_use): Likewise.
32750
32751 2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
32752
32753 PR target/56903
32754 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
32755 lra_in_progress for return.
32756
32757 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
32758
32759 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
32760 define_insn into define_insn_and_split and emit movsicc patterns.
32761
32762 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
32763
32764 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
32765
32766 2013-04-12 Richard Biener <rguenther@suse.de>
32767
32768 * tree-pass.h (TODO_do_not_ggc_collect): New.
32769 * passes.c (execute_one_ipa_transform_pass): Honor
32770 TODO_do_not_ggc_collect.
32771 (execute_one_pass): Likewise.
32772
32773 Revert
32774 2013-04-10 Richard Biener <rguenther@suse.de>
32775
32776 * passes.c (init_optimization_passes): Remove reload pass.
32777 * ira.c (do_reload): Merge into ...
32778 (ira): ... this.
32779 (rest_of_handle_reload): Remove.
32780 (pass_reload): Likewise.
32781 * config/i386/i386.c (ix86_option_override): Refer to ira instead
32782 of reload for vzeroupper pass placement.
32783
32784 2013-04-12 Jakub Jelinek <jakub@redhat.com>
32785
32786 PR tree-optimization/56918
32787 PR tree-optimization/56920
32788 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
32789 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
32790 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
32791 use wide_mul_with_sign method.
32792
32793 2013-04-12 Richard Biener <rguenther@suse.de>
32794
32795 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
32796 not be considered a gimple constant.
32797
32798 2013-04-12 Marc Glisse <marc.glisse@inria.fr>
32799
32800 * fold-const.c (const_binop): Handle vector shifts by a scalar.
32801 (fold_binary_loc): Call const_binop also for mixed vector-scalar
32802 operations.
32803
32804 2013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
32805 Jakub Jelinek <jakub@redhat.com>
32806
32807 * opts.c: Include diagnostic-color.h.
32808 (common_handle_option): Handle OPT_fdiagnostics_color_.
32809 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
32810 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
32811 (diagnostic-color.o): New.
32812 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
32813 (diagnostic_color_rule): New enum.
32814 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
32815 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
32816 the location string.
32817 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
32818 either NULL, or color kind.
32819 * diagnostic-color.c: New file.
32820 * diagnostic-color.h: New file.
32821 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
32822 arguments.
32823 * doc/invoke.texi (-fdiagnostics-color): Document.
32824 * pretty-print.h (pp_show_color): Define.
32825 (struct pretty_print_info): Add show_color field.
32826 * diagnostic.c: Include diagnostic-color.h.
32827 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
32828 macros. Colorize error:, warning: etc. strings and also the location
32829 string.
32830 (diagnostic_show_locus): Colorize the caret line.
32831 * pretty-print.c: Include diagnostic-color.h.
32832 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
32833 inside of %< %> quotes or quoted through q format modifier.
32834
32835 2013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32836
32837 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
32838
32839 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
32840
32841 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
32842 code in CC_NZ mode.
32843 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
32844 pattern.
32845
32846 2013-04-11 Marek Polacek <polacek@redhat.com>
32847
32848 PR tree-optimization/48184
32849 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
32850
32851 2013-04-11 Eric Botcazou <ebotcazou@adacore.com>
32852
32853 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
32854 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
32855 (skip_simple_arithmetic): Tidy up.
32856 * tree.h (skip_simple_constant_arithmetic): Declare.
32857
32858 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
32859
32860 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
32861
32862 2013-04-11 Richard Biener <rguenther@suse.de>
32863
32864 * tree-vect-loop.c (get_initial_def_for_induction): Properly
32865 generate vector constants.
32866
32867 2013-04-11 Richard Biener <rguenther@suse.de>
32868
32869 PR tree-optimization/56878
32870 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
32871 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
32872 New function.
32873 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
32874 Prefer to align the DR with the most invariant base address.
32875
32876 2013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
32877
32878 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
32879 comment.
32880
32881 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
32882
32883 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
32884 floating-point vector comparisons against 0.
32885
32886 2013-04-11 Jakub Jelinek <jakub@redhat.com>
32887
32888 PR tree-optimization/56899
32889 * fold-const.c (extract_muldiv_1): Apply distributive law
32890 only if TYPE_OVERFLOW_WRAPS (ctype).
32891
32892 2013-04-11 Bin Cheng <bin.cheng@arm.com>
32893
32894 PR target/56124
32895 * ira-costs.c (scan_one_insn): Check whether the source rtx of
32896 loading has side effect.
32897
32898 2013-04-10 Steven Bosscher <steven@gcc.gnu.org>
32899
32900 * config/sparc/sparc.c: Include tree-pass.h.
32901 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
32902 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
32903 head of file. Change return type. Split off gate function.
32904 (sparc_gate_work_around_errata): New function.
32905 (pass_work_around_errata): New pass definition.
32906 (insert_pass_work_around_errata) New pass insert definition to
32907 insert pass_work_around_errata just after delayed-branch scheduling.
32908 (sparc_option_override): Insert the pass.
32909 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
32910
32911 2013-04-10 David S. Miller <davem@davemloft.net>
32912
32913 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
32914 or -mcpu=hypersparc.
32915
32916 * target.def (cstore_mode): New hook.
32917 * target.h: Include insn-codes.h
32918 * targhooks.c: Likewise.
32919 (default_cstore_mode): New function.
32920 * targhooks.h: Declare it.
32921 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
32922 * doc/tm.texi: Rebuild.
32923 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
32924 target hook, rather than inspecting the insn_data.
32925 * config/sparc/sparc.c (sparc_cstore_mode): New function.
32926 (TARGET_CSTORE_MODE): Redefine.
32927 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
32928 result patterns.
32929 * config/sparc/predicates.md (cstore_result_operand): New special
32930 predicate.
32931 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
32932 Use it for operand 0.
32933 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
32934 (*snesi_special): Likewise.
32935 (*snesi_zero): Likewise.
32936 (*seqsi_zero): Likewise.
32937 (*sltu_insn): Likewise.
32938 (*sgeu_insn): Likewise.
32939 (*seqdi_special): Make operand 0 and comparison operation be of
32940 DImode.
32941 (*snedi_special): Likewise.
32942 (*snedi_special_vis3): Likewise.
32943 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
32944 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
32945 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
32946 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
32947 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
32948 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
32949 (*sltu_extend_sp64): Likewise.
32950 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
32951 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
32952 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
32953 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
32954 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
32955
32956 2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
32957
32958 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
32959 (aarch64_start_file): Use the new function.
32960
32961 2013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
32962 Jason Merrill <jason@redhat.com>
32963
32964 * common.opt: Add -gdwarf.
32965 * opts.c (common_handle_option): Handle it.
32966 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
32967
32968 2013-04-10 Richard Biener <rguenther@suse.de>
32969
32970 * passes.c (execute_todo): Do not call ggc_collect conditional here.
32971 (execute_one_ipa_transform_pass): But unconditionally here.
32972 (execute_one_pass): And here.
32973 (init_optimization_passes): Remove reload pass.
32974 * tree-pass.h (TODO_ggc_collect): Remove.
32975 (pass_reload): Likewise.
32976 * ira.c (do_reload): Merge into ...
32977 (ira): ... this.
32978 (rest_of_handle_reload): Remove.
32979 (pass_reload): Likewise.
32980 * config/i386/i386.c (ix86_option_override): Refer to ira instead
32981 of reload for vzeroupper pass placement.
32982 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
32983 and todo_flags_finish of all passes.
32984
32985 2013-04-10 Richard Biener <rguenther@suse.de>
32986
32987 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
32988 first_const_oprnd field, rename first_def_type to first_op_type.
32989 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
32990 (vect_get_and_check_slp_defs): Always use the type of the
32991 operand. Allow mixed vect_external_def, vect_constant_def types.
32992 (vect_get_constant_vectors): Handle mixed vect_external_def,
32993 vect_constant_def types.
32994
32995 2013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
32996
32997 PR tree-optimization/55524
32998 * tree-ssa-math-opts.c
32999 (convert_mult_to_fma): Don't use an fms construct
33000 when we don't have an fms operation, but fnma, and it looks
33001 likely that we'll be able to use the latter.
33002
33003 2013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
33004
33005 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
33006 function.
33007 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
33008 inline fail caused by overwritable functions.
33009
33010 2013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
33011
33012 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
33013 unnecessary bits in the constant power of two case.
33014
33015 2013-04-10 Richard Biener <rguenther@suse.de>
33016
33017 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
33018 broken code swapping operands.
33019 (vect_build_slp_tree): Do not compute load permutations here.
33020 (vect_analyze_slp_instance): Compute load permutations here,
33021 after building the SLP tree.
33022
33023 2013-04-09 Christian Bruel <christian.bruel@st.com>
33024
33025 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
33026 of next/prev_real_insn.
33027
33028 2013-04-09 Jan Hubicka <jh@suse.cz>
33029
33030 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
33031 Drop aliased parameter.
33032 (function_and_variable_visibility): Do not handle alias pairs.
33033 * cgraph.c (varpool_externally_visible_p): Update prototype.
33034 * varpool.c (varpool_add_new_variable): Update.
33035
33036 2013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33037
33038 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
33039
33040 2013-04-09 Steven Bosscher <steven@gcc.gnu.org>
33041
33042 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
33043
33044 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
33045
33046 2013-04-09 Marek Polacek <polacek@redhat.com>
33047
33048 PR tree-optimization/48762
33049 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
33050
33051 2013-04-09 Richard Biener <rguenther@suse.de>
33052
33053 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
33054 dealing with cost.
33055 (vect_build_slp_tree): Likewise.
33056 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
33057 calculating the cost of a SLP instance.
33058 (vect_analyze_slp_instance): Use it from here, after building
33059 the SLP tree.
33060
33061 2013-04-09 Jakub Jelinek <jakub@redhat.com>
33062
33063 PR middle-end/56883
33064 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
33065 expand_omp_for_static_chunk): Use simple_p = true in
33066 force_gimple_operand_gsi calls when assigning to addressable decls.
33067
33068 2013-04-09 Jeff Law <law@redhat.com>
33069
33070 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
33071 when the boolean was created by converting a wider object which
33072 had a boolean range.
33073
33074 2013-04-09 Richard Biener <rguenther@suse.de>
33075
33076 * tree-vectorizer.h (slp_void_p): Remove.
33077 (slp_tree): Typedef before _slp_tree declaration.
33078 (struct _slp_tree): Use a vector of slp_tree as children.
33079 (vect_get_place_in_interleaving_chain): Remove.
33080 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
33081 Move ...
33082 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
33083 and make static.
33084 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
33085 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
33086 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
33087 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
33088 Use slp_node instead of slp_void_p and adjust.
33089
33090 2013-04-09 Richard Biener <rguenther@suse.de>
33091
33092 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
33093 work that is not necessary.
33094
33095 2013-04-09 Jakub Jelinek <jakub@redhat.com>
33096
33097 PR tree-optimization/56854
33098 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
33099 forward into clobber stmts if it would change MEM_REF lhs into
33100 non-MEM_REF.
33101
33102 2013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
33103
33104 * tree.c (type_hash_lookup, type_hash_add): Make static.
33105 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
33106
33107 2013-04-09 Richard Biener <rguenther@suse.de>
33108
33109 * tree.h (unsave_expr_now): Remove.
33110 * tree-inline.c (mark_local_for_remap_r): Remove.
33111 (unsave_expr_1): Likewise.
33112 (unsave_r): Likewise.
33113 (unsave_expr_now): Likewise.
33114 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
33115 (propagate_tree_value): Likewise.
33116
33117 2013-04-08 Steven Bosscher <steven@gcc.gnu.org>
33118
33119 * doc/rtl.texi (sequence): Rewrite documentation to match the
33120 current use of SEQUENCE rtl objects.
33121 * rtl.def (SEQUENCE): Likewise.
33122
33123 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
33124 Update documentation.
33125 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
33126 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
33127
33128 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
33129
33130 2013-04-08 Teresa Johnson <tejohnson@google.com>
33131
33132 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
33133 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33134 methods.
33135 (estimate_edge_size_and_time): Add comment to suggest using rounding
33136 methods.
33137 (estimate_node_size_and_time): Ditto.
33138 (remap_edge_change_prob): Use helper rounding divide methods.
33139 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
33140 (gimple_mod_pow2_value_transform): Ditto.
33141 (gimple_mod_subtract_transform): Ditto.
33142 (gimple_ic_transform): Ditto.
33143 (gimple_stringops_transform): Ditto.
33144 * stmt.c (conditional_probability): Ditto.
33145 (emit_case_dispatch_table): Ditto.
33146 * lto-cgraph.c (merge_profile_summaries): Ditto.
33147 * tree-optimize.c (execute_fixup_cfg): Ditto.
33148 * cfgcleanup.c (try_forward_edges): Ditto.
33149 * cfgloopmanip.c (scale_loop_profile): Ditto.
33150 (loopify): Ditto.
33151 (duplicate_loop_to_header_edge): Ditto.
33152 (lv_adjust_loop_entry_edge): Ditto.
33153 * tree-vect-loop.c (vect_transform_loop): Ditto.
33154 * profile.c (compute_branch_probabilities): Ditto.
33155 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
33156 * lto-streamer-in.c (input_cfg): Ditto.
33157 * gimple-streamer-in.c (input_bb): Ditto.
33158 * ipa-cp.c (update_profiling_info): Ditto.
33159 (update_specialized_profile): Ditto.
33160 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
33161 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33162 rounding methods.
33163 * sched-rgn.c (compute_dom_prob_ps): Ditto.
33164 (compute_trg_info): Ditto.
33165 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
33166 (purge_dead_edges): Ditto.
33167 * loop-unswitch.c (unswitch_loop): Ditto.
33168 * cgraphclones.c (cgraph_clone_edge): Ditto.
33169 (cgraph_clone_node): Ditto.
33170 * tree-inline.c (copy_bb): Ditto.
33171 (copy_edges_for_bb): Ditto.
33172 (initialize_cfun): Ditto.
33173 (copy_cfg_body): Ditto.
33174 (expand_call_inline): Ditto.
33175
33176 2013-04-08 Kai Tietz <ktietz@redhat.com>
33177
33178 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
33179 TARGET_CYGWIN64 by TARGET_64BIT.
33180
33181 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
33182
33183 * config/epiphany/epiphany.md (GPR_1): New constant.
33184 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
33185 * config/epiphany/epiphany.c (gen_compare_reg):
33186 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
33187 is already in place.
33188 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
33189 Don't require being called during rtl expansion; If y operlaps r0,
33190 return 0.
33191 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
33192 (epiphany_expand_epilogue): Likewise.
33193
33194 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
33195 Don't use CC_FPmode for ORDERED / UNORDERED.
33196 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
33197
33198 * config/epiphany/constraints.md (CnL): New constraint.
33199 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
33200 * config/epiphany/predicates.md (add_operand): Allow 1024.
33201
33202 * config/epiphany/epiphany.md (logical_op): New code iterator.
33203 (op_mnc): New code attribute.
33204 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
33205 (mov_f+1, mov_f+2): New peephole2 patterns.
33206
33207 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
33208 (cstoresi4): Also allow re-use of zero result when doing a NE
33209 comparison to a non-zero operand.
33210 Use (clobber (scratch)) for first insn if the gpr output is not needed.
33211
33212 * config/epiphany/epiphany.md (<insn_opname>v2si3):
33213 Use gen_addsi3_i / gen_subsi3_i.
33214
33215 2013-04-08 Jakub Jelinek <jakub@redhat.com>
33216
33217 PR c++/34949
33218 PR c++/50243
33219 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
33220 contain anything but clobbers, at most one __builtin_stack_restore,
33221 optionally debug stmts and final resx, and if it has at least one
33222 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
33223 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
33224 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
33225 which isn't defaut definition, remove them.
33226 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
33227 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
33228 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
33229 with MEM_REF LHS with SSA_NAME address.
33230
33231 2013-04-08 Jeff Law <law@redhat.com>
33232
33233 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
33234
33235 2013-04-08 Richard Biener <rguenther@suse.de>
33236
33237 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
33238 extra newline.
33239 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
33240 determined vector type.
33241 (vect_analyze_data_refs): Likewise.
33242 (vect_get_new_vect_var): Adjust.
33243 (vect_create_destination_var): Preserve SSA name versions.
33244 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
33245 not dump anything here.
33246
33247 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
33248
33249 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
33250 Add member lr_slot_known.
33251 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
33252 if necessary.
33253 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
33254 Remove code that sets lr_slot_offset according to what a previous
33255 version of epiphany_emit_save_restore used to do.
33256 (epiphany_emit_save_restore): When doing an lr save or restore,
33257 set/verify lr_slot_known and lr_slot_offset.
33258
33259 2013-04-08 Xinyu Qi <xyqi@marvell.com>
33260
33261 PR target/54338
33262 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
33263 in ALL_REGS.
33264
33265 2013-04-08 Richard Biener <rguenther@suse.de>
33266
33267 * alias.c (find_base_term): Fix thinko in previous change.
33268
33269 2013-04-08 Jakub Jelinek <jakub@redhat.com>
33270
33271 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
33272 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
33273 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
33274 if possible to compute val.
33275 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
33276 For QImode integers don't require anything about precision. Use
33277 const_with_all_bytes_same to find out if the constant doesn't have
33278 repeated bytes in it.
33279
33280 2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33281
33282 * config/s390/s390.c (s390_expand_insv): Only accept insertions
33283 within mode size.
33284
33285 2013-04-08 Marek Polacek <polacek@redhat.com>
33286
33287 PR rtl-optimization/48182
33288 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
33289 value to 1.
33290
33291 2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33292
33293 PR target/55487
33294 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
33295 nuses, make sure we have a label.
33296
33297 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33298
33299 PR target/56843
33300 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
33301 (rs6000_emit_swdiv_low_precision): Remove.
33302 (rs6000_emit_swdiv): Rewrite to handle between one and four
33303 iterations of Newton-Raphson generally; modify required number of
33304 iterations for some cases.
33305 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
33306
33307 2013-04-05 Steven Bosscher <steven@gcc.gnu.org>
33308
33309 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
33310 set-but-unused variable.
33311
33312 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
33313 basic blocks of released function bodies garbage-collectable.
33314
33315 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
33316 (struct rtl_opt_pass): Add TODO_df_finish.
33317
33318 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
33319
33320 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33321
33322 * config/arm/constraints.md (q): New constraint.
33323 * config/arm/ldrdstrd.md: New file.
33324 * config/arm/arm.md (ldrdstrd.md) New include.
33325 (arm_movdi): Use "q" instead of "r" constraint
33326 for double-word memory access.
33327 (movdf_soft_insn): Likewise.
33328 * config/arm/vfp.md (movdi_vfp): Likewise.
33329 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33330 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
33331 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
33332 (mem_ok_for_ldrd_strd): Likewise.
33333 (output_move_double): Update assertion.
33334
33335 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33336
33337 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
33338
33339 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33340
33341 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
33342 define_insn_and_split.
33343 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
33344
33345 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33346
33347 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
33348 define_insn_and_split.
33349 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
33350 (shiftsi3_compare): New pattern.
33351 (rrx): New pattern.
33352 * config/arm/unspecs.md (UNSPEC_RRX): New.
33353
33354 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33355
33356 * config/arm/arm.md (negdi_extendsidi): New pattern.
33357 (negdi_zero_extendsidi): Likewise.
33358
33359 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33360
33361 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
33362 define_insn_and_split.
33363 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
33364 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
33365
33366 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33367
33368 * config/arm/arm.md (arm_subdi3): Convert define_insn into
33369 define_insn_and_split.
33370 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
33371 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
33372
33373 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33374
33375 * config/arm/arm.md (subsi3_carryin): New pattern.
33376 (subsi3_carryin_const): Likewise.
33377 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
33378 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
33379
33380 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33381
33382 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
33383
33384 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
33385
33386 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
33387 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
33388
33389 2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33390
33391 * config/arm/arm.c (arm_expand_builtin): Change fcode
33392 type to unsigned int.
33393
33394 2013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33395
33396 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
33397
33398 2013-04-04 Ian Lance Taylor <iant@google.com>
33399
33400 * doc/standards.texi (Standards): The Go frontend supports the Go 1
33401 language standard.
33402
33403 2013-04-04 Steven Bosscher <steven@gcc.gnu.org>
33404
33405 PR middle-end/56729
33406 * df-scan.c (df_insn_delete): Disable failing assert.
33407
33408 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33409
33410 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
33411 New function prototype.
33412 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
33413 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
33414 (arm_builtin_vectorized_function): New function.
33415
33416 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33417
33418 * config/arm/arm_neon_builtins.def: New file.
33419 * config/arm/arm.c (neon_builtin_data): Move contents to
33420 arm_neon_builtins.def.
33421 (enum arm_builtins): Include neon builtin definitions.
33422 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33423 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
33424
33425 2013-04-04 Marek Polacek <polacek@redhat.com>
33426
33427 PR tree-optimization/48186
33428 * predict.c (maybe_hot_frequency_p): Return false if
33429 HOT_BB_FREQUENCY_FRACTION is 0.
33430 (cgraph_maybe_hot_edge_p): Likewise.
33431
33432 2013-04-04 Richard Biener <rguenther@suse.de>
33433
33434 PR tree-optimization/56826
33435 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
33436 more accurately.
33437
33438 2013-04-04 Richard Biener <rguenther@suse.de>
33439
33440 PR tree-optimization/56213
33441 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33442 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
33443
33444 2013-04-04 Richard Biener <rguenther@suse.de>
33445
33446 PR tree-optimization/56837
33447 * tree-loop-distribution.c (classify_partition): For non-zero
33448 values require that the value has the same precision as its
33449 mode to be useful as memset value.
33450
33451 2013-04-03 Nick Clifton <nickc@redhat.com>
33452
33453 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
33454 (fmssf4): Use fmsf.s on E3V5 architectures.
33455 (fnmasf4): Use fnmaf.s on E3V5 architectures.
33456 (fnmssf4): Use fnmsf.s on E3V5 architectures.
33457
33458 2013-04-03 Jeff Law <law@redhat.com>
33459
33460 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
33461 (lra-eliminations.o): Likewise.
33462
33463 2013-04-03 Teresa Johnson <tejohnson@google.com>
33464
33465 * gcov-io.c (compute_working_sets): Moved most of body of old
33466 compute_working_sets here from profile.c.
33467 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33468 (gcov_working_set_t): Moved typedef here from basic-block.h
33469 (compute_working_set): Declare.
33470 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
33471 (get_working_sets): Renamed from compute_working_set,
33472 replace most of body with call to new compute_working_sets.
33473 (get_exec_counts): Replace call to compute_working_sets
33474 to get_working_sets.
33475 * profile.h (get_working_sets): Renamed from compute_working_set.
33476 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33477 to get_working_sets.
33478 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
33479 * gcov-dump.c (dump_working_sets): New function.
33480
33481 2013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
33482
33483 * hwint.c (sext_hwi, zext_hwi): New functions.
33484 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
33485 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
33486 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
33487 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
33488 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
33489 (sext_hwi, zext_hwi): New functions.
33490
33491 2013-04-03 Jeff Law <law@redhat.com>
33492
33493 PR tree-optimization/56799
33494 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
33495 back test for widening conversion erroneously dropped in prior change.
33496
33497 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33498
33499 PR target/56809
33500 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
33501 instead of next_real_insn.
33502
33503 2013-04-03 Marek Polacek <polacek@redhat.com>
33504
33505 PR sanitizer/55702
33506 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
33507
33508 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33509
33510 PR target/56809
33511 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
33512 next_real_insn.
33513 (thumb1_output_casesi): Likewise.
33514 (thumb2_output_casesi): Likewise.
33515
33516 2013-04-03 Richard Biener <rguenther@suse.de>
33517
33518 PR tree-optimization/56817
33519 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
33520 Split out ...
33521 (tree_unroll_loops_completely_1): ... new function to manually
33522 walk the loop tree, properly defering outer loops of unrolled
33523 loops to later iterations.
33524
33525 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
33526
33527 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
33528 (vectorizable_load): Likewise.
33529 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
33530 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
33531
33532 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
33533
33534 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
33535 BIT_FIELD_REF.
33536
33537 2013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
33538
33539 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
33540
33541 2013-04-03 Bin Cheng <bin.cheng@arm.com>
33542
33543 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
33544
33545 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
33546
33547 PR tree-optimization/56790
33548 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
33549 folding.
33550
33551 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
33552
33553 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
33554 Handle VEC_MERGE.
33555 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
33556 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
33557 equal arguments.
33558
33559 2013-04-03 Jakub Jelinek <jakub@redhat.com>
33560
33561 PR c/19449
33562 * tree.h (force_folding_builtin_constant_p): New decl.
33563 * builtins.c (force_folding_builtin_constant_p): New variable.
33564 (fold_builtin_constant_p): Fold immediately also if
33565 force_folding_builtin_constant_p.
33566
33567 2013-04-03 Richard Biener <rguenther@suse.de>
33568
33569 PR tree-optimization/56812
33570 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
33571 DRs of the same interleaving chain are independent.
33572
33573 2013-04-02 Jason Merrill <jason@redhat.com>
33574
33575 * gdbinit.in (pbb): Use debug fn.
33576
33577 2013-04-02 Lawrence Crowl <crowl@google.com>
33578
33579 * sese.h (struct ivtype_map_elt_s): Remove unused.
33580 (extern debug_ivtype_map): Remove unused.
33581 (extern eq_ivtype_map_elts): Remove unused.
33582 * sese.c (debug_ivtype_map): Removed unused.
33583 (debug_ivtype_map_1): Removed unused.
33584 (debug_ivtype_elt): Remove unused.
33585 (eq_ivtype_map_elts): Remove unused.
33586
33587 2013-04-02 Kai Tietz <ktietz@redhat.com>
33588
33589 PR target/52790
33590 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
33591 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33592 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
33593 function.
33594 (legitimize_pe_coff_symbol): Likewise.
33595 (is_imported_p): New helper-function.
33596 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
33597 for Windows x64 targets.
33598 (ix86_expand_prologue): Optimize for pe-coff targets.
33599 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
33600 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
33601 medium/large code-model.
33602 (legitimize_pic_address): Likewise.
33603 (legitimize_tls_address): Likewise.
33604 (ix86_expand_call): Likewise.
33605 (x86_output_mi_thunk): Likewise.
33606 (get_dllimport_decl): Add new beimport argument.
33607 (construct_plt_address): Don't assert for x64 pe-coff targets.
33608 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
33609 targets.
33610 (SYMBOL_FLAG_STUBVAR): New macro.
33611 (SYMBOL_REF_STUBVAR_P): Likewise.
33612 * config/i386/winnt.c (stub_list): New structure.
33613 (stub_head): New local variable.
33614 (i386_pe_record_stub): New function.
33615 (i386_pe_file_end): Emit refptr-stubs.
33616
33617 2013-04-02 Jakub Jelinek <jakub@redhat.com>
33618
33619 PR rtl-optimization/56745
33620 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
33621 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
33622
33623 PR c++/34949
33624 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
33625 and both of them are MEM_REFs, just compare first argument for
33626 equality and attempt to deal even with differing offsets.
33627
33628 PR c++/34949
33629 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
33630 of gimple_clobber_p to be MEM_REF.
33631 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
33632 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
33633 after gimplification.
33634 * asan.c (get_mem_ref_of_assignment): Don't instrument
33635 gimple_clobber_p stmts.
33636 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
33637 gimple_clobber_p stmt if they have MEM_REF lhs and
33638 are dead because of another gimple_clobber_p stmt.
33639 * tree-ssa-live.c (clear_unused_block_pointer): Treat
33640 gimple_clobber_p stmts like debug stmts.
33641 (remove_unused_locals): Remove clobbers with MEM_REF lhs
33642 that refer to unused VAR_DECLs or uninitialized values.
33643 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
33644 gimple_clobber_p stmts if they refer to removed parameters.
33645 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
33646 formatting.
33647
33648 2013-04-02 Uros Bizjak <ubizjak@gmail.com>
33649
33650 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
33651 using SWI48 mode attribute.
33652
33653 2013-04-02 Wei Mi <wmi@google.com>
33654
33655 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
33656 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
33657 *<rotate_insn><mode>3_mask in i386.md.
33658
33659 2013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
33660
33661 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
33662
33663 2013-04-02 Richard Biener <rguenther@suse.de>
33664
33665 PR tree-optimization/56778
33666 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33667 Runtime alias tests are not supported for gather loads.
33668 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
33669 stmts referenced from SSA operands before updating SSA form.
33670
33671 2013-04-02 Ian Caulfield <ian.caulfield@arm.com>
33672 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33673
33674 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
33675 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
33676 * config/arm/cortex-a53.md: New file.
33677 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
33678 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
33679 * config/arm/arm.c (arm_issue_rate): Likewise.
33680 * config/arm/arm-tune.md: Regenerate
33681 * config/arm/arm-tables.opt: Regenerate.
33682 * config/arm/arm-cores.def: Add cortex-a53.
33683
33684 2013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
33685
33686 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
33687 non-static link.
33688
33689 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
33690
33691 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
33692 scalar load/store operations using B/H registers.
33693 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
33694
33695 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
33696
33697 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
33698 scalar move.
33699 * config/aarch64/aarch64.c
33700 (aarch64_simd_scalar_immediate_valid_for_move): New.
33701 * config/aarch64/aarch64-protos.h
33702 (aarch64_simd_scalar_immediate_valid_for_move): New.
33703 * config/aarch64/constraints.md (Dh, Dq): New.
33704 * config/aarch64/iterators.md (hq): New.
33705
33706 2013-04-02 Eric Botcazou <ebotcazou@adacore.com>
33707
33708 * reorg.c (get_branch_condition): Deal with conditional returns.
33709 (fill_simple_delay_slots): Remove dead code dealing with jumps.
33710
33711 2013-04-01 Wei Mi <wmi@google.com>
33712
33713 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
33714 Truncate operand 2 using %b asm operand modifier.
33715 (*<shift_insn><mode>3_mask): Ditto.
33716 (*<rotate_insn><mode>3_mask): Ditto.
33717
33718 2013-04-01 Steven Bosscher <steven@gcc.gnu.org>
33719
33720 PR middle-end/56798
33721 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
33722
33723 2013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
33724
33725 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
33726 of next_real_insn.
33727 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
33728
33729 2013-03-30 Lawrence Crowl <crowl@google.com>
33730
33731 * dse.c (clear_alias_sets): Remove never set.
33732 (disqualified_clear_alias_sets): Remove never set.
33733 (clear_alias_mode_pool): Remove never set.
33734 (dse_step0): Remove condition that is never true.
33735 (canon_address): Remove condition that is never true.
33736 (dse_step7): Remove condition that is never true.
33737 (rest_of_handle_dse): Remove condition that is never true.
33738 (rest_of_handle_dse::did_global): Remove never read from above.
33739 (dse_step2_spill): Remove never called from above.
33740 (dse_step5_spill): Remove never called from above.
33741
33742 2013-03-30 Steven Bosscher <steven@gcc.gnu.org>
33743
33744 * doc/md.texi (Standard Names) <casesi>: Update documentation for
33745 JUMP_TABLE_DATA changes.
33746 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
33747 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
33748 (Insns) <jump_table_data>: New entry.
33749 * doc/tm.texi: Regenerate.
33750
33751 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
33752
33753 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
33754 for table jump at the end of a basic block using tablejump_p.
33755 * targhooks.c (default_invalid_within_doloop): Likewise.
33756 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
33757 target hook implementation that is identical to the default hook.
33758 (rs6000_invalid_within_doloop): Remove.
33759
33760 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
33761 unused variable from tablejump_p call.
33762
33763 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
33764 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
33765 (INSN_DELETED_P): Likewise.
33766 (emit_jump_table_data): New prototype.
33767 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
33768 after 4th as unused.
33769 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
33770 * sched-vis.c (print_insn): Likewise.
33771 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
33772 insn for compatibility with back ends that use next_active_insn to
33773 identify jump table data.
33774 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
33775 (remove_insn): Likewise.
33776 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
33777 to be emitted.
33778 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
33779 (emit_jump_table_data): New function.
33780
33781 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
33782 basic block, a JUMP_TABLE_DATA never is.
33783 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
33784 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
33785 off from code handling real insns.
33786 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
33787 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
33788 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
33789 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
33790 is not a NONDEBUG_INSN_P.
33791 * ira-costs.c (scan_one_insn): Likewise.
33792 * jump.c (mark_all_labels): Likewise.
33793 (mark_jump_label_1): Likewise.
33794 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
33795 * lra.c (get_insn_freq): Expect all insns reaching here to be in
33796 a basic block.
33797 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
33798 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
33799 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
33800 JUMP_TABLE_DATA_P insns.
33801 (calculate_elim_costs_all_insns): Likewise.
33802 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
33803 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
33804 (delete_output_reload): Code style fixups.
33805 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
33806 insn flags on this non-insn.
33807 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
33808 as scheduling barriers, for pre-change compatibility.
33809 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
33810 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
33811
33812 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
33813 redundant JUMP_TABLE_DATA_P test.
33814 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
33815 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
33816 (frv_for_each_packet): Likewise.
33817 * config/i386/i386.c (min_insn_size): Likewise.
33818 (ix86_avoid_jump_mispredicts): Likewise.
33819 * config/m32r/m32r.c (m32r_is_insn): Likewise.
33820 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
33821 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
33822 (mips16_insn_length): Robustify.
33823 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
33824 (mips16_split_long_branches): Likewise.
33825 * config/pa/pa.c (pa_combine_instructions): Likewise.
33826 * config/rs6000/rs6000.c (get_next_active_insn): Treat
33827 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
33828 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
33829 as contributing to pool range lengths.
33830 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
33831 Remove redundant JUMP_TABLE_DATA_P test.
33832 (sh_loop_align): Likewise.
33833 (split_branches): Likewise.
33834 (sh_insn_length_adjustment): Likewise.
33835 * config/spu/spu.c (get_branch_target): Likewise.
33836
33837 2013-03-29 Jan Hubicka <jh@suse.cz>
33838
33839 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
33840 gcov streaming; stream hot bb threshold to ltrans.
33841 * predict.c (get_hot_bb_threshold): Break out from ....
33842 (maybe_hot_count_p): ... here.
33843 (set_hot_bb_threshold): New function.
33844 * lto-section-in.c (lto_section_name): Add profile.
33845 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
33846 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
33847 and data-streamer.h
33848 (histogram_entry): New structure.
33849 (histogram, histogram_pool): New global vars.
33850 (histogram_hash): New structure.
33851 (histogram_hash::hash): New method.
33852 (histogram_hash::equal): Likewise.
33853 (account_time_size): New function.
33854 (cmp_counts): New function.
33855 (dump_histogram): New function.
33856 (ipa_profile_generate_summary): New function.
33857 (ipa_profile_write_summary): New function.
33858 (ipa_profile_read_summary): New function.
33859 (ipa_profile): Decide on threshold.
33860 (pass_ipa_profile): Add ipa_profile_write_summary and
33861 ipa_profile_read_summary.
33862 * Makefile.in (ipa.o): Update dependencies.
33863 * lto-streamer.h (LTO_section_ipa_profile): New section.
33864
33865 2013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
33866
33867 * tree.h (VAR_P): New.
33868
33869 2013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
33870
33871 PR lto/56777
33872 * doc/invoke.texi ([-fwhole-program]): Fix typo.
33873
33874 2013-03-29 Steven Bosscher <steven@gcc.gnu.org>
33875
33876 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
33877 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
33878 (control_flow_insn_p): Likewise.
33879 * cfgrtl.c (duplicate_insn_chain): Likewise.
33880 * final.c (get_attr_length_1): Likewise.
33881 (shorten_branches): Likewise.
33882 (final_scan_insn): Likewise.
33883 * function.c (instantiate_virtual_regs): Likewise.
33884 * gcse.c (insert_insn_end_basic_block): Likewise.
33885 * ira-costs.c (scan_one_insn): Likewise.
33886 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
33887 * lra.c (check_rtl): Likewise.
33888 * reload1.c (elimination_costs_in_insn): Likewise.
33889 * reorg.c (follow_jumps): Likewise.
33890
33891 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
33892 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
33893 (thumb_far_jump_used_p): Likewise.
33894 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
33895 (workaround_speculation): Likewise.
33896 (add_sched_insns_for_speculation): Likewise.
33897 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
33898 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
33899 (frv_for_each_packet): Likewise.
33900 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
33901 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
33902 (final_emit_insn_group_barriers): Likewise.
33903 * config/m32r/m32r.c (m32r_is_insn): Likewise.
33904 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
33905 (mips16_insn_length): Likewise.
33906 * config/pa/pa.c (pa_reorg): Likewise.
33907 (pa_combine_instructions): Likewise.
33908 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
33909 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
33910 (sh_reorg): Likewise.
33911 (split_branches): Likewise.
33912 * config/spu/spu.c (get_branch_target): Likewise.
33913
33914 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
33915 JUMP_TABLE_DATA_P.
33916
33917 2013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
33918
33919 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
33920 Fix declaration name.
33921
33922 2013-03-28 Lawrence Crowl <crowl@google.com>
33923
33924 * graphds.h (struct graph.indicies): Remove unused.
33925 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
33926 (SCOP_ORIGINAL_PDDRS): Remove unused.
33927 * sese.h (extern insert_loop_close_phis): Removed unused.
33928 (extern insert_guard_phis): Removed unused.
33929 (extern ivtype_map_elt_info): Removed unused.
33930 (new_ivtype_map_elt): Removed unused.
33931 * sese.c (ivtype_map_elt_info): Removed unused.
33932
33933 2013-03-28 Lawrence Crowl <crowl@google.com>
33934
33935 * Makefile.in: Add several missing include dependences.
33936 (DUMPFILE_H): New.
33937 (test-dump.o): New. This object is not added to any executable,
33938 but is present for ad-hoc testing.
33939 * bitmap.c
33940 (debug (const bitmap_head_def &)): New.
33941 (debug (const bitmap_head_def *)): New.
33942 * bitmap.h
33943 (extern debug (const bitmap_head_def &)): New.
33944 (extern debug (const bitmap_head_def *)): New.
33945 * cfg.c
33946 (debug (edge_def &)): New.
33947 (debug (edge_def *)): New.
33948 * cfghooks.c
33949 (debug (basic_block_def &)): New.
33950 (debug (basic_block_def *)): New.
33951 * dumpfile.h
33952 (dump_node (const_tree, int, FILE *)): Correct source file.
33953 * dwarf2out.c
33954 (debug (die_struct &)): New.
33955 (debug (die_struct *)): New.
33956 * dwarf2out.h
33957 (extern debug (die_struct &)): New.
33958 (extern debug (die_struct *)): New.
33959 * gimple-pretty-print.c
33960 (debug (gimple_statement_d &)): New.
33961 (debug (gimple_statement_d *)): New.
33962 * gimple-pretty-print.h
33963 (extern debug (gimple_statement_d &)): New.
33964 (extern debug (gimple_statement_d *)): New.
33965 * ira-build.c
33966 (debug (ira_allocno_copy &)): New.
33967 (debug (ira_allocno_copy *)): New.
33968 (debug (ira_allocno &)): New.
33969 (debug (ira_allocno *)): New.
33970 * ira-int.h
33971 (extern debug (ira_allocno_copy &)): New.
33972 (extern debug (ira_allocno_copy *)): New.
33973 (extern debug (ira_allocno &)): New.
33974 (extern debug (ira_allocno *)): New.
33975 * ira-lives.c
33976 (debug (live_range &)): New.
33977 (debug (live_range *)): New.
33978 * lra-int.h
33979 (debug (lra_live_range &)): New.
33980 (debug (lra_live_range *)): New.
33981 * lra-lives.c
33982 (debug (lra_live_range &)): New.
33983 (debug (lra_live_range *)): New.
33984 * omega.c
33985 (debug (omega_pb_d &)): New.
33986 (debug (omega_pb_d *)): New.
33987 * omega.h
33988 (extern debug (omega_pb_d &)): New.
33989 (extern debug (omega_pb_d *)): New.
33990 * print-rtl.c
33991 (debug (const rtx_def &)): New.
33992 (debug (const rtx_def *)): New.
33993 * print-tree.c
33994 (debug_tree (tree): Move within file.
33995 (debug_raw (const tree_node &)): New.
33996 (debug_raw (const tree_node *)): New.
33997 (dump_tree_via_hooks (const tree_node *, int)): New.
33998 (debug (const tree_node &)): New.
33999 (debug (const tree_node *)): New.
34000 (debug_verbose (const tree_node &)): New.
34001 (debug_verbose (const tree_node *)): New.
34002 (debug_head (const tree_node &)): New.
34003 (debug_head (const tree_node *)): New.
34004 (debug_body (const tree_node &)): New.
34005 (debug_body (const tree_node *)): New.
34006 (debug_vec_tree (tree): Move and reimplement in terms of dump.
34007 (debug (vec<tree, va_gc> &)): New.
34008 (debug (vec<tree, va_gc> *)): New.
34009 * rtl.h
34010 (extern debug (const rtx_def &)): New.
34011 (extern debug (const rtx_def *)): New.
34012 * sbitmap.c
34013 (debug_raw (simple_bitmap_def &)): New.
34014 (debug_raw (simple_bitmap_def *)): New.
34015 (debug (simple_bitmap_def &)): New.
34016 (debug (simple_bitmap_def *)): New.
34017 * sbitmap.h
34018 (extern debug (simple_bitmap_def &)): New.
34019 (extern debug (simple_bitmap_def *)): New.
34020 (extern debug_raw (simple_bitmap_def &)): New.
34021 (extern debug_raw (simple_bitmap_def *)): New.
34022 * sel-sched-dump.c
34023 (debug (vinsn_def &)): New.
34024 (debug (vinsn_def *)): New.
34025 (debug_verbose (vinsn_def &)): New.
34026 (debug_verbose (vinsn_def *)): New.
34027 (debug (expr_def &)): New.
34028 (debug (expr_def *)): New.
34029 (debug_verbose (expr_def &)): New.
34030 (debug_verbose (expr_def *)): New.
34031 (debug (vec<rtx> &)): New.
34032 (debug (vec<rtx> *)): New.
34033 * sel-sched-dump.h
34034 (extern debug (vinsn_def &)): New.
34035 (extern debug (vinsn_def *)): New.
34036 (extern debug_verbose (vinsn_def &)): New.
34037 (extern debug_verbose (vinsn_def *)): New.
34038 (extern debug (expr_def &)): New.
34039 (extern debug (expr_def *)): New.
34040 (extern debug_verbose (expr_def &)): New.
34041 (extern debug_verbose (expr_def *)): New.
34042 (extern debug (vec<rtx> &)): New.
34043 (extern debug (vec<rtx> *)): New.
34044 * sel-sched-ir.h
34045 (_list_iter_cond_expr): Make inline instead of static.
34046 * sreal.c
34047 (debug (sreal &)): New.
34048 (debug (sreal *)): New.
34049 * sreal.h
34050 (extern debug (sreal &)): New.
34051 (extern debug (sreal *)): New.
34052 * tree.h
34053 (extern debug_raw (const tree_node &)): New.
34054 (extern debug_raw (const tree_node *)): New.
34055 (extern debug (const tree_node &)): New.
34056 (extern debug (const tree_node *)): New.
34057 (extern debug_verbose (const tree_node &)): New.
34058 (extern debug_verbose (const tree_node *)): New.
34059 (extern debug_head (const tree_node &)): New.
34060 (extern debug_head (const tree_node *)): New.
34061 (extern debug_body (const tree_node &)): New.
34062 (extern debug_body (const tree_node *)): New.
34063 (extern debug (vec<tree, va_gc> &)): New.
34064 (extern debug (vec<tree, va_gc> *)): New.
34065 * tree-cfg.c
34066 (debug (struct loop &)): New.
34067 (debug (struct loop *)): New.
34068 (debug_verbose (struct loop &)): New.
34069 (debug_verbose (struct loop *)): New.
34070 * tree-dump.c: Add header dependence.
34071 * tree-flow.h
34072 (extern debug (struct loop &)): New.
34073 (extern debug (struct loop *)): New.
34074 (extern debug_verbose (struct loop &)): New.
34075 (extern debug_verbose (struct loop *)): New.
34076 * tree-data-ref.c
34077 (debug (data_reference &)): New.
34078 (debug (data_reference *)): New.
34079 (debug (vec<data_reference_p> &)): New.
34080 (debug (vec<data_reference_p> *)): New.
34081 (debug (vec<ddr_p> &)): New.
34082 (debug (vec<ddr_p> *)): New.
34083 * tree-data-ref.h
34084 (extern debug (data_reference &)): New.
34085 (extern debug (data_reference *)): New.
34086 (extern debug (vec<data_reference_p> &)): New.
34087 (extern debug (vec<data_reference_p> *)): New.
34088 (extern debug (vec<ddr_p> &)): New.
34089 (extern debug (vec<ddr_p> *)): New.
34090 * tree-ssa-alias.c
34091 (debug (pt_solution &)): New.
34092 (debug (pt_solution *)): New.
34093 * tree-ssa-alias.h
34094 (extern debug (pt_solution &)): New.
34095 (extern debug (pt_solution *)): New.
34096 * tree-ssa-alias.c
34097 (debug (_var_map &)): New.
34098 (debug (_var_map *)): New.
34099 (debug (tree_live_info_d &)): New.
34100 (debug (tree_live_info_d *)): New.
34101 * tree-ssa-alias.h
34102 (extern debug (_var_map &)): New.
34103 (extern debug (_var_map *)): New.
34104 (extern debug (tree_live_info_d &)): New.
34105 (extern debug (tree_live_info_d *)): New.
34106
34107 2013-03-28 Jan Hubicka <jh@suse.cz>
34108
34109 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
34110
34111 2013-03-28 Ian Bolton <ian.bolton@arm.com>
34112
34113 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
34114 record only when desired or required.
34115
34116 2013-03-28 Uros Bizjak <ubizjak@gmail.com>
34117
34118 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
34119 *vec_extractv2di_1_rex64. Use x64 isa attribute.
34120
34121 2013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
34122
34123 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
34124 (*andsi3_compare0_uxtw): New pattern.
34125 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
34126 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
34127
34128 2013-03-28 Jan Hubicka <jh@suse.cz>
34129
34130 * data-streamer-in.c (streamer_read_gcov_count): New function.
34131 * gimple-streamer-out.c: Include value-prof.h.
34132 (output_gimple_stmt): Output histogram.
34133 (output_bb): Use streamer_write_gcov_count.
34134 * value-prof.c: Include data-streamer.h
34135 (dump_histogram_value): Add HIST_TYPE_MAX.
34136 (stream_out_histogram_value): New function.
34137 (stream_in_histogram_value): New function.
34138 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
34139 (stream_out_histogram_value, stream_in_histogram_value): Declare.
34140 * data-streamer-out.c (streamer_write_gcov_count): New function.
34141 (streamer_write_gcov_count_stream): New function.
34142 * lto-cgraph.c (lto_output_edge): Update counter streaming.
34143 (lto_output_node): Likewise.
34144 (input_node, input_edge): Likewise.
34145 * lto-streamer-out.c (output_cfg): Update streaming.
34146 * lto-streamer-in.c (input_cfg): Likewise.
34147 * data-streamer.h (streamer_write_gcov_count,
34148 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
34149 * gimple-streamer-in.c: Include value-prof.h
34150 (input_gimple_stmt): Input histograms.
34151 (input_bb): Update profile streaming.
34152
34153 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
34154
34155 * genmodes.c (emit_max_int): New function.
34156 (emit_insn_modes_h): Added call to emit_max_function.
34157 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
34158 Added doc.
34159 * machmode.def: Fixed comment.
34160
34161 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
34162
34163 * combine.c (try_combine): Removed useless assert.
34164 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
34165
34166 2013-03-28 Marek Polacek <polacek@redhat.com>
34167 Richard Biener <rguenther@suse.de>
34168
34169 PR tree-optimization/56695
34170 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
34171 build signed result of a vector comparison.
34172 * tree-cfg.c (verify_gimple_comparison): Check that a result
34173 of a vector comparison has signed type.
34174
34175 2013-03-28 Richard Biener <rguenther@suse.de>
34176
34177 PR tree-optimization/37021
34178 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
34179 do not restrict gaps between groups.
34180 * tree-vect-stmts.c (vectorizable_load): Properly account for
34181 a gap between groups.
34182
34183 2013-03-28 Eric Botcazou <ebotcazou@adacore.com>
34184
34185 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
34186 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
34187 is not enabled.
34188
34189 2013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
34190
34191 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
34192 * doc/extend.texi (Named Address Spaces): Ditto.
34193 (Variable Attributes): Ditto.
34194
34195 2013-03-27 Kai Tietz <ktietz@redhat.com>
34196
34197 * config.build: Add support for cygwin x64 target.
34198 * config.gcc: Likewise.
34199 * config.host: Likewise.
34200 * configure.ac: Likewise
34201 * configure: Regenerated.
34202
34203 2013-03-27 Kai Tietz <ktietz@redhat.com>
34204
34205 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
34206 * config/i386/t-cygwin-w64: New file.
34207 * config/i386/cygwin-w64.h: New file.
34208 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
34209 and add support for x64-cygwin target.
34210 (CPP_SPEC): Likewise.
34211 (CXX_WRAP_SPEC_LIST): Undefine before define.
34212 (LIBGCJ_SONAME): Use 15 as version.
34213
34214 2013-03-27 Richard Biener <rguenther@suse.de>
34215
34216 PR tree-optimization/56716
34217 * tree-ssa-structalias.c (perform_var_substitution): Adjust
34218 dumping for ref nodes.
34219
34220 2013-03-27 Martin Jambor <mjambor@suse.cz>
34221
34222 PR tree-optimization/55334
34223 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
34224 restricted pointers to arrays.
34225
34226 2013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
34227
34228 * Makefile.in (.SUFFIXES): Add .cc.
34229 (.c.o): Apply same recipe for implicit rule .cc.o.
34230
34231 2013-03-27 Richard Biener <rguenther@suse.de>
34232
34233 PR tree-optimization/37021
34234 * tree-vect-data-refs.c (vect_check_strided_load): Allow
34235 REALPART/IMAGPART_EXPRs around the supported refs.
34236 * tree-ssa-structalias.c (find_func_aliases): Assume that
34237 floating-point values are not used to transfer pointers.
34238
34239 2013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
34240
34241 * target.def (TARGET_HAS_IFUNC_P): New target hook.
34242 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
34243 * doc/tm.texi: Regenerate.
34244 * targhooks.h (default_has_ifunc_p): New.
34245 * targhooks.c (default_has_ifunc_p): Ditto.
34246 * config/linux-protos.h: New file.
34247 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
34248 hook for linux which disables support of indirect functions in android.
34249 * config/linux-android.c: New file.
34250 * config/t-linux-android.c: Ditto.
34251 * config.gcc: Added new object file linux-android.o.
34252 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
34253 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
34254 * varasm.c (do_assemble_alias): Likewise.
34255 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
34256 doesn't support indirect functions.
34257 * configure: Regenerate.
34258
34259 2013-03-27 Bin Cheng <bin.cheng@arm.com>
34260
34261 PR target/56102
34262 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
34263 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
34264 mult-word mode.
34265
34266 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34267
34268 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
34269
34270 2013-03-27 Terry Guo <terry.guo@arm.com>
34271
34272 * config/arm/arm-cores.def: Added core cortex-r7.
34273 * config/arm/arm-tune.md: Regenerated.
34274 * config/arm/arm-tables.opt: Regenerated.
34275 * doc/invoke.texi: Added entry for core cortex-r7.
34276
34277 2013-03-27 Walter Lee <walt@tilera.com>
34278
34279 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
34280 double-decrement of next_scratch_regno.
34281
34282 2013-03-27 Walter Lee <walt@tilera.com>
34283
34284 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
34285 input operands.
34286 (insn_v1mulus): Ditto.
34287 (insn_v2muls): Ditto.
34288
34289 2013-03-27 Walter Lee <walt@tilera.com>
34290
34291 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
34292 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
34293
34294 2013-03-27 Walter Lee <walt@tilera.com>
34295
34296 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
34297 (*sibcall_value): Ditto.
34298
34299 2013-03-27 Walter Lee <walt@tilera.com>
34300
34301 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
34302 (insn_mnz_v8qi): ... this ...
34303 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
34304 vector equivalent.
34305 (insn_v<n>mnz): Replaced by ...
34306 (insn_v1mnz): ... this ...
34307 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
34308 equivalent.
34309 (insn_mz_<mode>): Replaced by ...
34310 (insn_mz_v8qi): ... this ...
34311 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
34312 vector equivalent.
34313 (insn_v<n>mz): Replaced by ...
34314 (insn_v1mz): ... this ...
34315 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
34316 equivalent.
34317
34318 2013-03-26 Eric Botcazou <ebotcazou@adacore.com>
34319
34320 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
34321
34322 2013-03-26 Roland McGrath <mcgrathr@google.com>
34323
34324 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
34325 than fprintf with a non-constant, non-format string.
34326
34327 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
34328
34329 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
34330 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
34331 operand 0 predicate.
34332 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
34333 attribute. Use general_x64nomem_operand as operand 1 predicate.
34334 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
34335 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
34336 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
34337 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
34338 (mov<mode>_insv_1): Remove expander. Merge insn with
34339 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
34340 Use general_x64nomem_operand as operand 1 predicate.
34341 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
34342 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
34343 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
34344 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
34345 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
34346 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
34347 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
34348 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
34349 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
34350 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
34351 (general_x64nomem_operand): Ditto.
34352
34353 2013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
34354
34355 * config/rtems.opt: Add -pthread option.
34356
34357 2013-03-26 Richard Biener <rguenther@suse.de>
34358
34359 * alias.c (find_base_term): Avoid redundant and not used recursion.
34360 (base_alias_check): Get the initial base term from the caller.
34361 (true_dependence_1): Compute and pass base terms to base_alias_check.
34362 (write_dependence_p): Likewise.
34363 (may_alias_p): Likewise.
34364
34365 2013-03-26 Sofiane Naci <sofiane.naci@arm.com>
34366
34367 * config/aarch64/aarch64.c (aarch64_classify_address): Support
34368 PC-relative load in SI modes and above only.
34369
34370 2013-03-26 Xinyu Qi <xyqi@marvell.com>
34371
34372 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
34373 * config/arm/iwmmxt.md (WCGR0): Update.
34374 (WCGR1, WCGR2, WCGR3): Likewise.
34375
34376 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
34377
34378 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
34379 Use x64 and nox64 isa attributes.
34380
34381 2013-03-26 Richard Biener <rguenther@suse.de>
34382
34383 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
34384 alignment computations and rely on get_object_alignment_1
34385 for the !TYPE_P case.
34386 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
34387
34388 2013-03-26 Walter Lee <walt@tilera.com>
34389
34390 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
34391 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
34392
34393 2013-03-25 Jeff Law <law@redhat.com>
34394
34395 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
34396 check for INTEGRAL_TYPE_P that was missing due to checking in
34397 wrong version of prior patch.
34398
34399 2013-03-25 Walter Lee <walt@tilera.com>
34400
34401 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
34402 TILEGX_INSN_SHUFFLEBYTES1.
34403 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
34404 shufflebytes1.
34405 (tilegx_builtins): Ditto.
34406 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
34407
34408 2013-03-25 Walter Lee <walt@tilera.com>
34409
34410 * config/tilegx/tilegx.md (floatsisf2): New pattern.
34411 (floatunssisf2): New pattern.
34412 (floatsidf2): New pattern.
34413 (floatunssidf2): New pattern.
34414
34415 2013-03-25 Walter Lee <walt@tilera.com>
34416
34417 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
34418 tests for constraint J, K, N, P.
34419
34420 2013-03-25 Walter Lee <walt@tilera.com>
34421
34422 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
34423 Use indirect/pcrel encoding.
34424 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
34425 Ditto.
34426
34427 2013-03-25 Steve Ellcey <sellcey@mips.com>
34428
34429 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
34430 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
34431 * config/mips/mips.c (mips_option_override): Set IMADD default.
34432 * config/mips/mips.h (PTF_AVOID_IMADD): New.
34433 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
34434 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
34435 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
34436 * doc/invoke.texi (-mimadd/-mno-imadd): New.
34437
34438 2013-03-25 Jeff Law <law@redhat.com>
34439
34440 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
34441 slightly to avoid creating and folding useless trees. Simplify
34442 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
34443
34444 2013-03-25 Uros Bizjak <ubizjak@gmail.com>
34445
34446 * config/i386/i386.md (*zero_extendsidi2): Merge with
34447 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
34448 * config/i386/predicates.md (x86_64_zext_operand): Rename from
34449 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
34450 targets. Clarify comment.
34451
34452 2013-03-25 Martin Jambor <mjambor@suse.cz>
34453
34454 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
34455 pass-through jump functions differently.
34456 (ipa_read_jump_function): Likewise. Also use setter functions to set
34457 up jump functions.
34458
34459 2013-03-25 Martin Jambor <mjambor@suse.cz>
34460
34461 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
34462 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
34463 process it.
34464 (ipa_get_indirect_edge_target): New function.
34465 (devirtualization_time_bonus): New parameter known_aggs, pass it to
34466 ipa_get_indirect_edge_target. Update all callers.
34467 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
34468 ipa_get_indirect_edge_target_1 instead of calling
34469 ipa_get_indirect_edge_target.
34470 (create_specialized_node): Pass aggvlas to
34471 ipcp_discover_new_direct_edges.
34472
34473 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34474
34475 * config/arm/arm.md (f_sels, f_seld): New types.
34476 (*cmov<mode>): New pattern.
34477 * config/arm/predicates.md (arm_vsel_comparison_operator): New
34478 predicate.
34479
34480 2013-03-25 Kai Tietz <ktietz@redhat.com>
34481
34482 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
34483 POSIX-printf for mingw-hosted builds.
34484
34485 2013-03-25 Richard Biener <rguenther@suse.de>
34486
34487 PR middle-end/56694
34488 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
34489 must-not-throw stmt location.
34490
34491 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34492
34493 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
34494 Emit load-acquire versions when acq is true.
34495 (arm_emit_store_exclusive): Add rel parameter.
34496 Emit store-release versions when rel is true.
34497 (arm_split_compare_and_swap): Use acquire-release instructions
34498 instead.
34499 of barriers when appropriate.
34500 (arm_split_atomic_op): Likewise.
34501 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
34502 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
34503 (VUNSPEC_SLX): Likewise.
34504 (VUNSPEC_LDA): Likewise.
34505 (VUNSPEC_STL): Likewise.
34506 * config/arm/sync.md (atomic_load<mode>): New pattern.
34507 (atomic_store<mode>): Likewise.
34508 (arm_load_acquire_exclusive<mode>): Likewise.
34509 (arm_load_acquire_exclusivesi): Likewise.
34510 (arm_load_acquire_exclusivedi): Likewise.
34511 (arm_store_release_exclusive<mode>): Likewise.
34512
34513 2013-03-25 Catherine Moore <clm@codesourcery.com>
34514
34515 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
34516 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
34517 * config/mip/predicates.md (lwsp_swsp_operand,
34518 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
34519 sb16_operand, db4_operand, db7_operand, ib3_operand,
34520 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
34521 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
34522 andi16_operand): New predicates.
34523 * config/mips/mips.md (compression): New attribute.
34524 (enabled): New attribute.
34525 (length): Consider compression in computing length.
34526 (shift_compression): New code attribute.
34527 (*add<mode>3): New operands. Record compression.
34528 (sub<mode>3): Likewise.
34529 (one_cmpl<mode>2): Likewise.
34530 (*and<mode>3): Likewise.
34531 (*ior<mode>3): Likewise.
34532 (unnamed pattern for xor): Likewise.
34533 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
34534 (*<optab><mode>3): Likewise.
34535 (*mov<mode>_internal: Likewise.
34536 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
34537 (mips_unsigned_immediate_p): New.
34538 (umips_lwsp_swsp_address_p): New.
34539 (m16_based_address_p): New.
34540 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
34541 (mips_unsigned_immediate_p): New prototype.
34542 (lwsp_swsp_address_p): New prototype.
34543 (m16_based_address_p): New prototype.
34544 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
34545 (mips_signed_immediate_p): New function.
34546 (m16_based_address_p): New function.
34547 (lwsp_swsp_address_p): New function.
34548 (mips_print_operand_punctuation): Recognize short delay slot insns
34549 for microMIPS.add<mode>3"
34550
34551 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34552
34553 PR target/56720
34554 * config/arm/iterators.md (v_cmp_result): New mode attribute.
34555 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
34556
34557 2013-03-25 Richard Biener <rguenther@suse.de>
34558
34559 PR tree-optimization/56689
34560 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
34561 any edge.
34562
34563 2013-03-25 Richard Biener <rguenther@suse.de>
34564
34565 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
34566 of bitmap.
34567 (memory_references): Likewise.
34568 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
34569 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
34570 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
34571 (gather_mem_refs_in_loops): Fold into ...
34572 (analyze_memory_references): ... this. Move initialization
34573 to tree_ssa_lim_initialize.
34574 (fill_always_executed_in): Rename to ...
34575 (fill_always_executed_in_1): ... this.
34576 (fill_always_executed_in): Move contains_call computation to
34577 this new function from ...
34578 (tree_ssa_lim_initialize): ... here.
34579 (tree_ssa_lim): Call fill_always_executed_in.
34580
34581 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
34582
34583 * postreload.c (reload_combine): Fix code detecting returns.
34584
34585 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
34586
34587 * function.c (emit_use_return_register_into_block): On cc0 targets,
34588 do not emit the sequence between cc0 setter and user.
34589
34590 2013-03-25 Kai Tietz <ktietz@redhat.com>
34591
34592 * config/i386/predicates.md (local_symbolic_operand): Interpret
34593 dll-imported symbols as none-local.
34594
34595 2013-03-25 Richard Biener <rguenther@suse.de>
34596
34597 * tree-ssa-loop-im.c (struct depend): Remove.
34598 (struct lim_aux_data): Make depends a vec of gimples.
34599 (free_lim_aux_data): Adjust.
34600 (add_dependency): Likewise.
34601 (set_level): Likewise.
34602
34603 2013-03-25 Richard Biener <rguenther@suse.de>
34604
34605 PR middle-end/56434
34606 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
34607 the pointer returned by calls with ECF_MALLOC set.
34608
34609 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
34610
34611 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
34612
34613 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
34614
34615 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
34616 using MMXMODE mode iterator.
34617 (*move<mode>_internal): Merge with *movv2sf_internal and
34618 *movv2sf_internal_rex64 using MMXMODE mode iterator.
34619
34620 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
34621
34622 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
34623 (record_last_mem_set_info): Likewise.
34624
34625 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
34626 of XNEWVEC followed by memset.
34627 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
34628
34629 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
34630
34631 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
34632 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
34633 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
34634 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
34635 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
34636 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
34637 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
34638 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
34639 BARRIER_P instead of GET_CODE.
34640
34641 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
34642
34643 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
34644 inaccuracy in the probing code.
34645
34646 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
34647 (ctrapdi4): Likewise.
34648
34649 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
34650
34651 * calls.c (expand_call): Add missing guard to code handling return
34652 of non-BLKmode structures in MSB.
34653 * function.c (expand_function_end): Likewise.
34654
34655 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
34656
34657 * combine.c (try_combine): Adjust comment. Do not add the set of
34658 insn #0 if the destination indirectly is set or dies in insn #2.
34659 Tidy up code to distribute a new note.
34660
34661 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
34662
34663 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
34664 also for alternatives 16 and 17.
34665
34666 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
34667
34668 * config/i386/sse.md (*mov<mode>_internal): Merge with
34669 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
34670 Emit insn template depending on type attribute. Use
34671 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
34672 movd instead of movq mnemonic for interunit moves. Rewrite mode
34673 attribute calculation. Remove unit attribute calculation.
34674 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
34675 Set prefix_data16 attribute for DImode ssemov types.
34676 Use Ym instead of y for SSE-MMX conversion alternatives.
34677 Reorder operand constraints.
34678
34679 2013-03-22 Steven Bosscher <steven@gcc.gnu.org>
34680
34681 * df.h (df_insn_delete): Adjust prototype.
34682 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
34683 and let it decide whether mark the basic block dirty.
34684 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
34685 * df-scan.c (df_insn_info_delete): New helper function, split
34686 off from df_insn_delete.
34687 (df_scan_free_bb_info): Use it.
34688 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
34689 Likewise.
34690 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
34691 that the insn is actually an insn and it has a non-NULL basic block.
34692 Do not mark basic block dirty if only deleting a DEBUG_INSN.
34693
34694 2013-03-22 Richard Biener <rguenther@suse.de>
34695
34696 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
34697 dep_ref members.
34698 (mem_ref_alloc): Do not allocate them.
34699 (refs_independent_p): Do not query or maintain a cache.
34700
34701 2013-03-22 Richard Biener <rguenther@suse.de>
34702
34703 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
34704 (gather_mem_refs_in_loops): Do not compute it.
34705 (analyze_memory_references): Do not allocate it.
34706 (tree_ssa_lim_finalize): Do not free it.
34707 (for_all_locs_in_loop): Do not query all_refs_in_loop.
34708
34709 2013-03-22 Richard Biener <rguenther@suse.de>
34710
34711 * is-a.h (as_a): Use gcc_checking_assert.
34712
34713 2013-03-22 Ian Bolton <ian.bolton@arm.com>
34714
34715 * config/aarch64/aarch64.c (aarch64_print_operand): New
34716 format specifier for printing a constant in hex.
34717 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
34718 format specifier for printing second operand.
34719
34720 2013-03-22 Richard Biener <rguenther@suse.de>
34721
34722 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
34723 bitmaps.
34724 (gather_mem_refs_in_loops): Perform store accumulation here.
34725 (create_vop_ref_mapping_loop): Remove.
34726 (create_vop_ref_mapping): Likewise.
34727 (analyze_memory_references): Initialize refs_stored_in_loop.
34728 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
34729 (record_indep_loop): Remove.
34730 (record_dep_loop): New function.
34731 (ref_indep_loop_p_1): Adjust to only walk over references
34732 in the loop, not its subloops.
34733 (ref_indep_loop_p): Rename to ...
34734 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
34735 maintaining a more fine-grained cache.
34736 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
34737 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
34738
34739 2013-03-22 Richard Biener <rguenther@suse.de>
34740
34741 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
34742 (struct mem_ref): Make accesses_in_loop a vec of a vec of
34743 aggregate mem_ref_loc.
34744 (free_mem_ref_locs): Inline into ...
34745 (memref_free): ... this and adjust.
34746 (mem_ref_alloc): Adjust.
34747 (mem_ref_locs_alloc): Remove.
34748 (record_mem_ref_loc): Adjust.
34749 (get_all_locs_in_loop): Rewrite into ...
34750 (for_all_locs_in_loop): ... this iterator.
34751 (rewrite_mem_ref_loc): New functor.
34752 (rewrite_mem_refs): Use for_all_locs_in_loop.
34753 (sm_set_flag_if_changed): New functor.
34754 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
34755 (ref_always_accessed): New functor.
34756 (ref_always_accessed_p): Use for_all_locs_in_loop.
34757
34758 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
34759
34760 * tree-pass.h (PROP_gimple_lvec): New.
34761 * passes.c (dump_properties): Handle PROP_gimple_lvec.
34762 (init_optimization_passes): Move pass_lower_vector.
34763 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
34764 PROP_gimple_lvec.
34765 (pass_lower_vector): Provide PROP_gimple_lvec.
34766 (pass_lower_vector_ssa): Likewise.
34767 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
34768
34769 2013-03-21 Mark Wielaard <mjw@redhat.com>
34770
34771 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
34772
34773 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
34774
34775 * config/i386/i386.md (*movdi_internal): Disparage slightly
34776 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
34777 conversion alternatives.
34778
34779 2013-03-21 Jakub Jelinek <jakub@redhat.com>
34780
34781 PR middle-end/48087
34782 * diagnostic.def (DK_WERROR): New kind.
34783 * diagnostic.h (werrorcount): Define.
34784 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
34785 promoted to DK_ERROR, increment DK_WERROR counter instead of
34786 DK_ERROR counter.
34787 * toplev.c (toplev_main): Call print_ignored_options even if
34788 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
34789 even if just werrorcount is non-zero.
34790
34791 PR debug/55608
34792 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
34793 on failure.
34794 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
34795 (string_cst_pool_decl): New function.
34796 (optimize_one_addr_into_implicit_ptr): New function.
34797 (resolve_addr_in_expr): Optimize DWARF location expression
34798 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
34799 which doesn't live in memory, but has DW_AT_location or
34800 DW_AT_const_value, or refers to a string literal, into
34801 DW_OP_GNU_implicit_pointer.
34802 (optimize_location_into_implicit_ptr): New function.
34803 (resolve_addr): If removing DW_AT_location of a variable because
34804 it was DW_OP_addr of address of the variable, but the variable doesn't
34805 live in memory, try to emit const value attribute for the initializer.
34806
34807 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
34808
34809 * tree.h (VECTOR_TYPE_P): New macro.
34810 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
34811 TYPE_MODE): Use it.
34812 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
34813 VEC_COND_EXPR cannot be lvalues.
34814 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
34815
34816 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
34817
34818 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
34819 Restrict the transformation to equal modes.
34820
34821 2013-03-21 Richard Biener <rguenther@suse.de>
34822
34823 PR tree-optimization/39326
34824 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
34825 (MEM_ANALYZABLE): Adjust.
34826 (record_mem_ref_loc): Move bitmap ops ...
34827 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
34828 unanalyzable refs, do not record locations for it.
34829 (analyze_memory_references): Allocate ref zero as shared
34830 unanalyzable ref.
34831 (refs_independent_p): Do not test for unanalyzed mems here.
34832 (ref_indep_loop_p_1): Special-case disambiguation against
34833 the unanalyzed ref.
34834 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
34835
34836 2013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
34837
34838 * config/arm/arm-protos.h (tune_params): Add
34839 prefer_neon_for_64bits field.
34840 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
34841 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
34842 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
34843 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
34844 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
34845 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
34846 (arm_option_override): Handle -mneon-for-64bits new option.
34847 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
34848 (prefer_neon_for_64bits): Declare new variable.
34849 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
34850 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
34851 (arch_enabled): Handle new arch types. Remove support for onlya8
34852 and nota8.
34853 (one_cmpldi2): Use new arch names.
34854 (zero_extend<mode>di2, extend<mode>di2): Ditto.
34855 * config/arm/arm.opt (mneon-for-64bits): Add option.
34856 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
34857 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
34858 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
34859 of onlya8.
34860 * doc/invoke.texi (-mneon-for-64bits): Document.
34861
34862 2013-03-21 Richard Biener <rguenther@suse.de>
34863
34864 PR tree-optimization/39326
34865 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
34866 (sort_bbs_in_loop_postorder_cmp): New function.
34867 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
34868
34869 2013-03-21 Richard Biener <rguenther@suse.de>
34870
34871 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
34872 (vect_insert_into_interleaving_chain): Likewise.
34873 (vect_drs_dependent_in_basic_block): Inline ...
34874 (vect_slp_analyze_data_ref_dependence): ... here. New function,
34875 split out from ...
34876 (vect_analyze_data_ref_dependence): ... here. Simplify.
34877 (vect_check_interleaving): Simplify.
34878 (vect_analyze_data_ref_dependences): Likewise. Split out ...
34879 (vect_slp_analyze_data_ref_dependences): ... this new function.
34880 (dr_group_sort_cmp): New function.
34881 (vect_analyze_data_ref_accesses): Compute data-reference groups
34882 here instead of in vect_analyze_data_ref_dependence. Use
34883 a more efficient algorithm.
34884 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
34885 vect_slp_analyze_data_ref_dependences. Call
34886 vect_analyze_data_ref_accesses earlier.
34887 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
34888 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
34889 (vect_slp_analyze_data_ref_dependences): New prototype.
34890
34891 2013-03-21 Richard Biener <rguenther@suse.de>
34892
34893 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
34894 ref is stored in the loop.
34895 (find_refs_for_sm): Walk only over all stores.
34896 (store_motion_loop): Allocate from lim_bitmap_obstack.
34897 (store_motion): Likewise.
34898
34899 2013-03-21 Richard Biener <rguenther@suse.de>
34900
34901 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
34902 Update virtual SSA form.
34903
34904 2013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34905
34906 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
34907 * configure: Regenerate.
34908 * config.in: Regenerate.
34909 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
34910 if !HAVE_LD_EH_FRAME_CIEV3.
34911
34912 2013-03-21 Richard Biener <rguenther@suse.de>
34913
34914 * tree-cfg.c (verify_expr_no_block): New function.
34915 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
34916 nor DECL_VALUE_EXPR have locations with associated blocks.
34917 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
34918 (clear_unused_block_pointer): Remove code dealing with
34919 blocks in DECL_DEBUG_EXPR locations.
34920
34921 2013-03-21 Richard Biener <rguenther@suse.de>
34922
34923 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
34924 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
34925 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
34926 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
34927 instead of DECL_DEBUG_EXPR_IS_FROM.
34928 * gimplify.c (gimplify_modify_expr): Likewise.
34929 * tree-cfg.c (verify_expr_location_1): Likewise.
34930 * tree-complex.c (create_one_component_var): Likewise.
34931 * tree-sra.c (create_access_replacement): Likewise.
34932 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
34933 (clear_unused_block_pointer): Likewise.
34934 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
34935 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
34936 * var-tracking.c (var_debug_decl): Likewise.
34937 (track_expr_p): Likewise.
34938 * tree-inline.c (add_local_variables): Likewise. Set
34939 DECL_HAS_DEBUG_EXPR_P after copying it.
34940 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
34941 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
34942
34943 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
34944
34945 PR bootstrap/56656
34946 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
34947 * configure: Regenerate.
34948 * config.in: Regenerate.
34949 * config/i386/i386.md (*movdf_internal): Use
34950 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
34951 movd instead of movq mnemonic for interunit moves.
34952 (*movdi_internal): Ditto.
34953
34954 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
34955
34956 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
34957 (abd<mode>_3): New pattern.
34958 (aba<mode>_3): New pattern.
34959 (fabd<mode>_3): New pattern.
34960
34961 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
34962
34963 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
34964 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
34965 occurrence of REGISTER_PREFIX as its empty string.
34966
34967 2013-03-20 Jeff Law <law@redhat.com>
34968
34969 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
34970 addititional equivalences for equality comparisons between an SSA_NAME
34971 and a constant where the SSA_NAME was set from a widening conversion.
34972
34973 2013-03-20 Walter Lee <walt@tilera.com>
34974
34975 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
34976
34977 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
34978
34979 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
34980 depending on type attribute.
34981 (*movti_internal): Ditto.
34982 (*movtf_internal): Ditto.
34983 (*movxf_internal): Ditto.
34984 (*movdf_internal): Ditto.
34985 (*movsf_internal): Ditto.
34986
34987 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
34988
34989 * config/i386/i386.md (*movti_internal): Set prefix attribute to
34990 maybe_vex for sselog1 and ssemov types.
34991 (*movdi_internal): Reorder operand constraints.
34992 (*movsi_internal): Ditto. Set prefix attribute to
34993 maybe_vex for sselog1 and ssemov types.
34994 (*movtf_internal): Set prefix attribute to maybe_vex
34995 for sselog1 and ssemov types.
34996 (*movdf_internal): Ditto. Set prefix_data16 attribute for
34997 DImode ssemov types. Reorder operand constraints.
34998 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
34999 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
35000 attribute for SImode ssemov types. Reorder operand constraints.
35001
35002 2013-03-20 Martin Jambor <mjambor@suse.cz>
35003
35004 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
35005 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
35006
35007 2013-03-20 Pat Haugen <pthaugen@us.ibm.com>
35008
35009 * config/rs6000/predicates.md (indexed_address, update_address_mem
35010 update_indexed_address_mem): New predicates.
35011 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
35012 attribute for load/store instructions.
35013 * config/rs6000/dfp.md (movsd_store): Likewise.
35014 (movsd_load): Likewise.
35015 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
35016 (unnamed HI->DI extend define_insn): Likewise.
35017 (unnamed SI->DI extend define_insn): Likewise.
35018 (unnamed QI->SI extend define_insn): Likewise.
35019 (unnamed QI->HI extend define_insn): Likewise.
35020 (unnamed HI->SI extend define_insn): Likewise.
35021 (unnamed HI->SI extend define_insn): Likewise.
35022 (extendsfdf2_fpr): Likewise.
35023 (movsi_internal1): Likewise.
35024 (movsi_internal1_single): Likewise.
35025 (movhi_internal): Likewise.
35026 (movqi_internal): Likewise.
35027 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
35028 attribute for load/store instructions.
35029 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
35030 instructions.
35031 (mov<mode>_softfloat): Likewise.
35032 (mov<mode>_hardfloat32): Likewise.
35033 (mov<mode>_hardfloat64): Likewise.
35034 (mov<mode>_softfloat64): Likewise.
35035 (movdi_internal32): Likewise.
35036 (movdi_internal64): Likewise.
35037 (probe_stack_<mode>): Likewise.
35038
35039 2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
35040
35041 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
35042 floating point, and decimal floating point to reload iterator.
35043
35044 * config/rs6000/constraints.md (wl constraint): New constraints to
35045 return FLOAT_REGS if certain options are used to reduce the number
35046 of separate patterns that exist in the file.
35047 (wx constraint): Likewise.
35048 (wz constraint): Likewise.
35049
35050 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
35051 -mdebug=reg, print wg, wl, wx, and wz constraints.
35052 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
35053 Initialize the reload functions for 64-bit binary/decimal floating
35054 point types.
35055 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
35056 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
35057 create the buffer on the stack to overcome not having a 32-bit
35058 load and store.
35059 (rs6000_emit_move): Likewise.
35060 (rs6000_secondary_memory_needed_rtx): Likewise.
35061 (rs6000_alloc_sdmode_stack_slot): Likewise.
35062 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
35063 via xxlxor, just like DFmode 0.0.
35064
35065 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
35066 define as 1 if we are running on a power7 or newer.
35067 (enum r6000_reg_class_enum): Add new constraints.
35068
35069 * config/rs6000/dfp.md (movsd): Delete, combine with binary
35070 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
35071 with other moves by using conditional constraits (wg). Use LFIWZX
35072 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
35073 (movsd splitter): Likewise.
35074 (movsd_hardfloat): Likewise.
35075 (movsd_softfloat): Likewise.
35076
35077 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
35078 binary and decimal floating point moves.
35079 (fmove_ok): New attributes to combine binary and decimal floating
35080 point moves, and to combine power6x (mfpgpr) moves along normal
35081 floating moves.
35082 (real_value_to_target): Likewise.
35083 (f32_lr): Likewise.
35084 (f32_lm): Likewise.
35085 (f32_li): Likewise.
35086 (f32_sr): Likewise.
35087 (f32_sm): Likewise.
35088 (f32_si): Likewise.
35089 (movsf): Combine binary and decimal floating point moves. Combine
35090 power6x (mfpgpr) moves with other moves by using conditional
35091 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
35092 (mov<mode> for SFmode/SDmode); Likewise.
35093 (SFmode/SDmode splitters): Likewise.
35094 (movsf_hardfloat): Likewise.
35095 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
35096 (movsf_softfloat): Likewise.
35097 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
35098
35099 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
35100 wx and wz constraints.
35101
35102 * config/rs6000/constraints.md (wg constraint): New constraint to
35103 return FLOAT_REGS if -mmfpgpr (power6x) was used.
35104
35105 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
35106 constraint.
35107
35108 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
35109 -mdebug=reg, print wg, wl, wx, and wz constraints.
35110 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
35111 Initialize the reload functions for 64-bit binary/decimal floating
35112 point types.
35113 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
35114 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
35115 create the buffer on the stack to overcome not having a 32-bit
35116 load and store.
35117 (rs6000_emit_move): Likewise.
35118 (rs6000_secondary_memory_needed_rtx): Likewise.
35119 (rs6000_alloc_sdmode_stack_slot): Likewise.
35120 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
35121 via xxlxor, just like DFmode 0.0.
35122
35123 * config/rs6000/dfp.md (movdd): Delete, combine with binary
35124 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
35125 with other moves by using conditional constraits (wg). Use LFIWZX
35126 and STFIWX for loading SDmode on power7.
35127 (movdd splitters): Likewise.
35128 (movdd_hardfloat32): Likewise.
35129 (movdd_softfloat32): Likewise.
35130 (movdd_hardfloat64_mfpgpr): Likewise.
35131 (movdd_hardfloat64): Likewise.
35132 (movdd_softfloat64): Likewise.
35133
35134 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
35135 64-bit binary and decimal floating point moves.
35136 (FMOVE64X): Likewise.
35137 (movdf): Combine 64-bit binary and decimal floating point moves.
35138 Combine power6x (mfpgpr) moves with other moves by using
35139 conditional constraits (wg).
35140 (mov<mode> for DFmode/DDmode): Likewise.
35141 (DFmode/DDmode splitters): Likewise.
35142 (movdf_hardfloat32): Likewise.
35143 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
35144 (movdf_softfloat32): Likewise.
35145 (movdf_hardfloat64_mfpgpr): Likewise.
35146 (movdf_hardfloat64): Likewise.
35147 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
35148 (movdf_softfloat64): Likewise.
35149 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
35150 (reload_<mode>_load): Move to later in the file so they aren't in
35151 the middle of the floating point move insns.
35152 (reload_<mode>_store): Likewise.
35153
35154 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
35155 constraint.
35156
35157 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
35158 constraint if -mdebug=reg.
35159 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
35160 Enable using dd reload support if needed.
35161
35162 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
35163 binary and decimal floating point moves in rs6000.md.
35164 (movtd_internal): Likewise.
35165
35166 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
35167 decimal floating point moves.
35168 (movtf): Likewise.
35169 (movtf_internal): Likewise.
35170 (mov<mode>_internal, TDmode/TFmode): Likewise.
35171 (movtf_softfloat): Likewise.
35172 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
35173
35174 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
35175 movdi_internal64, using wg constraint for move direct operations.
35176 (movdi_internal64): Likewise.
35177
35178 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
35179 MODES_TIEABLE_P for selected modes. Print the numerical value of
35180 the various virtual registers. Use GPR/FPR first/last values,
35181 instead of hard coding the register numbers. Print which modes
35182 have reload functions registered.
35183 (rs6000_option_override_internal): If -mdebug=reg, trace the options
35184 settings before/after setting cpu, target and subtarget settings.
35185 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
35186 and for secondary reload failures in rs6000_secondary_reload_inner.
35187 (rs6000_secondary_reload_fail): Likewise.
35188 (rs6000_secondary_reload_inner): Likewise.
35189
35190 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
35191 macros for first/last GPR and FPR registers.
35192 (LAST_GPR_REGNO): Likewise.
35193 (FIRST_FPR_REGNO): Likewise.
35194 (LAST_FPR_REGNO): Likewise.
35195
35196 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
35197 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
35198 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
35199 (vcond<mode><mode>): Likewise.
35200 (vcondu<mode><mode>): Likewise.
35201 (vector_gtu<mode>): Likewise.
35202 (vector_gte<mode>): Likewise.
35203 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
35204 to prevent the compiler from converting DImode operations to TImode.
35205 (ior<mode>3): Likewise.
35206 (and<mode>3): Likewise.
35207 (one_cmpl<mode>2): Likewise.
35208 (nor<mode>3): Likewise.
35209 (andc<mode>3): Likewise.
35210
35211 * config/rs6000/constraints.md (wt constraint): New constraint
35212 that returns VSX_REGS if TImode is allowed in VSX registers.
35213
35214 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
35215 constant under VSX.
35216
35217 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
35218 similar to TImode, but it is restricted to being in the GPRs.
35219
35220 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
35221 TImode to occupy a single VSX register.
35222
35223 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
35224 -mvsx-timode for power7/power8.
35225 (power7 cpu): Likewise.
35226 (power8 cpu): Likewise.
35227
35228 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
35229 sure that TFmode/TDmode take up two registers if they are ever
35230 allowed in the upper VSX registers.
35231 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
35232 registers.
35233 (rs6000_init_hard_regno_mode_ok): Likewise.
35234 (rs6000_debug_reg_global): Add debugging for PTImode and wt
35235 constraint. Print if LRA is turned on.
35236 (rs6000_option_override_internal): Give an error if -mvsx-timode
35237 and VSX is not enabled.
35238 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
35239 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
35240 to reg+offset addressing. Use PTImode when checking offset
35241 addresses for validity.
35242 (reg_offset_addressing_ok_p): Likewise.
35243 (rs6000_legitimate_offset_address_p): Likewise.
35244 (rs6000_legitimize_address): Likewise.
35245 (rs6000_legitimize_reload_address): Likewise.
35246 (rs6000_legitimate_address_p): Likewise.
35247 (rs6000_eliminate_indexed_memrefs): Likewise.
35248 (rs6000_emit_move): Likewise.
35249 (rs6000_secondary_reload): Likewise.
35250 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
35251 reloads to fpr registers to continue to use reg+offset addressing,
35252 but 64-bit reloads to altivec registers need reg+reg addressing.
35253 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
35254 it. Treat LO_SUM like a PLUS operation.
35255 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
35256 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
35257 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
35258 registers to share a register with a smaller sized type, since VSX
35259 puts scalars in the upper 64-bits.
35260 (print_operand): Add support for PTImode.
35261 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
35262 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
35263 registers, but don't have arithmetic support.
35264 (rs6000_memory_move_cost): Add test for VSX.
35265 (rs6000_opt_masks): Add -mvsx-timode.
35266
35267 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
35268 for TImode.
35269 (VSs): Likewise.
35270 (VSr): Use wt constraint for TImode.
35271 (VSv): Drop TImode support.
35272 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
35273 (vsx_movti_64bit): Likewise.
35274 (vsx_movti_32bit): Likewise.
35275 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
35276 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
35277 one '?' on the appropriate output constraint. Do not allow TImode
35278 logical operations on 32-bit systems.
35279 (vsx_ior<mode>3): Likewise.
35280 (vsx_xor<mode>3): Likewise.
35281 (vsx_one_cmpl<mode>2): Likewise.
35282 (vsx_nor<mode>3): Likewise.
35283 (vsx_andc<mode>3): Likewise.
35284 (vsx_concat_<mode>): Likewise.
35285 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
35286
35287 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
35288 OPTION_MASK_VSX_TIMODE.
35289 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
35290 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
35291
35292 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
35293 (TI2 iterator): New iterator for TImode, PTImode.
35294 (wd mode attribute): Add values for vector types.
35295 (movti_string): Replace TI move operations with operations for TImode
35296 and PTImode. Add support for TImode being allowed in VSX registers.
35297 (mov<mode>_string, TImode/PTImode): Likewise.
35298 (movti_ppc64): Likewise.
35299 (mov<mode>_ppc64, TImode/PTImode): Likewise.
35300 (TI mode splitters): Likewise.
35301
35302 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
35303 constraint.
35304
35305 2013-03-20 Marc Glisse <marc.glisse@inria.fr>
35306
35307 PR tree-optimization/56355
35308 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
35309 Also handle integers with undefined overflow.
35310
35311 2013-03-20 Catherine Moore <clm@codesourcery.com>
35312 Maciej W. Rozycki <macro@codesourcery.com>
35313 Tom de Vries <tom@codesourcery.com>
35314 Nathan Sidwell <nathan@codesourcery.com>
35315 Iain Sandoe <iain@codesourcery.com>
35316 Nathan Froyd <froydnj@codesourcery.com>
35317 Chao-ying Fu <fu@mips.com>
35318
35319 * doc/extend.texi: (micromips, nomicromips, nocompression):
35320 Document new function attributes.
35321 * doc/invoke.texi (minterlink-compressed, mmicromips,
35322 m14k, m14ke, m14kec): Document new options.
35323 (minterlink-mips16): Update documentation.
35324 * doc/md.texi (ZC, ZD): Document new constraints.
35325 * configure.ac (gcc_cv_as_micromips): Check if linker
35326 supports the .set micromips directive.
35327 * configure: Regenerate.
35328 * config.in: Regenerate.
35329 * config/mips/mips-tables.opt: Regenerate.
35330 * config/mips/micromips.md: New file.
35331 * constraints.md (ZC, ZD): New constraints.
35332 * config/mips/predicates.md (movep_src_register): New predicate.
35333 (movep_src_operand): New predicate.
35334 (non_volatile_mem_operand): New predicate.
35335 * config/mips/mips.md (multimem): New type.
35336 (length): Differentiate between 17-bit and 18-bit branch offsets.
35337 (MOVEP1, MOVEP2): New mode iterator.
35338 (mov_<load>l): Use ZC constraint.
35339 (mov_<load>r): Likewise.
35340 (mov_<store>l): Likewise.
35341 (mov_<store>r): Likewise.
35342 (*branch_equality<mode>_inverted): Add microMIPS support.
35343 (*branch_equality<mode>): Likewise.
35344 (*jump_absolute): Likewise.
35345 (indirect_jump_<mode>): Likewise.
35346 (tablejump_<mode>): Likewise.
35347 (<optab>_internal): Likewise.
35348 (sibcall_internal): Likewise.
35349 (sibcall_value_internal): Likewise.
35350 (prefetch): Use constraint ZD.
35351 * config/mips/mips.opt (minterlink-compressed): New option.
35352 (minterlink-mips16): Now an alias for minterlink-compressed.
35353 (mmicromips): New option.
35354 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
35355 (compare_and_swap_12): Likewise.
35356 (sync_add<mode>): Likewise.
35357 (sync_<optab>_12): Likewise.
35358 (sync_old_<optab>_12): Likewise.
35359 (sync_new_<optab>_12): Likewise.
35360 (sync_nand_12): Likewise.
35361 (sync_old_nand_12): Likewise.
35362 (sync_new_nand_12): Likewise.
35363 (sync_sub<mode>): Likewise.
35364 (sync_old_add<mode>): Likewise.
35365 (sync_old_sub<mode>): Likewise.
35366 (sync_new_add<mode>): Likewise.
35367 (sync_new_sub<mode>): Likewise.
35368 (sync_<optab><mode>): Likewise.
35369 (sync_old_<optab><mode>): Likewise.
35370 (sync_new_<optab><mode>): Likewise.
35371 (sync_nand<mode>): Likewise.
35372 (sync_old_nand<mode>): Likewise.
35373 (sync_new_nand<mode>): Likewise.
35374 (sync_lock_test_and_set<mode>): Likewise.
35375 (test_and_set_12): Likewise.
35376 (atomic_compare_and_swap<mode>): Likewise.
35377 (atomic_exchange<mode>_llsc): Likewise.
35378 (atomic_fetch_add<mode>_llsc): Likewise.
35379 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
35380 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
35381 (umips_save_restore_pattern_p): Likewise.
35382 (umips_load_store_pair_p): Likewise.
35383 (umips_output_load_store_pair): Likewise.
35384 (umips_movep_target_p): Likewise.
35385 (umips_12bit_offset_address_p): Likewise.
35386 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
35387 (mips_base_mips16): Rename this...
35388 (mips_base_compression_flags): ...to this. Update all uses.
35389 (mips_attribute_table): Add micromips, nomicromips and nocompression.
35390 (mips_mips16_decl_p): Delete.
35391 (mips_nomips16_decl_p): Delete.
35392 (mips_get_compress_on_flags): New function.
35393 (mips_get_compress_off_flags): New function.
35394 (mips_get_compress_mode): New function.
35395 (mips_get_compress_on_name): New function.
35396 (mips_get_compress_off_name): New function.
35397 (mips_insert_attributes): Support multiple compression types.
35398 (mips_merge_decl_attributes): Likewise.
35399 (umips_12bit_offset_address_p): New function.
35400 (mips_start_function_definition): Emit .set micromips directive.
35401 (mips_call_may_need_jalx_p): New function.
35402 (mips_function_ok_for_sibcall): Add microMIPS support.
35403 (mips_print_operand_punctuation): Support short delay slots and
35404 compact jumps.
35405 (umips_swm_mask, umips_swm_encoding): New.
35406 (umips_build_save_restore): New function.
35407 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
35408 (was_mips16_p): Remove.
35409 (old_compression_mode): New.
35410 (mips_set_compression_mode): New function.
35411 (mips_set_current_function): Add microMIPS support.
35412 (mips_option_override): Likewise.
35413 (umips_save_restore_pattern_p): New function.
35414 (umips_output_save_restore): New function.
35415 (umips_load_store_pair_p_1): New function.
35416 (umips_load_store_pair_p): New function.
35417 (umips_output_load_store_pair_1): New function.
35418 (umips_output_load_store_pair): New function.
35419 (umips_movep_target_p) New function.
35420 (mips_prepare_pch_save): Add microMIPS support.
35421 * config/mips/mips.h (TARGET_COMPRESSION): New.
35422 (TARGET_CPU_CPP_BUILTINS): Update macro
35423 to use new compression flags and to support microMIPS.
35424 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
35425 (MIPS_ARCH_FLOAT_SPEC): Likewise.
35426 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
35427 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
35428 (ASM_SPEC): Support mmicromips and mno-micromips.
35429 (M16STORE_REG_P): New macro.
35430 (MIPS_CALL): Support TARGET_MICROMIPS.
35431 (MICROMIPS_J): New macro.
35432 (mips_base_mips16): Rename this...
35433 (mips_base_compression_flags): ...to this.
35434 (UMIPS_12BIT_OFFSET_P): New macro.
35435 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
35436 (MULTILIB_DIRNAMES): Likewise.
35437 2013-03-20 Richard Biener <rguenther@suse.de>
35438
35439 PR tree-optimization/56661
35440 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
35441 the result does not have to be distinct.
35442
35443 2013-03-20 Richard Biener <rguenther@suse.de>
35444
35445 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
35446 remap_gimple_op_r.
35447
35448 2013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35449 Steven Bosscher <steven@gcc.gnu.org>
35450
35451 PR rtl-optimization/56605
35452 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
35453
35454 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
35455
35456 PR bootstrap/56656
35457 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
35458 that require movd instead of movq.
35459
35460 2013-03-20 Richard Biener <rguenther@suse.de>
35461
35462 * tree-ssa-structalias.c (struct variable_info): Add pointer
35463 to the first field of an aggregate with sub-vars. Make
35464 this and the pointer to the next subfield its ID.
35465 (vi_next): New function.
35466 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
35467 storedanything_id, integer_id): Increment by one.
35468 (new_var_info, get_call_vi, lookup_call_clobber_vi,
35469 get_call_clobber_vi): Adjust.
35470 (solution_set_expand): Simplify and speedup.
35471 (solution_set_add): Inline into ...
35472 (set_union_with_increment): ... this. Adjust accordingly.
35473 (do_sd_constraint): Likewise.
35474 (do_ds_constraint): Likewise.
35475 (do_complex_constraint): Simplify.
35476 (build_pred_graph): Adjust.
35477 (solve_graph): Likewise. Simplify and speedup.
35478 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
35479 get_constraint_for_component_ref, get_constraint_for_1,
35480 first_vi_for_offset, first_or_preceding_vi_for_offset,
35481 create_function_info_for, create_variable_info_for_1,
35482 create_variable_info_for, intra_create_variable_infos): Adjust.
35483 (init_base_vars): Push NULL for ID zero.
35484 (compute_points_to_sets): Adjust.
35485
35486 2013-03-20 Richard Biener <rguenther@suse.de>
35487
35488 * cfgloop.c (verify_loop_structure): Streamline and avoid
35489 ICEing on corrupt loop tree.
35490 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
35491 loop tree.
35492
35493 2013-03-20 Richard Biener <rguenther@suse.de>
35494
35495 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
35496 check whether an SSA update is needed.
35497
35498 2013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
35499
35500 * config/mips/constraints.md (T): Rename to...
35501 (Yf): ...this.
35502 (U): Rename to...
35503 (Yd): ...this.
35504 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
35505 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
35506
35507 2013-03-19 Ian Bolton <ian.bolton@arm.com>
35508
35509 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
35510 (*subsi3_carryin_uxtw): Likewise.
35511
35512 2013-03-19 Ian Bolton <ian.bolton@arm.com>
35513
35514 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
35515 (*rorsi3_insn_uxtw): Likewise.
35516
35517 2013-03-19 Ian Bolton <ian.bolton@arm.com>
35518
35519 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
35520 (*extrsi5_insn_uxtw): Likewise.
35521
35522 2013-03-19 Richard Biener <rguenther@suse.de>
35523
35524 PR tree-optimization/56273
35525 * passes.c (init_optimization_passes): Move second VRP after DOM.
35526
35527 2013-03-19 Uros Bizjak <ubizjak@gmail.com>
35528
35529 * config/i386/i386.md (*movti_internal): Merge from
35530 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
35531 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
35532 nox64 isa attributes.
35533
35534 2013-03-18 Richard Biener <rguenther@suse.de>
35535
35536 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
35537 (unite): Likewise.
35538 (merge_node_constraints): Likewise.
35539 (build_succ_graph): Likewise.
35540 (valid_graph_edge): Inline into single caller.
35541 (unify_nodes): Likewise. Use bitmap_set_bit return value
35542 and cache varinfo.
35543 (scc_visit): Fix formatting and variable use.
35544 (do_sd_constraint): Use gcc_checking_assert.
35545 (do_ds_constraint): Likewise.
35546 (do_complex_constraint): Likewise.
35547 (condense_visit): Likewise. Cleanup.
35548 (dump_pred_graph): New function.
35549 (perform_var_substitution): Dump the pred-graph before
35550 variable substitution.
35551 (find_equivalent_node): Use gcc_checking_assert.
35552 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
35553
35554 2013-03-18 Richard Biener <rguenther@suse.de>
35555
35556 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
35557 Remove cond_expr_stmt_list argument and do not gimplify the
35558 built expression.
35559 (vect_loop_versioning): Adjust.
35560 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
35561 Cleanup to use less temporaries.
35562 (vect_create_data_ref_ptr): Cleanup.
35563
35564 2013-03-18 Jakub Jelinek <jakub@redhat.com>
35565
35566 PR tree-optimization/56635
35567 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
35568 require types_compatible_p types.
35569
35570 2013-03-18 Nick Clifton <nickc@redhat.com>
35571
35572 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
35573 spurious backslash.
35574
35575 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
35576 Add missing line to comment describing function.
35577
35578 2013-03-18 Richard Biener <rguenther@suse.de>
35579
35580 PR tree-optimization/56210
35581 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
35582 Handle string / character search functions.
35583 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
35584
35585 2013-03-18 Richard Biener <rguenther@suse.de>
35586
35587 PR middle-end/56483
35588 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
35589 and implement properly.
35590 * gimple.h (gimple_cond_single_var_p): Remove.
35591
35592 2013-03-18 Richard Biener <rguenther@suse.de>
35593
35594 * tree-data-ref.h (find_data_references_in_loop): Declare.
35595 * tree-data-ref.c (get_references_in_stmt): Use a stack
35596 vector pre-allocated in the callers.
35597 (find_data_references_in_stmt): Adjust.
35598 (graphite_find_data_references_in_stmt): Likewise.
35599 (create_rdg_vertices): Likewise.
35600 (find_data_references_in_loop): Export.
35601 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
35602 Compute dependences here...
35603 (vect_analyze_data_refs): ...not here. When we encounter
35604 a non-vectorizable data reference in basic-block vectorization
35605 truncate the data reference vector. Do not bother to
35606 fixup data-dependence information for gather loads.
35607 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
35608 of data references, as reported.
35609
35610 2013-03-18 Richard Biener <rguenther@suse.de>
35611
35612 PR tree-optimization/3713
35613 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
35614 has_constants and expr.
35615 (stmt_has_constants): Properly valueize SSA names when deciding
35616 whether the stmt has constants.
35617
35618 2013-03-18 Richard Biener <rguenther@suse.de>
35619
35620 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
35621 whole function when there is nothing to do.
35622 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
35623 * tree-vectorizer.c (vectorize_loops): Update virtual and
35624 loop-closed SSA once.
35625 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
35626
35627 2013-03-18 Richard Biener <rguenther@suse.de>
35628
35629 PR middle-end/56113
35630 * domwalk.c (bb_postorder): New global static.
35631 (cmp_bb_postorder): New function.
35632 (walk_dominator_tree): Replace scheme imposing an order for
35633 visiting dominator sons by one sorting them at the time they
35634 are pushed on the stack.
35635
35636 2013-03-18 Richard Biener <rguenther@suse.de>
35637
35638 PR tree-optimization/39326
35639 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
35640 (struct mem_ref): Replace mem member with ao_ref typed member.
35641 (MEM_ANALYZABLE): Adjust.
35642 (memref_eq): Likewise.
35643 (mem_ref_alloc): Likewise.
35644 (gather_mem_refs_stmt): Likewise.
35645 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
35646 (execute_sm_if_changed_flag_set): Adjust.
35647 (execute_sm): Likewise.
35648 (ref_always_accessed_p): Likewise.
35649 (refs_independent_p): Likewise.
35650 (can_sm_ref_p): Likewise.
35651
35652 2013-03-18 Jakub Jelinek <jakub@redhat.com>
35653
35654 PR c/56566
35655 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
35656 return 1 even for !unsignedp.
35657
35658 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
35659
35660 * config/i386/i386.md (isa): Add x64 and nox64.
35661 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
35662 (*pushtf): Enable *roF alternative for x64 isa only.
35663 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
35664 mode attribute of integer alternatives to DImode for TARGET_64BIT.
35665 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
35666 (*movtf_internal): Merge from *movtf_internal_rex64 and
35667 *movtf_internal_sse. Use x64 and nox64 isa attributes.
35668 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
35669 nox64 isa attributes.
35670 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
35671 nox64 isa attributes.
35672 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
35673
35674 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
35675
35676 * config/alpha/alpha.c (TARGET_LRA_P): New define.
35677
35678 2013-03-17 Jakub Jelinek <jakub@redhat.com>
35679
35680 PR target/56640
35681 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
35682 class names. Remove trailing comma after "ALL_REGS".
35683
35684 2013-03-16 Jan Hubicka <jh@suse.cz>
35685
35686 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
35687 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
35688 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
35689 of cgraph_get_create_node.
35690 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
35691
35692 2013-03-16 Jason Merrill <jason@redhat.com>
35693
35694 PR debug/49090
35695 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
35696 with DW_AT_default_value.
35697
35698 2013-03-16 Jakub Jelinek <jakub@redhat.com>
35699
35700 * BASE-VER: Set to 4.9.0.
35701
35702 2013-03-14 Andi Kleen <ak@linux.intel.com>
35703
35704 PR target/56619
35705 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
35706 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
35707 Document _x* TSX intrinsics.
35708
35709 2013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
35710 David Holsgrove <david.holsgrove@xilinx.com>
35711
35712 * configure.ac: Add MicroBlaze TLS support detection.
35713 * configure: Regenerate.
35714 * config/microblaze/microblaze-protos.h
35715 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
35716 symbol_mentioned_p, label_mentioned_p): Add prototypes.
35717 * config/microblaze/microblaze.c (microblaze_address_type): Add
35718 ADDRESS_TLS and tls_reloc address types.
35719 (microblaze_address_info): Add tls_reloc.
35720 (TARGET_HAVE_TLS): Define.
35721 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
35722 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
35723 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
35724 load_tls_operand, microblaze_call_tls_get_addr,
35725 microblaze_legitimize_tls_address): New functions.
35726 (microblaze_classify_unspec): Handle UNSPEC_TLS.
35727 (get_base_reg): Use microblaze_tls_symbol_p.
35728 (microblaze_classify_address): Handle TLS.
35729 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
35730 label_mentioned_p and microblaze_tls_referenced_p.
35731 (microblaze_legitimize_address): Handle TLS.
35732 (microblaze_address_insns): Handle ADDRESS_TLS.
35733 (pic_address_needs_scratch): Handle TLS.
35734 (print_operand_address): Handle TLS.
35735 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
35736 (microblaze_expand_move): Handle TLS.
35737 (microblaze_legitimate_constant_p): Check
35738 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
35739 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
35740 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
35741 (PIC_OFFSET_TABLE_REGNUM): Set.
35742 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
35743 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
35744 (addsi3, movsi_internal2, movdf_internal): Update constraints
35745 * config/microblaze/predicates.md (arith_plus_operand): Define
35746 (move_operand): Redefine as move_src_operand,
35747 check microblaze_tls_referenced_p.
35748
35749 2013-03-14 Ian Bolton <ian.bolton@arm.com>
35750
35751 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
35752 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
35753
35754 2013-03-14 Ian Bolton <ian.bolton@arm.com>
35755
35756 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
35757 CC mode for AND.
35758
35759 2013-03-14 Jakub Jelinek <jakub@redhat.com>
35760
35761 PR tree-optimization/53265
35762 * common.opt (Waggressive-loop-optimizations): New option.
35763 * tree-ssa-loop-niter.c: Include tree-pass.h.
35764 (do_warn_aggressive_loop_optimizations): New function.
35765 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
35766 if number_of_latch_executions returned constant.
35767 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
35768 early. If number_of_latch_executions returned constant, set
35769 nb_iterations_upper_bound back to it.
35770 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
35771 field.
35772 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
35773 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
35774
35775 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
35776 (MULTILIB_OSDIRNAMES): Set.
35777 * genmultilib: If defaultosdirname doesn't start with :: , set
35778 defaultosdirname2 instead, clear it and emit two . multilib_raw
35779 entries instead of just one.
35780
35781 2013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
35782
35783 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
35784 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
35785 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
35786 (SUBTARGET_OVERRIDE_OPTIONS): New.
35787
35788 2013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
35789
35790 PR target/49880
35791 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
35792 (musermode): Convert to Var(TARGET_USERMODE).
35793 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
35794 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
35795 * config/sh/sh.c (sh_option_override): Use
35796 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
35797 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
35798 condition.
35799 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
35800 TARGET_SH4.
35801 (udivsi3_i4_single, divsi3_i4_single): Use
35802 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
35803
35804 2013-03-13 Dave Korn <dave.korn.cygwin@gmail.com>
35805
35806 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
35807 default setting.
35808
35809 2013-03-13 Richard Biener <rguenther@suse.de>
35810
35811 PR tree-optimization/56608
35812 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
35813 calls when vectorizing basic-blocks.
35814
35815 2013-03-13 Jakub Jelinek <jakub@redhat.com>
35816
35817 PR plugins/45078
35818 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
35819 tm_file.
35820
35821 2013-03-12 Jakub Jelinek <jakub@redhat.com>
35822
35823 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
35824
35825 2013-03-11 Jan Hubicka <jh@suse.cz>
35826
35827 PR lto/56557
35828 * lto-streamer-out.c (output_symbol_p): Skip references from
35829 constructors of external variables.
35830
35831 2013-03-11 Jan Hubicka <jh@suse.cz>
35832
35833 PR middle-end/56571
35834 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
35835 from pseudos.
35836 * emit-rtl.c (verify_rtx_sharing): Likewise.
35837 (copy_insn_1): Likewise.
35838 * rtl.c (copy_rtx): Likewise.
35839
35840 2013-03-11 Georg-Johann Lay <avr@gjlay.de>
35841
35842 PR target/56591
35843 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
35844 output_operand_lossage message.
35845
35846 2013-03-11 Richard Earnshaw <rearnsha@arm.com>
35847
35848 PR target/56470
35849 * arm.c (shift_op): Validate RTL pattern on the fly.
35850 (arm_print_operand, case 'S'): Don't use shift_operator to validate
35851 the RTL.
35852
35853 2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
35854
35855 PR target/56347
35856 * config/pa/pa.md (call_value): Check for calls to powf and direct to
35857 new call patterns that clobber %fr12.
35858 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
35859 split and postreload patterns.
35860 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
35861 registers %fr12 and %fr12R as call used.
35862
35863 2013-03-09 Steven Bosscher <steven@gcc.gnu.org>
35864
35865 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
35866 (canon_address, record_store, replace_read, check_mem_read_rtx,
35867 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
35868 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
35869 rest_of_handle_dse): Likewise.
35870
35871 2013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
35872
35873 PR middle-end/56524
35874 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
35875 Add base_optabs.
35876 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
35877 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
35878 (save_optabs_if_changed): Replace with...
35879 (init_tree_optimization_optabs): ...this.
35880 * optabs.c (save_optabs_if_changed): Rename to...
35881 (init_tree_optimization_optabs): ...this. Take the optimization node
35882 as argument. Do nothing if the base optabs are already correct.
35883 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
35884 to recompute optabs.
35885 * function.h (function): Remove optabs field.
35886 * function.c (invoke_set_current_function_hook): Call
35887 init_tree_optimization_optabs. Use the result to initialize
35888 this_fn_optabs.
35889
35890 2013-02-27 Aldy Hernandez <aldyh@redhat.com>
35891
35892 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
35893 if GTMA_HAS_NO_INSTRUMENTATION.
35894 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
35895 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
35896 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
35897 * gimple-pretty-print.c (dump_gimple_transaction): Handle
35898 GTMA_HAS_NO_INSTRUMENTATION.
35899
35900 2013-03-08 Jakub Jelinek <jakub@redhat.com>
35901
35902 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
35903 libasan_preinit.o.
35904
35905 2013-03-08 Marek Polacek <polacek@redhat.com>
35906 Jakub Jelinek <jakub@redhat.com>
35907
35908 PR tree-optimization/56478
35909 * predict.c (is_comparison_with_loop_invariant_p): Change the
35910 type of loop_step to tree.
35911 (predict_loops): Adjust.
35912 (predict_iv_comparison): Perform the computations on double_ints.
35913
35914 2013-03-08 Richard Biener <rguenther@suse.de>
35915
35916 PR tree-optimization/56570
35917 * tree-cfg.c (verify_expr_location_1): Verify locations for
35918 DECL_DEBUG_EXPR.
35919 * tree-sra.c (create_access_replacement): Strip locations
35920 from DECL_DEBUG_EXPRs.
35921
35922 2013-03-08 Richard Biener <rguenther@suse.de>
35923
35924 * tree-inline.c (expand_call_inline): Do not associate
35925 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
35926 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
35927
35928 2013-03-08 Richard Biener <rguenther@suse.de>
35929
35930 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
35931 or block changes with -Og. Fix for location / block encoding
35932 changes and PHI arguments with locations.
35933
35934 2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
35935
35936 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
35937 for all counters.
35938 (struct output_info): Likewise.
35939 (register_overhead): Remove bad gcc_assert.
35940 (bitmap_find_bit): If there is only a single bitmap element, do not
35941 count a miss as a search.
35942 (print_statistics): Update for counter type changes.
35943 (dump_bitmap_statistics): Likewise. Print headers such that they
35944 are properly lined up with the printed counters.
35945
35946 2013-03-07 Jakub Jelinek <jakub@redhat.com>
35947
35948 PR tree-optimization/56559
35949 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
35950 check that it has only a single use.
35951
35952 2013-03-07 Richard Biener <rguenther@suse.de>
35953
35954 * doc/invoke.texi (fwhole-program): Discourage use in combination
35955 with -flto.
35956
35957 2013-03-06 Jakub Jelinek <jakub@redhat.com>
35958
35959 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
35960
35961 PR tree-optimization/56539
35962 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
35963 instead of GSI_CONTINUE_LINKING as last argument to
35964 force_gimple_operand_gsi. Adjust function comment.
35965
35966 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
35967 aarch64-cores.def.
35968
35969 PR middle-end/56548
35970 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
35971 promoted mode, convert the result back to the original mode.
35972
35973 2013-03-06 Richard Biener <rguenther@suse.de>
35974
35975 PR middle-end/56294
35976 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
35977 (insert_updated_phi_nodes_compare_uids): New function.
35978 (update_ssa): Sort symbols_to_rename after UID before
35979 traversing it to insert PHI nodes.
35980
35981 2013-03-06 Richard Biener <rguenther@suse.de>
35982
35983 PR middle-end/50494
35984 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
35985 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
35986
35987 Revert
35988 2013-02-13 Richard Biener <rguenther@suse.de>
35989
35990 PR lto/50494
35991 * varasm.c (output_constant_def_1): Get the decl representing
35992 the constant as argument.
35993 (output_constant_def): Wrap output_constant_def_1.
35994 (make_decl_rtl): Use output_constant_def_1 with the decl
35995 representing the constant.
35996 (build_constant_desc): Optionally re-use a decl already
35997 representing the constant.
35998 (tree_output_constant_def): Adjust.
35999
36000 2013-03-06 Joey Ye <joey.ye@arm.com>
36001
36002 PR lto/50293
36003 * gcc.c (convert_white_space): New function.
36004 (main): Handles white space in function name.
36005
36006 2013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
36007
36008 PR target/56529
36009 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
36010 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
36011 to SH_DIV_CALL_TABLE for TARGET_SH2.
36012 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
36013 list.
36014 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
36015 call-table options.
36016
36017 2013-03-05 Sterling Augustine <saugustine@google.com>
36018 Cary Coutant <ccoutant@google.com>
36019
36020 PR debug/55364
36021 * dwarf2out.c (resolve_addr): Don't call
36022 remove_loc_list_addr_table_entries a second time for the same
36023 expression.
36024
36025 2013-03-05 Jakub Jelinek <jakub@redhat.com>
36026
36027 PR debug/56510
36028 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
36029 (avoid_complex_debug_insns): New function.
36030 (expand_debug_locations): Call it.
36031
36032 PR rtl-optimization/56484
36033 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
36034 lifetimes of hard registers on small register class machines.
36035
36036 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
36037
36038 * config/microblaze/microblaze-protos.h: Rename
36039 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
36040 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
36041 fast_interrupt.
36042 (microblaze_fast_interrupt_function_p): New function.
36043 (microblaze_is_interrupt_handler): Rename to
36044 microblaze_is_interrupt_variant and add fast_interrupt check.
36045 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
36046 (save_restore_insns): Likewise.
36047 (compute_frame_size): Likewise.
36048 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
36049 (microblaze_globalize_label): Likewise.
36050 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
36051 * config/microblaze/microblaze.md: Use wrapper
36052 microblaze_is_interrupt_variant.
36053
36054 2013-03-05 Kai Tietz <ktietz@redhat.com>
36055
36056 * sdbout.c (sdbout_one_type): Switch to current function's section
36057 supporting cold/hot.
36058
36059 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
36060
36061 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
36062 -mxl-reorder.
36063
36064 2013-03-05 Jakub Jelinek <jakub@redhat.com>
36065
36066 PR middle-end/56461
36067 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
36068 if VALGRIND_GET_VBITS is defined, temporarily make object
36069 memory all defined, and restore previous valgrind addressability
36070 and definability afterwards. Free this_object at the end.
36071
36072 PR middle-end/56461
36073 * lra.c (lra): Call lra_clear_live_ranges if live_p,
36074 right before calling lra_create_live_ranges, also call it
36075 when clearing live_p. Only call lra_clear_live_ranges
36076 at the end if live_p.
36077
36078 PR middle-end/56461
36079 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
36080
36081 2013-03-05 Richard Biener <rguenther@suse.de>
36082
36083 PR tree-optimization/56521
36084 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
36085 value-id.
36086
36087 2013-03-05 Steven Bosscher <steven@gcc.gnu.org>
36088
36089 PR c++/55135
36090 * except.h (remove_unreachable_eh_regions): New prototype.
36091 * except.c (remove_eh_handler_splicer): New function, split out
36092 of remove_eh_handler.
36093 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
36094 warning about running it on many EH regions one at a time.
36095 (remove_unreachable_eh_regions_worker): New function, walk the
36096 EH tree in depth-first order and remove non-marked regions.
36097 (remove_unreachable_eh_regions): New function.
36098 * tree-eh.c (mark_reachable_handlers): New function, split out
36099 from remove_unreachable_handlers.
36100 (remove_unreachable_handlers): Use mark_reachable_handlers and
36101 remove_unreachable_eh_regions.
36102 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
36103 and remove_unreachable_eh_regions.
36104
36105 2013-03-05 Richard Biener <rguenther@suse.de>
36106
36107 PR middle-end/56525
36108 * loop-init.c (fix_loop_structure): Remove loops in two stages,
36109 not freeing them until the end.
36110
36111 2013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
36112
36113 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
36114
36115 2013-03-05 Richard Biener <rguenther@suse.de>
36116
36117 PR tree-optimization/56270
36118 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
36119 of loads after scheduling an SLP instance.
36120
36121 2013-03-05 Jakub Jelinek <jakub@redhat.com>
36122
36123 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
36124 tic6x.exp.
36125 (check_gcc_parallelize): Run guality.exp as a separate job from
36126 vect.exp with unsorted.exp and $(dg_target_exps) separately from
36127 struct-layout-1.exp with stackalign.exp.
36128
36129 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
36130
36131 PR middle-end/56461
36132 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
36133 load_index sbitmap even if some bit in it isn't set.
36134
36135 PR middle-end/56461
36136 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
36137 (discover_iteration_bound_by_body_walk): Change queues to
36138 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
36139 spelling in comment. Call safe_push on queues[bound_index] directly.
36140 Release queues[queue_index] in every iteration unconditionally.
36141 Release bounds vector.
36142
36143 PR middle-end/56461
36144 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
36145 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
36146 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
36147 inner_phis vector.
36148
36149 2013-03-05 Richard Biener <rguenther@suse.de>
36150
36151 PR lto/56515
36152 * tree-inline.c (remap_blocks_to_null): New function.
36153 (expand_call_inline): When expanding a call stmt without
36154 an associated block inline remap all callee blocks to NULL.
36155
36156 2013-03-05 Jakub Jelinek <jakub@redhat.com>
36157
36158 PR rtl-optimization/56494
36159 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
36160 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
36161 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
36162
36163 PR middle-end/56461
36164 * sel-sched-ir.c (free_sched_pools): Release
36165 succs_info_pool.stack[succs_info_pool.max_top] vectors too
36166 if succs_info_pool.max_top isn't -1.
36167
36168 PR bootstrap/56509
36169 * opts.c (opts_obstack, opts_concat): Moved to...
36170 * opts-common.c (opts_obstack, opts_concat): ... here.
36171
36172 2013-03-04 Jakub Jelinek <jakub@redhat.com>
36173
36174 PR middle-end/56461
36175 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
36176
36177 2013-03-04 Martin Jambor <mjambor@suse.cz>
36178
36179 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
36180 all appropriate places.
36181
36182 2013-01-04 Eric Botcazou <ebotcazou@adacore.com>
36183
36184 PR tree-optimization/56424
36185 * ipa-split.c (split_function): Do not set the RSO flag if result is
36186 not by reference and its type is a register type.
36187
36188 2013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
36189
36190 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
36191 (microblaze_legitimate_pic_operand): Likewise
36192 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
36193 new function microblaze_legitimate_pic_operand
36194 * config/microblaze/microblaze-protos.h
36195 (microblaze_legitimate_pic_operand): Declare.
36196
36197 2013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
36198
36199 * config/microblaze/predicates.md (call_insn_simple_operand):
36200 New predicate for supported rtx code types.
36201 * config/microblaze/microblaze.md (call_internal1): Use
36202 call_insn_simple_operand predicate.
36203
36204 2013-03-04 Jakub Jelinek <jakub@redhat.com>
36205
36206 PR middle-end/56461
36207 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
36208 partitions.ordered_remove.
36209
36210 PR middle-end/56461
36211 * tree-vect-stmts.c (vectorizable_conversion): Don't call
36212 vec_oprnds0.create (1) for modifier == NONE.
36213
36214 PR middle-end/56461
36215 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
36216 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
36217 vec_oprnds1 right before pushing anything to it for
36218 scalar_shift_arg.
36219
36220 PR middle-end/56461
36221 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
36222 set nbbs to 0 instead of having separate code path.
36223 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
36224 instead of false as last argument if returning NULL.
36225
36226 2013-03-03 Sandra Loosemore <sandra@codesourcery.com>
36227
36228 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
36229 the attribute is now called "target" instead of "option".
36230 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
36231 * doc/tm.texi.in (Target Attributes): Likewise document the correct
36232 attribute/pragma name for TARGET_OPTION_VALID_P and
36233 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
36234 * doc/tm.texi: Regenerated.
36235
36236 2013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
36237
36238 * config/microblaze/microblaze.c:
36239 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
36240 * config/microblaze/microblaze.h: Add -mxl-reorder to
36241 DRIVER_SELF_SPECS.
36242 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
36243 instructions emitted if TARGET_REORDER.
36244 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
36245 or 0 for -m/-mno case, but initialises as 2 to detect default use case
36246 separately.
36247
36248 2013-03-01 Xinliang David Li <davidxl@google.com>
36249
36250 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
36251 walk length.
36252
36253 2013-03-01 Jakub Jelinek <jakub@redhat.com>
36254
36255 PR middle-end/56461
36256 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
36257 vector even when returning true. Fix up function comment formatting.
36258
36259 PR middle-end/56461
36260 * ira-build.c (ira_loop_nodes_count): New variable.
36261 (create_loop_tree_nodes): Initialize it.
36262 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
36263
36264 PR middle-end/56461
36265 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
36266 method on dr_chain and result_chain.
36267 * tree-vect-stmts.c (vectorizable_store): Only call
36268 result_chain.create if j == 0.
36269
36270 PR middle-end/56461
36271 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
36272 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
36273 before overwriting it.
36274
36275 2013-03-01 Tobias Burnus <burnus@net-b.de>
36276
36277 * doc/extended.texi (C Extensions): Change order in @menu
36278 to match @node.
36279 (Other MIPS Built-in Functions): Move last MIPS entry before
36280 "picoChip Built-in Functions".
36281 (SH Built-in Functions): Move after RX Built-in Functions.
36282 * doc/gcc.texi (Introduction): Change order in @menu
36283 to match @node.
36284 * doc/md.texi (Constraints): Ditto.
36285 * gty.texi (Type Information): Ditto.
36286 (User-provided marking routines for template types): Make
36287 subsection.
36288 * doc/invoke.texi (AArch64 Options): Move before
36289 "Adapteva Epiphany Options".
36290
36291 2013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
36292 Jakub Jelinek <jakub@redhat.com>
36293
36294 PR sanitizer/56454
36295 * asan.c (gate_asan): Lookup no_sanitize_address instead of
36296 no_address_safety_analysis attribute.
36297 * doc/extend.texi (no_address_safety_attribute): Rename to
36298 no_sanitize_address attribute, mention no_address_safety_analysis
36299 attribute as deprecated alias.
36300
36301 2013-02-28 Jakub Jelinek <jakub@redhat.com>
36302
36303 PR middle-end/56461
36304 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
36305 type to vec<vec<tree> > *.
36306 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
36307 to be vec<tree> instead of vec<tree> *, set vec_defs
36308 to vNULL and call vec_defs.create (number_of_vects), adjust other
36309 uses of vec_defs.
36310 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
36311 vectorizable_condition): Adjust vect_get_slp_defs callers.
36312
36313 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
36314
36315 * config/aarch64/aarch64.c
36316 (aarch64_float_const_representable): Remove unused variable.
36317
36318 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
36319
36320 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
36321
36322 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
36323
36324 * config/aarch64/aarch64-builtins.c
36325 (aarch64_init_simd_builtins): Make static.
36326
36327 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
36328
36329 * config/aarch64/aarch64.c
36330 (aarch64_simd_make_constant): Make static.
36331
36332 2013-02-28 Martin Jambor <mjambor@suse.cz>
36333
36334 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
36335 with no initialization to the RHS of debug statements.
36336
36337 2013-02-28 Martin Jambor <mjambor@suse.cz>
36338
36339 PR tree-optimization/56294
36340 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
36341 Adjust dumping.
36342 (get_access_replacement): Do not call create_access_replacement.
36343 Assert a replacement exists.
36344 (get_repl_default_def_ssa_name): Create the replacement declaration
36345 itself.
36346
36347 2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
36348
36349 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
36350 final_end_function.
36351
36352 2013-02-28 Marek Polacek <polacek@redhat.com>
36353
36354 PR rtl-optimization/56466
36355 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
36356 if we're changing a loop.
36357 (peel_loops_completely): Likewise.
36358
36359 2013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
36360
36361 PR c++/55813
36362 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
36363
36364 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
36365
36366 PR target/56445
36367 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
36368 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
36369 INTX_FTYPE_FX, FX_FTYPE_INTX.
36370 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
36371
36372 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
36373
36374 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
36375 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
36376 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
36377 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
36378 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
36379 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
36380 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
36381 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
36382 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
36383 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
36384 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
36385 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
36386 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
36387 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
36388 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
36389 (avrxmega6): Increase max flash segments from 5 to 6.
36390 * config/avr/t-multilib: Regenerate.
36391 * config/avr/avr-tables.opt: Regenerate.
36392 * doc/avr-mmcu.texi: Regenerate.
36393
36394 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
36395
36396 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
36397 (avr_device_to_arch): Rename to avr_device_to_ld.
36398 (avr_device_to_as): New prototype.
36399 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
36400 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
36401 * config/avr/driver-avr.c (avr_device_to_as): New.
36402 (avr_device_to_arch): Rename to avr_device_to_ld.
36403
36404 2013-02-27 Jakub Jelinek <jakub@redhat.com>
36405
36406 PR middle-end/56461
36407 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
36408 method on dr_chain and result_chain.
36409
36410 PR middle-end/56461
36411 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
36412 pointer_set_destroy on not_executed_last_iteration.
36413
36414 PR middle-end/56461
36415 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
36416
36417 PR middle-end/56461
36418 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
36419 FOR_EACH_DEFINED_FUNCTION when freeing state.
36420
36421 PR middle-end/56461
36422 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
36423 pool_free.
36424 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
36425 overwriting it.
36426
36427 PR middle-end/56461
36428 * ipa-cp.c (decide_whether_version_node): Call vec_free on
36429 known_aggs[i].items and release known_aggs vector.
36430
36431 PR middle-end/56461
36432 * ipa-reference.c (propagate): Free node_info even for alias nodes.
36433
36434 2013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
36435
36436 * config/microblaze/microblaze.c (microblaze_emit_compare):
36437 Use xor for EQ/NE comparisions.
36438 * config/microblaze/microblaze.md (cstoresf4): Add constraints
36439 (cbranchsf4): Adjust operator to comparison_operator.
36440
36441 2013-02-27 Jakub Jelinek <jakub@redhat.com>
36442
36443 PR middle-end/56461
36444 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
36445 vector.
36446 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
36447 vec_safe_push, always update *slot.
36448 (redirect_edge_var_map_clear): Use vec_free.
36449 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
36450 (free_var_map_entry): Use vec_free.
36451 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
36452 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
36453
36454 2013-02-27 Andrey Belevantsev <abel@ispras.ru>
36455
36456 PR middle-end/45472
36457 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
36458 when the may_trap_p bit of the exprs being merged differs.
36459 Reorder tests for speculativeness in the logical and operator.
36460
36461 2013-02-27 Jakub Jelinek <jakub@redhat.com>
36462
36463 * incpath.c (add_standard_paths): Use reconcat instead of concat
36464 where appropriate and avoid leaking memory.
36465
36466 * opts.h: Include obstack.h.
36467 (opts_concat): New prototype.
36468 (opts_obstack): New declaration.
36469 * opts.c (opts_concat): New function.
36470 (opts_obstack): New variable.
36471 (init_options_struct): Call gcc_init_obstack on opts_obstack.
36472 (finish_options): Use opts_concat instead of concat
36473 and XOBNEWVEC instead of XNEWVEC.
36474 * opts-common.c (generate_canonical_option, decode_cmdline_option,
36475 generate_option): Likewise.
36476 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
36477 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
36478
36479 PR target/56455
36480 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
36481 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
36482
36483 2013-02-26 Jakub Jelinek <jakub@redhat.com>
36484
36485 PR middle-end/56461
36486 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
36487
36488 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
36489
36490 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
36491 (arm_block_move_unaligned_straight): Likewise.
36492 (arm_adjust_block_mem): Likewise.
36493
36494 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
36495
36496 PR target/48901
36497 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
36498 temp, cond and label.
36499 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
36500
36501 PR target/52500
36502 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
36503 * config/c6x/c6x.h (dbx_register_map): Update declaration.
36504
36505 PR target/52501
36506 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
36507 of prologue/epilogue functions.
36508
36509 PR target/52550
36510 * config/tilegx/tilegx.c (tilegx_expand_prologue):
36511 Remove unused variable cfa_offset.
36512 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
36513
36514 PR target/54639
36515 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
36516 type promotion to unsigned.
36517
36518 PR target/54640
36519 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
36520 for HOST_WIDE_INT of 32 bit / same size as int.
36521 (arm_block_move_unaligned_straight): Likewise.
36522 (arm_adjust_block_mem): Likewise.
36523
36524 PR target/54662
36525 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
36526 ALL_CFLAGS.
36527
36528 2013-02-26 Marek Polacek <polacek@redhat.com>
36529
36530 PR tree-optimization/56426
36531 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
36532
36533 2013-02-26 Richard Biener <rguenther@suse.de>
36534
36535 PR target/56444
36536 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
36537 unused variable loops.
36538
36539 2013-02-26 Jakub Jelinek <jakub@redhat.com>
36540
36541 PR tree-optimization/56448
36542 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
36543 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
36544 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
36545 later operands of the references, or even first operand for
36546 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
36547
36548 PR tree-optimization/56443
36549 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
36550 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
36551 to type_for_mode langhook.
36552
36553 2013-02-25 Matt Turner <mattst88@gmail.com>
36554
36555 * doc/invoke.texi: Document r4700.
36556
36557 2013-02-25 Richard Biener <rguenther@suse.de>
36558
36559 PR tree-optimization/56175
36560 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
36561 split out from ...
36562 (simplify_bitwise_binary): ... here. Also guard the conversion
36563 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
36564
36565 2013-02-25 Catherine Moore <clm@codesourcery.com>
36566
36567 Revert:
36568 2013-02-24 Catherine Moore <clm@codesourcery.com>
36569 Maciej W. Rozycki <macro@codesourcery.com>
36570 Tom de Vries <tom@codesourcery.com>
36571 Nathan Sidwell <nathan@codesourcery.com>
36572 Iain Sandoe <iain@codesourcery.com>
36573 Nathan Froyd <froydnj@codesourcery.com>
36574 Chao-ying Fu <fu@mips.com>
36575
36576 * doc/extend.texi: (micromips, nomicromips, nocompression):
36577 Document new function attributes.
36578 * doc/invoke.texi (minterlink-compressed, mmicromips,
36579 m14k, m14ke, m14kec): Document new options.
36580 (minterlink-mips16): Update documentation.
36581 * doc/md.texi (ZC, ZD): Document new constraints.
36582 * configure.ac (gcc_cv_as_micromips): Check if linker
36583 supports the .set micromips directive.
36584 * configure: Regenerate.
36585 * config.in: Regenerate.
36586 * config/mips/mips-tables.opt: Regenerate.
36587 * config/mips/micromips.md: New file.
36588 * constraints.md (ZC, AD): New constraints.
36589 * config/mips/predicates.md (movep_src_register): New predicate.
36590 (movep_src_operand): New predicate.
36591 (non_volatile_mem_operand): New predicate.
36592 * config/mips/mips.md (multimem): New type.
36593 (length): Differentiate between 17-bit and 18-bit branch offsets.
36594 (MOVEP1, MOVEP2): New mode iterator.
36595 (mov_<load>l): Use ZC constraint.
36596 (mov_<load>r): Likewise.
36597 (mov_<store>l): Likewise.
36598 (mov_<store>r): Likewise.
36599 (*branch_equality<mode>_inverted): Add microMIPS support.
36600 (*branch_equality<mode>): Likewise.
36601 (*jump_absolute): Likewise.
36602 (indirect_jump_<mode>): Likewise.
36603 (tablejump_<mode>): Likewise.
36604 (<optab>_internal): Likewise.
36605 (sibcall_internal): Likewise.
36606 (sibcall_value_internal): Likewise.
36607 (prefetch): Use constraint ZD.
36608 * config/mips/mips.opt (minterlink-compressed): New option.
36609 (minterlink-mips16): Now an alias for minterlink-compressed.
36610 (mmicromips): New option.
36611 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
36612 (compare_and_swap_12): Likewise.
36613 (sync_add<mode>): Likewise.
36614 (sync_<optab>_12): Likewise.
36615 (sync_old_<optab>_12): Likewise.
36616 (sync_new_<optab>_12): Likewise.
36617 (sync_nand_12): Likewise.
36618 (sync_old_nand_12): Likewise.
36619 (sync_new_nand_12): Likewise.
36620 (sync_sub<mode>): Likewise.
36621 (sync_old_add<mode>): Likewise.
36622 (sync_old_sub<mode>): Likewise.
36623 (sync_new_add<mode>): Likewise.
36624 (sync_new_sub<mode>): Likewise.
36625 (sync_<optab><mode>): Likewise.
36626 (sync_old_<optab><mode>): Likewise.
36627 (sync_new_<optab><mode>): Likewise.
36628 (sync_nand<mode>): Likewise.
36629 (sync_old_nand<mode>): Likewise.
36630 (sync_new_nand<mode>): Likewise.
36631 (sync_lock_test_and_set<mode>): Likewise.
36632 (test_and_set_12): Likewise.
36633 (atomic_compare_and_swap<mode>): Likewise.
36634 (atomic_exchange<mode>_llsc): Likewise.
36635 (atomic_fetch_add<mode>_llsc): Likewise.
36636 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
36637 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
36638 (umips_save_restore_pattern_p): Likewise.
36639 (umips_load_store_pair_p): Likewise.
36640 (umips_output_load_store_pair): Likewise.
36641 (umips_movep_target_p): Likewise.
36642 (umips_12bit_offset_address_p): Likewise.
36643 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
36644 (mips_base_mips16): Rename this...
36645 (mips_base_compression_flags): ...to this. Update all uses.
36646 (mips_attribute_table): Add micromips, nomicromips and nocompression.
36647 (mips_mips16_decl_p): Delete.
36648 (mips_nomips16_decl_p): Delete.
36649 (mips_get_compress_on_flags): New function.
36650 (mips_get_compress_off_flags): New function.
36651 (mips_get_compress_mode): New function.
36652 (mips_get_compress_on_name): New function.
36653 (mips_get_compress_off_name): New function.
36654 (mips_insert_attributes): Support multiple compression types.
36655 (mips_merge_decl_attributes): Likewise.
36656 (umips_12bit_offset_address_p): New function.
36657 (mips_start_function_definition): Emit .set micromips directive.
36658 (mips_call_may_need_jalx_p): New function.
36659 (mips_function_ok_for_sibcall): Add microMIPS support.
36660 (mips_print_operand_punctuation): Support short delay slots and
36661 compact jumps.
36662 (umips_swm_mask, umips_swm_encoding): New.
36663 (umips_build_save_restore): New function.
36664 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
36665 (was_mips16_p): Remove.
36666 (old_compression_mode): New.
36667 (mips_set_compression_mode): New function.
36668 (mips_set_current_function): Add microMIPS support.
36669 (mips_option_override): Likewise.
36670 (umips_save_restore_pattern_p): New function.
36671 (umips_output_save_restore): New function.
36672 (umips_load_store_pair_p_1): New function.
36673 (umips_load_store_pair_p): New function.
36674 (umips_output_load_store_pair_1): New function.
36675 (umips_output_load_store_pair): New function.
36676 (umips_movep_target_p) New function.
36677 (mips_prepare_pch_save): Add microMIPS support.
36678 * config/mips/mips.h (TARGET_COMPRESSION): New.
36679 (TARGET_CPU_CPP_BUILTINS): Update macro
36680 to use new compression flags and to support microMIPS.
36681 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
36682 (MIPS_ARCH_FLOAT_SPEC): Likewise.
36683 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
36684 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
36685 (ASM_SPEC): Support mmicromips and mno-micromips.
36686 (M16STORE_REG_P): New macro.
36687 (MIPS_CALL): Support TARGET_MICROMIPS.
36688 (MICROMIPS_J): New macro.
36689 (mips_base_mips16): Rename this...
36690 (mips_base_compression_flags): ...to this.
36691 (UMIPS_12BIT_OFFSET_P): New macro.
36692 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
36693 (MULTILIB_DIRNAMES): Likewise.
36694
36695 2013-02-25 Tom de Vries <tom@codesourcery.com>
36696
36697 PR rtl-optimization/56131
36698 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
36699 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
36700 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
36701
36702 2013-02-25 Tobias Burnus <burnus@net-b.de>
36703
36704 * doc/invoke.texi (-fsanitize=): Move from optimization
36705 to debugging options.
36706
36707 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
36708
36709 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
36710
36711 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
36712 Alexander Monakov <amonakov@ispras.ru>
36713
36714 PR middle-end/56077
36715 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
36716 flush pending lists also on non-jumps. Adjust comment.
36717
36718 2013-02-24 Catherine Moore <clm@codesourcery.com>
36719 Maciej W. Rozycki <macro@codesourcery.com>
36720 Tom de Vries <tom@codesourcery.com>
36721 Nathan Sidwell <nathan@codesourcery.com>
36722 Iain Sandoe <iain@codesourcery.com>
36723 Nathan Froyd <froydnj@codesourcery.com>
36724 Chao-ying Fu <fu@mips.com>
36725
36726 * doc/extend.texi: (micromips, nomicromips, nocompression):
36727 Document new function attributes.
36728 * doc/invoke.texi (minterlink-compressed, mmicromips,
36729 m14k, m14ke, m14kec): Document new options.
36730 (minterlink-mips16): Update documentation.
36731 * doc/md.texi (ZC, ZD): Document new constraints.
36732 * configure.ac (gcc_cv_as_micromips): Check if linker
36733 supports the .set micromips directive.
36734 * configure: Regenerate.
36735 * config.in: Regenerate.
36736 * config/mips/mips-tables.opt: Regenerate.
36737 * config/mips/micromips.md: New file.
36738 * constraints.md (ZC, AD): New constraints.
36739 * config/mips/predicates.md (movep_src_register): New predicate.
36740 (movep_src_operand): New predicate.
36741 (non_volatile_mem_operand): New predicate.
36742 * config/mips/mips.md (multimem): New type.
36743 (length): Differentiate between 17-bit and 18-bit branch offsets.
36744 (MOVEP1, MOVEP2): New mode iterator.
36745 (mov_<load>l): Use ZC constraint.
36746 (mov_<load>r): Likewise.
36747 (mov_<store>l): Likewise.
36748 (mov_<store>r): Likewise.
36749 (*branch_equality<mode>_inverted): Add microMIPS support.
36750 (*branch_equality<mode>): Likewise.
36751 (*jump_absolute): Likewise.
36752 (indirect_jump_<mode>): Likewise.
36753 (tablejump_<mode>): Likewise.
36754 (<optab>_internal): Likewise.
36755 (sibcall_internal): Likewise.
36756 (sibcall_value_internal): Likewise.
36757 (prefetch): Use constraint ZD.
36758 * config/mips/mips.opt (minterlink-compressed): New option.
36759 (minterlink-mips16): Now an alias for minterlink-compressed.
36760 (mmicromips): New option.
36761 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
36762 (compare_and_swap_12): Likewise.
36763 (sync_add<mode>): Likewise.
36764 (sync_<optab>_12): Likewise.
36765 (sync_old_<optab>_12): Likewise.
36766 (sync_new_<optab>_12): Likewise.
36767 (sync_nand_12): Likewise.
36768 (sync_old_nand_12): Likewise.
36769 (sync_new_nand_12): Likewise.
36770 (sync_sub<mode>): Likewise.
36771 (sync_old_add<mode>): Likewise.
36772 (sync_old_sub<mode>): Likewise.
36773 (sync_new_add<mode>): Likewise.
36774 (sync_new_sub<mode>): Likewise.
36775 (sync_<optab><mode>): Likewise.
36776 (sync_old_<optab><mode>): Likewise.
36777 (sync_new_<optab><mode>): Likewise.
36778 (sync_nand<mode>): Likewise.
36779 (sync_old_nand<mode>): Likewise.
36780 (sync_new_nand<mode>): Likewise.
36781 (sync_lock_test_and_set<mode>): Likewise.
36782 (test_and_set_12): Likewise.
36783 (atomic_compare_and_swap<mode>): Likewise.
36784 (atomic_exchange<mode>_llsc): Likewise.
36785 (atomic_fetch_add<mode>_llsc): Likewise.
36786 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
36787 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
36788 (umips_save_restore_pattern_p): Likewise.
36789 (umips_load_store_pair_p): Likewise.
36790 (umips_output_load_store_pair): Likewise.
36791 (umips_movep_target_p): Likewise.
36792 (umips_12bit_offset_address_p): Likewise.
36793 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
36794 (mips_base_mips16): Rename this...
36795 (mips_base_compression_flags): ...to this. Update all uses.
36796 (mips_attribute_table): Add micromips, nomicromips and nocompression.
36797 (mips_mips16_decl_p): Delete.
36798 (mips_nomips16_decl_p): Delete.
36799 (mips_get_compress_on_flags): New function.
36800 (mips_get_compress_off_flags): New function.
36801 (mips_get_compress_mode): New function.
36802 (mips_get_compress_on_name): New function.
36803 (mips_get_compress_off_name): New function.
36804 (mips_insert_attributes): Support multiple compression types.
36805 (mips_merge_decl_attributes): Likewise.
36806 (umips_12bit_offset_address_p): New function.
36807 (mips_start_function_definition): Emit .set micromips directive.
36808 (mips_call_may_need_jalx_p): New function.
36809 (mips_function_ok_for_sibcall): Add microMIPS support.
36810 (mips_print_operand_punctuation): Support short delay slots and
36811 compact jumps.
36812 (umips_swm_mask, umips_swm_encoding): New.
36813 (umips_build_save_restore): New function.
36814 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
36815 (was_mips16_p): Remove.
36816 (old_compression_mode): New.
36817 (mips_set_compression_mode): New function.
36818 (mips_set_current_function): Add microMIPS support.
36819 (mips_option_override): Likewise.
36820 (umips_save_restore_pattern_p): New function.
36821 (umips_output_save_restore): New function.
36822 (umips_load_store_pair_p_1): New function.
36823 (umips_load_store_pair_p): New function.
36824 (umips_output_load_store_pair_1): New function.
36825 (umips_output_load_store_pair): New function.
36826 (umips_movep_target_p) New function.
36827 (mips_prepare_pch_save): Add microMIPS support.
36828 * config/mips/mips.h (TARGET_COMPRESSION): New.
36829 (TARGET_CPU_CPP_BUILTINS): Update macro
36830 to use new compression flags and to support microMIPS.
36831 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
36832 (MIPS_ARCH_FLOAT_SPEC): Likewise.
36833 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
36834 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
36835 (ASM_SPEC): Support mmicromips and mno-micromips.
36836 (M16STORE_REG_P): New macro.
36837 (MIPS_CALL): Support TARGET_MICROMIPS.
36838 (MICROMIPS_J): New macro.
36839 (mips_base_mips16): Rename this...
36840 (mips_base_compression_flags): ...to this.
36841 (UMIPS_12BIT_OFFSET_P): New macro.
36842 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
36843 (MULTILIB_DIRNAMES): Likewise.
36844
36845 2013-02-24 Jakub Jelinek <jakub@redhat.com>
36846
36847 PR target/52555
36848 * target-globals.c (save_target_globals): For init_reg_sets and
36849 target_reinit remporarily set this_fn_optabs to this_target_optabs.
36850
36851 2013-02-22 James Greenhalgh <james.greenhalgh@arm.com>
36852
36853 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
36854 * config/aarch64/t-aarch64
36855 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
36856
36857 2013-02-22 Vladimir Makarov <vmakarov@redhat.com>
36858
36859 PR inline-asm/56148
36860 * lra-constraints.c (process_alt_operands): Reload operand
36861 conflicting with earlier clobber only if no more other conflicting
36862 operands.
36863
36864 2013-02-22 Jakub Jelinek <jakub@redhat.com>
36865
36866 PR sanitizer/56393
36867 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
36868 if not linking a shared library.
36869
36870 2013-02-22 Seth LaForge <sethml@google.com>
36871
36872 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
36873
36874 2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
36875
36876 * config/arm/arm.md (split for extendsidi): Update condition.
36877 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
36878 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
36879 (qhs_zextenddi_cstr): Likewise.
36880
36881 2013-02-21 Jakub Jelinek <jakub@redhat.com>
36882
36883 PR middle-end/56420
36884 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
36885 avoid signed wrapping.
36886 (expand_mult): Handle properly multiplication by
36887 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
36888 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
36889 in the compiler if coeff is HOST_WIDE_INT_MIN.
36890 (expand_divmod): Don't make ext_op1 static, change it's type to
36891 uhwi. Avoid undefined behavior in -INTVAL (op1).
36892
36893 PR rtl-optimization/50339
36894 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
36895 field.
36896 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
36897 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
36898 into splitting_ashiftrt field.
36899 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
36900 ASHIFTRT.
36901 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
36902 choices.
36903
36904 2013-02-20 Aldy Hernandez <aldyh@redhat.com>
36905
36906 PR middle-end/56108
36907 * trans-mem.c (execute_tm_mark): Do not expand transactions that
36908 are sure to go irrevocable.
36909
36910 2013-02-21 Hans-Peter Nilsson <hp@axis.com>
36911
36912 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
36913 scalars are valid operands.
36914
36915 2013-02-21 Martin Jambor <mjambor@suse.cz>
36916
36917 PR tree-optimization/56310
36918 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
36919 only matching indices and non-negative final offsets.
36920 (intersect_aggregates_with_edge): Pass src_idx to
36921 agg_replacements_to_vector. Pass src_idx insstead of index to
36922 intersect_with_agg_replacements.
36923
36924 2013-02-21 Martin Jambor <mjambor@suse.cz>
36925
36926 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
36927 instead of hard-wired defaults.
36928
36929 2013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
36930
36931 * doc/invoke.texi (MIPS Options): Update documentation of the
36932 floating-point multiply-accumulate instruction restrictions.
36933
36934 2013-02-21 Kostya Serebryany <kcc@google.com>
36935
36936 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
36937 asan_shadow_offset on x86_64 linux.
36938
36939 2013-02-21 Richard Biener <rguenther@suse.de>
36940
36941 PR tree-optimization/56415
36942 Revert
36943 2013-02-11 Richard Biener <rguenther@suse.de>
36944
36945 PR tree-optimization/56273
36946 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
36947 first VRP run.
36948
36949 2013-02-21 Jakub Jelinek <jakub@redhat.com>
36950
36951 PR bootstrap/56258
36952 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
36953 instead of @itemx.
36954
36955 PR inline-asm/56405
36956 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
36957 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
36958
36959 2013-02-20 Jan Hubicka <jh@suse.cz>
36960
36961 PR tree-optimization/56265
36962 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
36963 when target is referenced for first time.
36964
36965 2013-02-20 Richard Biener <rguenther@suse.de>
36966
36967 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
36968 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
36969 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
36970 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
36971 not return anything.
36972 (rename_ssa_copies): Do not remove unused locals.
36973 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
36974 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
36975 * passes.c (execute_function_todo): Do not schedule unused locals
36976 removal if cleanup_tree_cfg did something.
36977 * tree-ssa-live.c (remove_unused_locals): Dump statistics
36978 about the number of removed locals.
36979
36980 2013-02-20 Richard Biener <rguenther@suse.de>
36981
36982 PR tree-optimization/56398
36983 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
36984
36985 2013-02-20 Martin Jambor <mjambor@suse.cz>
36986
36987 PR tree-optimization/55334
36988 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
36989 restricted pointers to arrays.
36990
36991 2013-02-20 Richard Biener <rguenther@suse.de>
36992 Jakub Jelinek <jakub@redhat.com>
36993
36994 PR tree-optimization/56396
36995 * tree-ssa-ccp.c (n_const_val): New static variable.
36996 (get_value): Return NULL for SSA names we don't have a lattice
36997 entry for.
36998 (ccp_initialize): Initialize n_const_val.
36999 * tree-ssa-copy.c (n_copy_of): New static variable.
37000 (init_copy_prop): Initialize n_copy_of.
37001 (get_value): Return NULL_TREE for SSA names we don't have a
37002 lattice entry for.
37003
37004 2013-02-20 Martin Jambor <mjambor@suse.cz>
37005
37006 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
37007
37008 2013-02-20 Richard Biener <rguenther@suse.de>
37009
37010 * genpreds.c (write_lookup_constraint): Do not compare first
37011 letter of the constraint again.
37012
37013 2013-02-20 Richard Biener <rguenther@suse.de>
37014
37015 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
37016 and ceil_log2.
37017 (get_use_iv_cost): Terminate hashtable walk when coming across
37018 an empty entry.
37019
37020 2013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
37021
37022 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
37023 reassociation for avx2 targets.
37024
37025 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
37026
37027 * config/microblaze/microblaze.c: microblaze_has_clz = 0
37028 Add version check for v8.10.a to enable microblaze_has_clz
37029 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
37030 version and TARGET_PATTERN_COMPARE check
37031 * config/microblaze/microblaze.md: New clzsi2 instruction
37032
37033 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
37034
37035 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
37036 function before branching.
37037
37038 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
37039
37040 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
37041 DUMP_INSN_RTX_UID.
37042 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
37043
37044 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
37045
37046 PR middle-end/55889
37047 * sel-sched.c: Include ira.h.
37048 (implicit_clobber_conflict_p): New function.
37049 (moveup_expr): Use it.
37050 * Makefile.in (sel-sched.o): Depend on ira.h.
37051
37052 2013-02-19 Richard Biener <rguenther@suse.de>
37053
37054 PR tree-optimization/56384
37055 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
37056 (vn_hash_type): Split out from ...
37057 (vn_hash_constant_with_type): ... here.
37058 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
37059 (vn_phi_eq): Compare types from vn_phi_s structure.
37060 (vn_phi_lookup): Populate vn_phi_s type.
37061 (vn_phi_insert): Likewise.
37062
37063 2013-02-19 Jakub Jelinek <jakub@redhat.com>
37064
37065 PR tree-optimization/56350
37066 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
37067 if haven't found reduction or nested cycle operand, rather than
37068 asserting we must find it.
37069
37070 PR tree-optimization/56381
37071 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
37072 to fold_build3.
37073
37074 2013-02-18 Aldy Hernandez <aldyh@redhat.com>
37075 Jakub Jelinek <jakub@redhat.com>
37076
37077 PR target/52555
37078 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
37079 (swap_optab_enable): Same.
37080 (init_all_optabs): Use argument instead of global.
37081 * tree.h (struct tree_optimization_option): New field target_optabs.
37082 * expr.h (init_all_optabs): Add argument to prototype.
37083 (TREE_OPTIMIZATION_OPTABS): New.
37084 (save_optabs_if_changed): Protoize.
37085 * optabs.h: Declare this_fn_optabs.
37086 * optabs.c (save_optabs_if_changed): New.
37087 Declare this_fn_optabs.
37088 (init_optabs): Add argument to init_all_optabs() call.
37089 * function.c (invoke_set_current_function_hook): Handle per
37090 function optabs.
37091 * function.h (struct function): New field optabs.
37092 * config/mips/mips.c (mips_set_mips16_mode): Handle when
37093 optimization_current_node has changed.
37094 * target-globals.h (save_target_globals_default_opts): Protoize.
37095 * target-globals.c (save_target_globals_default_opts): New.
37096
37097 2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
37098
37099 PR target/56347
37100 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
37101 registers %fr12 and %fr12R as call used.
37102
37103 PR target/56214
37104 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
37105 and HImode, require all displacements to be an integer multiple of
37106 their mode size.
37107 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
37108 only allow QImode and HImode when reload is in progress and strict is
37109 true. Likewise for symbolic addresses. Use base14_operand to check
37110 displacements in REG+BASE addresses.
37111
37112 2013-02-18 Richard Biener <rguenther@suse.de>
37113
37114 PR tree-optimization/56366
37115 * tree-vect-loop.c (get_initial_def_for_induction): Properly
37116 handle sign-conversion of outer-loop initial induction value.
37117
37118 2013-02-18 Richard Biener <rguenther@suse.de>
37119
37120 PR middle-end/56349
37121 * cfghooks.c (merge_blocks): If we merge a latch into another
37122 block adjust references to it.
37123 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
37124 (verify_loop_structure): Verify that a recorded latch is in fact
37125 a latch.
37126
37127 2013-02-18 Richard Biener <rguenther@suse.de>
37128
37129 PR tree-optimization/56321
37130 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
37131 order SSA name release and virtual operand unlinking.
37132
37133 2013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
37134
37135 * config/microblaze/microblaze.md (save_stack_block): Define.
37136 (restore_stack_block): Likewise.
37137
37138 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
37139
37140 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
37141 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
37142 * config/microblaze/microblaze.c (microblaze_option_override):
37143 Bail out early for PIC modes when target does not support PIC.
37144
37145 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
37146
37147 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
37148 Replace with a microblaze version.
37149 (microblaze_trampoline_init): Adapt for microblaze.
37150 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
37151 microblaze.
37152
37153 2013-02-16 Jakub Jelinek <jakub@redhat.com>
37154 Dodji Seketeli <dodji@redhat.com>
37155
37156 PR asan/56330
37157 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
37158 (instrument_mem_region_access): Do not forget to always put
37159 instrumentation of the of 'base' and 'base + len' in a "if (len !=
37160 0) statement, even for cases where either 'base' or 'base + len'
37161 are not instrumented -- because they have been previously
37162 instrumented. Simplify the logic by putting all the statements
37163 instrument 'base + len' inside a sequence, and then insert that
37164 sequence right before the current insertion point. Then, to
37165 instrument 'base + len', just get an iterator on that statement.
37166 And do not forget to update the pointer to iterator the function
37167 received as argument.
37168
37169 2013-02-15 Vladimir Makarov <vmakarov@redhat.com>
37170
37171 PR rtl-optimization/56348
37172 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
37173
37174 2013-02-15 Steven Bosscher <steven@gcc.gnu.org>
37175
37176 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
37177 (clean_graph_dump_file): Pass base to start_graph_dump.
37178
37179 2013-02-14 Richard Henderson <rth@redhat.com>
37180
37181 PR target/55941
37182 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
37183
37184 2013-02-14 Steven Bosscher <steven@gcc.gnu.org>
37185
37186 * collect2-aix.h: Define F_LOADONLY.
37187
37188 2013-02-14 Richard Biener <rguenther@suse.de>
37189
37190 PR lto/50494
37191 * varasm.c (output_constant_def_1): Get the decl representing
37192 the constant as argument.
37193 (output_constant_def): Wrap output_constant_def_1.
37194 (make_decl_rtl): Use output_constant_def_1 with the decl
37195 representing the constant.
37196 (build_constant_desc): Optionally re-use a decl already
37197 representing the constant.
37198 (tree_output_constant_def): Adjust.
37199
37200 2013-02-14 Dodji Seketeli <dodji@redhat.com>
37201
37202 Fix an asan crash
37203 * asan.c (instrument_builtin_call): Really put the length of the
37204 second source argument into src1_len.
37205
37206 2013-02-13 Jakub Jelinek <jakub@redhat.com>
37207
37208 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
37209 argument. If it is false, don't create edge from then_bb to
37210 fallthru_bb.
37211 (insert_if_then_before_iter): Pass true to it.
37212 (build_check_stmt): Pass false to it.
37213 (transform_statements): Flush hash table only on extended basic
37214 block boundaries, rather than at the beginning of every bb.
37215 Don't flush hash table on nonfreeing_call_p calls.
37216 * tree-flow.h (nonfreeing_call_p): New prototype.
37217 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
37218
37219 2013-02-13 David S. Miller <davem@davemloft.net>
37220
37221 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
37222
37223 2013-02-13 Vladimir Makarov <vmakarov@redhat.com>
37224
37225 PR target/56184
37226 * ira.c (max_regno_before_ira): Move from ...
37227 (ira): ... here.
37228 (fix_reg_equiv_init): Use max_regno_before_ira instead of
37229 vec_safe_length.
37230
37231 2013-02-13 Jakub Jelinek <jakub@redhat.com>
37232
37233 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
37234
37235 2013-02-13 Richard Biener <rguenther@suse.de>
37236
37237 PR lto/56295
37238 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
37239 globals in MEM_REFs.
37240
37241 2013-02-13 Richard Biener <rguenther@suse.de>
37242
37243 * loop-init.c (loop_optimizer_init): Clear loop state when
37244 re-initializing preserved loops.
37245 * loop-unswitch.c (unswitch_single_loop): Return whether
37246 we unswitched the loop. Do not verify loop state here.
37247 (unswitch_loops): When we unswitched a loop discover new loops.
37248
37249 2013-02-13 Kostya Serebryany <kcc@google.com>
37250
37251 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
37252 on x86_64 linux.
37253 * sanitizer.def: Rename __asan_init to __asan_init_v1.
37254
37255 2013-02-12 Dodji Seketeli <dodji@redhat.com>
37256
37257 Avoid instrumenting duplicated memory access in the same basic block
37258 * Makefile.in (asan.o): Add new dependency on hash-table.h
37259 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
37260 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
37261 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
37262 (free_mem_ref_resources, has_mem_ref_been_instrumented)
37263 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
37264 (get_mem_ref_of_assignment): New functions.
37265 (get_mem_refs_of_builtin_call): Extract from
37266 instrument_builtin_call and tweak a little bit to make it fit with
37267 the new signature.
37268 (instrument_builtin_call): Use the new
37269 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
37270 of is_gimple_builtin_call.
37271 (instrument_derefs, instrument_mem_region_access): Insert the
37272 instrumented memory reference into the hash table.
37273 (maybe_instrument_assignment): Renamed instrument_assignment into
37274 this, and change it to advance the iterator when instrumentation
37275 actually happened and return true in that case. This makes it
37276 homogeneous with maybe_instrument_assignment, and thus give a
37277 chance to callers to be more 'regular'.
37278 (transform_statements): Clear the memory reference hash table
37279 whenever we enter a new BB, when we cross a function call, or when
37280 we are done transforming statements. Use
37281 maybe_instrument_assignment instead of instrumentation. No more
37282 need to special case maybe_instrument_assignment and advance the
37283 iterator after calling it; it's now handled just like
37284 maybe_instrument_call. Update comment.
37285
37286 2013-02-13 Richard Biener <rguenther@suse.de>
37287
37288 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
37289 Fix loop discovery code.
37290
37291 2013-02-12 Vladimir Makarov <vmakarov@redhat.com>
37292
37293 PR inline-asm/56148
37294 * lra-constraints.c (process_alt_operands): Match early clobber
37295 operand with itself. Check conflicts with earlyclobber only if
37296 the operand is not reloaded. Prefer to reload conflicting operand
37297 if earlyclobber and matching operands are the same.
37298
37299 2013-02-12 Richard Biener <rguenther@suse.de>
37300
37301 PR lto/56297
37302 * lto-streamer-out.c (write_symbol): Do not output symbols
37303 for hard register variables.
37304
37305 2013-02-12 Georg-Johann Lay <avr@gjlay.de>
37306
37307 PR target/54222
37308 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
37309 (umulsidi3_insn, mulsidi3_insn): New insns.
37310
37311 2013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
37312
37313 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
37314 (struct tune_params): Add vec_costs field.
37315 * config/arm/arm.c (arm_builtin_vectorization_cost)
37316 (arm_add_stmt_cost): New functions.
37317 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
37318 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
37319 (arm_default_vec_cost): New struct of type cpu_vec_costs.
37320 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
37321 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
37322 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
37323 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
37324
37325 2013-02-12 Richard Biener <rguenther@suse.de>
37326
37327 PR lto/56295
37328 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
37329 decls again if possible.
37330
37331 2013-02-12 Richard Biener <rguenther@suse.de>
37332
37333 PR middle-end/56288
37334 * tree-ssa.c (verify_ssa_name): Fix check, move
37335 SSA_NAME_IN_FREE_LIST check up.
37336
37337 2013-02-12 Jakub Jelinek <jakub@redhat.com>
37338 Steven Bosscher <steven@gcc.gnu.org>
37339
37340 PR rtl-optimization/56151
37341 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
37342 equal to op0 or op1, and last_insn pattern is CODE operation
37343 with MEM dest and one of the operands matches that MEM.
37344
37345 2013-02-11 Sriraman Tallam <tmsriram@google.com>
37346
37347 * doc/extend.texi: Document Function Multiversioning and "default"
37348 parameter string to target attribute.
37349 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
37350 target attribute parameter is "default".
37351 (ix86_compare_version_priority): Remove checks for target attribute.
37352 (ix86_mangle_function_version_assembler_name): Change error to sorry.
37353 Remove check for target attribute equal to NULL. Add assert.
37354 (ix86_generate_version_dispatcher_body): Change error to sorry.
37355
37356 2013-02-11 Iain Sandoe <iain@codesourcery.com>
37357 Jack Howarth <howarth@bromo.med.uc.edu>
37358 Patrick Marlier <patrick.marlier@gmail.com>
37359
37360 PR libitm/55693
37361 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
37362 define ENDFILE_SPEC as TM_DESTRUCTOR.
37363 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
37364
37365 2013-02-11 Alexander Potapenko <glider@google.com>
37366 Jack Howarth <howarth@bromo.med.uc.edu>
37367 Jakub Jelinek <jakub@redhat.com>
37368
37369 PR sanitizer/55617
37370 * config/darwin.c (cdtor_record): Rename ctor_record.
37371 (sort_cdtor_records): Rename sort_ctor_records.
37372 (finalize_dtors): New routine to sort destructors by
37373 priority before use in assemble_integer.
37374 (machopic_asm_out_destructor): Use finalize_dtors if needed.
37375
37376 2013-02-11 Uros Bizjak <ubizjak@gmail.com>
37377
37378 PR rtl-optimization/56275
37379 * simplify-rtx.c (avoid_constant_pool_reference): Check that
37380 offset is non-negative and less than cmode size before
37381 calling simplify_subreg.
37382
37383 2013-02-11 Richard Biener <rguenther@suse.de>
37384
37385 PR tree-optimization/56264
37386 * cfgloop.h (fix_loop_structure): Adjust prototype.
37387 * loop-init.c (fix_loop_structure): Return the number of
37388 newly discovered loops.
37389 * tree-cfgcleanup.c (repair_loop_structures): When new loops
37390 are discovered, do a full loop-closed SSA rewrite.
37391
37392 2013-02-11 Richard Biener <rguenther@suse.de>
37393
37394 PR tree-optimization/56273
37395 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
37396 first VRP run.
37397 (check_array_ref): Fix missing newline in dumps.
37398 (search_for_addr_array): Likewise.
37399
37400 2013-02-09 David Edelsohn <dje.gcc@gmail.com>
37401
37402 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
37403
37404 2013-02-09 Jakub Jelinek <jakub@redhat.com>
37405
37406 PR target/56256
37407 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
37408
37409 2013-02-08 Vladimir Makarov <vmakarov@redhat.com>
37410
37411 PR rtl-optimization/56246
37412 * lra-constraints.c (simplify_operand_subreg): Try to reuse
37413 reload pseudo.
37414 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
37415 constraints are satisfied.
37416
37417 2013-02-08 Jeff Law <law@redhat.com>
37418
37419 PR debug/53948
37420 * emit-rtl.c (reg_is_parm_p): New function.
37421 * regs.h (reg_is_parm_p): New prototype.
37422 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
37423 callee-clobbered registers.
37424
37425 2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
37426
37427 PR target/56043
37428 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
37429 If there is no implicit builtin declaration, just return NULL.
37430
37431 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
37432
37433 * config/i386/sse.md (FMAMODEM): New mode iterator.
37434 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
37435 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
37436
37437 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
37438
37439 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
37440 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
37441 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
37442
37443 2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
37444
37445 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
37446 (microblaze*-*-elf): Likewise.
37447 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
37448 LINK_SPEC.
37449 * config/microblaze/microblaze-c.c: Add builtin defines for
37450 _LITTLE_ENDIAN and _BIG_ENDIAN.
37451 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
37452 add to TARGET_DEFAULT flags.
37453 Expand ASM_SPEC and LINK_SPEC.
37454 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
37455 * config/microblaze/microblaze.md: Update extendsidi2 and
37456 movdi_internal instructions to use low-order / high-order reg
37457 print_operands.
37458 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
37459 options and inversemask / mask of LITTLE_ENDIAN.
37460 * config/microblaze/t-microblaze: Expand multilib options to
37461 include mlittle-endian (le) and update exceptions patterns.
37462
37463 2013-02-08 Jakub Jelinek <jakub@redhat.com>
37464
37465 PR rtl-optimization/56195
37466 * lra-constraints.c (get_reload_reg): Don't reuse regs
37467 if they have smaller mode than requested, if they have
37468 wider mode than requested, try to return a SUBREG.
37469
37470 PR tree-optimization/56250
37471 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
37472 if type is unsigned and code isn't MULT_EXPR.
37473
37474 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
37475
37476 PR tree-optimization/56064
37477 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
37478 bits according to mode.
37479 * fixed-value.h (fixed_from_double_int)
37480 (const_fixed_from_double_int): Adjust comments.
37481
37482 2013-02-08 Richard Biener <rguenther@suse.de>
37483
37484 PR lto/56231
37485 * lto-streamer.h (struct data_in): Remove current_file, current_line
37486 and current_col members.
37487 * lto-streamer-out.c (lto_output_location): Stream changed bits
37488 en-block for efficiency.
37489 * lto-streamer-in.c (clear_line_info): Remove.
37490 (lto_input_location): Cache current file, line and column
37491 globally via local statics. Read changed bits en-block.
37492 (input_function): Do not call clear_line_info.
37493 (lto_read_body): Likewise.
37494 (lto_input_toplevel_asms): Likewise.
37495
37496 2013-02-08 Michael Matz <matz@suse.de>
37497
37498 PR tree-optimization/52448
37499 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
37500 (nt_call_phase): New static.
37501 (add_or_mark_expr): Only mark accesses with newer phase than any
37502 call seen.
37503 (nonfreeing_call_p): New.
37504 (nt_init_block): Update nt_call_phase, mark blocks as visited.
37505 (nt_fini_block): Keep blocks marked as visited.
37506 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
37507
37508 2013-02-08 Richard Biener <rguenther@suse.de>
37509
37510 * ira.c (ira): Free broken dominator information.
37511
37512 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
37513
37514 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
37515
37516 2013-02-08 Marek Polacek <polacek@redhat.com>
37517
37518 * cfgloop.c (verify_loop_structure): Add more checking of headers.
37519
37520 2013-02-08 Richard Biener <rguenther@suse.de>
37521
37522 PR middle-end/56181
37523 * cfgloop.h (flow_loops_find): Adjust.
37524 (bb_loop_header_p): Declare.
37525 * cfgloop.c (bb_loop_header_p): New function split out from ...
37526 (flow_loops_find): ... here. Adjust function signature,
37527 support incremental loop structure update.
37528 (verify_loop_structure): Cleanup. Verify a loop is a loop.
37529 * cfgloopmanip.c (fix_loop_structure): Move ...
37530 * loop-init.c (fix_loop_structure): ... here.
37531 (apply_loop_flags): Split out from ...
37532 (loop_optimizer_init): ... here.
37533 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
37534 in incremental mode, only remove dead loops here.
37535
37536 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
37537
37538 PR target/54222
37539 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
37540 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
37541 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
37542 (*round<mode>3.libgcc): New insns for fixed-modes.
37543 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
37544 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
37545 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
37546 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
37547 implementations. Define to __builtin_avr_absFX,
37548 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
37549 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
37550 __builtin_avr_countlsFX, respectively.
37551 * config/avr/avr-c.c (target.h): Include it.
37552 (enum avr_builtin_id): New enum.
37553 (avr_resolve_overloaded_builtin): New static function.
37554 (avr_register_target_pragmas): Use it to set
37555 targetm.resolve_overloaded_builtin.
37556 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
37557 tree nodes used by DEF_BUILTIN.
37558 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
37559 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
37560 <AVR_BUILTIN_xxBITS>: Same.
37561
37562 2013-02-08 Richard Biener <rguenther@suse.de>
37563
37564 * cfgloop.c (verify_loop_structure): Properly handle
37565 a loop exiting to another loop header.
37566 * ira-int.h (ira_loops): Remove.
37567 * ira.c (ira_loops): Remove.
37568 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
37569 (do_reload): Use loop_optimizer_finalize.
37570 * ira-build.c (create_loop_tree_nodes): Use get_loops and
37571 number_of_loops to access the loop tree.
37572 (more_one_region_p): Likewise.
37573 (finish_loop_tree_nodes): Likewise.
37574 (rebuild_regno_allocno_maps): Likewise.
37575 (mark_loops_for_removal): Likewise.
37576 (mark_all_loops_for_removal): Likewise.
37577 (remove_unnecessary_regions): Likewise.
37578 (ira_build): Likewise.
37579 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
37580
37581 2013-02-08 Richard Biener <rguenther@suse.de>
37582
37583 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
37584 * ipa-pure-const.c (analyze_function): Avoid calling
37585 mark_irreducible_loops twice.
37586 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
37587
37588 2013-02-07 David S. Miller <davem@davemloft.net>
37589
37590 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
37591 on 'reg'.
37592 * var-tracking.c (vt_add_function_parameter): Test the presence of
37593 HAVE_window_save properly and do not remap argument registers when
37594 we have a leaf function.
37595
37596 2013-02-07 Uros Bizjak <ubizjak@gmail.com>
37597
37598 PR bootstrap/56227
37599 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
37600 instead of "ll".
37601 * config/i386/i386.c (ix86_print_operand): Ditto.
37602
37603 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
37604
37605 * lra-constraints.c (process_alt_operands): Fix recently added comment.
37606
37607 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
37608
37609 PR rtl-optimization/56225
37610 * lra-constraints.c (process_alt_operands): Check that reload hard
37611 reg can hold value for strict_low_part.
37612
37613 2013-02-07 Jakub Jelinek <jakub@redhat.com>
37614
37615 PR debug/56154
37616 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
37617 dwarf2out_end_function.
37618 (in_first_function_p, maybe_at_text_label_p,
37619 first_loclabel_num_not_at_text_label): New variables.
37620 (dwarf2out_var_location): In the first function find out
37621 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
37622 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
37623 functions.
37624
37625 2013-02-07 Eric Botcazou <ebotcazou@adacore.com>
37626
37627 PR rtl-optimization/56178
37628 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
37629 SUBREG of a register. Tidy up related block of code.
37630 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
37631 note if the source is a register or a SUBREG of a register.
37632
37633 2013-02-07 Jakub Jelinek <jakub@redhat.com>
37634
37635 PR target/56228
37636 * config/rs6000/rs6000.md (ptrm): New mode attr.
37637 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
37638 call_value_indirect_aix<pttrsize>,
37639 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
37640 m in constraints.
37641
37642 2013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
37643
37644 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
37645 if -bnortl. Convert to strcmp and strncmp.
37646
37647 2013-02-07 Alan Modra <amodra@gmail.com>
37648
37649 PR target/54009
37650 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
37651 addresses won't wrap when offsetting.
37652 (rs6000_secondary_reload): Provide secondary reloads needed for
37653 wrapping LO_SUM addresses.
37654
37655 2013-02-06 Thomas Schwinge <thomas@codesourcery.com>
37656
37657 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
37658 MACH, just __MACH__.
37659
37660 2013-02-06 Richard Biener <rguenther@suse.de>
37661
37662 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
37663 instead of calling fix_loop_structure.
37664
37665 2013-02-06 Jakub Jelinek <jakub@redhat.com>
37666
37667 PR middle-end/56217
37668 * omp-low.c (use_pointer_for_field): Return false if
37669 lower_send_shared_vars doesn't generate any copy-out code.
37670
37671 2013-02-06 Tom de Vries <tom@codesourcery.com>
37672
37673 PR rtl-optimization/56131
37674 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
37675 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
37676 of the label is NULL. Add comment.
37677
37678 2013-02-05 Jakub Jelinek <jakub@redhat.com>
37679
37680 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
37681
37682 PR sanitizer/55374
37683 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
37684 (STATIC_LIBTSAN_LIBS): Likewise.
37685 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
37686 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
37687 is defined, don't add anything else beyond that.
37688 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
37689 (LINK_COMMAND_SPEC): Use them.
37690
37691 PR tree-optimization/56205
37692 * tree-stdarg.c (check_all_va_list_escapes): Return true if
37693 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
37694 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
37695
37696 2013-02-05 Richard Biener <rguenther@suse.de>
37697
37698 PR tree-optimization/53342
37699 PR tree-optimization/53185
37700 * tree-vectorizer.h (vect_check_strided_load): Remove.
37701 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
37702 not disallow peeling for vectorized strided loads.
37703 (vect_check_strided_load): Make static and simplify.
37704 (vect_analyze_data_refs): Adjust.
37705 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
37706 correctly when vectorizing strided loads.
37707
37708 2013-02-05 Richard Biener <rguenther@suse.de>
37709
37710 * doc/install.texi: Refer to ISL, not PPL.
37711
37712 2013-02-05 Jan Hubicka <jh@suse.cz>
37713
37714 PR tree-optimization/55789
37715 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
37716
37717 2013-02-05 Jan Hubicka <jh@suse.cz>
37718
37719 PR tree-optimization/55789
37720 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
37721 the dead call anyway.
37722
37723 2013-02-05 Eric Botcazou <ebotcazou@adacore.com>
37724
37725 PR sanitizer/55374
37726 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
37727
37728 2013-02-04 Alexander Potapenko <glider@google.com>
37729 Jack Howarth <howarth@bromo.med.uc.edu>
37730 Jakub Jelinek <jakub@redhat.com>
37731
37732 PR sanitizer/55617
37733 * config/darwin.c (sort_ctor_records): Stabilized qsort
37734 on constructor priority by using original position.
37735 (finalize_ctors): New routine to sort constructors by
37736 priority before use in assemble_integer.
37737 (machopic_asm_out_constructor): Use finalize_ctors if needed.
37738
37739 2013-02-04 Jakub Jelinek <jakub@redhat.com>
37740
37741 PR libstdc++/54314
37742 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
37743 about visibility on artificial decls.
37744 * config/sol2.c (solaris_assemble_visibility): Likewise.
37745
37746 2013-02-04 Kai Tietz <ktietz@redhat.com>
37747
37748 PR target/56186
37749 * config/i386/i386.c (function_value_ms_64): Add additional valtype
37750 argument and improve checking of return-argument types for 16-byte
37751 modes.
37752 (ix86_function_value_1): Add additional valtype argument on call
37753 of function_value_64.
37754 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
37755 handling infunction_value_64 function.
37756
37757 2013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
37758
37759 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
37760
37761 2013-02-04 Richard Biener <rguenther@suse.de>
37762
37763 PR tree-optimization/56188
37764 * tree-ssa-structalias.c (label_visit): Consider case with
37765 initially non-empty points-to set.
37766 (perform_var_substitution): Dump node mapping and clean up.
37767
37768 2013-02-04 Richard Guenther <rguenther@suse.de>
37769
37770 PR lto/56168
37771 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
37772 node prevail as last resort.
37773 (lto_symtab_merge_decls): Remove guard on LTRANS here.
37774 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
37775
37776 2013-02-04 Richard Biener <rguenther@suse.de>
37777
37778 PR tree-optimization/56113
37779 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
37780 Merge into ...
37781 (equiv_class_lookup_or_add): ... this.
37782 (label_visit): Adjust and fix error in previous patch.
37783 (perform_var_substitution): Adjust.
37784
37785 2013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
37786
37787 * config/sh/divtab.c: Fix formatting and comments throughout the file.
37788 * config/sh/sh4-300.md: Likewise.
37789 * config/sh/sh4a.md: Likewise.
37790 * config/sh/constraints.md: Likewise.
37791 * config/sh/sh.md: Likewise.
37792 * config/sh/netbsd-elf.h: Likewise.
37793 * config/sh/predicates.md: Likewise.
37794 * config/sh/sh-protos.h: Likewise.
37795 * config/sh/ushmedia.h: Likewise.
37796 * config/sh/linux.h: Likewise.
37797 * config/sh/sh.c: Likewise.
37798 * config/sh/superh.h: Likewise.
37799 * config/sh/elf.h: Likewise.
37800 * config/sh/sh4.md: Likewise.
37801 * config/sh/sh.h: Likewise.
37802
37803 2013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
37804
37805 * config/pa/constraints.md: Adjust unused letters. Change "T"
37806 constraint to match_test floating_point_store_memory_operand().
37807 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
37808 (base14_operand): New.
37809 (floating_point_store_memory_operand): New.
37810 (integer_store_memory_operand): Revise to use base14_operand and
37811 reg_plus_base_memory_operand.
37812 (move_dest_operand): Allow symbolic_memory_operands.
37813 (symbolic_memory_operand): Check for LO_SOM.
37814 (symbolic_operand): Change default case to break.
37815 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
37816 CONST_DOUBLE values to be reloaded by putting them into memory when
37817 the destination is a floating point register.
37818 (movdf): Remove code to handle CONST_DOUBLE.
37819 (movsf): Likewise.
37820 (reload_indf_r1): New.
37821 (reload_insf_r1): New.
37822 Consistently use "Q" and "T" constraints with integer and floating
37823 point move instructions, respectively.
37824 (movdi): Remove FAIL.
37825 Change predicate for source operand unamed DImode move from
37826 general_operand to move_src_operand.
37827 (umulsidi3): Change predicate for destination operand to
37828 register_operand.
37829 Likewise for similar unamed patterns.
37830 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
37831 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
37832 (hppa_legitimize_address): Simplify mask calculation.
37833 (pa_emit_move_sequence): Revised handling of secondary reloads from
37834 REG+D addresses for floating point loads and stores. Directly handle
37835 loading CONST0_RTX (mode) to a floating point register.
37836 (pa_secondary_reload): Handle reloading DF and SFmode constant values
37837 to floating point registers. Don't restrict secondary reloads to
37838 floating point registers to integer modes. Revise some comments and
37839 cleanup some code.
37840 (TARGET_LEGITIMATE_ADDRESS_P): Define.
37841 (pa_legitimate_address_p): New.
37842 (pa_legitimize_reload_address): New.
37843 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
37844 (STRICT_REG_OK_FOR_BASE_P): New.
37845 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
37846 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
37847
37848 2013-02-03 David Edelsohn <dje.gcc@gmail.com>
37849 Andrew Dixie <andrewd@gentrack.com>
37850
37851 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
37852 flag set.
37853
37854 2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
37855
37856 * expmed.c (extract_bit_field_1): Pass the full width of the
37857 structure to get_best_reg_extraction_insn.
37858
37859 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
37860
37861 PR target/54601
37862 * configure.ac (use_cxa_atexit): Add AIX.
37863 * configure: Regenerate.
37864
37865 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
37866
37867 2013-02-01 Jakub Jelinek <jakub@redhat.com>
37868
37869 PR debug/54793
37870 * final.c (need_profile_function): New variable.
37871 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
37872 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
37873 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
37874 notes, targetm.asm_out.function_prologue doesn't emit anything,
37875 HAVE_prologue and profiler should be emitted before prologue,
37876 set need_profile_function instead of emitting it.
37877 (final_scan_insn): If need_profile_function, emit
37878 profile_function on the first NOTE_INSN_BASIC_BLOCK or
37879 NOTE_INSN_FUNCTION_BEG note.
37880
37881 2013-02-01 Richard Henderson <rth@redhat.com>
37882
37883 * config/rs6000/rs6000.md (smulditi3): New.
37884 (umulditi3): New.
37885
37886 * config/alpha/alpha.md (umulditi3): New.
37887
37888 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
37889
37890 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
37891 (ASM_OUTPUT_ALIGNED_LOCAL): New.
37892
37893 2013-02-01 Richard Biener <rguenther@suse.de>
37894
37895 PR tree-optimization/56113
37896 * tree-ssa-structalias.c (label_visit): Reduce work for
37897 single-predecessor nodes.
37898
37899 2013-02-01 Eric Botcazou <ebotcazou@adacore.com>
37900
37901 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
37902 range isn't testing for zero.
37903
37904 2013-01-31 Steven Bosscher <steven@gcc.gnu.org>
37905
37906 PR middle-end/56113
37907 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
37908
37909 2013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
37910 Nick Clifton <nickc@redhat.com>
37911
37912 * config/v850/constraints.md (Q): Define as a memory constraint.
37913 * config/v850/predicates.md (label_ref_operand): New predicate.
37914 (e3v5_shift_operand): New predicate.
37915 (ior_operator): New predicate.
37916 * config/v850/t-v850: Add e3v5 multilib.
37917 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
37918 (v850_gen_movdi): Prototype.
37919 * config/v850/v850.c: Add support for e3v5 architecture.
37920 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
37921 TARGET_V850E_UP.
37922 (construct_save_jarl): Add e3v5 long JARL support.
37923 (v850_adjust_insn_length): New function. Adjust length of call
37924 insns when using e3v5 instructions.
37925 (v850_gen_movdi): New function: Generate instructions to move a
37926 DImode value.
37927 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
37928 (CPP_SPEC): Define __v850e3v5__ as appropriate.
37929 (TARGET_USE_FPU): Enable for e3v5.
37930 (CONST_OK_FOR_W): New macro.
37931 (ADJUST_INSN_LENGTH): Define.
37932 * config/v850/v850.md (UNSPEC_LOOP): Define.
37933 (attr cpu): Add v850e3v5.
37934 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
37935 (movdi): New pattern.
37936 (movdi_internal): New pattern.
37937 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
37938 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
37939 (cstoresf4): Likewise.
37940 (cstoredf4): Likewise.
37941 (insv): New pattern.
37942 (rotlso3_a): New pattern.
37943 (rotlsi3_b): New pattern
37944 (rotlsi3_v850e3v5): New pattern.
37945 (doloop_begin): New pattern.
37946 (fix_loop_counter): New pattern.
37947 (doloop_end): New pattern.
37948 (branch_normal): Add e3v5 long branch support.
37949 (branch_invert): Likewise.
37950 (branch_z_normal): Likewise.
37951 (branch_z_invert): Likewise.
37952 (branch_nz_normal): Likewise.
37953 (branch_nz_invert): Likewise.
37954 (call_internal_short): Add e3v5 register-indirect JARL support.
37955 (call_internal_long): Likewise.
37956 (call_value_internal_short): Likewise.
37957 (call_value_internal_long): Likewise.
37958 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
37959 (mloop): New option.
37960 * config.gcc: Add support for configuring v840e3v5 target.
37961 * doc/invoke.texi: Document new v850 specific command line options.
37962
37963 2013-01-31 Paul Koning <ni1d@arrl.net>
37964
37965 PR debug/55059
37966 PR debug/54508
37967 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
37968 children if parent is a class.
37969 (prune_unused_types_prune): Don't add DW_AT_declaration.
37970
37971 2013-01-31 Richard Biener <rguenther@suse.de>
37972
37973 PR tree-optimization/56157
37974 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
37975 match up operand with SLP child.
37976
37977 2013-01-31 Jason Merrill <jason@redhat.com>
37978
37979 PR debug/54410
37980 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
37981 parameters the first time.
37982 (gen_scheduled_generic_parms_dies): Check completeness here.
37983
37984 2013-01-31 Richard Biener <rguenther@suse.de>
37985
37986 PR middle-end/53073
37987 * common.opt (faggressive-loop-optimizations): New flag,
37988 enabled by default.
37989 * doc/invoke.texi (faggressive-loop-optimizations): Document.
37990 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
37991 infer_loop_bounds_from_undefined by it.
37992
37993 2013-01-31 Richard Biener <rguenther@suse.de>
37994
37995 PR tree-optimization/56150
37996 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
37997 visit virtual operands.
37998 (find_uses_to_rename_bb): Likewise.
37999
38000 2013-01-31 Richard Biener <rguenther@suse.de>
38001
38002 PR tree-optimization/56150
38003 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
38004 mixed store non-store stmts.
38005
38006 2013-01-30 Jakub Jelinek <jakub@redhat.com>
38007
38008 PR sanitizer/55374
38009 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
38010 LIBASAN_EARLY_SPEC is defined.
38011 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
38012 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
38013 before %o.
38014 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
38015
38016 PR c++/55742
38017 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
38018 invalid args instead of ICEing on it.
38019 (ix86_valid_target_attribute_tree): Return error_mark_node if
38020 ix86_valid_target_attribute_inner_p failed.
38021 (ix86_valid_target_attribute_p): Return false only if
38022 ix86_valid_target_attribute_tree returned error_mark_node. Allow
38023 target("default") attribute.
38024 (sorted_attr_string): Change argument from const char * to tree,
38025 merge in all target attribute arguments rather than just one.
38026 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
38027 instead of free. Avoid using strcat.
38028 (ix86_mangle_function_version_assembler_name): Mangle
38029 target("default") as if no target attribute is present. Adjust
38030 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
38031 instead of xmalloc and XDELETEVEC instead of free.
38032 (ix86_function_versions): Don't return true if one of the decls
38033 doesn't have target attribute. If they don't and one of the decls
38034 is DECL_FUNCTION_VERSIONED, report an error. Adjust
38035 sorted_attr_string caller. Use XDELETEVEC instead of free.
38036 (ix86_supports_function_versions): Remove.
38037 (make_name): Fix up formatting.
38038 (make_dispatcher_decl): Remove resolver_name and its initialization.
38039 Avoid leaking memory.
38040 (is_function_default_version): Return true if there is
38041 target("default") attribute rather than no target attribute at all.
38042 (make_resolver_func): Avoid leaking memory.
38043 (ix86_generate_version_dispatcher_body): Likewise.
38044 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
38045 * target.def (supports_function_versions): Remove.
38046 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
38047 * doc/tm.texi: Regenerated.
38048
38049 2013-01-30 Vladimir Makarov <vmakarov@redhat.com>
38050
38051 PR rtl-optimization/56144
38052 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
38053 for values with side effects.
38054
38055 2013-01-30 Richard Biener <rguenther@suse.de>
38056
38057 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
38058 (sparseset_pop): Likewise.
38059 * cfganal.c (compute_idf): Likewise. Increase work-stack size
38060 to be able to use quick_push in the worker loop.
38061
38062 2013-01-30 Marek Polacek <polacek@redhat.com>
38063
38064 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
38065
38066 2013-01-30 Richard Biener <rguenther@suse.de>
38067
38068 PR lto/56147
38069 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
38070
38071 2013-01-30 Georg-Johann Lay <avr@gjlay.de>
38072
38073 PR tree-optimization/56064
38074 * fixed-value.c (fixed_from_double_int): New function.
38075 * fixed-value.h (fixed_from_double_int): New prototype.
38076 (const_fixed_from_double_int): New static inline function.
38077 * fold-const.c (native_interpret_fixed): New static function.
38078 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
38079 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
38080 (native_encode_fixed): New static function.
38081 (native_encode_expr) <FIXED_CST>: Use it.
38082 (native_interpret_int): Move double_int worker code to...
38083 * double-int.c (double_int::from_buffer): ...this new static method.
38084 * double-int.h (double_int::from_buffer): Prototype it.
38085
38086 2013-01-30 Richard Biener <rguenther@suse.de>
38087
38088 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
38089 New pointer-map and obstack.
38090 (init_alias_vars): Allocate pointer-map and obstack.
38091 (delete_points_to_sets): Free them.
38092 (find_what_var_points_to): Cache result.
38093 (find_what_p_points_to): Adjust for changed interface of
38094 find_what_var_points_to.
38095 (compute_points_to_sets): Likewise.
38096 (ipa_pta_execute): Likewise.
38097
38098 2013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
38099
38100 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
38101 * configure: Regenerate.
38102 * config.in: Regenerate.
38103 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
38104 #nobits/#progbits if supported.
38105
38106 2013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
38107
38108 PR target/56121
38109 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
38110 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
38111 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
38112
38113 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
38114
38115 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
38116 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
38117
38118 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
38119
38120 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
38121 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
38122
38123 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
38124
38125 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
38126 declaration.
38127 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
38128 * config/arm/cortex-a7.md: New bypasses using
38129 arm_mac_accumulator_is_result.
38130
38131 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
38132
38133 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
38134 (cortex_a7_neon_mla): Likewise.
38135 (cortex_a7_fpfmad): New reservation.
38136 (cortex_a7_fpmacs): Use ffmas and update required units.
38137 (cortex_a7_fpmuld): Update required units and latency.
38138 (cortex_a7_fpmacd): Likewise.
38139 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
38140 (cortex_a7_neon). Likewise.
38141 (bypass) Update participating units.
38142
38143 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
38144
38145 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
38146 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
38147 from fmac to ffma.
38148 * config/arm/vfp11.md (vfp_farith): Use ffmas.
38149 (vfp_fmul): Use ffmad.
38150 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
38151 (cortex_r4_fmacd): Use ffmad.
38152 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
38153 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
38154 (cortex_a9_fmacd): Use ffmad.
38155 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
38156 (cortex_a8_vfp_macd): Use ffmad.
38157 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
38158 (cortex_a5_fpmacd): Use ffmad.
38159 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
38160 (cortex_a15_vfp_macd): Use ffmad.
38161 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
38162
38163 2013-01-29 Jason Merrill <jason@redhat.com>
38164
38165 PR libstdc++/54314
38166 * varasm.c (default_assemble_visibility): Don't warn about
38167 visibility on artificial decls.
38168
38169 2013-01-29 Richard Biener <rguenther@suse.de>
38170
38171 PR tree-optimization/56113
38172 * tree-ssa-structalias.c (equiv_class_lookup): Also return
38173 the bitmap leader.
38174 (label_visit): Free duplicate bitmaps and record the leader instead.
38175 (perform_var_substitution): Adjust.
38176
38177 2013-01-29 Richard Biener <rguenther@suse.de>
38178
38179 PR tree-optimization/55270
38180 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
38181 the CFG, schedule loops for fixup.
38182
38183 2013-01-29 Nick Clifton <nickc@redhat.com>
38184
38185 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
38186 SP_REG.
38187
38188 2013-01-28 Leif Ekblad <leif@rdos.net>
38189
38190 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
38191 * config/i386/i386.h (TARGET_RDOS): New macro.
38192 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
38193 * config/i386/i386.c (ix86_option_override_internal): For 64bit
38194 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
38195 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
38196 DEFAULT_LARGE_SECTION_THRESHOLD.
38197 * config/i386/i386.md (R14_REG, R15_REG): New constants.
38198 * config/i386/rdos.h: New file.
38199 * config/i386/rdos64.h: New file.
38200
38201 2013-01-28 Bernd Schmidt <bernds@codesourcery.com>
38202
38203 PR other/54814
38204 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
38205 TEST_HARD_REG_BIT.
38206
38207 2013-01-28 Jakub Jelinek <jakub@redhat.com>
38208
38209 PR rtl-optimization/56117
38210 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
38211 call cselib_lookup_from_insn on the MEM before calling
38212 add_insn_mem_dependence.
38213
38214 2013-01-28 Richard Biener <rguenther@suse.de>
38215
38216 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
38217 to a stmt that didn't have one.
38218 (copy_phis_for_bb): Likewise for PHI arguments.
38219 (copy_debug_stmt): Likewise for debug stmts.
38220
38221 2013-01-28 Richard Biener <rguenther@suse.de>
38222
38223 PR tree-optimization/56034
38224 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
38225 (partition_builtin_p): Adjust.
38226 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
38227 it is the last partition.
38228 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
38229 up the vertex for the definition.
38230 (classify_partition): Classify whether a partition is a
38231 PKIND_REDUCTION, thus has uses outside of the loop.
38232 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
38233 Merge all PKIND_REDUCTION partitions into the last partition.
38234 (tree_loop_distribution): Seed partitions from reductions as well.
38235
38236 2013-01-28 Jakub Jelinek <jakub@redhat.com>
38237
38238 PR tree-optimization/56125
38239 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
38240 pow(x,c) into sqrt(x) * powi(x, n/2) or
38241 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
38242 optimizing for size.
38243 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
38244 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
38245 integer.
38246
38247 PR tree-optimization/56094
38248 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
38249 to UNKNOWN_LOCATION while gimplifying expr.
38250
38251 2013-01-27 Uros Bizjak <ubizjak@gmail.com>
38252
38253 PR target/56114
38254 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
38255 operand 0 in movabs insn template for -masm=intel asm alternative.
38256 (*movabs<mode>_2): Ditto for operand 1.
38257
38258 2013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
38259
38260 PR target/54663
38261 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
38262 of microblaze-c.o
38263
38264 2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
38265
38266 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
38267 tm_file.
38268
38269 2013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
38270
38271 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
38272 Undef to avoid warning.
38273
38274 2013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
38275
38276 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
38277 * configure: Regenerate.
38278
38279 2013-01-25 Jakub Jelinek <jakub@redhat.com>
38280
38281 PR tree-optimization/56098
38282 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
38283 for stmts with volatile ops.
38284 (cond_store_replacement): Don't optimize if assign has volatile ops.
38285 (cond_if_else_store_replacement_1): Don't optimize if either
38286 then_assign or else_assign have volatile ops.
38287 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
38288 volatile ops.
38289
38290 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
38291
38292 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
38293
38294 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
38295
38296 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
38297 missing ':' in asm example.
38298
38299 2013-01-25 Tejas Belagod <tejas.belagod@arm.com>
38300
38301 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
38302 entries into lane and laneq entries.
38303 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
38304 Remove AdvSIMD scalar modes.
38305 (aarch64_sq<r>dmulh_laneq<mode>): New.
38306 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
38307 modes.
38308 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
38309 builtin implementations to relfect changes in RTL in aarch64-simd.md.
38310 * config/aarch64/iterators.md (VCOND): New.
38311 (VCONQ): New.
38312
38313 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
38314
38315 PR target/54222
38316 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
38317 Add NULL LIBNAME argument to existing definitions.
38318 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
38319 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
38320 * config/avr/avr.c (DEF_BUILTIN): Same.
38321 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
38322 (avr_expand_builtin): Expand to a vanilla call if a libgcc
38323 implementation is available (DECL_ASSEMBLER_NAME is set).
38324 (avr_fold_absfx): New static function.
38325 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
38326 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
38327 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
38328 AVR_BUILTIN_ABSLLK.
38329 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
38330 (abshk, absk, abslk, absllk): Provide as static inline functions.
38331
38332 2013-01-25 Marek Polacek <polacek@redhat.com>
38333
38334 PR tree-optimization/56035
38335 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
38336
38337 2012-01-24 Uros Bizjak <ubizjak@gmail.com>
38338
38339 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
38340 (*movtf_internal_rex64): Add (!o,C) alternative
38341 (*movxf_internal_rex64): Ditto.
38342 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
38343
38344 2013-01-24 Shenghou Ma <minux.ma@gmail.com>
38345
38346 * doc/invoke.texi: fix typo.
38347 * doc/objc.texi: fix typo.
38348
38349 2013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
38350
38351 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
38352 for the first two alternatives.
38353
38354 2013-01-24 Diego Novillo <dnovillo@google.com>
38355
38356 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
38357 (ggc-zone.o): Remove.
38358 * configure.ac: Remove option --with-gc.
38359 * configure: Re-generate.
38360 * doc/install.texi: Remove documentation for --with-gc.
38361 * gengtype.c (write_enum_defn): Remove. Update all users.
38362 (write_Types_process_field): Remove generation of gt_e_* argument.
38363 (output_type_enum): Remove. Update all users.
38364 (write_enum_defn): Remove. Update all users.
38365 (enum alloc_zone): Remove. Update all users.
38366 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
38367 * ggc-common.c (ggc_splay_alloc): Remove first argument.
38368 Update all callers.
38369 (struct ptr_data): Remove field TYPE. Update all users.
38370 (gt_pch_note_object): Remove argument TYPE. Update all users.
38371 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
38372 Update all users.
38373 * ggc-none.c (ggc_alloc_typed_stat): Remove.
38374 (struct alloc_zone): Remove.
38375 (ggc_internal_alloc_zone_stat): Remove.
38376 (ggc_internal_cleared_alloc_zone_stat): Remove.
38377 * ggc-page.c (ggc_alloc_typed_stat): Remove.
38378 (ggc_pch_count_object): Remove last argument. Update all users.
38379 (ggc_pch_alloc_object): Remove last argument. Update all users.
38380 (struct alloc_zone): Remove.
38381 * ggc-zone.c: Remove.
38382 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
38383 (struct alloc_zone): Remove.
38384 (ggc_alloc_typed_stat): Remove.
38385 (ggc_alloc_typed): Remove.
38386 (ggc_splay_alloc): Remove first argument.
38387 (rtl_zone): Remove. Update all users.
38388 (tree_zone): Remove. Update all users.
38389 (tree_id_zone): Remove. Update all users.
38390 (ggc_internal_zone_alloc_stat): Remove. Update all users.
38391 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
38392 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
38393 * tree-ssanames.c: Remove references to zone allocator in comments.
38394
38395 2013-01-24 Georg-Johann Lay <avr@gjlay.de>
38396
38397 * config/avr/avr.c (avr_out_fract): Make register numbers that
38398 might be outside of source operand signed.
38399
38400 2013-01-24 Uros Bizjak <ubizjak@gmail.com>
38401
38402 * config/i386/constraints.md (Yf): New constraint.
38403 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
38404 of f constraint to conditionaly disable x87 register preferences.
38405 (*movdf_internal): Ditto.
38406 (*movsf_internal): Ditto.
38407
38408 2013-01-24 Steven Bosscher <steven@gcc.gnu.org>
38409
38410 PR inline-asm/55934
38411 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
38412 that have operands with impossible constraints.
38413 Add a FIXME for a speed-up opportunity.
38414 * lra-constraints.c (process_alt_operands): Verify that a class
38415 selected from constraints on asms is valid for the operand mode.
38416 (curr_insn_transform): Remove incorrect comment.
38417
38418 2013-01-23 David Edelsohn <dje.gcc@gmail.com>
38419
38420 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
38421 TOC operand is a valid symbol ref in the constant pool.
38422
38423 2013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
38424
38425 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
38426
38427 2013-01-23 Georg-Johann Lay <avr@gjlay.de>
38428
38429 PR target/54222
38430 * config/avr/stdfix.h: New file.
38431 * t-avr (stdfix-gcc.h): New rule to build it.
38432 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
38433
38434 2013-01-23 Kostya Serebryany <kcc@google.com>
38435
38436 * config/darwin.h: remove dependency on
38437 CoreFoundation (asan on Mac OS).
38438
38439 2013-01-23 Jakub Jelinek <jakub@redhat.com>
38440
38441 PR target/49069
38442 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
38443 instead of cmpdi_operand for first comparison operand.
38444 Don't assert that comparison operands aren't both constants.
38445
38446 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
38447
38448 * doc/install.texi (Downloading the Source): Update references to
38449 downloading separate components.
38450
38451 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
38452
38453 * doc/extend.texi (__int128): Improve grammar.
38454
38455 2013-01-22 Uros Bizjak <ubizjak@gmail.com>
38456
38457 PR target/56028
38458 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
38459 alternative to (o,r).
38460 (*movdi_internal_rex64): Remove (!o,n) alternative.
38461 (DImode immediate->memory splitter): Remove.
38462 (DImode immediate->memory peephole2): Remove.
38463 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
38464 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
38465 alternative to (!o,*r).
38466 (*movtf_internal_sse): New pattern.
38467 (*movxf_internal_rex64): New pattern.
38468 (*movxf_internal): Disable for TARGET_64BIT.
38469 (*movdf_internal_rex64): Remove (!o,F) alternative.
38470
38471 2013-01-22 Jakub Jelinek <jakub@redhat.com>
38472
38473 PR middle-end/56074
38474 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
38475 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
38476 * tree-vect-loop-manip.c (find_loop_location): Also ignore
38477 stmt locations where LOCATION_LOCUS of the stmt location is
38478 UNKNOWN_LOCATION or BUILTINS_LOCATION.
38479
38480 PR target/55686
38481 * config/i386/i386.md (UNSPEC_STOS): New.
38482 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
38483 *strsetqi_1): Add UNSPEC_STOS.
38484
38485 2013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
38486
38487 PR c++/56067
38488 * doc/invoke.texi: Remove left over -Wsynth example.
38489
38490 2013-01-21 Jakub Jelinek <jakub@redhat.com>
38491
38492 PR tree-optimization/56051
38493 * fold-const.c (fold_binary_loc): Don't fold
38494 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
38495 a narrowing conversion, or widening conversion from signed
38496 to unsigned.
38497
38498 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
38499
38500 PR rtl-optimization/56023
38501 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
38502 dependent on debug instruction.
38503
38504 2013-01-21 Martin Jambor <mjambor@suse.cz>
38505
38506 PR middle-end/56022
38507 * function.c (allocate_struct_function): Call
38508 invoke_set_current_function_hook earlier.
38509
38510 2013-01-21 Jakub Jelinek <jakub@redhat.com>
38511
38512 * reload1.c (init_reload): Only initialize reload_obstack
38513 during the first call.
38514
38515 2013-01-21 Marek Polacek <polacek@redhat.com>
38516
38517 * cfgloop.c (verify_loop_structure): Fix up grammar.
38518
38519 2013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
38520
38521 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
38522 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
38523
38524 2013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38525
38526 PR target/56058
38527 * config/arm/marvell-pj4.md: Update copyright year.
38528 Fix up use of alu to alu_reg and simple_alu_imm.
38529
38530 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
38531
38532 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
38533
38534 2013-01-20 Vladimir Makarov <vmakarov@redhat.com>
38535
38536 PR target/55433
38537 * lra-constraints.c (curr_insn_transform): Don't reuse original
38538 insn for secondary memory move when memory mode should be different.
38539
38540 2013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
38541
38542 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
38543 atomic_storedi_1): New patterns.
38544
38545 2013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
38546
38547 btver2 pipeline descriptions.
38548 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
38549 descriptions.
38550 * config/i386/i386.md (btver2_decode): New type attributes.
38551 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
38552 type attributes.
38553 * config/i386/btver2.md: New file describing btver2 pipelines.
38554
38555 2013-01-19 Andrew Pinski <apinski@cavium.com>
38556
38557 PR tree-optimization/52631
38558 * tree-ssa-sccvn (visit_use): Before looking up the original
38559 statement, try looking up the simplified expression.
38560
38561 2013-01-19 Anthony Green <green@moxielogic.com>
38562
38563 * config/moxie/moxie.c (moxie_expand_prologue): Set
38564 current_function_static_stack_size.
38565
38566 2013-01-18 Jakub Jelinek <jakub@redhat.com>
38567
38568 PR tree-optimization/56029
38569 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
38570 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
38571
38572 2013-01-18 Sharad Singhai <singhai@google.com>
38573
38574 PR tree-optimization/55995
38575 * dumpfile.c (dump_loc): Print location only if available.
38576 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
38577
38578 2013-01-18 Vladimir Makarov <vmakarov@redhat.com>
38579
38580 PR target/55433
38581 * lra-constraints.c (curr_insn_transform): Reuse original insn for
38582 secondary memory move.
38583 (inherit_reload_reg): Use rclass instead of cl for
38584 check_secondary_memory_needed_p.
38585
38586 2013-01-18 Jakub Jelinek <jakub@redhat.com>
38587
38588 PR middle-end/56015
38589 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
38590 the case where writing real complex part of target modifies op1.
38591
38592 2013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
38593
38594 * config/aarch64/aarch64-simd.md
38595 (aarch64_vcond_internal<mode>): Handle unordered cases.
38596 * config/aarch64/iterators.md (v_cmp_result): New.
38597
38598 2013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
38599 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38600
38601 * config/arm/marvell-pj4.md: New file.
38602 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
38603 * config/arm/arm.md (generic_sched): Add marvell_pj4.
38604 (generic_vfp): Likewise.
38605 * config/arm/arm-cores.def: Add marvell-pj4.
38606 * config/arm/arm-tune.md: Regenerate.
38607 * config/arm/arm-tables.opt: Regenerate.
38608 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
38609 * doc/invoke.texi: Document marvell-pj4.
38610
38611 2013-01-18 Tejas Belagod <tejas.belagod@arm.com>
38612
38613 * config/aarch64/arm_neon.h: Map scalar types to standard types.
38614
38615 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
38616
38617 PR debug/54114
38618 PR debug/54402
38619 PR debug/49888
38620 * var-tracking.c (negative_power_of_two_p): New.
38621 (global_get_addr_cache, local_get_addr_cache): New.
38622 (get_addr_from_global_cache, get_addr_from_local_cache): New.
38623 (vt_canonicalize_addr): Rewrite using the above. Adjust the
38624 heading comment.
38625 (vt_stack_offset_p): Remove.
38626 (vt_canon_true_dep): Always canonicalize loc's address.
38627 (clobber_overlapping_mems): Make sure we have a MEM.
38628 (local_get_addr_clear_given_value): New.
38629 (val_reset): Clear local cached entries.
38630 (compute_bb_dataflow): Create and release the local cache.
38631 Disable duplicate MEMs clobbering.
38632 (emit_notes_in_bb): Clobber MEMs likewise.
38633 (vt_emit_notes): Create and release the local cache.
38634 (vt_initialize, vt_finalize): Create and release the global
38635 cache, respectively.
38636 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
38637
38638 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
38639
38640 PR libmudflap/53359
38641 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
38642 not found in the symtab.
38643
38644 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
38645
38646 PR debug/56006
38647 PR rtl-optimization/55547
38648 PR rtl-optimization/53827
38649 PR debug/53671
38650 PR debug/49888
38651 * alias.c (offset_overlap_p): New, factored out of...
38652 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
38653 the conservative special case for symbolic constants. Don't
38654 adjust zero sizes on alignment.
38655
38656 2013-01-18 Bernd Schmidt <bernds@codesourcery.com>
38657
38658 PR rtl-optimization/52573
38659 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
38660 REG_UNUSED for the same register.
38661
38662 2013-01-17 Richard Biener <rguenther@suse.de>
38663 Marek Polacek <polacek@redhat.com>
38664
38665 PR rtl-optimization/55833
38666 * loop-unswitch.c (unswitch_loops): Move loop verification...
38667 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
38668 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
38669 Set it to true when we're removing a loop from hierarchy tree in
38670 an irreducible region.
38671 (fix_bb_placements): Adjust caller.
38672 (fix_loop_placements): Likewise.
38673
38674 2013-01-17 Georg-Johann Lay <avr@gjlay.de>
38675
38676 * config/avr/builtins.def (DEF_BUILTIN): Factor out
38677 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
38678 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
38679 Remove ID. Adjust comments.
38680 * config/avr/avr-c.c (avr_builtin_name): Remove.
38681 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
38682 * config/avr/avr.c (avr_tolower): New static function.
38683 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
38684 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
38685 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
38686 default expansion.
38687
38688 2013-01-17 Jan Hubicka <jh@suse.cz>
38689
38690 PR tree-optimization/55273
38691 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
38692
38693 2013-01-17 Uros Bizjak <ubizjak@gmail.com>
38694
38695 PR target/55981
38696 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
38697 store through atomic_store<mode>_1.
38698 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
38699
38700 2013-01-17 Martin Jambor <mjambor@suse.cz>
38701
38702 PR tree-optimizations/55264
38703 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
38704 for virtual methods.
38705 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
38706 virtual methods before inlining is over.
38707 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
38708 virtual functions.
38709 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
38710 non-virtual.
38711
38712 2013-01-16 Vladimir Makarov <vmakarov@redhat.com>
38713
38714 PR rtl-optimization/56005
38715 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
38716 pending reads for prefetch.
38717
38718 2013-01-16 Ian Bolton <ian.bolton@arm.com>
38719
38720 * config/aarch64/aarch64.md
38721 (*cstoresi_neg_uxtw): New pattern.
38722 (*cmovsi_insn_uxtw): New pattern.
38723 (*<optab>si3_uxtw): New pattern.
38724 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
38725 (*<optab>si3_insn_uxtw): New pattern.
38726 (*bswapsi2_uxtw): New pattern.
38727
38728 2013-01-16 Richard Biener <rguenther@suse.de>
38729
38730 * tree-inline.c (tree_function_versioning): Remove set but
38731 never used variable.
38732
38733 2013-01-16 Richard Biener <rguenther@suse.de>
38734
38735 PR tree-optimization/55964
38736 * tree-flow.h (rename_variables_in_loop): Remove.
38737 (rename_variables_in_bb): Likewise.
38738 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
38739 (copy_loop_before): Adjust and delete update-ssa status.
38740 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
38741 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
38742 (rename_variables_in_loop): Remove.
38743 (slpeel_update_phis_for_duplicate_loop): Likewise.
38744 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
38745 use available cfg machinery instead of duplicating it.
38746 Update PHI nodes and perform poor-mans SSA update here.
38747 (slpeel_tree_peel_loop_to_edge): Adjust.
38748
38749 2013-01-16 Richard Biener <rguenther@suse.de>
38750
38751 PR tree-optimization/54767
38752 PR tree-optimization/53465
38753 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
38754 (vrp_visit_phi_node): For PHI arguments coming via backedges
38755 drop all symbolical range information.
38756 (execute_vrp): Compute backedges.
38757
38758 2013-01-16 Richard Biener <rguenther@suse.de>
38759
38760 * doc/install.texi: Update CLooG and ISL requirements to
38761 0.18.0 and 0.11.1.
38762
38763 2013-01-16 Christian Bruel <christian.bruel@st.com>
38764
38765 PR target/55301
38766 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
38767 (broken_move): Handle UNSPECV_SP_SWITCH_B.
38768 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
38769
38770 2013-01-16 DJ Delorie <dj@redhat.com>
38771
38772 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
38773 (UNSPECV_SP_SWITCH_E): New.
38774 (sp_switch_1): Change to an unspec.
38775 (sp_switch_2): Change to an unspec. Don't use post-inc when we
38776 replace $r15.
38777
38778 2013-01-16 Uros Bizjak <ubizjak@gmail.com>
38779
38780 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
38781 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
38782 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
38783 (expand_mem_thread_fence): Ditto.
38784 (expand_mem_signal_fence): Ditto.
38785 (expand_atomic_load): Ditto.
38786 (expand_atomic_store): Ditto.
38787
38788 2013-01-16 Alexandre Oliva <aoliva@redhat.com>
38789
38790 PR rtl-optimization/55547
38791 PR rtl-optimization/53827
38792 PR debug/53671
38793 PR debug/49888
38794 * alias.c (memrefs_conflict_p): Set sizes to negative after
38795 AND adjustments.
38796
38797 2013-01-15 Jakub Jelinek <jakub@redhat.com>
38798
38799 PR target/55940
38800 * function.c (thread_prologue_and_epilogue_insns): Always
38801 add crtl->drap_reg to set_up_by_prologue.set, even if
38802 stack_realign_drap is false.
38803
38804 2013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
38805
38806 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
38807 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
38808 *call): Fix indention.
38809
38810 2013-01-15 Tom de Vries <tom@codesourcery.com>
38811
38812 PR target/55876
38813 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
38814 Update comment.
38815
38816 2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
38817
38818 PR rtl-optimization/55153
38819 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
38820
38821 2013-01-15 Martin Jambor <mjambor@suse.cz>
38822
38823 PR tree-optimization/55920
38824 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
38825 accesses as grp_to_be_debug_replaced.
38826
38827 2013-01-15 Jakub Jelinek <jakub@redhat.com>
38828
38829 PR tree-optimization/55920
38830 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
38831 there is non-useless type conversion needed from debug rhs to lhs,
38832 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
38833
38834 2013-01-15 Joseph Myers <joseph@codesourcery.com>
38835 Mikael Pettersson <mikpe@it.uu.se>
38836
38837 PR target/43961
38838 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
38839 Thumb.
38840 (ASM_OUTPUT_CASE_LABEL): Remove.
38841 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
38842 * final.c (shorten_branches): Update alignment of labels before
38843 jump tables if CASE_VECTOR_SHORTEN_MODE.
38844
38845 2013-01-15 Richard Biener <rguenther@suse.de>
38846
38847 PR bootstrap/55961
38848 * system.h: Do not include gmp.h for building host tools.
38849
38850 2013-01-15 Richard Biener <rguenther@suse.de>
38851
38852 PR middle-end/55882
38853 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
38854 account for bitpos when computing alignment.
38855
38856 2013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
38857
38858 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
38859 (ix86_target_macros_internal): Likewise.
38860
38861 * config/i386/i386.c (m_CORE2I7): Removed.
38862 (m_CORE_HASWELL): New macro.
38863 (m_CORE_ALL): Likewise.
38864 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
38865 (initial_ix86_arch_features): Likewise.
38866 (processor_target_table): Initializations for Core avx2.
38867 (cpu_names): New names "core-avx2".
38868 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
38869 PROCESSOR_CORE_HASWELL.
38870 (ix86_issue_rate): New case.
38871 (ia32_multipass_dfa_lookahead): Likewise.
38872 (ix86_sched_init_global): Likewise.
38873
38874 * config/i386/i386.h (TARGET_HASWELL): New macro.
38875 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
38876 (processor_type): New PROCESSOR_HASWELL.
38877
38878 2013-01-15 Jakub Jelinek <jakub@redhat.com>
38879
38880 PR tree-optimization/55955
38881 * tree-vect-loop.c (vectorizable_reduction): Give up early on
38882 *SHIFT_EXPR and *ROTATE_EXPR codes.
38883
38884 PR tree-optimization/48766
38885 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
38886 -ftrapv disable -fwrapv.
38887
38888 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
38889
38890 PR target/55974
38891 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
38892 etc. to 1 and not to __flash.
38893 Use LL suffix for __INT24_MAX__ with -mint8.
38894 Use ULL suffix for __UINT24_MAX__ with -mint8.
38895
38896 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
38897
38898 * config/avr/avr-arch.h
38899 (struct base_arch_s): Use typedef avr_arch_t instead.
38900 (struct arch_info_s): Use typedef avr_arch_info_t instead.
38901 (struct mcu_type_s): Use typedef avr_mcu_t instead.
38902 * config/avr/avr.c: Same.
38903 * config/avr/avr-devices.c: Same.
38904 * config/avr/driver-avr.c: Same.
38905 * config/avr/gen-avr-mmcu-texi.c: Same.
38906 * config/avr/avr-mcus.def: Adjust comment.
38907
38908 2013-01-14 Tejas Belagod <tejas.belagod@arm.com>
38909
38910 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
38911 * config/aarch64/iterators.md (VALLDI): New.
38912
38913 2013-01-14 Uros Bizjak <ubizjak@gmail.com>
38914 Andi Kleen <ak@linux.intel.com>
38915
38916 PR target/55948
38917 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
38918 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
38919 memmodel flag.
38920
38921 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
38922
38923 * config/avr/avr-stdint.h: Remove trailing blanks.
38924 * config/avr/avr-log.h: Same.
38925 * config/avr/avr-arch.h: Same.
38926 * config/avr/avr-devices.c: Same.
38927 * config/avr/avr-dimode.md: Same.
38928 * config/avr/predicates.md: Same.
38929 * config/avr/avr-c.c: Same. And fix typo.
38930
38931 * config/avr/avr-protos.h: Same. And:
38932 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
38933 (init_cumulative_args): Rename to avr_init_cumulative_args.
38934 (expand_prologue): Rename to avr_expand_prologue.
38935 (expand_epilogue): Rename to avr_expand_epilogue.
38936 (adjust_insn_length): Rename to avr_adjust_insn_length.
38937 (notice_update_cc): Rename to avr_notice_update_cc.
38938 (final_prescan_insn): Rename to avr_final_prescan_insn.
38939 * config/avr/avr.c: Same.
38940 * config/avr/avr.h: Same.
38941 * config/avr/avr.md: Remove trailing blanks.
38942 (prologue): Use avr_expand_prologue.
38943 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
38944
38945 2013-01-14 Richard Biener <rguenther@suse.de>
38946
38947 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
38948 verify_location, collect_subblocks): New functions.
38949 (verify_gimple_in_cfg): Verify that locations only reference
38950 BLOCKs in the functions BLOCK tree.
38951
38952 2013-01-14 Richard Biener <rguenther@suse.de>
38953
38954 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
38955 PHI argument.
38956 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
38957 unshare reference.
38958 (insert_out_of_ssa_copy_on_edge): Likewise.
38959 (rewrite_close_phi_out_of_ssa): Likewise.
38960 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
38961 debug expressions.
38962 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
38963 propagated constants.
38964 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
38965 can not be shared.
38966
38967 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
38968
38969 * config/avr/avr-modes.def: Add GPL copyright notice.
38970
38971 2013-01-13 Uros Bizjak <ubizjak@gmail.com>
38972
38973 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
38974 MEMMODEL_MASK to determine memory model.
38975 (atomic_store<mode>): Ditto from operands[2].
38976 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
38977
38978 2013-01-13 Jakub Jelinek <jakub@redhat.com>
38979
38980 PR fortran/55935
38981 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
38982 (fold_gimple_assign): Don't call unshare_expr here.
38983 (fold_ctor_reference): Call unshare_expr.
38984
38985 2013-01-13 Terry Guo <terry.guo@arm.com>
38986
38987 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
38988 * doc/fragments.texi: Document MULTILIB_REUSE.
38989 * gcc.c (multilib_reuse): New internal spec.
38990 (set_multilib_dir): Also search multilib from multilib_reuse.
38991 * genmultilib (tmpmultilib3): Refactor code.
38992 (tmpmultilib4): Ditto.
38993 (multilib_reuse): New multilib argument.
38994
38995 2013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
38996
38997 * Makefile.in: Update copyright.
38998
38999 2013-01-12 Tom de Vries <tom@codesourcery.com>
39000
39001 PR middle-end/55890
39002 * calls.c (expand_call): Check if arg_nr is valid.
39003
39004 2013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
39005
39006 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
39007 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
39008 documentation. Add missing '__' in front of
39009 __builtin_ia32_packssdw256.
39010
39011 2013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
39012
39013 PR target/55719
39014 * config/s390/s390.c (s390_preferred_reload_class): Do not return
39015 NO_REGS for larl operands.
39016 (s390_reload_larl_operand): Use s390_load_address instead of
39017 emit_move_insn.
39018
39019 2013-01-11 Richard Biener <rguenther@suse.de>
39020
39021 * tree-cfg.c (verify_node_sharing_1): Split out from ...
39022 (verify_node_sharing): ... here.
39023 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
39024
39025 2013-01-11 Eric Botcazou <ebotcazou@adacore.com>
39026
39027 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
39028 Substitute TREECHECKING.
39029 * configure: Regenerate.
39030 * Makefile.in (TREECHECKING): New.
39031
39032 2013-01-11 Richard Guenther <rguenther@suse.de>
39033
39034 PR tree-optimization/44061
39035 * tree-vrp.c (extract_range_basic): Compute zero as
39036 value-range for __builtin_constant_p of function parameters.
39037
39038 2013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
39039
39040 Update copyright years.
39041
39042 2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
39043
39044 PR rtl-optimization/55672
39045 * lra-eliminations.c (mark_not_eliminable): Permit addition with
39046 const to be eliminable.
39047
39048 2013-01-10 David Edelsohn <dje.gcc@gmail.com>
39049
39050 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
39051 * configure: Regenerate.
39052
39053 2013-01-10 Richard Biener <rguenther@suse.de>
39054
39055 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
39056
39057 2013-01-10 Richard Biener <rguenther@suse.de>
39058
39059 PR bootstrap/55792
39060 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
39061 locations for virtual PHI arguments.
39062 (rewrite_update_phi_arguments): Likewise.
39063
39064 2013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
39065
39066 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
39067 on to assembler.
39068
39069 2013-01-10 Jakub Jelinek <jakub@redhat.com>
39070
39071 PR tree-optimization/55921
39072 * tree-complex.c (expand_complex_asm): New function.
39073 (expand_complex_operations_1): Call it for GIMPLE_ASM.
39074
39075 2013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
39076
39077 PR target/55718
39078 * config/s390/s390.c (s390_symref_operand_p)
39079 (s390_loadrelative_operand_p): Merge the two functions.
39080 (s390_check_qrst_address, print_operand_address): Add parameters
39081 to s390_loadrelative_operand_p invokation.
39082 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
39083 (s390_reload_larl_operand, s390_secondary_reload): Use
39084 s390_loadrelative_operand_p instead of s390_symref_operand_p.
39085 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
39086
39087 2013-01-09 Mike Stump <mikestump@comcast.net>
39088
39089 * dse.c (record_store): Remove unnecessary assert.
39090
39091 2013-01-09 Jan Hubicka <jh@suse.cz>
39092
39093 PR tree-optimization/55569
39094 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
39095 * cfgloop.h (scale_loop_profile): Likewise.
39096
39097 2013-01-09 Jan Hubicka <jh@suse.cz>
39098
39099 PR lto/45375
39100 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
39101 functions.
39102 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
39103
39104 2013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
39105
39106 PR middle-end/55114
39107 * expr.h (maybe_emit_group_store): Declare.
39108 * expr.c (maybe_emit_group_store): New function.
39109 * builtins.c (expand_builtin_int_roundingfn): Call it.
39110 (expand_builtin_int_roundingfn_2): Likewise.
39111
39112 2013-01-09 Vladimir Makarov <vmakarov@redhat.com>
39113
39114 PR rtl-optimization/55829
39115 * lra-constraints.c (match_reload): Add code for absent output.
39116 (curr_insn_transform): Add code for reloads of matched inputs
39117 without output.
39118
39119 2013-01-09 Uros Bizjak <ubizjak@gmail.com>
39120
39121 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
39122 attribute of movddup insn to DF.
39123 (*vec_interleave_lowv2df): Ditto.
39124 (vec_dupv2df): Ditto.
39125
39126 2013-01-09 Jan Hubicka <jh@suse.cz>
39127
39128 PR tree-optimiation/55875
39129 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
39130 EVERY_ITERATION parameter.
39131 (number_of_iterations_exit): Check if exit is executed every iteration.
39132 (idx_infer_loop_bounds): Similarly here.
39133 (n_of_executions_at_most): Simplify
39134 to only test for cases where statement is dominated by the
39135 particular bound; handle correctly the "postdominance" test.
39136 (scev_probably_wraps_p): Use max loop iterations info
39137 as a global bound first.
39138
39139 2013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
39140 Nick Clifton <nickc@redhat.com>
39141
39142 * config/v850/v850.md (cbranchsf4): New pattern.
39143 (cstoresf4): New pattern.
39144 (cbranchdf4): New pattern.
39145 (cstoredf4): New pattern.
39146 (movsicc): Disallow floating point comparisons.
39147 (cmpsf_le_insn): Fix order of operators.
39148 (cmpsf_lt_insn): Likewise.
39149 (cmpsf_eq_insn): Likewise.
39150 (cmpdf_le_insn): Likewise.
39151 (cmpdf_lt_insn): Likewise.
39152 (cmpdf_eq_insn): Likewise.
39153 (cmpsf_ge_insn): Use LE comparison.
39154 (cmpdf_ge_insn): Likewise.
39155 (cmpsf_gt_insn): Use LT comparison.
39156 (cmpdf_gt_insn): Likewise.
39157 (cmpsf_ne_insn): Delete pattern.
39158 (cmpdf_ne_insn): Delete pattern.
39159 * config/v850/v850.c (v850_gen_float_compare): Use
39160 gen_cmpdf_eq_insn for NE comparison.
39161 (v850_float_z_comparison_operator)
39162 (v850_float_nz_comparison_operator): Move from here ...
39163 * config/v850/predicates.md: ... to here. Move GT and GE
39164 comparisons into v850_float_z_comparison_operator.
39165 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
39166 Delete prototype.
39167 (v850_float_nz_comparison_operator): Likewise.
39168
39169 2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
39170
39171 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
39172 with calls to gen_insvsi/gen_insvdi.
39173
39174 2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
39175
39176 * config/i386/i386.c (initial_ix86_tune_features): Set up
39177 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
39178
39179 2013-01-09 Steven Bosscher <steven@gcc.gnu.org>
39180 Jakub Jelinek <jakub@redhat.com>
39181
39182 PR tree-optimization/48189
39183 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
39184 If nitercst is 0, don't predict the exit edge.
39185
39186 2013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
39187
39188 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
39189 in asm_fprintf with reg_names.
39190 (aarch64_print_operand_address): Likewise.
39191 (aarch64_return_addr): Likewise.
39192 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
39193
39194 2013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
39195
39196 * config/pa/pa.h (VAL_U6_BITS_P): Define.
39197 (INT_U6_BITS): Likewise.
39198 * config/pa/predicates.md (uint6_operand): New predicate.
39199 (shift5_operand, shift6_operand): Likewise.
39200 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
39201 arith32_operand.
39202 (lshrdi3): Use shift6_operand.
39203 (shrpsi4, shrpdi4): New insn patterns.
39204 (extzv): Delete expander.
39205 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
39206 predicates in unamed zero extract patterns. Tighten common constraint.
39207 (extv): Delete expander.
39208 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
39209 predicates in unamed sign extract patterns. Tighten common constraint.
39210 (insv): Delete expander.
39211 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
39212 predicates in unamed insert patterns. Tighten common constraint.
39213 Change uint32_operand predicate to uint6_operand predicate in unamed
39214 DImode pattern to insert constant values of type 1...1xxxx.
39215
39216 2013-01-04 Jan Hubicka <jh@suse.cz>
39217
39218 PR tree-optimization/55823
39219 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
39220 issue.
39221
39222 2013-01-08 Jakub Jelinek <jakub@redhat.com>
39223 Uros Bizjak <ubizjak@gmail.com>
39224
39225 PR rtl-optimization/55845
39226 * df-problems.c (can_move_insns_across): Stop scanning at
39227 volatile_insn_p source instruction or give up if
39228 across_from .. across_to range contains any volatile_insn_p
39229 instructions.
39230
39231 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
39232
39233 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
39234 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
39235 Declare.
39236 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
39237 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
39238
39239 2013-01-08 Jakub Jelinek <jakub@redhat.com>
39240
39241 PR fortran/55341
39242 * asan.c (asan_clear_shadow): New function.
39243 (asan_emit_stack_protection): Use it.
39244
39245 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
39246
39247 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
39248 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
39249 with tab instead of space.
39250
39251 2013-01-08 Nick Clifton <nickc@redhat.com>
39252
39253 * config/rl78/rl78.c (rl78_expand_prologue): Always select
39254 register bank 0 at the start of an interrupt handler.
39255 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
39256 MDBH registers.
39257
39258 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
39259
39260 * config/aarch64/aarch64-simd.md
39261 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
39262 (aarch64_simd_bsl): Likewise.
39263 (aarch64_vcond_internal<mode>): Likewise.
39264 (vcond<mode><mode>): Likewise.
39265 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
39266 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
39267
39268 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
39269
39270 * config/aarch64/aarch64-builtins.c
39271 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
39272
39273 2013-01-08 Martin Jambor <mjambor@suse.cz>
39274
39275 PR debug/55579
39276 * tree-sra.c (analyze_access_subtree): Return true also after
39277 potentially creating a debug-only replacement.
39278
39279 2013-01-08 Jakub Jelinek <jakub@redhat.com>
39280
39281 PR middle-end/55890
39282 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
39283
39284 PR tree-optimization/54120
39285 * tree-vrp.c (range_fits_type_p): Don't allow
39286 src_precision < precision from signed vr to unsigned_p
39287 if vr->min or vr->max is negative.
39288 (simplify_float_conversion_using_ranges): Test can_float_p
39289 against CODE_FOR_nothing.
39290
39291 2013-01-08 Jakub Jelinek <jakub@redhat.com>
39292 Richard Biener <rguenther@suse.de>
39293
39294 PR middle-end/55851
39295 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
39296 types instead of just INTEGER_TYPE types.
39297
39298 2013-01-07 Mark Kettenis <kettenis@openbsd.org>
39299
39300 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
39301 TF_SIZE): Define.
39302
39303 2013-01-07 Steve Ellcey <sellcey@mips.com>
39304
39305 PR target/42661
39306 * config/mips/mips.opt: Change mad to mmad to match documentation.
39307
39308 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
39309
39310 PR target/55897
39311 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
39312 .progmemx.data now.
39313
39314 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
39315
39316 PR target/55897
39317 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
39318 (avr_addrspace_t): Add .section_name field.
39319 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
39320 array size.
39321 (avr_addrspace): Same. Initialize .section_name. Remove last
39322 NULL entry. Put __memx into .progmemx.data.
39323 (progmem_section_prefix): Remove.
39324 (avr_asm_init_sections): No need to initialize progmem_section.
39325 (avr_asm_named_section): Use avr_addrspace[].section_name to get
39326 section name prefix.
39327 (avr_asm_select_section): Ditto. And use get_unnamed_section to
39328 retrieve the progmem section.
39329 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
39330 boundary to run over avr_addrspace[].
39331 (avr_register_target_pragmas): Ditto.
39332
39333 2013-01-06 Jakub Jelinek <jakub@redhat.com>
39334
39335 * varasm.c (output_constant_def_contents): For asan_protect_global
39336 protected strings, adjust DECL_ALIGN if needed, before testing for
39337 anchored symbols.
39338 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
39339 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
39340 normal decls.
39341 (output_object_block): For asan protected decls, emit asan padding
39342 after their contents.
39343 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
39344 (asan_finish_file): Test it here instead.
39345
39346 2013-01-07 Nick Clifton <nickc@redhat.com>
39347 Matthias Klose <doko@debian.org>
39348 Doug Kwan <dougkwan@google.com>
39349 H.J. Lu <hongjiu.lu@intel.com>
39350
39351 PR driver/55470
39352 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
39353
39354 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
39355
39356 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
39357
39358 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
39359
39360 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
39361
39362 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
39363
39364 PR target/54461
39365 * doc/install.texi (Cross-Compiler-Specific Options): Document
39366 --with-avrlibc.
39367
39368 2013-01-07 Tejas Belagod <tejas.belagod@arm.com>
39369
39370 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
39371 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
39372 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
39373 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
39374 vqmovun_high_s64): Fix source operand number and update copyright.
39375
39376 2013-01-07 Richard Biener <rguenther@suse.de>
39377
39378 PR middle-end/55890
39379 * gimple.h (gimple_call_builtin_p): New overload.
39380 * gimple.c (validate_call): New function.
39381 (gimple_call_builtin_p): Likewise.
39382 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
39383 Use gimple_call_builtin_p.
39384 (find_func_clobbers): Likewise.
39385 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
39386 (strlen_optimize_stmt): Likewise.
39387
39388 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
39389
39390 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
39391 (vld1q_dup_*): Likewise.
39392 (vld1_*): Likewise.
39393 (vld1q_*): Likewise.
39394 (vld1_lane_*): Likewise.
39395 (vld1q_lane_*): Likewise.
39396
39397 2013-01-07 Richard Biener <rguenther@suse.de>
39398
39399 * lto-streamer.h (LTO_minor_version): Bump to 2.
39400
39401 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
39402
39403 * config/aarch64/aarch64-protos.h
39404 (aarch64_const_double_zero_rtx_p): Rename to...
39405 (aarch64_float_const_zero_rtx_p): ...this.
39406 (aarch64_float_const_representable_p): New.
39407 (aarch64_output_simd_mov_immediate): Likewise.
39408 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
39409 move immediate case.
39410 * config/aarch64/aarch64.c
39411 (aarch64_const_double_zero_rtx_p): Rename to...
39412 (aarch64_float_const_zero_rtx_p): ...this.
39413 (aarch64_print_operand): Allow printing of new constants.
39414 (aarch64_valid_floating_const): New.
39415 (aarch64_legitimate_constant_p): Check for valid floating-point
39416 constants.
39417 (aarch64_simd_valid_immediate): Likewise.
39418 (aarch64_vect_float_const_representable_p): New.
39419 (aarch64_float_const_representable_p): Likewise.
39420 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
39421 (aarch64_output_simd_mov_immediate): New.
39422 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
39423 (*movdf_aarch64): Likewise.
39424 * config/aarch64/constraints.md (Ufc): New.
39425 (Y): call aarch64_float_const_zero_rtx.
39426 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
39427
39428 2013-01-07 Richard Biener <rguenther@suse.de>
39429
39430 PR tree-optimization/55888
39431 PR tree-optimization/55862
39432 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
39433 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
39434 not if it is contained therein.
39435
39436 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
39437
39438 * config/avr/t-avr: Typo.
39439
39440 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
39441
39442 PR55243
39443 * config/avr/t-avr: Don't automatically rebuild
39444 $(srcdir)/config/avr/t-multilib
39445 $(srcdir)/config/avr/avr-tables.opt
39446 $(srcdir)/doc/avr-mmcu.texi
39447 (avr-mcus): New phony target to build them on request.
39448 (s-avr-mlib, s-avr-mmcu-texi): Remove.
39449 * avr/avr-mcus.def: Adjust comments.
39450
39451 2013-01-07 Uros Bizjak <ubizjak@gmail.com>
39452
39453 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
39454
39455 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
39456
39457 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
39458
39459 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
39460
39461 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
39462
39463 2013-01-05 David Edelsohn <dje.gcc@gmail.com>
39464
39465 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
39466 to generate profiling.
39467 * config/rs6000/aix64.h (LIB_SPEC): Same.
39468
39469 2013-01-04 Andrew Pinski <apinski@cavium.com>
39470
39471 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
39472 New function.
39473 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
39474
39475 2013-01-04 Uros Bizjak <ubizjak@gmail.com>
39476
39477 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
39478 unconditionally.
39479 (ix86_expand_move): Ditto.
39480 (ix86_zero_extend_to_Pmode): Ditto.
39481 (ix86_expand_call): Ditto.
39482 (ix86_expand_special_args_builtin): Ditto.
39483 (ix86_expand_builtin): Ditto.
39484
39485 2013-01-04 Richard Biener <rguenther@suse.de>
39486
39487 PR tree-optimization/55862
39488 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
39489 translating them through PHI nodes.
39490
39491 2013-01-04 Martin Jambor <mjambor@suse.cz>
39492
39493 PR tree-optimization/55755
39494 * tree-sra.c (sra_modify_assign): Do not check that an access has no
39495 children when trying to avoid producing a VIEW_CONVERT_EXPR.
39496
39497 2013-01-04 Marek Polacek <polacek@redhat.com>
39498
39499 PR middle-end/55859
39500 * opts.c (default_options_optimization): Clarify error message.
39501
39502 2013-01-04 Richard Biener <rguenther@suse.de>
39503
39504 PR middle-end/55863
39505 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
39506 reassociation.
39507
39508 2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
39509
39510 PR target/53789
39511 * config/pa/pa.md (movsi): Revert previous change.
39512 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
39513 references.
39514
39515 2013-01-03 Richard Henderson <rth@redhat.com>
39516
39517 * config/i386/i386.c (ix86_expand_move): Always assign to op1
39518 after eliminating TLS symbols.
39519
39520 2013-01-03 Marc Glisse <marc.glisse@inria.fr>
39521
39522 PR bootstrap/50167
39523 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
39524 * graphite-poly.c (debug_gmp_value): Likewise.
39525
39526 2013-01-03 Uros Bizjak <ubizjak@gmail.com>
39527
39528 PR target/55712
39529 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
39530 selected code model, define __code_mode_small__, __code_model_medium__,
39531 __code_model_large__, __code_model_32__ or __code_model_kernel__.
39532 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
39533 xchg temporary register with %k. Declare temporary register as
39534 early clobbered.
39535 [__x86_64__]: For medium and large code models, preserve %rbx register.
39536
39537 2013-01-03 Richard Biener <rguenther@suse.de>
39538
39539 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
39540 (dump_subscript): Adjust.
39541 (finalize_ddr_dependent): Do not dump redundant info.
39542 (analyze_siv_subscript): Adjust.
39543 (subscript_dependence_tester): Likewise.
39544 (compute_affine_dependence): Likewise.
39545
39546 2013-01-03 Richard Biener <rguenther@suse.de>
39547
39548 Revert
39549 2013-01-03 Richard Biener <rguenther@suse.de>
39550
39551 PR tree-optimization/55857
39552 * tree-vect-stmts.c (vectorizable_load): Do not setup
39553 re-alignment for invariant loads.
39554
39555 2013-01-02 Richard Biener <rguenther@suse.de>
39556
39557 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
39558 invariant load do not generate a vector load from the scalar location.
39559
39560 2013-01-03 Richard Biener <rguenther@suse.de>
39561
39562 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
39563 for not vectorizing.
39564 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
39565 not build INDIRECT_REFs, call get_name once only.
39566 (vect_create_data_ref_ptr): Likewise. Dump base object kind
39567 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
39568
39569 2013-01-03 Richard Biener <rguenther@suse.de>
39570
39571 PR tree-optimization/55857
39572 * tree-vect-stmts.c (vectorizable_load): Do not setup
39573 re-alignment for invariant loads.
39574
39575 2013-01-03 Richard Biener <rguenther@suse.de>
39576
39577 PR lto/55848
39578 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
39579 prefer a built-in decl.
39580
39581 2013-01-03 Jakub Jelinek <jakub@redhat.com>
39582
39583 * gcc.c (process_command): Update copyright notice dates.
39584 * gcov.c (print_version): Likewise.
39585 * gcov-dump.c (print_version): Likewise.
39586
39587 PR rtl-optimization/55838
39588 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
39589 iv0.step, iv1.step and step.
39590
39591 2013-01-03 Jakub Jelinek <jakub@redhat.com>
39592 Marc Glisse <marc.glisse@inria.fr>
39593
39594 PR tree-optimization/55832
39595 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
39596 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
39597 integer_{one,zero}_node.
39598
39599 2013-01-03 Jakub Jelinek <jakub@redhat.com>
39600
39601 PR debug/54402
39602 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
39603 * var-tracking.c (reverse_op): Don't add reverse ops to
39604 VALUEs that have already
39605 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
39606
39607 2013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
39608
39609 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
39610
39611 2013-01-02 Teresa Johnson <tejohnson@google.com>
39612
39613 * dumpfile.c (dump_loc): Print filename with location.
39614 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
39615 new location_t parameter to emit complete unroll message with
39616 new dump framework.
39617 (canonicalize_loop_induction_variables): Compute loops location
39618 and pass to try_unroll_loop_completely.
39619 * loop-unroll.c (report_unroll_peel): New function.
39620 (peel_loops_completely): Use new dump format with location
39621 for main dumpfile message, and invoke report_unroll_peel on success.
39622 (decide_unrolling_and_peeling): Ditto.
39623 (decide_peel_once_rolling): Remove old dumpfile message subsumed
39624 by report_unroll_peel.
39625 (decide_peel_completely): Ditto.
39626 (decide_unroll_constant_iterations): Ditto.
39627 (decide_unroll_runtime_iterations): Ditto.
39628 (decide_peel_simple): Ditto.
39629 (decide_unroll_stupid): Ditto.
39630 * cfgloop.c (get_loop_location): New function.
39631 * cfgloop.h (get_loop_location): Declare.
39632
39633 2013-01-02 Sriraman Tallam <tmsriram@google.com>
39634
39635 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
39636 NULL.
39637
39638 2013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
39639
39640 PR middle-end/55198
39641 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
39642 BLKmode objects when EXPAND_MEMORY is specified.
39643
39644 2013-01-02 Sriraman Tallam <tmsriram@google.com>
39645
39646 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
39647 in loop predicate.
39648 (fold_builtin_cpu): Do not share cpu model decls across statements.
39649
39650 2013-01-02 Jason Merrill <jason@redhat.com>
39651
39652 PR c++/55804
39653 * tree.c (build_array_type_1): Revert earlier change.
39654
39655 2013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
39656
39657 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
39658 "cortex-a57".
39659 * config/aarch64/aarch64-tune.md: Re-generate.
39660
39661 2013-01-02 Richard Biener <rguenther@suse.de>
39662
39663 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
39664 invariant load do not generate a vector load from the scalar location.
39665
39666 2013-01-02 Richard Biener <rguenther@suse.de>
39667
39668 PR bootstrap/55784
39669 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
39670 * configure: Regenerate.
39671
39672 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
39673
39674 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
39675 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
39676 (expand_builtin_int_roundingfn_2): Keep the original target around
39677 for the fallback case.
39678
39679 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
39680
39681 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
39682 to be clear for sign changes.
39683
39684 2013-01-01 Jan Hubicka <jh@suse.cz>
39685
39686 * ipa-inline-analysis.c: Fix formatting.
39687
39688 2013-01-01 Jakub Jelinek <jakub@redhat.com>
39689
39690 PR tree-optimization/55831
39691 * tree-vect-loop.c (get_initial_def_for_induction): Use
39692 gsi_after_labels instead of gsi_start_bb.
39693 \f
39694 Copyright (C) 2013 Free Software Foundation, Inc.
39695
39696 Copying and distribution of this file, with or without modification,
39697 are permitted in any medium without royalty provided the copyright
39698 notice and this notice are preserved.