rx.md (comparesi3_extend): Remove = modifier from input operand.
[gcc.git] / gcc / ChangeLog
1 2012-06-27 Nick Clifton <nickc@redhat.com>
2
3 * config/rx/rx.md (comparesi3_extend): Remove = modifier from
4 input operand.
5
6 2012-06-27 Richard Guenther <rguenther@suse.de>
7
8 PR middle-end/53676
9 * tree-chrec.c (chrec_convert_1): Represent truncation to
10 a type with undefined overflow as truncation to an unsigned
11 type converted to the type with undefined overflow.
12 * tree-scalar-evolution.c (interpret_rhs_expr): For computing
13 the scalar evolution of a truncated widened operation avoid
14 looking at the non-existing evolution of the widened operation
15 result.
16
17 2012-06-27 Richard Guenther <rguenther@suse.de>
18
19 PR tree-optimization/53774
20 * tree-ssa-reassoc.c (get_rank): All default defs have
21 precomputed rank.
22 (init_reassoc): Precompute rank for all SSA default defs.
23
24 2012-06-27 Nick Clifton <nickc@redhat.com>
25
26 * config/rx/rx.md (simple_return): Use the simple_return rtx.
27
28 2012-06-26 Richard Henderson <rth@redhat.com>
29
30 * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
31 and don't fall thru from standard_80387_constant_p to the memory
32 fallback,
33
34 2012-06-26 Richard Henderson <rth@redhat.com>
35
36 * config/i386/i386.c (bdesc_args): Update. Change
37 IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
38 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
39 (ix86_builtin_mul_widen_even): Use it.
40 (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
41 (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
42 * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
43 for all SSE2.
44 (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
45 (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise. Relax from V124_AVX2.
46 (vec_widen_smult_even_v4si): New.
47
48 2012-06-26 Richard Henderson <rth@redhat.com>
49
50 * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
51 to expander; move guts to ...
52 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here. Add
53 highparts before shifting up.
54 * config/i386/i386-protos.h: Update.
55
56 2012-06-26 Steven Bosscher <steven@gcc.gnu.org>
57
58 * system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
59 * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
60 * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
61
62 2012-06-26 Alexandre Oliva <aoliva@redhat.com>
63
64 * var-tracking.c (vt_add_function_parameter): Use a preserved
65 VALUE for the MEM address of an incoming parameter.
66
67 2012-06-26 Sterling Augustine <saugustine@google.com>
68
69 * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
70 (prune_unused_types): Likewise.
71
72 2012-06-26 Steven Bosscher <steven@gcc.gnu.org>
73
74 * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
75 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
76 * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
77 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
78 VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
79 VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
80 * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
81 UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
82 * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
83 documentation.
84 * doc/tm.texi: Regenerate.
85 * doc/cpp.texi: Make example for #error generic.
86 * config/frv/frv.h: Fix example text to match tm.texi.
87
88 2012-06-26 Bill Schmidt <wschmidt@linux.ibm.com>
89
90 * tree-pass.h (pass_strength_reduction): New decl.
91 * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
92 (finalize_costs): Likewise.
93 * timevar.def (TV_TREE_SLSR): New timevar.
94 * gimple-ssa-strength-reduction.c: New.
95 * tree-flow.h (initialize_costs): New decl.
96 (finalize_costs): Likewise.
97 * Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
98 * passes.c (init_optimization_passes): Add pass_strength_reduction.
99
100 2012-06-26 Matt Turner <mattst88@gmail.com>
101
102 * doc/extend.texi (__builtin_arm_tinsrb): Add missing second
103 parameter.
104 (__builtin_arm_tinsrh): Likewise.
105 (__builtin_arm_tinsrw): Likewise.
106 (__builtin_arm_wsadb): Add missing v2si parameter.
107 (__builtin_arm_wsadh): Likewise.
108 (__builtin_arm_getwcx): Delete.
109 (__builtin_arm_setwcx): Delete.
110 (__builtin_arm_getwcgr0): Add.
111 (__builtin_arm_getwcgr1): Add.
112 (__builtin_arm_getwcgr2): Add.
113 (__builtin_arm_getwcgr3): Add.
114 (__builtin_arm_setwcgr0): Add.
115 (__builtin_arm_setwcgr1): Add.
116 (__builtin_arm_setwcgr2): Add.
117 (__builtin_arm_setwcgr3): Add.
118
119 2012-06-26 Richard Guenther <rguenther@suse.de>
120
121 Revert
122 2012-06-21 Richard Guenther <rguenther@suse.de>
123
124 * tree-inline.c (estimate_num_insns): Estimate call cost for
125 tailcalls properly.
126
127 2012-06-26 Steven Bosscher <steven@gcc.gnu.org>
128
129 PR other/33190
130 * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
131 * doc/tm.texi: Regenerate.
132
133 2012-06-26 Steven Bosscher <steven@gcc.gnu.org>
134
135 PR other/33190
136 * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
137 * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
138 * doc/tm.texi.in: Remove documentation for unused target macros
139 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
140 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
141 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
142 TARGET_NARROW_VOLATILE_BITFIELDS.
143 Document that MD_HANDLE_UNWABI is a macro in libgcc.
144 * doc/tm.texi: Regenerate.
145 * system.h: Poison target macros
146 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
147 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
148 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
149 TARGET_NARROW_VOLATILE_BITFIELDS
150
151 2012-06-26 Jan Hubicka <jh@suse.cz>
152
153 PR lto/53572
154 * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
155 used symbols.
156
157 2012-06-26 Dehao Chen <dehao@google.com>
158
159 * tree-inline.c: (expand_call_inline): Ensure that lexical block's
160 source location is consistant with the call stmt.
161
162 2012-06-26 Ulrich Weigand <ulrich.weigand@linaro.org>
163
164 PR tree-optimization/53729
165 PR tree-optimization/53636
166 * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
167 vect_verify_datarefs_alignment until after statements have
168 been marked as relevant/irrelevant.
169 * tree-vect-data-refs.c (vect_verify_datarefs_alignment):
170 Skip irrelevant statements.
171 (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
172 instead of STMT_VINFO_RELEVANT.
173 (vect_get_data_access_cost): Do not check for supportable
174 alignment before calling vect_get_load_cost/vect_get_store_cost.
175 * tree-vect-stmts.c (vect_get_store_cost): Do not abort when
176 handling unsupported alignment.
177 (vect_get_load_cost): Likewise.
178
179 2012-06-25 Steven Bosscher <steven@gcc.gnu.org>
180
181 * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
182 Do not define JMP_BUF_SIZE.
183
184 2012-06-26 Jakub Jelinek <jakub@redhat.com>
185
186 PR tree-optimization/53748
187 * tree-ssa-phiopt.c (conditional_replacement): Only optimize
188 if arg0/arg1 have integral or pointer types.
189
190 2012-06-25 Richard Henderson <rth@redhat.com>
191
192 * config/i386/sse.md (sse2_sse4_1): Remove code attr.
193 (<s>dot_prodv4si, <s>dot_prodv8si): Remove
194 (sdot_prodv4si): New; handle only XOP.
195
196 2012-06-25 Richard Henderson <rth@redhat.com>
197
198 * config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
199 (V2UDI_FUNC_V4USI_V4USI): New.
200 (V4UDI_FUNC_V8USI_V8USI): New.
201 * config/i386/i386.c (ix86_expand_args_builtin): Handle them.
202 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
203 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
204 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
205 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
206 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
207 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
208 (bdesc_args): Add them.
209 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
210 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
211 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
212 (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
213 * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.
214
215 2012-06-25 Richard Henderson <rth@redhat.com>
216
217 * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.
218
219 2012-06-25 Richard Henderson <rth@redhat.com>
220
221 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost
222 to V16QImode.
223 (ix86_expand_vec_interleave): New.
224 (ix86_expand_mul_widen_evenodd): New.
225 (ix86_expand_mul_widen_hilo): New.
226 (ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd.
227 * config/i386/i386.md (u_bool) New code attr.
228 * config/i386/predicates.md
229 (nonimmediate_or_const_vector_operand): Remove.
230 * config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test
231 both AVX and SSE4_1.
232 (vec_widen<s>mult_hi_<VI2_AVX2>): Remove.
233 (vec_widen<s>mult_lo_<VI2_AVX2>): Remove.
234 (vec_widen<s>mult_hi_v8si): Remove.
235 (vec_widen<s>mult_lo_v8si): Remove.
236 (vec_widen_smult_hi_v4si): Remove.
237 (vec_widen_smult_lo_v4si): Remove.
238 (vec_widen_umult_hi_v4si): Remove.
239 (vec_widen_umult_lo_v4si): Remove.
240 (vec_widen_<s>mult_hi_<VI124_AVX2>): New.
241 (vec_widen_<s>mult_lo_<VI124_AVX2>): New.
242 * config/i386/i386-protos.h: Update.
243
244 2012-06-25 Christophe Lyon <christophe.lyon@st.com>
245
246 * config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
247 (neon_vld1_dup): Restrict to VQ operands.
248 (neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
249
250 2012-06-25 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
251 James Greenhalgh <james.greenhalgh@arm.com>
252
253 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
254 (TARGET_FMA): New macro.
255 (TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
256 (TARGET_ARM_ARCH): Likewise.
257 (TARGET_ARM_ARCH_ISA_THUMB): Likewise.
258 (TARGET_V6M, TARGET_V7M): Likewise.
259 (TARGET_ARM_ARCH_PROFILE): Likewise.
260 (TARGET_ARM_FEATURE_LDREX): Likewise.
261 (TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
262 (ARM_MIN_ENUM_SIZE): Likewise.
263 * config/arm/arm.c (arm_file_start): Refactor appropriately.
264 (base_architecture): New enumeration.
265 (arm_base_arch): New global variable.
266 (processors): Add field base_arch.
267 (ARM_ARCH, ARM_CORE): Adjust accordingly.
268 (arm_option_override): Add initialization of arm_base_arch.
269 * doc/cpp.texi (system-specific predefined macros.): Change.
270
271 2012-06-25 Jakub Jelinek <jakub@redhat.com>
272
273 PR target/53759
274 * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
275 of x x x in the vmovlps load alternative.
276
277 2012-06-25 Richard Sandiford <rdsandiford@googlemail.com>
278
279 PR debug/53740
280 * df.h (dead_debug_add): Remove third argument.
281 * df-problems.c (dead_debug_add): Likewise. Use the REGNO of the
282 REG that we want to replace instead.
283 (dead_debug_insert_temp): Use the REGNO of the reg that we want
284 to replace instead of DF_REF_REGNO. Require there to always be
285 at least one such use. Check for cases where the same location
286 has more than df_ref associated with it.
287 (df_note_bb_compute): Remove third dead_debug_add argument.
288 * dce.c (word_dce_process_block): Likewise.
289
290 2012-06-25 Steven Bosscher <steven@gcc.gnu.org>
291
292 * config/v850/v850.c: Remove redundant extern declarations for
293 last_assemble_variable_decl and size_directive_output.
294
295 * doc/tm.texi.in: Document JMP_BUF_SIZE.
296 * doc/tm.texi: Regenerate.
297 * config/sparc/sparc.h (JMP_BUF_SIZE): Do not define.
298 * config/pa/pa.h (JMP_BUF_SIZE): Likewise.
299 * config/stormy16/stormy16.h: Likewise.
300
301 * config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP.
302
303 * doc/sourcebuild.texi: Add missing subdirectories.
304
305 2012-06-25 Tristan Gingold <gingold@adacore.com>
306
307 * config/i386/i386.h: Fix typo.
308
309 2012-06-25 Tristan Gingold <gingold@adacore.com>
310
311 * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
312 (seh_cfa_adjust_cfa): ... that function.
313 (seh_emit_stackalloc): Do not emit out of range values.
314 * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
315 UNSPEC_DEF_CFA constants.
316 * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
317 * config/i386/i386.c (ix86_frame_pointer_required): Required
318 for very large frames on SEH target.
319 (ix86_compute_frame_layout): Save area is before frame pointer
320 on SEH target. Handle very large frames.
321 (ix86_expand_prologue): Likewise.
322
323 2012-06-24 Steven Bosscher <steven@gcc.gnu.org>
324
325 * output.h: (current_function_is_leaf,
326 current_function_sp_is_unchanging,
327 current_function_uses_only_leaf_regs): Remove.
328 * function.c (current_function_is_leaf,
329 current_function_sp_is_unchanging,
330 current_function_uses_only_leaf_regs): Remove.
331 (rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs
332 instead of current_function_uses_only_leaf_regs.
333 * function.h (struct rtl_data): New fields sp_is_unchanging,
334 is_leaf, uses_only_leaf_regs.
335 * resource.c (init_resource_info): Replace current_function_is_leaf,
336 current_function_sp_is_unchanging, and
337 current_function_uses_only_leaf_regs with new crtl fields.
338 * sdbout.c (sdbout_symbol): Likewise.
339 * df-core.c (rest_of_handle_df_initialize): Likewise.
340 * ira.c (ira): Likewise.
341 * final.c (final_start_function): Likewise.
342 * reorg.c (fill_simple_delay_slots): Likewise.
343 * regrename.c (check_new_reg_p): Likewise.
344 * stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise.
345 (notice_stack_pointer_modification): Likewise.
346 * dbxout.c (dbxout_symbol): Likewise.
347 (dbxout_parms): Likewise.
348 * sel-sched.c (init_regs_for_mode): Likewise.
349 * dwarf2out.c (dbx_reg_number): Likewise.
350 (multiple_reg_loc_descriptor): Likewise.
351 * config/i386/i386.c (ix86_frame_pointer_required): Likewise.
352 (gen_pop): Likewise.
353 (ix86_select_alt_pic_regnum): Likewise.
354 (ix86_compute_frame_layout): Likewise.
355 (ix86_finalize_stack_realign_flags): Likewise.
356 (ix86_expand_epilogue): Likewise.
357 * config/rs6000/rs6000.c (rs6000_stack_info): Likewise.
358 * config/h8300/h8300.c (byte_reg): Likewise.
359 * config/c6x/c6x.c (must_reload_pic_reg_p): Likewise.
360 (c6x_save_reg): Likewise.
361 (c6x_compute_frame_layout): Likewise.
362 * config/pa/pa.c (pa_compute_frame_size): Likewise.
363 (pa_output_function_prologue): Likewise.
364 * config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise.
365 * config/sparc/sparc.md (attr "leaf_function"): Likewise.
366 * config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise.
367 (sparc_expand_prologue): Likewise.
368 (sparc_flat_expand_prologue): Likewise.
369 (sparc_asm_function_prologue): Likewise.
370 (sparc_output_mi_thunk): Likewise.
371 (sparc_frame_pointer_required): Likewise.
372 * config/epiphany/epiphany.c (epiphany_compute_function_type):
373 Likewise.
374 (epiphany_compute_frame_size): Likewise.
375 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
376 * config/cris/cris.c (cris_md_asm_clobbers): Likewise.
377 (cris_frame_pointer_required): Likewise.
378 * config/tilepro/tilepro.c (emit_sp_adjust): Likewise.
379 (tilepro_current_function_is_leaf): Likewise.
380 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise.
381 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
382 * config/ia64/ia64.c (find_gr_spill): Likewise.
383 (ia64_compute_frame_size): Likewise.
384 (ia64_can_eliminate): Likewise.
385 (ia64_initial_elimination_offset): Likewise.
386 * config/m68k/m68k.c (m68k_save_reg): Likewise.
387 (m68k_expand_epilogue): Likewise.
388 * config/rx/rx.c (rx_get_stack_layout): Likewise.
389 * config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise.
390 * config/picochip/picochip.c (picochip_can_eliminate_link_sp_save):
391 Likewise.
392 (picochip_output_frame_debug): Likewise.
393 * config/sh/sh.c (sh_media_register_for_return): Likewise.
394 (sh_allocate_initial_value): Likewise.
395 (sh_output_mi_thunk): Likewise.
396 * config/microblaze/microblaze.c (microblaze_must_save_register):
397 Likewise.
398 (compute_frame_size): Likewise.
399 (microblaze_initial_elimination_offset): Likewise.
400 (microblaze_expand_prologue): Likewise.
401 (microblaze_expand_epilogue): Likewise.
402 * config/frv/frv.c (frv_expand_epilogue): Likewise.
403 (frv_frame_pointer_required): Likewise.
404 * config/spu/spu.c (get_pic_reg): Likewise.
405 (direct_return): Likewise.
406 (spu_expand_prologue): Likewise.
407 (spu_expand_epilogue): Likewise.
408 (spu_initial_elimination_offset): Likewise.
409 * config/mips/mips.c (mips_global_pointer): Likewise.
410 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
411 (mips_compute_frame_info): Likewise.
412 * config/mep/mep.c (mep_interrupt_saved_reg): Likewise.
413 (mep_reload_pointer): Likewise.
414 * config/rl78/rl78.c (need_to_save): Likewise.
415 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
416 * config/score/score.c (score_compute_frame_size): Likewise.
417 (score_function_prologue): Likewise.
418 * config/bfin/bfin.c (must_save_p): Likewise.
419 (expand_prologue_reg_save): Likewise.
420 (expand_epilogue_reg_restore): Likewise.
421 (bfin_frame_pointer_required): Likewise.
422 (n_regs_saved_by_prologue): Likewise.
423 (add_to_reg): Likewise.
424 (expand_interrupt_handler_prologue): Likewise.
425 (expand_interrupt_handler_epilogue): Likewise.
426 (bfin_expand_prologue): Likewise.
427 * config/avr/avr.c (avr_regs_to_save): Likewise.
428 (avr_prologue_setup_frame): Likewise.
429 (expand_epilogue): Likewise.
430 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
431 (s390_register_info): Likewise.
432 (s390_frame_info): Likewise.
433 (s390_init_frame_layout): Likewise.
434 (s390_emit_prologue): Likewise.
435
436
437 2012-06-24 Steven Bosscher <steven@gcc.gnu.org>
438
439 * system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE.
440 * vmsdbgout: Do not undefine it if defined.
441 Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP.
442 * config/microblaze/microblaze/h: Do no define ASM_BYTE_OP.
443 * config/mep/mep.h: Do not define ASM_OUTPUT_BYTE.
444
445 2012-06-24 Richard Sandiford <rdsandiford@googlemail.com>
446
447 * config/mips/mips.c (mips_process_sync_loop): Add missing
448 enum cast.
449
450 2012-06-23 Richard Henderson <rth@redhat.com>
451
452 PR target/53749
453 * config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for
454 V*QImode shifts and multiply.
455 (ix86_expand_vecop_qihi): Support shifts.
456 * config/i386/i386.md (any_shift): New code iterator.
457 * config/i386/sse.md (ashlv16qi3): Merge ...
458 (<any_shiftrt>v16qi3): ... into ...
459 (<any_shift><VI1_AVX2>3): ... here. Use ix86_expand_vecop_qihi
460 to support SSE and AVX.
461
462 * config/i386/i386.c (ix86_expand_sse_unpack): Split operands[]
463 parameter into src and dest.
464 * config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call.
465 (vec_unpacks_hi_<V124_AVX2>): Likewise.
466 (vec_unpacku_lo_<V124_AVX2>): Likewise.
467 (vec_unpacks_lo_<V124_AVX2>): Likewise.
468 * config/i386/i386-protos.h: Update.
469
470 * config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to
471 pure expander; move expansion code ...
472 * config/i386/i386.c (ix86_expand_vecop_qihi): ... here. New function.
473 * config/i386/i386-protos.h: Update.
474
475 2012-06-22 Edmar Wienskoski <edmar@freescale.com>
476
477 * config/rs6000/rs6000.md (define_attr "type"): New type popcnt.
478 (popcntb<mode>2): Add attribute type popcnt.
479 (popcntd<mode>2): Ditto.
480 * config/rs6000/power4.md (define_insn_reservation): Add type popcnt.
481 * config/rs6000/power5.md (define_insn_reservation): Ditto.
482 * config/rs6000/power7.md (define_insn_reservation): Ditto.
483 * config/rs6000/476.md (define_insn_reservation): Ditto.
484 * config/rs6000/power6.md (define_insn_reservation): New
485 reservation for popcnt instructions.
486
487 2012-06-22 H.J. Lu <hongjiu.lu@intel.com>
488
489 * doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning.
490
491 2012-06-22 H.J. Lu <hongjiu.lu@intel.com>
492
493 PR target/53383
494 * doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3.
495
496 * config/i386/i386.c (ix86_option_override_internal): Allow
497 -mpreferred-stack-boundary=3 for 64-bit if SSE is disabled.
498
499 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit
500 if SSE is disabled.
501
502 2012-06-22 Bill Schmidt <wschmidt@linux.ibm.com>
503
504 * double-int.c (double_int_multiple_of): New function.
505 * double-int.h (double_int_multiple_of): New decl.
506 * tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs.
507 (mbc_entry_hash): New forward decl.
508 (mbc_entry_eq): Likewise.
509 (zero_cost): Change to no_cost.
510 (mult_costs): New static var.
511 (cost_tables_exist): Likewise.
512 (initialize_costs): New function.
513 (finalize_costs): Likewise.
514 (tree_ssa_iv_optimize_init): Call initialize_costs.
515 (add_cost): Change to add_regs_cost; distinguish costs by speed.
516 (multiply_regs_cost): New function.
517 (add_const_cost): Likewise.
518 (extend_or_trunc_reg_cost): Likewise.
519 (negate_reg_cost): Likewise.
520 (multiply_by_cost): Change to multiply_by_const_cost; distinguish
521 costs by speed.
522 (get_address_cost): Change add_cost to add_regs_cost; change
523 multiply_by_cost to multiply_by_const_cost.
524 (force_expr_to_var_cost): Change zero_cost to no_cost; change
525 add_cost to add_regs_cost; change multiply_by_cost to
526 multiply_by_const_cost.
527 (split_cost): Change zero_cost to no_cost.
528 (ptr_difference_cost): Likewise.
529 (difference_cost): Change zero_cost to no_cost; change multiply_by_cost
530 to multiply_by_const_cost.
531 (get_computation_cost_at): Change add_cost to add_regs_cost; change
532 multiply_by_cost to multiply_by_const_cost.
533 (determine_use_iv_cost_generic): Change zero_cost to no_cost.
534 (determine_iv_cost): Change add_cost to add_regs_cost.
535 (iv_ca_new): Change zero_cost to no_cost.
536 (tree_ssa_iv_optimize_finalize): Call finalize_costs.
537 * tree-ssa-address.c (most_expensive_mult_to_index): Change
538 multiply_by_cost to multiply_by_const_cost.
539 * tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost.
540 (add_regs_cost): New decl.
541 (multiply_regs_cost): Likewise.
542 (add_const_cost): Likewise.
543 (extend_or_trunc_reg_cost): Likewise.
544 (negate_reg_cost): Likewise.
545
546 2012-06-22 Richard Guenther <rguenther@suse.de>
547
548 Merge from graphite branch
549 2011-08-10 Sebastian Pop <sebpop@gmail.com>
550
551 * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
552
553 2012-01-13 Tobias Grosser <tobias@grosser.es>
554
555 * tree-flow.h (parallelized_function_p): Declare.
556 * tree-parloops.c (parallelized_function_p): Export.
557 * graphite.c (graphite_transform_loops): Do not run graphite on
558 already parallel functions.
559
560 2012-06-22 Alan Modra <amodra@gmail.com>
561
562 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and
563 return mem. Convert to indirect addressing if not indirect or
564 indexed. Adjust all callers.
565
566 2012-06-22 Richard Guenther <rguenther@suse.de>
567
568 * gcov-iov.c: Include bconfig.h and system.h.
569
570 2012-06-22 Andreas Schwab <schwab@linux-m68k.org>
571
572 * doc/include/texinfo.tex: Update to version 2012-06-05.14.
573
574 2012-06-22 Richard Guenther <rguenther@suse.de>
575
576 PR gcov-profile/53744
577 * gcov-iov.c (main): Treat "" and "prerelease" the same.
578
579 2012-06-22 Eric Botcazou <ebotcazou@adacore.com>
580
581 PR debug/53704
582 * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language
583 for GNU Fortran if in strict DWARF2 mode.
584
585 2012-06-22 Eric Botcazou <ebotcazou@adacore.com>
586
587 * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
588 DECL_IGNORED_P non-reg vars even if they are used.
589
590 2012-06-21 Alexandre Oliva <aoliva@redhat.com>
591
592 PR debug/53671
593 PR debug/49888
594 * var-tracking.c (vt_get_canonicalize_base): New.
595 (vt_canonicalize_addr, vt_stack_offset_p): New.
596 (vt_canon_true_dep): New.
597 (drop_overlapping_mem_locs): Use vt_canon_true_dep.
598 (clobber_overlaping_mems): Use vt_canonicalize_addr.
599
600 2012-06-21 Alexandre Oliva <aoliva@redhat.com>
601
602 PR debug/53671
603 PR debug/49888
604 * var-tracking.c (vt_initialize): Record initial offset between
605 arg pointer and stack pointer.
606
607 2012-06-21 Alexandre Oliva <aoliva@redhat.com>
608
609 PR debug/53671
610 PR debug/49888
611 * var-tracking.c (vt_init_cfa_base): Drop redundant recording of
612 CFA base.
613
614 2012-06-21 Alexandre Oliva <aoliva@redhat.com>
615
616 PR debug/53671
617 PR debug/49888
618 * alias.c (memrefs_conflict_p): Improve handling of AND for
619 alignment.
620
621 2012-06-21 Alexandre Oliva <aoliva@redhat.com>
622
623 * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug.
624
625 2012-06-21 Alexandre Oliva <aoliva@redhat.com>
626
627 PR debug/53682
628 * cselib.c (promote_debug_loc): Don't crash on NULL argument.
629
630 2012-06-21 Meador Inge <meadori@codesourcery.com>
631
632 PR c/53702
633 * c-decl.c (c_push_function_context): Restore the behavior to reuse
634 the language function allocated for -Wunused-local-typedefs.
635 (c_pop_function_context): If necessary, clear the language function
636 created in c_push_function_context. Always clear out the
637 x_cur_stmt_list field of the restored language function.
638
639 2012-06-21 Sterling Augustine <saugustine@google.com>
640 Cary Coutant <ccoutant@google.com>
641
642 * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
643 add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
644 (comdat_type_struct): New field 'skeleton_die'.
645 (breakout_comdat_types): Update it.
646 (add_pubname): Rework logic. Call is_class_die, is_cu_die and
647 is_namespace_die. Fix minor style violation. Call want_pubnames.
648 (add_pubname_string): Call want_pubnames.
649 (add_pubtype): Rework logic for calculating type name. Call
650 is_namespace_die. Call want_pubnames.
651 (output_pubnames): Move conditional logic deciding when to produce the
652 section from dwarf2out_finish. Use new skeleton_die field.
653 (base_type_die): Call add_pubtype.
654 (gen_enumeration_type_die): Unconditionally call add_pubtype.
655 (gen_subprogram_die): Adjust calls to add_pubname.
656 (gen_namespace_die): Call add_pubname_string.
657 (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
658 produce pubnames and pubtypes sections to output_pubnames.
659 * common.opt (-gpubnames): New option.
660 * doc/invoke.texi: Document it.
661
662 2012-06-21 Steven Bosscher <steven@gcc.gnu.org>
663
664 * config/m32c/m32c-pragma.c: Remove unnecessary includes.
665
666 2012-06-21 Michael Matz <matz@suse.de>
667
668 PR middle-end/53688
669 * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
670 with correct size.
671
672 2012-06-21 Richard Guenther <rguenther@suse.de>
673
674 * tree-inline.c (estimate_num_insns): Estimate call cost for
675 tailcalls properly.
676
677 2012-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
678
679 * tree.h (DECL_SOURCE_COLUMN): New accessor.
680
681 2012-06-20 Uros Bizjak <ubizjak@gmail.com>
682
683 * config/i386/i386.md (SINCOS): New int iterator.
684 (sincos): New int attribute.
685 (*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
686 SINCOS int iterator.
687 (*<sincos>_extend<mode>xf2_i387): Macroize insn from
688 *{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.
689
690 2012-06-20 Uros Bizjak <ubizjak@gmail.com>
691
692 * config/i386/i386.md (RDFSGSBASE): New int iterator.
693 (WRFSGSBASE): Ditto.
694 (fsgs): New int attribute.
695 (rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
696 RDFSGSBASE int iterator.
697 (wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
698 WRFSGSBASE int iterator.
699
700 2012-06-20 Uros Bizjak <ubizjak@gmail.com>
701
702 * config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
703 from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
704 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
705 from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
706 int iterator.
707
708 2012-06-20 Steven Bosscher <steven@gcc.gnu.org>
709
710 * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.
711
712 2012-06-20 Richard Guenther <rguenther@suse.de>
713
714 PR tree-optimization/30318
715 * tree-vrp.c (range_int_cst_p): Do not reject overflowed
716 constants here.
717 (range_int_cst_singleton_p): But explicitely here.
718 (zero_nonzero_bits_from_vr): And here.
719 (extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
720 to cover all cases we can perform arbitrary precision
721 arithmetic with double-ints.
722 (intersect_ranges): Handle adjacent anti-ranges.
723
724 2012-06-20 Uros Bizjak <ubizjak@gmail.com>
725
726 * config/i386/i386.md (rounding_insn): New int attribute.
727 (<rounding_insn>xf2): Macroize insn from
728 {floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
729 (l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.
730
731 2012-06-20 Uros Bizjak <ubizjak@gmail.com>
732
733 * config/i386/i386.md (IEEE_MAXMIN): New int iterator.
734 (ieee_maxmin): New int attribute.
735 (*ieee_s<ieee_maxmin><mode>3): Macroize insn from
736 *ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator.
737
738 2012-06-20 Steven Bosscher <steven@gcc.gnu.org>
739
740 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
741 * config/arm/arm.c: Do not include c-pragma.h.
742 (arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
743 (arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
744 to arm_emit_eabi_attribute.
745 * arm-c.c: Do not include output.h.
746 (arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
747 call to arm_emit_eabi_attribute.
748 * config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.
749
750 2012-06-20 Richard Guenther <rguenther@suse.de>
751
752 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
753 Allow adjusting alignment of user-aligned decls again.
754
755 2012-06-20 Steven Bosscher <steven@gcc.gnu.org>
756
757 * config/rl78/rl78-c.c: Remove unnecessary includes.
758
759 2012-06-20 Steven Bosscher <steven@gcc.gnu.org>
760
761 * config/cris/cris.c: Include cgraph.h.
762 (cris_option_override): Do not set non-existing flag_no_gcc_ident.
763
764 2012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
765
766 * emit-rtl.c (need_atomic_barrier_p): New function.
767 * emit-rtl.h (need_atomic_barrier_p): Declare it.
768 * config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
769 * config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
770 * config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
771 * config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
772 (mips_process_sync_loop): Use generic version instead.
773
774 2012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
775
776 * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
777 it is used.
778
779 2012-06-19 Tom de Vries <vries@codesourcery.com>
780 Maxim Kuvyrkov <maxim@codesourcery.com>
781
782 * config/mips/constraints.md (ZR): New constraint.
783 * config/mips/predicates.md (mem_noofs_operand): New predicate.
784 * config/mips/mips.c (mips_print_operand): Handle new print modifier.
785 * config/mips/mips.h (TARGET_XLP): Define.
786 (TARGET_SYNC_AFTER_SC): Update.
787 (ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
788 * config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
789 XLP-specific swap and ldadd patterns.
790 (atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.
791
792 2012-06-19 Tom de Vries <vries@codesourcery.com>
793 Maxim Kuvyrkov <maxim@codesourcery.com>
794
795 * config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
796 (mips_emit_post_atomic_barrier_p): New static functions.
797 (mips_process_sync_loop): Use them. Emit sync memory barriers in
798 accordance with memory model semantics. Add return of CMP result for
799 compare_and_swap.
800 * config/mips/mips.md: Update comment.
801 (sync_cmp): New attribute.
802 (sync_memmodel): New attribute replacing sync_release_barrier.
803 * config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
804 (UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
805 (sync_lock_test_and_set, test_and_set_12): Update.
806 (atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
807 (atomic_fetch_add, atomic_fetch_add_llsc): New patterns.
808
809 2012-06-19 Joseph Myers <joseph@codesourcery.com>
810
811 * config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
812 mov_si<mode>_e500_subreg0.
813 (*mov_si<mode>_e500_subreg0_elf_low)
814 (*mov_si<mode>_e500_subreg4_elf_low): New patterns.
815
816 2012-06-19 Richard Henderson <rth@redhat.com>
817
818 * config/alpha/alpha.c: Include params.h.
819 (alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE,
820 PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning.
821
822 2012-06-19 Steven Bosscher <steven@gcc.gnu.org>
823
824 * doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
825 TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
826 (ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
827 Remove.
828 * doc/tm.texi: Regenerate.
829 * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
830 .objc_class_name_*.
831 * config/darwin-c.c: Include target.h.
832 (darwin_objc_declare_unresolved_class_reference): New function.
833 (darwin_objc_declare_class_definition): New function.
834 (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
835 (TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.
836
837 2012-06-19 Steven Bosscher <steven@gcc.gnu.org>
838
839 * target.def (output_ident): New hook.
840 * targhooks.h (default_asm_output_ident_directive): Add prototype.
841 * varasm.c (assemble_asm): Only prefix a tab if the string does not
842 already start with one.
843 (default_asm_output_ident_directive): New function to emit
844 .ident as a top-level asm node while parsing, or directly to
845 asm_out_file after parsing.
846 * toplev.c (compile_file): Print a GCC .ident with
847 targetm.asm_out.output_ident.
848 * doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
849 (TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
850 * doc/tm.texi: Update.
851
852 * config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
853 (TARGET_ASM_OUTPUT_IDENT): Define.
854 * config/i386/djgpp.h (IDENT_ASM_OP): Remove.
855 * config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
856 * config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
857 * config/sparc/sparc.h (IDENT_ASM_OP): Remove.
858 (TARGET_ASM_OUTPUT_IDENT): Define.
859 * config/picochip/picochip.h (IDENT_ASM_OP): Remove.
860 (TARGET_ASM_OUTPUT_IDENT): Define.
861
862 * config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
863 * config/cris/cris.c (cris_asm_output_ident): New function.
864 * config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
865
866 * config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
867 Add prototype.
868 * config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
869 (microblaze_asm_output_ident): Rewrite to work similar to
870 default_asm_output_ident_directive for front-end .idents.
871 * config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
872 (TARGET_ASM_OUTPUT_IDENT): Define.
873
874 * config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
875 * config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.
876
877 * config/rx/rx.c: Include cgraph.h for add_asm_node.
878 (rx_asm_output_ident): New function, similar to
879 default_asm_output_ident_directive, but handle AS100 syntax also, so
880 that #ident also works for rx in AS100 syntax.
881 (TARGET_ASM_OUTPUT_IDENT): Define.
882 * config/rx/rx.h (IDENT_ASM_OP): Remove.
883
884 * Makefile.in: Fix dependencies for c-family/c-lex.o.
885
886 2012-06-19 Uros Bizjak <ubizjak@gmail.com>
887
888 * config/i386/i386.md (FIST_ROUNDING): New int iterator.
889 (rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
890 (ROUNDING): Ditto.
891 (*fist<mode>2_<rounding>_1): Macroize insn from
892 *fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
893 (fistdi2_<rounding>): Macroize insn from
894 fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
895 (fistdi2_<rounding>_with_temp and splitters): Macroize insn and
896 corresponding splitters from fistdi2_{floor,ceil} and corresponding
897 splitters using FIST_ROUNDING int iterator.
898 (fist<mode>2_<rounding>): Macroize insn from
899 fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
900 (fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
901 corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
902 splitters using FIST_ROUNDING int iterator.
903 (l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
904 using FIST_ROUNDING int iterator.
905
906 2012-06-19 Richard Henderson <rth@redhat.com>
907
908 * config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare.
909 * config/i386/i386.c (ix86_expand_sse2_mulv4si3): New.
910 * config/i386/predicates.md (nonimmediate_or_const_vector_operand): New.
911 * config/i386/sse.md (sse2_mulv4si3): Delete.
912 (mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and
913 nonimmediate_or_const_vector_operand.
914
915 2012-06-19 Richard Henderson <rth@redhat.com>
916
917 * expmed.c (struct init_expmed_rtl): Split ...
918 (init_expmed_one_mode): ... out of ...
919 (init_expmed): ... here. Initialize integer vector modes also.
920 (synth_mult): Handle integer vector modes.
921 (choose_mult_variant): Likewise.
922 (expand_mult_const): Likewise.
923 (expand_mult): Likewise.
924 * machmode.h (GET_MODE_UNIT_BITSIZE): New.
925
926 2012-06-19 Richard Henderson <rth@redhat.com>
927
928 * config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and
929 integral vector modes.
930
931 2012-06-19 Uros Bizjak <ubizjak@gmail.com>
932
933 * config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
934 (rounding): New int attribute.
935 (ROUNDING): Ditto.
936 (frndintxf2_<rounding>): Macroize insn from
937 frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
938 (frndintxf2_<rounding>_i387): Macroize insn from
939 frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.
940
941 2012-06-19 Richard Guenther <rguenther@suse.de>
942
943 * tree-vrp.c (union_ranges): New function.
944 (vrp_meet_1): Use union_ranges.
945 (vrp_meet): Dump what we union and call vrp_meet_1.
946
947 2012-06-19 Richard Earnshaw <rearnsha@arm.com>
948
949 * arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
950 (attr type): Remove fmul, ffmul, farith, ffarith, float_em
951 f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
952 (attr write_conflict, attr core_cycles): Update.
953 * arm-generic.md (r_mem_f_wbuf): Delete reservation.
954
955 2012-06-19 Richard Guenther <rguenther@suse.de>
956
957 * tree-vrp.c (intersect_ranges): Handle more cases.
958 (vrp_intersect_ranges): Dump what we intersect and call ...
959 (vrp_intersect_ranges_1): ... this.
960
961 2012-06-19 Richard Guenther <rguenther@suse.de>
962
963 PR tree-optimization/53708
964 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
965 user-supplied alignment and alignment of decls with the used
966 attribute.
967
968 2012-06-18 Lawrence Crowl <crowl@google.com>
969
970 * timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
971 (TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
972 (TV_PHASE_STREAM_IN): New.
973 (TV_PHASE_STREAM_OUT): New.
974 * timevar.c (validate_phases): New.
975 (timevar_print): Call validate_phases.
976 * c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
977 to TV_PHASE_OPT_GEN.
978 * langhooks.c (write_global_declarations): Rename use of
979 TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Use TV_PHASE_DBGINFO instead of
980 TV_PHASE_CHECK_DBGINFO.
981 * toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
982 TV_PHASE_LATE_ASM. Move start of TV_PHASE_LATE_ASM to after call to
983 lang_hooks.decls.final_write_globals.
984
985 2012-06-18 David Edelshn <dje.gcc@gmail.com>
986
987 * config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0.
988
989 2012-06-18 Uros Bizjak <ubizjak@gmail.com>
990
991 PR target/53712
992 * config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New.
993 (*sse4_2_pcmpistr_unaligned): New.
994
995 2012-06-18 Ian Bolton <ian.bolton@arm.com>
996 Sameera Deshpande <sameera.deshpande@arm.com>
997 Greta Yorsh <greta.yorsh@arm.com>
998
999 * config/arm/arm-protos.h (arm_output_epilogue): Remove.
1000 * config/arm/arm.c (print_multi_reg): Remove.
1001 (vfp_output_fldmd): Likewise.
1002 (arm_output_epilogue): Likewise.
1003 * config/arm/arm.md (epilogue_insns): Update condition and code.
1004
1005 2012-06-18 Ian Bolton <ian.bolton@arm.com>
1006 Sameera Deshpande <sameera.deshpande@arm.com>
1007 Greta Yorsh <greta.yorsh@arm.com>
1008
1009 * config/arm/arm-protos.h (thumb2_expand_return): New declaration.
1010 * config/arm/arm.c (thumb2_expand_return): New function.
1011 * config/arm/arm.md (return): Update condition and code.
1012
1013 2012-06-18 Ian Bolton <ian.bolton@arm.com>
1014 Sameera Deshpande <sameera.deshpande@arm.com>
1015 Greta Yorsh <greta.yorsh@arm.com>
1016
1017 * config/arm/arm-protos.h (output_return_instruction): New parameter
1018 and int to bool change of parameter types.
1019 * config/arm/arm.c (output_return_instruction): Likewise.
1020 * config/arm/arm.md (arm_simple_return): New pattern.
1021 (arm_return, cond_return, cond_return_inverted): Add new arguments.
1022 * config/arm/thumb2.md (thumb2_return): Update condition and code.
1023
1024 2012-06-18 Ian Bolton <ian.bolton@arm.com>
1025 Sameera Deshpande <sameera.deshpande@arm.com>
1026 Greta Yorsh <greta.yorsh@arm.com>
1027
1028 * config/arm/arm-protos.h (arm_expand_epilogue): New declaration.
1029 * config/arm/arm.c (arm_expand_epilogue): New function.
1030 * config/arm/arm.md (epilogue): Update condition and code.
1031 (sibcall_epilogue): Likewise.
1032
1033 2012-06-18 Ian Bolton <ian.bolton@arm.com>
1034 Sameera Deshpande <sameera.deshpande@arm.com>
1035 Greta Yorsh <greta.yorsh@arm.com>
1036
1037 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
1038 * config/arm/arm.md (arm_addsi3) Add an alternative.
1039
1040 2012-06-18 Ian Bolton <ian.bolton@arm.com>
1041 Sameera Deshpande <sameera.deshpande@arm.com>
1042 Greta Yorsh <greta.yorsh@arm.com>
1043
1044 * config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn.
1045 * config/arm/predicates.md (pop_multiple_fp) New special predicate.
1046 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.
1047
1048 2012-06-18 Ian Bolton <ian.bolton@arm.com>
1049 Sameera Deshpande <sameera.deshpande@arm.com>
1050 Greta Yorsh <greta.yorsh@arm.com>
1051
1052 * config/arm/arm.md (load_multiple_with_writeback) New define_insn.
1053 (load_multiple, pop_multiple_with_writeback_and_return) Likewise.
1054 (pop_multiple_with_return, ldr_with_return) Likewise.
1055 * config/arm/predicates.md (pop_multiple_return) New special predicate.
1056 * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
1057 * config/arm/arm.c (arm_output_multireg_pop) New function.
1058 (arm_emit_multi_reg_pop): New function.
1059
1060 2012-06-18 Greta Yorsh <Greta.Yorsh@arm.com>
1061
1062 * config/arm/arm.c (ldm_stm_operation_p): Require SP
1063 as base register for loads if SP is in the register list.
1064
1065 2012-06-18 Richard Guenther <rguenther@suse.de>
1066
1067 PR tree-optimization/53693
1068 * tree-vect-patterns.c (vect_operation_fits_smaller_type):
1069 Reject operands with more than one use.
1070
1071 2012-06-18 Bill Schmidt <wschmidt@linux.ibm.com>
1072
1073 PR tree-optimization/53703
1074 * tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
1075 correctly set bb_for_def[12].
1076
1077 2012-06-18 Steven Bosscher <steven@gcc.gnu.org>
1078
1079 * config/vax/vax.h (VMS_TARGET): Remove.
1080
1081 2012-06-18 Richard Guenther <rguenther@suse.de>
1082
1083 * tree-vrp.c (extract_range_from_assert): Split out range
1084 intersecting code.
1085 (intersect_ranges): New function.
1086 (vrp_intersect_ranges): Likewise.
1087
1088 2012-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1089
1090 * config/s390/s390.c (s390_gimplify_va_arg): Revert change from
1091 r187965.
1092
1093 2012-06-18 Tejas Belagod <tejas.belagod@arm.com>
1094
1095 * doc/md.texi: Document int iterators.
1096 * read-rtl.c (ints): New iterator group.
1097 (find_int): Int iterator group callback.
1098 (apply_int_iterator): Likewise.
1099 (apply_iterators): Traverse int iterator table and add all the used
1100 iterators to list.
1101 (initialize_iterators): Initialize data structures and callbacks for
1102 int iterators.
1103 (read_rtx): Parse and read mappings for int iterators.
1104 (read_rtx_code): Record int iterator usage.
1105
1106 2012-06-18 Richard Sandiford <rdsandiford@googlemail.com>
1107
1108 PR middle-end/53698
1109 * expr.c (expand_expr_addr_expr_1): Convert to tmode before
1110 performing an addition.
1111
1112 2012-06-17 Steven Bosscher <steven@gcc.gnu.org>
1113
1114 * output.h (split_double): Move prototype to rtl.h.
1115 (constructor_static_from_elts_p): Move prototype to tree.c.
1116 * rtl.h (split_double): Moved here from output.h.
1117 * tree.h (constructor_static_from_elts_p): Moved here from output.h.
1118 * final.c (split_double): Move from here ...
1119 * rtlanal.c (split_double): ... to here.
1120 * expr.c: Do not include output.h.
1121
1122 2012-06-17 Steven Bosscher <steven@gcc.gnu.org>
1123
1124 * cfglayout.h: Remove.
1125 * cfglayout.c: Remove.
1126 * function.h (struct function): Remove x_last_location field.
1127 * function.c: Do not include cfglayout.h.
1128 (expand_function_start): Do not call no-op force_next_line_note.
1129 (expand_function_end): Likewise.
1130 * cfgrtl.c: Do not include cfglayout.h. Include gt-cfgrtl.h.
1131 (unlink_insn_chain): Moved here from cfglayout.c.
1132 (skip_insns_after_block, label_for_bb, record_effective_endpoints,
1133 into_cfg_layout_mode, outof_cfg_layout_mode,
1134 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
1135 relink_block_chain, fixup_reorder_chain, verify_insn_chain,
1136 fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
1137 cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
1138 cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
1139 cfg_layout_finalize): Likewise.
1140 (rtl_can_remove_branch_p): Likewise.
1141 * rtl.h (insn_scope): Move prototype from cfglayout.h here.
1142 (duplicate_insn_chain): Likewise.
1143 (force_next_line_note): Remove prototype.
1144 * emit-rtl.c: Do not include tree-flow.h, egad. Include vecprim.h.
1145 (last_location): Remove #define to emit.x_last_location.
1146 (force_next_line_note): Remove no-op function.
1147 (init_emit): Don't set x_last_location.
1148 (block_locators_locs, block_locators_blocks, locations_locators_locs,
1149 locations_locators_vals, prologue_locator, epilogue_locator,
1150 curr_location, last_location, curr_block, last_block, curr_rtl_loc):
1151 Move POD to here from cfglayout.c.
1152 (insn_locators_alloc, insn_locators_finalize, insn_locators_free,
1153 set_curr_insn_source_location, get_curr_insn_source_location,
1154 set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
1155 locator_scope, insn_scope, locator_location, locator_line, insn_line,
1156 locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
1157 * cfghooks.h: Remove double-include protection.
1158 (can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
1159 * cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
1160 * final.c: Do not include cfglayout.h.
1161 (choose_inner_scope, change_scope): Move to here from cfglayout.c.
1162 (reemit_insn_block_notes): Likewise. Make static.
1163 * tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
1164 operation_could_trap_p, tree_could_throw_p): Move from here...
1165 * tree.h: ... to here.
1166 * gengtype.c (open_base_files): Remove cfglayout.h from the list.
1167 * profile.c: Do not include cfghooks.h.
1168 * cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
1169 * modulo-sched.c: Likewise.
1170 * loop-unswitch.c: Do not include cfglayout.h.
1171 * sched-ebb.c: Likewise.
1172 * tracer.c: Likewise.
1173 * ddg.c: Likewise.
1174 * tree-vect-loop-manip.c: Likewise.
1175 * loop-init.c: Likewise.
1176 * dwarf2out.c: Likewise.
1177 * hw-doloop.c: Likewise.
1178 * loop-unroll.c: Likewise.
1179 * cfgcleanup.c: Likewise.
1180 * bb-reorder.c: Likewise.
1181 * sched-rgn.c: Likewise.
1182 * tree-cfg.c: Likewise.
1183 * config/alpha/alpha.c: Likewise.
1184 * config/spu/spu.c: Likewise.
1185 * config/sparc/sparc.c: Likewise.
1186 * config/sh/sh.c: Likewise.
1187 * config/c6x/c6x.c: Likewise.
1188 * config/ia64/ia64.c: Likewise.
1189 * config/rs6000/rs6000.c: Likewise.
1190 * config/score/score.c: Likewise.
1191 * config/mips/mips.c: Likewise.
1192 * config/bfin/bfin.c: Likewise.
1193 * Makefile.in (CFGAYOUT_H): Remove, and fixup users.
1194 * config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
1195 * config/spu/t-spu-elf (spu.o: $): Likewise.
1196 * config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.
1197
1198 2012-06-17 Steven Bosscher <steven@gcc.gnu.org>
1199
1200 * cfgloop.h: Do not include rtl.h.
1201 (enum iv_extend_code): New.
1202 (struct rtx_iv): Use iv_extend_code instead of rtx_code.
1203 * Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
1204 * loop-iv.c (iv_extend_to_rtx_code): New function to translate
1205 an IV_EXTEND_CODE to an RTX_CODE.
1206 (dump_iv_info): Update for rtx_iv field type change.
1207 (iv_constant): Likewise.
1208 (iv_subreg): Likewise.
1209 (iv_extend): Likewise.
1210 (iv_neg): Likewise.
1211 (iv_add): Likewise.
1212 (iv_mult): Likewise.
1213 (iv_shift): Likewise.
1214 (get_biv_step_1): Likewise.
1215 (get_biv_step): Likewise.
1216 (iv_analyze_biv): Likewise.
1217 (get_iv_value): Likewise.
1218 (shorten_into_mode): Likewise.
1219 (canonicalize_iv_subregs): Likewise.
1220 * sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
1221 of MAY_HAVE_DEBUG_INSNS.
1222 * tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
1223 * tree-ssa-loop-prefetch.c: Likewise.
1224
1225 2012-06-17 Steven Bosscher <steven@gcc.gnu.org>
1226
1227 * expmed.c (ceil_log2): Move from here...
1228 * hwint.c: ... to here for older GCCs...
1229 * hwint.h: ... and here for newer GCCs.
1230 * rtl.h (ceil_log2): Remove prototype.
1231
1232 * tree-phinodes.c: Do not include rtl.h.
1233 * Makefile.in (tree-phinodes.o): Do not depend on RTL_H.
1234
1235 2012-06-17 Steven Bosscher <steven@gcc.gnu.org>
1236
1237 * config/cris/cris.h (TARGET_ELF): Remove.
1238 (FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
1239 (CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
1240 (LOCAL_LABEL_PREFIX): Likewise.
1241 * config/cris/cris.c (cris_target_asm_named_section): Remove.
1242 (cris_option_override): Simpify using TARGET_ELF==1.
1243 (cris_file_start): Likewise.
1244 * config/cris/cris-protos.h (cris_target_asm_named_section): Remove.
1245
1246 2012-06-17 Uros Bizjak <ubizjak@gmail.com>
1247
1248 * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
1249
1250 2012-06-16 Eric Botcazou <ebotcazou@adacore.com>
1251
1252 PR middle-end/53590
1253 * tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.
1254
1255 2012-06-15 Easwaran Raman <eraman@google.com>
1256
1257 * passes.c (init_optimization_passes): Remove pass_call_cdce
1258 from its current position and insert after pass_dce.
1259
1260 2012-06-15 Walter Lee <walt@tilera.com>
1261
1262 * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
1263
1264 2012-06-15 Richard Earnshaw <rearnsha@arm.com>
1265
1266 * arm.c (note_invalid_constants): Don't return a result.
1267 (arm_memory_load_p): Delete function.
1268 (arm_const_double_rtx): Delete iterator variable i;
1269 (fp_immediate_constant): Likewise.
1270 (fp_const_from_val): Likewise.
1271
1272 * arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.
1273
1274 2012-06-15 Marc Glisse <marc.glisse@inria.fr>
1275
1276 PR c++/51033
1277 * c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
1278 * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.
1279
1280 2012-06-15 Georg-Johann Lay <avr@gjlay.de>
1281
1282 * config/avr/avr.c (avr_default_expand_builtin): New function.
1283 (avr_expand_builtin): Use it.
1284 (avr_expand_unop_builtin): Remove.
1285 (avr_expand_binop_builtin): Remove.
1286 (avr_expand_triop_builtin): Remove.
1287
1288 2012-06-15 Michael Matz <matz@suse.de>
1289
1290 PR middle-end/38474
1291 * cfgexpand.c (add_alias_set_conflicts): Remove.
1292 (expand_used_vars): Don't call it.
1293 (aggregate_contains_union_type): Remove.
1294 * function.c (n_temp_slots_in_use): New static data.
1295 (make_slot_available, assign_stack_temp_for_type): Update it.
1296 (init_temp_slots): Zero it.
1297 (remove_unused_temp_slot_addresses): Use it for quicker removal.
1298 (remove_unused_temp_slot_addresses_1): Use htab_clear_slot.
1299
1300 2012-06-15 Michael Matz <matz@suse.de>
1301
1302 * gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
1303 argument, don't emit assign statement if value is directly usable.
1304 (gimplify_expr): Adjust.
1305
1306 2012-06-15 Michael Matz <matz@suse.de>
1307
1308 * gimplify.c (gimplify_modify_expr): Fold generated statements.
1309 * gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.
1310
1311 2012-06-15 Richard Guenther <rguenther@suse.de>
1312
1313 * tree-vrp.c (set_and_canonicalize_value_range): Use canonical
1314 predicates to set VR_UNDEFINED and VR_VARYING. Drop a case
1315 we assert for in set_value_range to VR_VARYING.
1316
1317 2012-06-15 Richard Earnshaw <rearnsha@arm.com>
1318
1319 * arm.md (addsf3, adddf3): Use s_register_operand.
1320 (subsf3, subdf3): Likewise.
1321 (mulsf3, muldf3): Likewise.
1322 (difsf3, divdf3): Likewise.
1323 (movsfcc, movdfcc): Likewise.
1324 * predicates.md (f_register_operand): Delete.
1325 (arm_float_rhs_operand): Delete.
1326 (arm_float_add_operand): Delete.
1327 (arm_float_compare_operand): Use s_register_operand when
1328 there's no VFP.
1329 (cirrus_register_operand): Delete.
1330 (cirrus_fp_register): Delete.
1331 (cirrus_shift_const): Delete.
1332 (cmpdi_operand): Remove Maverick support.
1333 * constraints.md (f, v, H): Delete constraints.
1334 (G): Update documentation.
1335 * arm.c (fp_consts_inited): Convert to bool.
1336 (strings_fp): Delete.
1337 (values_fp): Delete.
1338 (value_fp0): New variable.
1339 (init_fp_table): Simplify logic.
1340 (arm_const_double_rtx): Likewise.
1341 (fp_immediate_constant): Likewise.
1342 (fp_const_from_val): Likewise.
1343 (neg_const_double_rtx_ok_for_fpa): Delete.
1344 * doc/md.texi (ARM constraints): Update documentation.
1345
1346 2012-06-15 Ulrich Weigand <ulrich.weigand@linaro.org>
1347
1348 PR tree-optimization/53636
1349 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
1350 stride when doing basic-block vectorization.
1351
1352 2012-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1353
1354 * tree-vect-generic.c (lower_vec_perm): Propagate vector constants
1355 into VEC_PERM_EXPR.
1356
1357 2012-06-15 Jakub Jelinek <jakub@redhat.com>
1358
1359 * tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
1360 allocate and free bbs array for the SLP case.
1361
1362 PR tree-optimization/51581
1363 * expr.h (choose_multiplier): New prototype.
1364 * expmed.c (choose_multiplier): No longer static.
1365 Change multiplier_ptr from rtx * to UHWI *.
1366 (expand_divmod): Adjust callers.
1367 * tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to...
1368 (vect_recog_divmod_pattern): ... this. Pass bb_vinfo as last
1369 argument to new_stmt_vec_info. Attempt to optimize also divisions
1370 by non-pow2 constants if integer vector division isn't supported.
1371 * tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
1372 don't look at pattern stmts and sequences.
1373
1374 2012-06-15 Eric Botcazou <ebotcazou@adacore.com>
1375
1376 PR middle-end/53590
1377 * common.opt (-fdelete-dead-exceptions): New switch.
1378 * doc/invoke.texi (Code Gen Options): Document it.
1379 * cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
1380 insn_could_throw_p predicate. Do not skip an insn that could throw
1381 if dead exceptions can be deleted.
1382 (insn_live_p): Likewise, do not return true in that case.
1383 * dce.c (can_alter_cfg): New flag.
1384 (deletable_insn_p): Do not return false for an insn that can throw if
1385 the CFG can be altered and dead exceptions can be deleted.
1386 (init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
1387 * dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
1388 predicate. Do not preserve an insn that could throw if dead exceptions
1389 can be deleted.
1390 * function.h (struct function): Add can_delete_dead_exceptions flag.
1391 * function.c (allocate_struct_function): Set it.
1392 * lto-streamer-in.c (input_struct_function_base): Stream it.
1393 * lto-streamer-out.c (input_struct_function_base): Likewise.
1394 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
1395 statement that could throw as necessary if dead exceptions can be
1396 deleted.
1397
1398 2012-06-14 Maxim Kuvyrkov <maxim@codesourcery.com>
1399
1400 * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
1401
1402 2012-06-14 Oleg Endo <olegendo@gcc.gnu.org>
1403
1404 PR target/53568
1405 * config/sh/sh.md: Add peephole for swapbsi2.
1406 (*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.
1407
1408 2012-06-14 Uros Bizjak <ubizjak@gmail.com>
1409
1410 * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
1411 (*zero_extendsidi2_rex64): Ditto. Remove isa attribute.
1412
1413 2012-06-14 Jakub Jelinek <jakub@redhat.com>
1414
1415 PR target/53639
1416 * config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.
1417
1418 2012-06-14 Richard Earnshaw <rearnsha@arm.com>
1419
1420 * arm.c (arm_cirrus_insn_p): Delete.
1421 (cirrus_reorg): Delete.
1422 (arm_reorg): Don't call cirrus_reorg.
1423 (arm_final_prescan_insn_p): Don't check for cirrus insns.
1424 * arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
1425 (adddi3, subdi3): Remove Maverick support.
1426 (arm_adddi3): Likewise.
1427 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
1428 (addsf3, adddf3): Likewise.
1429 (subsf3, subdf3): Likewise.
1430 (mulsf3, muldf3): Likewise.
1431 (ashldi3, ashrdi3, lshrdi3): Likewise.
1432 (floatsisf2, floatsidf2): Likewise.
1433 (fix_truncsfsi2, fix_truncdfsi2): Likewise.
1434 (arm_movdi, thumb1_movdi_insn): Likewise.
1435 (arm_cmpdi_insn): Likewise.
1436 (cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
1437 (cirrus.md): Don't include.
1438 * cirrus.md: Delete file.
1439 * t-arm (MD_INCLUDES): Remove cirrus.md.
1440
1441 2012-06-14 Eric Botcazou <ebotcazou@adacore.com>
1442
1443 * dwarf2out.c (function_possibly_abstracted_p): New static function.
1444 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
1445 cgraph_function_possibly_inlined_p.
1446 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
1447 (process_scope_var): Do not emit concrete instances of abstracted
1448 nested functions from here.
1449 (gen_decl_die): Emit the abstract instance if the function is possibly
1450 abstracted and not only possibly inlined.
1451 (dwarf2out_finish): Find the first non-abstract parent instance and
1452 attach concrete instances on the limbo list to it.
1453
1454 2012-06-14 Richard Earnshaw <rearnsha@arm.com>
1455
1456 * arm.md (divsf3, divdf3): Remove FPA support.
1457 (negsf2, negdf2): Likewise.
1458 (sqrtsf2, sqrtdf2): Likewise.
1459 (movdfcc): Likewise.
1460 (modsf3, moddf3, movxf): Delete.
1461 (push_fp_multi): Delete.
1462 (fpa.md): Don't include it.
1463 * fpa.md: Delete file.
1464 * t-arm (MD_INCLUDES): Remove fpa.md.
1465
1466 2012-06-14 Bill Schmidt <wschmidt@linux.ibm.com>
1467
1468 * tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c.
1469 (cost_for_stmt): Remove decl.
1470 (vect_get_single_scalar_iteration_cost): Correct typo in name.
1471 * tree-vect-loop.c (vect_get_cost): Remove.
1472 (vect_get_single_scalar_iteration_cost): Correct typo in name; use
1473 vect_get_stmt_cost rather than vect_get_cost.
1474 (vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than
1475 vect_get_cost.
1476 (vect_estimate_min_profitable_iters): Correct typo in call to
1477 vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
1478 than vect_get_cost.
1479 (vect_model_reduction_cost): Use vect_get_stmt_cost rather than
1480 vect_get_cost.
1481 (vect_model_induction_cost): Likewise.
1482 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct
1483 typo in call to vect_get_single_scalar_iteration_cost.
1484 * tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h.
1485 (cost_for_stmt): Remove unnecessary function.
1486 * Makefile.in (TREE_VECTORIZER_H): Update dependencies.
1487
1488 2012-06-14 Richard Earnshaw <rearnsha@arm.com>
1489
1490 * arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options.
1491 * arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types.
1492 * arm-tables.opt: Regenerated.
1493 * doc/invoke.texi: Remove references to deleted options.
1494
1495 2012-06-14 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
1496
1497 * config/h8300/genmova.sh: Modified to add offset bits of
1498 mova/Sz assembly instruction for memory access.
1499 * config/h8300/h8300.c: Likewise.
1500 * config/h8300/mova.md: Likewise.
1501
1502 2012-06-12 Christian Bruel <christian.bruel@st.com>
1503
1504 PR target/53621
1505 * config/sh/sh.c (sh_option_override): Don't force
1506 flag_omit_frame_pointer and maccumulate_outgoing_args.
1507 * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
1508
1509 2012-06-14 Richard Guenther <rguenther@suse.de>
1510
1511 * tree-vrp.c (VR_INITIALIZER): New define.
1512 (ranges_from_anti_range): New function.
1513 (extract_range_from_binary_expr_1): Decompose operations on
1514 VR_ANTI_RANGEs to operations on VR_RANGE.
1515 (extract_range_from_unary_expr_1): Likewise.
1516 (extract_range_from_binary_expr_1, extract_range_from_binary_expr,
1517 extract_range_from_unary_expr_1, extract_range_from_unary_expr,
1518 extract_range_from_cond_expr, adjust_range_with_scev,
1519 vrp_visit_assignment_or_call, vrp_visit_phi_node,
1520 simplify_bit_ops_using_ranges): Use VR_INITIALIZER.
1521
1522 2012-06-13 Richard Henderson <rth@redhat.com>
1523
1524 * hwint.h (HOST_WIDEST_INT_C): New.
1525 (HOST_WIDE_INT_C): New.
1526 (HOST_WIDE_INT_1): Use it.
1527 * config/alpha/alpha.c (alpha_trampoline_init): Use it.
1528
1529 2012-06-13 Alexandre Oliva <aoliva@redhat.com>
1530
1531 PR debug/49888
1532 * var-tracking.c: Include alias.h.
1533 (overlapping_mems): New struct.
1534 (drop_overlapping_mem_locs): New.
1535 (clobber_overlapping_mems): New.
1536 (var_mem_delete_and_set, var_mem_delete): Call it.
1537 (val_bind): Likewise, but only if modified.
1538 (compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs.
1539 * Makefile.in (var-tracking.o): Depend in $(ALIAS_H).
1540
1541 2012-06-13 Alexandre Oliva <aoliva@redhat.com>
1542
1543 PR debug/47624
1544 * var-tracking.c (loc_exp_dep_pool): New.
1545 (vt_emit_notes): Create and release the pool.
1546 (compute_bb_dataflow): Use value-based locations in MO_VAL_SET.
1547 (emit_notes_in_bb): Likewise.
1548 (loc_exp_dep_insert): Deal with NOT_ONEPART vars.
1549 (notify_dependents_of_changed_value): Likewise.
1550 (notify_dependents_of_resolved_value): Check that NOT_ONEPART
1551 variables don't have a VAR_LOC_DEP_LST.
1552 (emit_note_insn_var_location): Expand NOT_ONEPART locs that are
1553 VALUEs or MEMs of VALUEs.
1554
1555 2012-06-13 Alexandre Oliva <aoliva@redhat.com>
1556
1557 PR debug/52983
1558 PR debug/48866
1559 * dce.c (word_dce_process_block): Insert debug temps only if the
1560 insn is not marked.
1561 (dce_process_block): Likewise, and if debug.used is not empty,
1562 and only after iterating over all DEFs that might mark the insn.
1563
1564 2012-06-13 Alexandre Oliva <aoliva@redhat.com>
1565
1566 * common.opt (ftree-coalesce-inlined-vars): New.
1567 (ftree-coalesce-vars): New.
1568 * doc/invoke.texi: Document them.
1569 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
1570 Implement them.
1571
1572 2012-06-13 Richard Sandiford <rdsandiford@googlemail.com>
1573
1574 * read-rtl.c (mapping): Remove index field. Add current_value field.
1575 Define heap vectors.
1576 (iterator_group): Fix long line. Remove num_builtins field and
1577 uses_iterator fields. Make apply_iterator take a void * parameter.
1578 (iterator_use, atttribute_use): New structures.
1579 (iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete.
1580 (current_iterators, iterator_uses, attribute_uses): New variables.
1581 (uses_mode_iterator_p, uses_code_iterator_p): Delete.
1582 (apply_mode_iterator, apply_code_iterator): Take a void * parameter.
1583 (map_attr_string, apply_iterator_to_string): Remove iterator
1584 and value parameters. Look through all current iterator values
1585 for a matching attribute.
1586 (mode_attr_index, apply_mode_maps): Delete.
1587 (apply_iterator_to_rtx): Replace with...
1588 (copy_rtx_for_iterators): ...this new function.
1589 (uses_iterator_p, apply_iterator_traverse): Delete.
1590 (apply_attribute_uses, add_current_iterators, apply_iterators): New
1591 functions.
1592 (add_mapping): Remove index field. Set current_value field.
1593 (initialize_iterators): Don't set num_builtins and uses_iterator_p
1594 fields.
1595 (find_iterator): Delete.
1596 (record_iterator_use, record_attribute_use): New functions.
1597 (record_potential_iterator_use): New function.
1598 (check_code_iterator): Remove handling of bellwether codes.
1599 (read_rtx): Remove mode maps. Truncate iterator and attribute uses.
1600 (read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps
1601 parameter. Use the first code iterator value instead of the
1602 bellwether_codes array. Use record_potential_iterator_use for modes.
1603
1604 2012-06-13 Oleg Endo <olegendo@gcc.gnu.org>
1605
1606 PR target/53568
1607 * config/sh/sh.md (bswapsi2): New expander.
1608 (swapbsi2): New insn.
1609
1610 2012-06-13 H.J. Lu <hongjiu.lu@intel.com>
1611
1612 PR target/53647
1613 * config/i386/i386.c (ix86_tune_cost): New variable.
1614 (ix86_option_override_internal): Set ix86_tune_cost. Use
1615 ix86_tune_cost for simultaneous_prefetches, prefetch_block,
1616 l1_cache_size and l2_cache_size.
1617
1618 2012-06-13 Richard Guenther <rguenther@suse.de>
1619
1620 * tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
1621 Handle meeting two VR_RANGE to an VR_ANTI_RANGE. Implement
1622 all possible meetings of VR_RANGE with VR_ANTI_RANGE and
1623 VR_ANTI_RANGE with VR_ANTI_RANGE.
1624
1625 2012-06-13 Richard Earnshaw <rearnsha@arm.com>
1626
1627 * config.gcc (unsupported): Move obsoleted FPA-based configurations
1628 here from ...
1629 (obsolete): ... here.
1630 (arm*-*-freebsd*): Remove.
1631 (arm*-*-linux*): Only accept EABI variants. Simplify logic.
1632 (arm*-*-uclinux*): Likewise.
1633 (arm*-*-ecos-elf): Remove.
1634 (arm*-*-rtems*): Remove.
1635 (arm*-*-elf): Remove.
1636 (arm*-wince-pe*): Remove.
1637 (arm, --with-fpu): Remove support for fpa and Maverick variants.
1638 * arm/ecos-elf.h: Delete.
1639 * arm/t-strongarm-elf: Delete.
1640 * arm/rtems-elf.h: Delete.
1641 * arm/wince-pe.h: Delete.
1642 * arm/pe.c: Delete.
1643 * arm/pe.h: Delete.
1644 * arm/t-wince-pe: Delete.
1645
1646 2012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
1647
1648 PR tree-optimization/53647
1649 * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
1650 targets with no defined cache line size.
1651
1652 2012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
1653
1654 * targhooks.c (default_builtin_vectorized_conversion): Handle
1655 vec_construct, using vectype to base cost on subparts.
1656 * target.h (enum vect_cost_for_stmt): Add vec_construct.
1657 * tree-vect-stmts.c (vect_model_load_cost): Use vec_construct
1658 instead of scalar_to-vec.
1659 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
1660 vec_construct in same way as default for now.
1661 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
1662 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
1663 Handle vec_construct, including special case for 32-bit loads.
1664
1665 2012-06-13 Xinyu Qi <xyqi@marvell.com>
1666
1667 * config/arm/arm.c (FL_IWMMXT2): New define.
1668 (arm_arch_iwmmxt2): New variable.
1669 (arm_option_override): Enable use of iWMMXt with VFP.
1670 Disable use of iWMMXt with NEON. Disable use of iWMMXt under
1671 Thumb mode. Set arm_arch_iwmmxt2.
1672 (arm_expand_binop_builtin): Accept VOIDmode op.
1673 (enum arm_builtins): Revise built-in fcode.
1674 (IWMMXT2_BUILTIN): New define.
1675 (IWMMXT2_BUILTIN2): Likewise.
1676 (iwmmx2_mbuiltin): Likewise.
1677 (builtin_description bdesc_2arg): Revise built in declaration.
1678 (builtin_description bdesc_1arg): Likewise.
1679 (arm_init_iwmmxt_builtins): Revise built in initialization.
1680 (arm_expand_builtin): Revise built in expansion.
1681 (arm_output_iwmmxt_shift_immediate): New function.
1682 (arm_output_iwmmxt_tinsr): Likewise.
1683 * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare.
1684 (arm_output_iwmmxt_tinsr): Likewise.
1685 * config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant.
1686 (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete.
1687 (rorv4hi3, rorv2si3, rordi3): Likewise.
1688 (rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise.
1689 (ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise.
1690 (lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise.
1691 (ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise.
1692 (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise
1693 (*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise.
1694 (tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern.
1695 (iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise.
1696 (*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise.
1697 (ror<mode>3, ror<mode>3_di): Likewise.
1698 (ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise.
1699 (ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise.
1700 (iwmmxt_walignr0, iwmmxt_walignr1): Likewise.
1701 (iwmmxt_walignr2, iwmmxt_walignr3): Likewise.
1702 (iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise.
1703 (iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise.
1704 (iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise.
1705 (iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise.
1706 (All instruction patterns): Add wtype attribute.
1707 (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp.
1708 (iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern.
1709 (iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise.
1710 (ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise.
1711 (iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise.
1712 (eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise.
1713 (gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise.
1714 (iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise.
1715 (iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise.
1716 (iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise.
1717 (iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise.
1718 (iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise.
1719 (iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise.
1720 (iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise.
1721 (iwmmxt2.md): Include.
1722 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__.
1723 (TARGET_IWMMXT2): New define.
1724 (TARGET_REALLY_IWMMXT2): Likewise.
1725 (arm_arch_iwmmxt2): Declare.
1726 * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics.
1727 Use __IWMMXT2__ to enable iWMMXt2 intrinsics.
1728 Use C name-mangling for intrinsics.
1729 (__v8qi): Redefine.
1730 (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.
1731 (_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise.
1732 (_m_from_int): Likewise.
1733 (_mm_sada_pu8, _mm_sada_pu16): New intrinsic.
1734 (_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise.
1735 (_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise.
1736 (_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise.
1737 (_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise.
1738 (_mm_tbcst_pi32): Likewise.
1739 (_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic.
1740 (_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise.
1741 (_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise.
1742 (_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise.
1743 (_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise.
1744 (_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise.
1745 (_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise.
1746 (_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise.
1747 (_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise.
1748 (_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise.
1749 (_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise.
1750 (_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise.
1751 (_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise.
1752 (_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise.
1753 (_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise.
1754 (_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise.
1755 (_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise.
1756 (_mm_wmiawttn_si64, _mm_merge_si64): Likewise.
1757 (_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise.
1758 (_m_to_int): New define.
1759 * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2.
1760 * config/arm/arm-arches.def (iwmmxt2): Likewise.
1761 * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and
1762 iwmmxt2.md.
1763 * config/arm/arm.md (marvell-f-iwmmxt.md): Include.
1764 (arch): Add "iwmmxt2".
1765 (arch_enabled): Handle "iwmmxt2".
1766 (wtype): New attribute.
1767 (UNSPEC_WMADDS, UNSPEC_WMADDU): Delete.
1768 (UNSPEC_WALIGNI): New unspec.
1769 * config/arm/predicates.md (imm_or_reg_operand): New predicate.
1770 * config/arm/iterators.md (VMMX2): New mode_iterator.
1771 * config/arm/marvell-f-iwmmxt.md: New file.
1772 * config/arm/iwmmxt2.md: New file.
1773
1774 2012-06-12 Jakub Jelinek <jakub@redhat.com>
1775
1776 PR c/53532
1777 PR c/51034
1778 PR c/53196
1779 * c-decl.c (build_compound_literal): Call c_incomplete_type_error
1780 if type isn't complete.
1781
1782 2012-06-12 Uros Bizjak <ubizjak@gmail.com>
1783
1784 * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
1785
1786 2012-06-12 Richard Henderson <rth@redhat.com>
1787
1788 * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
1789 iterator instead of INT.
1790
1791 2012-06-12 Bill Schmidt <wschmidt@linux.ibm.com>
1792
1793 * opts.c: Add -fhoist-adjacent-loads to -O2 and above.
1794 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward
1795 declaration.
1796 (hoist_adjacent_loads, gate_hoist_loads): New forward declarations.
1797 (tree_ssa_phiopt): Call gate_hoist_loads.
1798 (tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call.
1799 (tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call
1800 hoist_adjacent_loads.
1801 (local_mem_dependence): New function.
1802 (hoist_adjacent_loads): Likewise.
1803 (gate_hoist_loads): Likewise.
1804 * common.opt (fhoist-adjacent-loads): New switch.
1805 * Makefile.in (tree-ssa-phiopt.o): Added dependencies.
1806
1807 2012-06-12 Michael Matz <matz@suse.de>
1808
1809 * alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
1810 (nonoverlapping_memrefs_p): Don't call it here ...
1811 (true_dependence_1): ... but here.
1812
1813 2012-06-12 Richard Guenther <rguenther@suse.de>
1814
1815 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
1816 * alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
1817 and MEM_SIZE only refines it. Reflect that and be less conservative
1818 if either of the latter is not known.
1819
1820 2012-06-12 Jakub Jelinek <jakub@redhat.com>
1821
1822 PR rtl-optimization/53589
1823 * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
1824 discovery even when e->dest != target. If any LABEL_REF points
1825 to e->dest label, redirect it to target's label.
1826
1827 2012-06-12 Chung-Lin Tang <cltang@codesourcery.com>
1828
1829 * config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
1830 condition for generating REG_FRAME_RELATED_EXPR note.
1831 (pop): Add code for generating REG_CFA_RESTORE,
1832 REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
1833 (sh_expand_epilogue): Use frame_insn() for FP to SP move.
1834 Set 'frame_p' of calls to output_stack_adjust() to 'true'.
1835
1836 2012-06-11 Richard Henderson <rth@redhat.com>
1837
1838 * config/alpha/alpha.c (HWI_HEX2): Add missing shift.
1839 * vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix.
1840
1841 * config/alpha/alpha.c (alpha_trampoline_init): Split large constants.
1842
1843 2012-06-12 Hans-Peter Nilsson <hp@axis.com>
1844
1845 * doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
1846 Mention that this hook needs to be defined for native TLS.
1847 * doc/tm.texi: Regenerate.
1848
1849 2012-06-11 Mike Stump <mikestump@comcast.net>
1850
1851 * emit-rtl.c (init_emit_once): Iterate through the
1852 MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
1853 MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
1854 all the MIN_MODE_PARTIAL_INT modes anymore.
1855
1856 2012-06-12 Maxim Kuvyrkov <maxim@codesourcery.com>
1857
1858 * gcc/config/mips/mips-tables.opt (xlp): Fix merge typo.
1859
1860 2012-06-11 Roland McGrath <mcgrathr@google.com>
1861
1862 * dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
1863 SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
1864 not a VAR_DECL. Also don't limit it to UNSPECs with exactly one
1865 operand.
1866
1867 2012-06-11 Oleg Endo <olegendo@gcc.gnu.org>
1868
1869 PR target/53511
1870 * config/sh/sh.md (fmasf4): New expander.
1871 (*macsf3): Rename to fmasf4_i. Adapt to fma pattern.
1872 (mac_media): Rename to fmasf4_media. Adapt to fma pattern.
1873 * config/sh/sh.opt (mfused-madd): Remove.
1874 * config/sh/sh.c (sh_option_override): Remove mfused-madd handling.
1875 (builtin_description bdesc): Remove __builtin_sh_media_FMAC_S.
1876 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt
1877 as extra options.
1878 * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
1879 descriptions.
1880
1881 2012-06-11 Richard Henderson <rth@redhat.com>
1882
1883 * dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots.
1884
1885 2012-06-11 Richard Guenther <rguenther@suse.de>
1886
1887 PR middle-end/53470
1888 * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
1889 replace it with the first non-BLOCK context.
1890
1891 2012-06-11 Richard Guenther <rguenther@suse.de>
1892
1893 * alias.c (aliases_everything_p): Remove.
1894 (DIFFERENT_ALIAS_SETS_P): Likewise.
1895 (true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
1896 Do not use aliases_everything_p or special-case ANDs. Do not
1897 special-case BLKmode moves.
1898 (may_alias_p): Likewise. Handle BLKmode similar like everywhere
1899 - for SCATCH only.
1900
1901 2012-06-09 Hans-Peter Nilsson <hp@axis.com>
1902
1903 Fix CRIS build errors with --enable-build-with-cxx.
1904 * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
1905 variable "and" to "andop".
1906 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
1907 temporary variable for memory model, passing C++-type-correct
1908 parameter type to expand_mem_thread_fence.
1909 ("atomic_compare_and_swap<mode>"): Ditto.
1910
1911 2012-06-09 Richard Henderson <rth@redhat.com>
1912
1913 PR c++/53602
1914 * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
1915 (pass_jump): Rename from pass_jump2.
1916 (execute_jump2, pass_jump2): New.
1917 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
1918 perform cfg cleanup here. Move the test of PUSH_ROUNDING
1919 and ACCUMULATE_OUTGOING_ARGS test...
1920 (gate_handle_stack_adjustments): ... here.
1921 * passes.c (init_optimization_passes): Update for pass_jump2 rename.
1922 Place new pass_jump2 after pass_stack_adjustments.
1923 * tree-pass.h (pass_jump): Declare.
1924
1925 2012-06-09 Kenneth Zadeck <zadeck@naturalbridge.com>
1926
1927 * simplify-rtx.c (simplify_const_binary_operation): Fixed shift
1928 count trucation.
1929
1930 2012-06-08 Richard Henderson <rth@redhat.com>
1931
1932 PR c++/53602
1933 * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
1934 note to a clobber insn when no other insn is available.
1935
1936 2012-06-08 Georg-Johann Lay <avr@gjlay.de>
1937
1938 * config/avr/avr.c (avr_case_values_threshold): Return 7.
1939
1940 2012-06-07 Andreas Schwab <schwab@linux-m68k.org>
1941
1942 * genhooks.c (main): Set progname.
1943 (emit_documentation): Remove variable found_start, always bail out
1944 when a place is missing.
1945 * doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT.
1946
1947 2012-06-07 Jakub Jelinek <jakub@redhat.com>
1948
1949 PR middle-end/53580
1950 * omp-low.c (scan_omp): Change first argument to gimple_seq *,
1951 call walk_gimple_seq_mod instead of walk_gimple_seq.
1952 (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
1953 scan_omp_for, scan_omp_sections, scan_omp_single,
1954 execute_lower_omp): Adjust callers.
1955 (scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions
1956 returns false, replace stmt with GIMPLE_NOP.
1957 (check_omp_nesting_restrictions): Instead of issuing warnings,
1958 issue errors and return false if any errors were reported.
1959
1960 2012-06-06 Steven Bosscher <steven@gcc.gnu.org>
1961
1962 * doc/invoke.texi (fconserve-space): Remove documentation.
1963
1964 2012-06-06 Edmar Wienskoski <edmar@freescale.com>
1965
1966 * config/rs6000/rs6000-tables.opt: Regenerated.
1967
1968 2012-06-06 Richard Guenther <rguenther@suse.de>
1969
1970 PR tree-optimization/53081
1971 * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
1972 (adjacent_dr_p): ... this and make it work for reads, too.
1973 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
1974 (struct partition_s): Change main_stmt to main_dr, add
1975 secondary_dr member.
1976 (build_size_arg_loc): Change to date data-reference and not
1977 gimplify here.
1978 (build_addr_arg_loc): New function split out from ...
1979 (generate_memset_builtin): ... here. Use it and simplify.
1980 (generate_memcpy_builtin): New function.
1981 (generate_code_for_partition): Adjust.
1982 (classify_partition): Streamline pattern detection. Detect memcpy.
1983 (ldist_gen): Adjust.
1984 (tree_loop_distribution): Adjust seed statements for memcpy
1985 recognition.
1986
1987 2012-06-06 Matt Turner <mattst88@gmail.com>
1988
1989 * config/arm/mmintrin.h (_mm_empty): New.
1990 (_m_empty): New.
1991
1992 2012-06-06 Richard Sandiford <r.sandiford@uk.ibm.com>
1993
1994 * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
1995 * common.opt (fsched-pressure-algorithm=): Remove.
1996 * flag-types.h (sched_pressure_algorithm): Move to...
1997 * sched-int.h (sched_pressure_algorithm): ...here.
1998 * params.def (sched-pressure-algorithm): New param.
1999 * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
2000 * common/config/s390/s390-common.c (s390_option_optimization_table):
2001 Remove OPT_fsched_pressure_algorithm_ entry.
2002 * config/s390/s390.c (s390_option_override): Set a default value for
2003 PARAM_SCHED_PRESSURE_ALGORITHM.
2004
2005 2012-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
2006
2007 PR target/53487
2008 * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
2009 doing an unsigned compare, make sure the second argument is not a
2010 negative constant.
2011 (rs6000_emit_cmove): Don't allow floating point comparisons when
2012 generating ISEL moves.
2013
2014 2012-06-05 Edmar Wienskoski <edmar@freescale.com>
2015
2016 * config/rs6000/e5500.md: New file.
2017 * config/rs6000/e6500.md: New file.
2018 * config/rs6000/rs6000.c (processor_costs): Add new costs for
2019 e5500 and e6500.
2020 (rs6000_option_override_internal): Altivec and Spe options not
2021 allowed with e5500. Spe options not allowed with e6500. Increase
2022 move inline limit for e5500 and e6500. Disable string instructions
2023 for e5500 and e6500. Enable branch targets alignment for e5500 and
2024 e6500. Initialize rs6000_cost for e5500 and e6500.
2025 (rs6000_adjust_cost): Add extra scheduling cycles between compare
2026 and brnach for e5500 and e6500.
2027 (rs6000_issue_rate): Set issue rate for e5500 and e6500.
2028 * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
2029 e6500.
2030 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
2031 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
2032 ppce6500.
2033 Include e5500.md and e6500.md.
2034 * config/rs6000/rs6000-opt.h (processor_type): Add
2035 PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
2036 * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
2037 (powerpc*-*-*): Add new cores e5500, e6500.
2038 * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
2039
2040 2012-06-05 Richard Guenther <rguenther@suse.de>
2041
2042 * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change.
2043
2044 2012-06-05 H.J. Lu <hongjiu.lu@intel.com>
2045
2046 PR target/53575
2047 * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
2048 is used for x86_64-*-*.
2049
2050 2012-06-05 Richard Guenther <rguenther@suse.de>
2051
2052 PR tree-optimization/30442
2053 * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
2054 vectorization stop analysis at the first stmt we cannot compute
2055 a data-reference for instead of giving up completely.
2056
2057 2012-06-05 Richard Guenther <rguenther@suse.de>
2058
2059 * tree-loop-distribution.c (struct partition_s): Add has_writes member.
2060 (partition_alloc): Initialize it.
2061 (partition_has_writes): New function.
2062 (rdg_flag_uses): Adjust.
2063 (rdg_flag_vertex): Likewise.
2064 (rdg_flag_vertex_and_dependent): Likewise.
2065 (rdg_flag_loop_exits): Likewise.
2066 (build_rdg_partition_for_component): Likewise.
2067 (rdg_build_partitions): Likewise.
2068
2069 2012-06-05 Richard Guenther <rguenther@suse.de>
2070
2071 PR tree-optimization/53081
2072 * tree-loop-distribution.c (generate_memset_builtin): Handle all
2073 kinds of byte-sized stores.
2074 (classify_partition): Likewise.
2075 (tree_loop_distribution): Adjust seed statements used for
2076 !flag_tree_loop_distribution.
2077
2078 2012-06-05 Alan Modra <amodra@gmail.com>
2079
2080 * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
2081 (rs6000_emit_prologue): Ensure register used for inline saves
2082 of vector regs is not the static chain register. Revise comment.
2083
2084 2012-06-04 Oleg Endo <olegendo@gcc.gnu.org>
2085
2086 * doc/md.texi (Standard Pattern Names For Generation): Document
2087 sincos pattern.
2088
2089 2012-06-04 H.J. Lu <hongjiu.lu@intel.com>
2090
2091 PR bootstrap/53555
2092 * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
2093
2094 2012-06-04 Jason Merrill <jason@redhat.com>
2095
2096 * dwarf2out.c (is_unit_die): New.
2097 (copy_declaration_context, copy_ancestor_tree): Use it.
2098 (copy_decls_walk): Likewise.
2099
2100 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
2101
2102 PR c++/53524
2103 * doc/invoke.texi (Wenum-compare): Update documentation.
2104
2105 2012-06-04 Dodji Seketeli <dodji@redhat.com>
2106
2107 PR preprocessor/53463
2108 * parser.c (cp_parser_assignment_expression): Use the location
2109 for the '=' as the default location for the expression.
2110
2111 2012-06-04 Edmar Wienskoski <edmar@freescale.com>
2112
2113 PR target/53559
2114 * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
2115 operands.
2116 (altivec_stvlxl): Ditto.
2117 (altivec_stvrx): Ditto.
2118 (altivec_stvrxl): Ditto.
2119
2120 2012-06-04 Vladimir Makarov <vmakarov@redhat.com>
2121
2122 * ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p.
2123 (ira_uniform_class_p): New macro.
2124
2125 * ira.c (setup_uniform_class_p): New function.
2126 (setup_allocno_and_important_classes): Call the function.
2127 (print_unform_and_important_classes): New function.
2128 (print_classes): Rename to print_translated_classes.
2129 (ira_debug_allocno_classes): Add call of
2130 print_unform_and_important_classes.
2131
2132 * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
2133 classes instead of pressure classes.
2134
2135 2012-06-04 Aldy Hernandez <aldyh@redhat.com>
2136
2137 PR middle-end/47530
2138 * trans-mem.c (expand_block_edges): Do not skip the first
2139 statement when resetting the BB.
2140
2141 2012-06-04 Richard Guenther <rguenther@suse.de>
2142
2143 * tree-data-ref.c (stores_from_loop): Remove.
2144 (stmt_with_adjacent_zero_store_dr_p): Likewise.
2145 (stores_zero_from_loop): Likewise.
2146 * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
2147 stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
2148 (adjacent_store_dr_p): New function.
2149 * tree-loop-distribution.c (generate_memset_builtin): Pass
2150 the RDG, use the already available data-reference.
2151 (generate_code_for_partition): Pass down RDG.
2152 (classify_partition): Inline parts of the former
2153 stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
2154 (ldist_gen): Remember if there was any detected builtin and
2155 do less work if not and flag_tree_loop_distribution is not set.
2156 (tree_loop_distribution): Inline and fuse stores_from_loop
2157 and stores_zero_from_loop here.
2158
2159 2012-06-04 Richard Guenther <rguenther@suse.de>
2160
2161 PR middle-end/53471
2162 * dwarf2out.c (dwarf2out_finish): If generating LTO do not
2163 create new assembler names.
2164
2165 2012-06-04 Richard Guenther <rguenther@suse.de>
2166
2167 * tree-data-ref.c (struct rdg_vertex_info): Remove.
2168 (rdg_vertex_for_stmt): Simplify using gimple_uid.
2169 (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
2170 hashtable. Record stmt data-references.
2171 (hash_stmt_vertex_info): Remove.
2172 (eq_stmt_vertex_info): Likewise.
2173 (hash_stmt_vertex_del): Likewise.
2174 (build_empty_rdg): Simplify.
2175 (build_rdg): Adjust.
2176 (free_rdg): Likewise.
2177 (ref_base_address): Remove.
2178 (have_similar_memory_accesses): Likewise.
2179 * tree-data-ref.h (create_rdg_vertices): Remove.
2180 (struct rdg_vertex): Add datarefs member.
2181 (RDGV_DATAREFS): New define.
2182 (RDG_DATAREFS): Likewise.
2183 (have_similar_memory_accesses): Remove.
2184 (rdg_has_similar_memory_accesses): Likewise.
2185 * tree-loop-distribution.c (ref_base_address): Re-implement here.
2186 (similar_memory_accesses): Re-implement using existing data-references.
2187 (tree_loop_distribution): Initialize stmt uids for the stmt to
2188 RDG index mapping.
2189 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
2190 access stmt vinfo for stmts in loop.
2191
2192 2012-06-04 Andreas Schwab <schwab@linux-m68k.org>
2193
2194 PR target/53461
2195 * config/m68k/m68k.md ("tablejump"): Fix check for
2196 CASE_VECTOR_PC_RELATIVE.
2197
2198 2012-06-04 Steven Bosscher <steven@gcc.gnu.org>
2199
2200 * output.h (merge_weak, assemble_alias,
2201 initializer_constant_valid_p,
2202 initializer_constant_valid_for_bitfield_p): Move protos from here...
2203 * tree.h: ... to here.
2204 * cgraphclones.c: Do not include output.h.
2205 * gimplify.c: Likewise.
2206 * reload.c: Likewise.
2207 * recog.c: Likewise.
2208 * tree-ssa-loop-ivopts.c: Likewise.
2209 * tree-switch-conversion.c: Likewise.
2210 * c-parser.c: Likewise.
2211 * c-typeck.c: Likewise.
2212 * Makefile.in: Fix dependencies.
2213
2214 2012-06-04 Georg-Johann Lay <avr@gjlay.de>
2215
2216 PR target/46261
2217 * config/avr/avr-stdint.h: New file.
2218 * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
2219 newlib-stdint.h
2220
2221 2012-06-04 Jakub Jelinek <jakub@redhat.com>
2222
2223 PR tree-optimization/53550
2224 * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
2225 is POINTER_TYPE_P, use sizetype as step type instead of type.
2226
2227 2012-06-04 Richard Guenther <rguenther@suse.de>
2228
2229 * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
2230 (ref_base_address_1): Likewise.
2231 (remove_similar_memory_refs): Likewise.
2232 * tree-data-ref.h (remove_similar_memory_refs): Remove.
2233 * tree-loop-distribution.c (classify_partition): Do not classify
2234 as builtin if -ftree-loop-distribute-patterns is not enabled.
2235 (fuse_partitions_with_similar_memory_accesses): Inline ...
2236 (ldist_gen): ... here. Fuse all non-builtin partitions if
2237 -ftree-loop-distribution is not enabled. Properly return
2238 the number of created partitions. Do not update SSA form here but ...
2239 (tree_loop_distribution): ... once here for the whole function.
2240 Only walk innermost loops, constrain loops we consider here
2241 further. Do not call remove_similar_memory_refs.
2242 (distribute_loop): Do not check number of loop nodes here.
2243
2244 2012-06-04 Steven Bosscher <steven@gcc.gnu.org>
2245
2246 * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
2247
2248 2012-06-03 Martin Jambor <mjambor@suse.cz>
2249
2250 * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
2251 (ipa_get_jf_known_type_base_type): Likewise.
2252 (ipa_get_jf_known_type_component_type): Likewise.
2253 (ipa_get_jf_constant): Likewise.
2254 (ipa_get_jf_pass_through_formal_id): Likewise.
2255 (ipa_get_jf_pass_through_operation): Likewise.
2256 (ipa_get_jf_ancestor_offset): Likewise.
2257 (ipa_get_jf_ancestor_type): Likewise.
2258 (ipa_get_jf_ancestor_formal_id): Likewise.
2259 (ipa_get_jf_member_ptr_pfn): Likewise.
2260 * ipa-prop.c (ipa_set_jf_known_type): New function.
2261 (ipa_set_jf_constant): Likewise.
2262 (ipa_set_jf_simple_pass_through): Likewise.
2263 (ipa_set_jf_arith_pass_through): Likewise.
2264 (ipa_set_ancestor_jf): Likewise.
2265 (fill_member_ptr_cst_jump_function): Moved up and renamed to
2266 ipa_set_jf_member_ptr_cst.
2267 (detect_type_change_1): Use the new jump function creation functions.
2268 (compute_complex_assign_jump_func): Likewise.
2269 (compute_complex_ancestor_jump_func): Likewise.
2270 (compute_known_type_jump_func): Likewise.
2271 (compute_scalar_jump_functions): Likewise.
2272 (compute_pass_through_member_ptrs): Likewise.
2273 (determine_cst_member_ptr): Likewise.
2274 (combine_known_type_and_ancestor_jfs): Likewise.
2275 (try_make_edge_direct_simple_call): Likewise.
2276 (try_make_edge_direct_virtual_call): Likewise.
2277 (update_indirect_edges_after_inlining): Likewise.
2278 * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
2279 access functions. Incorporat NOP_EXPR and BINFO handling from its
2280 callers.
2281 (ipa_get_jf_ancestor_result): Likewise. Incorporate handling BINFOs
2282 which was in its callers.
2283 (ipa_value_from_jfunc): Use jump function access functions. Some
2284 functionality moved to functions above.
2285 (propagate_vals_accross_ancestor): Likewise.
2286 (propagate_vals_accross_pass_through): Use jump function access
2287 functions.
2288 (propagate_accross_jump_function): Likewise.
2289 * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
2290 access functions.
2291 (inline_merge_summary): Likewise.
2292
2293 2012-06-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2294
2295 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
2296 * config/pa/pa.c (pa_attr_length_millicode_call): Use
2297 MAX_PCREL17F_OFFSET instead of fixed offset.
2298 (pa_attr_length_call): Likewise.
2299 (pa_attr_length_indirect_call): Likewise.
2300
2301 2012-06-03 Oleg Endo <olegendo@gcc.gnu.org>
2302
2303 PR target/53512
2304 * config/sh/sh.opt (mfsca, mfsrra): New options.
2305 * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
2306 condition.
2307 (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
2308 (sinssf2, cossf2): Fold expanders to ...
2309 (sincossf3): ... this new expander. Use TARGET_FPU_ANY and
2310 TARGET_FSCA condition.
2311 * config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and
2312 TARGET_FSCA.
2313 * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
2314 -mno-fsca, -mfsrra, -mno-fsrra.
2315
2316 2012-06-03 Matt Turner <mattst88@gmail.com>
2317
2318 * config/mips/4600.md (r4700_imul_si): New.
2319 (r4700_imul_di): New.
2320 (r4700_fmul_single): New.
2321 (r4700_fmul_double): New.
2322 * config/mips/mips-cpus.def: Add r4700.
2323 * config/mips/mips.c: Likewise.
2324 * config/mips/mips.md: Likewise.
2325 * config/mips/mips-tables.opt: Regenerate.
2326
2327 2012-06-02 Steven Bosscher <steven@gcc.gnu.org>
2328
2329 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
2330 new function sparc_initial_elimination_offset.
2331 * config/sparc/sparc.c (sparc_initial_elimination_offset): New
2332 function.
2333 * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
2334 Prototype it.
2335
2336 2012-06-02 Kenneth Zadeck <zadeck@naturalbridge.com>
2337
2338 * expmed.c (expand_mult, choose_multiplier): Change
2339 "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
2340 * expr.c (convert_modes): Likewise.
2341 * explow.c (plus_constant): Likewise.
2342 * fixed-value.c (fixed_saturate1, fixed_saturate2)
2343 (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
2344 (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
2345 (do_fixed_divide, do_fixed_divide, do_fixed_divide)
2346 (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
2347 (do_fixed_shift, fixed_convert, fixed_convert)
2348 (fixed_convert_from_int, fixed_convert_from_int)
2349 (fixed_convert_from_real): Likewise.
2350 * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
2351 (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
2352 * varasm.c (output_constructor_bitfield): Likewise.
2353 * tree-vrp.c (register_edge_assert_for_2): Likewise.
2354 * double-int.c (rshift_double, lshift_double): Likewise.
2355 * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int):
2356 Likewise.
2357 * simplify-rtx.c (mode_signbit_p)
2358 (simplify_const_unary_operation, simplify_binary_operation_1)
2359 (simplify_immed_subreg): Likewise.
2360 * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
2361 * tree-vect-generic.c (build_replicated_const): Likewise.
2362 * dbxout.c (stabstr_O): Likewise.
2363 * emit-rtl.c (immed_double_int_const, immed_double_const)
2364 (gen_lowpart_common, init_emit_once): Likewise.
2365 * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
2366 (widest_int_cst_value, upper_bound_in_type): Likewise.
2367 * stor-layout.c (initialize_sizetypes, fixup_signed_type)
2368 (fixup_unsigned_type): Likewise.
2369 * real.c (real_to_integer2, real_from_integer): Likewise.
2370 * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
2371 (clz_loc_descriptor, mem_loc_descriptor): Likewise.
2372
2373 2012-06-01 Eric Botcazou <ebotcazou@adacore.com>
2374
2375 PR middle-end/53501
2376 * fold-const.c (fold_binary_loc): Refine previous change.
2377
2378 2012-06-01 Olivier Hainque <hainque@adacore.com>
2379
2380 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
2381 the "do {" part of the do-while(0) loop.
2382
2383 2012-06-01 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
2384
2385 * config/i386/i386.c (x86_sched_reorder): New function.
2386 Added new function x86_sched_reorder.
2387
2388 2012-06-01 Richard Guenther <rguenther@suse.de>
2389
2390 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
2391 Handle PHIs.
2392 (classify_partition): Likewise.
2393
2394 2012-06-01 Richard Guenther <rguenther@suse.de>
2395
2396 * tree-loop-distribution.c (enum partition_kind): New enum.
2397 (struct partition_s): Add kind and main_stmt members.
2398 (partition_alloc): Initialize kind to PKIND_NORMAL.
2399 (partition_builtin_p): New function.
2400 (copy_loop_before): Remove failure path and assert instead.
2401 (generate_loops_for_partition): Likewise.
2402 (generate_memset_zero): Fold into ...
2403 (generate_memset_builtin): ... this.
2404 (classify_partition): New function with code from
2405 can_generate_builtin and generate_builtin.
2406 (generate_builtin): Remove.
2407 (can_generate_builtin): Likewise.
2408 (fuse_partitions_with_similar_memory_accesses): Call
2409 partition_builtin_p instead of can_generate_builtin.
2410 (rdg_build_partitions): Do not call
2411 fuse_partitions_with_similar_memory_accesses here...
2412 (ldist_gen): ... but here after classifying all partitions.
2413 Remove failure path of generate_code_for_partition.
2414 (generate_code_for_partition): Generate code according
2415 to partition classification.
2416
2417 2012-06-01 Manuel López-Ibáñez <manu@gcc.gnu.org>
2418 Jonathan Wakely <jwakely.gcc@gmail.com>
2419
2420 PR c++/50134
2421 * doc/invoke.texi (Warning Options): Explain purpose and differences
2422 between -Wmissing-prototypes and -Wmissing-declarations.
2423
2424 2012-06-01 Christian Bruel <christian.bruel@st.com>
2425
2426 * gcc.c (save_switch): Add user_p parameter.
2427 (read_specs): Likewise.
2428 (set_specs): Likewise.
2429 (validate_switches): Likewise.
2430 (validate_switches_from_spec): Likewise.
2431 (validate_all_switches): Pass on user_p parameter.
2432 (struct spec_list): Add user_p field.
2433 (struct switchstr): Add known field.
2434 (save_switch): Add known parameter.
2435 (INIT_STATIC_SPEC): Initialize user_p;
2436 (driver_unknown_option_callbac): call save_switch if
2437 OPT_SPECIAL_unknown.
2438 (driver_handle_option): Propagate OPT_specs.
2439 (do_spec_1): Set validated only if known.
2440 (check_live_switch): Likewise.
2441 (validate_switches): Set validated if known or user_spec.
2442
2443 2012-06-01 Hans-Peter Nilsson <hp@axis.com>
2444
2445 Add CRIS atomic patterns for 1, 2, and 4 bytes.
2446 * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
2447 * config/cris/cris-protos.h: Declare it.
2448 * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
2449 (TARGET_DEFAULT): Add alignment by 32.
2450 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
2451 case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
2452 TARGET_CPU_DEFAULT == 32.
2453 (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
2454 * config/cris/cris.md: Include sync.md. Avoid allocating specific
2455 numbers by replacing the define_constants for all UNSPECs with the
2456 equivalent define_c_enum construct.
2457 * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
2458 * config/cris/sync.md: New file.
2459
2460 2012-05-31 Matt Turner <mattst88@gmail.com>
2461
2462 * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
2463 (r4600_imul_di): New.
2464 (r4600_idiv_si): Rename from r4600_idiv.
2465 (r4600_idiv_di): New.
2466
2467 2012-05-31 Steven Bosscher <steven@gcc.gnu.org>
2468
2469 * output.h (__gcc_host_wide_int__): Move to hwint.h.
2470 (decl_default_tls_model): Move to tree.h
2471 (dump_file): Move to system.h.
2472 (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
2473 dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
2474 dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
2475 dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
2476 dbxout_stab_value_zero, dbxout_stab_value_label_diff,
2477 dbxout_stab_value_internal_label,
2478 dbxout_stab_value_internal_label_diff): Move from here ...
2479 * dbxout.h: ... to here.
2480 * system.h (dump_file): Moved here from output.h.
2481 * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
2482 * tree.h (decl_default_tls_model): Moved here from output.h.
2483 * varasm.c (default_stabs_asm_out_destructor,
2484 default_stabs_asm_out_constructor): Move from here ...
2485 * dbxout.c: ... to here.
2486
2487 * gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers.
2488
2489 * collect2.h (dump_file): Rename to dump_ld_file.
2490 * collect2.c: Likewise.
2491 * tlink.c: Likewise.
2492
2493 * alias.c: Do not include output.h.
2494 * auto-inc-dec.c: Likewise.
2495 * bt-load.c: Likewise.
2496 * caller-save.c: Likewise.
2497 * cfg.c: Likewise.
2498 * cfgbuild.c: Likewise.
2499 * cfgcleanup.c: Likewise.
2500 * cfglayout.c: Likewise.
2501 * cfgloop.c: Likewise.
2502 * cfgloopanal.c: Likewise.
2503 * cfgloopmanip.c: Likewise.
2504 * cfgrtl.c: Likewise.
2505 * cgraph.c: Likewise.
2506 * cgraphclones.c: Likewise.
2507 * combine-stack-adj.c: Likewise.
2508 * combine.c: Likewise.
2509 * cprop.c: Likewise.
2510 * cse.c: Likewise.
2511 * cselib.c: Likewise.
2512 * dbgcnt.c: Likewise.
2513 * df-problems.c: Likewise.
2514 * df-scan.c: Likewise.
2515 * dojump.c: Likewise.
2516 * fwprop.c: Likewise.
2517 * gcse.c: Likewise.
2518 * graph.c: Likewise.
2519 * haifa-sched.c: Likewise.
2520 * hw-doloop.c: Likewise.
2521 * ipa-inline-transform.c: Likewise.
2522 * ipa-pure-const.c: Likewise.
2523 * ipa-reference.c: Likewise.
2524 * ipa-utils.c: Likewise.
2525 * ira-build.c: Likewise.
2526 * ira-emit.c: Likewise.
2527 * lcm.c: Likewise.
2528 * loop-doloop.c: Likewise.
2529 * loop-invariant.c: Likewise.
2530 * loop-iv.c: Likewise.
2531 * loop-unroll.c: Likewise.
2532 * loop-unswitch.c: Likewise.
2533 * lto-cgraph.c: Likewise.
2534 * lto-section-in.c: Likewise.
2535 * lto-streamer-in.c: Likewise.
2536 * mcf.c: Likewise.
2537 * mode-switching.c: Likewise.
2538 * postreload-gcse.c: Likewise.
2539 * postreload.c: Likewise.
2540 * predict.c: Likewise.
2541 * profile.c: Likewise.
2542 * ree.c: Likewise.
2543 * reg-stack.c: Likewise.
2544 * regcprop.c: Likewise.
2545 * regmove.c: Likewise.
2546 * regstat.c: Likewise.
2547 * reload1.c: Likewise.
2548 * sched-ebb.c: Likewise.
2549 * sel-sched-dump.c: Likewise.
2550 * simplify-rtx.c: Likewise.
2551 * stor-layout.c: Likewise.
2552 * store-motion.c: Likewise.
2553 * tracer.c: Likewise.
2554 * tree-affine.c: Likewise.
2555 * tree-cfg.c: Likewise.
2556 * tree-cfgcleanup.c: Likewise.
2557 * tree-dfa.c: Likewise.
2558 * tree-into-ssa.c: Likewise.
2559 * tree-nomudflap.c: Likewise.
2560 * tree-optimize.c: Likewise.
2561 * tree-pretty-print.c: Likewise.
2562 * tree-profile.c: Likewise.
2563 * tree-ssa-address.c: Likewise.
2564 * tree-ssa-ccp.c: Likewise.
2565 * tree-ssa-copy.c: Likewise.
2566 * tree-ssa-dom.c: Likewise.
2567 * tree-ssa-loop-ch.c: Likewise.
2568 * tree-ssa-loop-im.c: Likewise.
2569 * tree-ssa-loop-manip.c: Likewise.
2570 * tree-ssa-loop-niter.c: Likewise.
2571 * tree-ssa-loop-prefetch.c: Likewise.
2572 * tree-ssa-loop-unswitch.c: Likewise.
2573 * tree-ssa-loop.c: Likewise.
2574 * tree-ssa-propagate.c: Likewise.
2575 * tree-ssa-structalias.c: Likewise.
2576 * tree-ssa-tail-merge.c: Likewise.
2577 * tree-ssa-threadedge.c: Likewise.
2578 * tree-ssa-threadupdate.c: Likewise.
2579 * tree-ssa-uncprop.c: Likewise.
2580 * tree-ssa-uninit.c: Likewise.
2581 * tree-ssa.c: Likewise.
2582 * value-prof.c: Likewise.
2583 * var-tracking.c: Likewise.
2584 * web.c: Likewise.
2585
2586 * config/m32r/m32r.c: Include dbxout.h.
2587 * config/pa/pa.c: Likewise.
2588 * config/rs6000/rs6000.c: Likewise.
2589
2590 * Makefile.in: Fix dependencies.
2591 * config/rs6000/t-rs5000: Likewise.
2592
2593 2012-05-31 Aldy Hernandez <aldyh@redhat.com>
2594
2595 * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
2596 * gimple.h (block_in_transaction): Check for flag_tm.
2597
2598 2012-05-31 Aldy Hernandez <aldyh@redhat.com>
2599
2600 PR tree-optimization/52558
2601 * cfg.c (alloc_aux_for_edge): Fix comment.
2602 (alloc_aux_for_edge): Remove static.
2603 * basic-block.h (alloc_aux_for_edge): Protoize.
2604 * tree-ssa-loop-im.c (execute_sm_if_changed): New.
2605 (execute_sm_if_changed_flag): New.
2606 (execute_sm_if_changed_flag_set): New.
2607 (execute_sm): Do not generate data races unless requested.
2608 (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
2609 (tree_ssa_lim_finalize): Call free_aux_for_edges.
2610 * gimple.h (block_in_transaction): New.
2611 (gimple_in_transaction): Use block_in_transaction.
2612
2613 2012-05-31 Georg-Johann Lay <avr@gjlay.de>
2614
2615 PR target/51345
2616 * config/avr/avr.opt (-msp8): Document it.
2617 * doc/invoke.texi (AVR Options): Ditto. And document related
2618 built-in macros.
2619
2620 2012-05-31 Diego Novillo <dnovillo@google.com>
2621
2622 * configure.ac (CXX_FOR_BUILD): Define and substitute.
2623 (BUILD_CXXFLAGS): Define and substitute.
2624 * Makefile.in (BUILD_CXXFLAGS): Define.
2625 (CXX_FOR_BUILD): Define.
2626 (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
2627 (LINKER_FOR_BUILD): Likewise.
2628 (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
2629 (BUILD_LINKERFLAGS): Likewise.
2630 * configure: Regenerate.
2631
2632 2012-05-31 Steven Bosscher <steven@gcc.gnu.org>
2633
2634 * Makefile.in: Fix many dependencies.
2635 * tree-profile.c: Don't include regs.h.
2636 * tree-vectorizer.c: Don't include cfglayout.h.
2637 * tree-vect-stmts.c: Likewise.
2638 * tree-vect-slp.c: Likewise.
2639 * tree-vect-loop.c: Likewise.
2640 * reg-stack.c: Likewise.
2641 * tree-ssa-loop-manip.c: Likewise.
2642 * toplev.c: Likewise.
2643 * varasm.c: Don't include cfglayout.h, basic-block.h,
2644 and tree-iterator.h.
2645 * tree-cfgcleanup.c: Don't include cfglayout.h.
2646 * passes.c: Don't include cfglayout.h, dwarf2asm.h,
2647 dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
2648 * cgraphclones.c: Don't include plugin.h.
2649
2650 2012-05-31 Georg-Johann Lay <avr@gjlay.de>
2651
2652 * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
2653 (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
2654 * doc/avr-mmcu.texi (svn:eol-style): Set to native.
2655
2656 2012-05-31 Richard Guenther <rguenther@suse.de>
2657
2658 * tree-loop-distribution.c (struct partition_s): New struct,
2659 typedef and vector type.
2660 (partition_alloc, partition_free): New functions.
2661 (generate_loops_for_partition, generate_builtin,
2662 generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
2663 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
2664 build_rdg_partition_for_component, can_generate_builtin,
2665 similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
2666 rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
2667 number_of_rw_in_partition, partition_contains_all_rw,
2668 ldist_gen): Use partition_t instead of bitmap.
2669
2670 2012-05-31 Georg-Johann Lay <avr@gjlay.de>
2671
2672 * config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
2673 * doc/avr-mmcu.texi: Regenerate.
2674
2675 2012-05-31 Richard Guenther <rguenther@suse.de>
2676
2677 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
2678 Use FOR_EACH_SSA_DEF_OPERAND.
2679 (generate_builtin): Adjust.
2680 (stmt_generated_in_another_partition): Remove.
2681 (add_scalar_computations_to_partition): Likewise.
2682 (rdg_build_partitions): Do not call
2683 add_scalar_computations_to_partition.
2684
2685 2012-05-31 Eric Botcazou <ebotcazou@adacore.com>
2686
2687 * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
2688 double ints throughout.
2689 * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
2690 Check that the position of the field is representable as an integer.
2691
2692 2012-05-31 Richard Guenther <rguenther@suse.de>
2693
2694 * tree-data-ref.c (dr_analyze_innermost): Properly convert
2695 the MEM_REF offset to sizetype.
2696
2697 2012-05-31 Georg-Johann Lay <avr@gjlay.de>
2698
2699 * doc/invoke.texi (AVR Options): Fix typos.
2700
2701 2012-05-31 Hans-Peter Nilsson <hp@axis.com>
2702
2703 * config/cris/cris.h (CC1_SPEC): Pass through all -march=
2704 and -mcpu= options.
2705 (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
2706 non-v32 into --march=v0_v10.
2707
2708 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
2709
2710 * ira-int.h (target_ira_int): Rename x_move_cost to
2711 x_ira_register_move_cost, x_may_move_in_cost to
2712 x_ira_may_move_in_cost and x_may_move_out_cost to
2713 x_ira_may_move_out_cost. Delete the old fields with
2714 those names and also x_ira_max_register_move_cost,
2715 x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
2716 (move_cost, may_move_in_cost, may_move_out_cost)
2717 (ira_max_register_move_cost, ira_max_may_move_in_cost)
2718 (ira_max_may_move_out_cost): Delete.
2719 * ira.c (init_move_cost): Rename to...
2720 (ira_init_register_move_cost): ...this, deleting the old
2721 function with that name. Apply above variable renamings.
2722 Retain asserts for null fields.
2723 (ira_init_once): Don't initialize register move costs here.
2724 (free_register_move_costs): Apply above variable renamings.
2725 Remove code for deleted fields.
2726
2727 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
2728
2729 * ira.c (init_move_cost): Adjust choice of subclasses to match
2730 the current ira_init_register_move_cost choice. Use
2731 ira_class_subset_p instead of reg_class_subset_p.
2732 (ira_init_register_move_cost): Assert that move_cost,
2733 may_move_in_cost and may_move_out_cost already hold the desired
2734 values for their ira_* equivalents. For the latter two,
2735 ignore classes that can't store a register of the given mode.
2736
2737 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
2738
2739 * ira.c (setup_allocno_and_important_classes): Use
2740 ira_class_hard_regs_num to check whether a class has any
2741 allocatable registers.
2742 (ira_init_register_move_cost): Likewise.
2743
2744 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
2745
2746 * ira.c (init_move_cost): Adjust local variable names to match
2747 file conventions. Use ira_assert instead of gcc_assert.
2748
2749 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
2750
2751 * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
2752 Move these definitions and associated target_globals fields to...
2753 * ira-int.h: ...here.
2754 * rtl.h (init_move_cost): Delete.
2755 * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
2756 * ira.c: ...here, making the latter static.
2757
2758 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
2759
2760 * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
2761 and ira_register_move_cost instead of init_move_cost and move_cost.
2762
2763 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
2764
2765 * ira.h (target_ira): Delete x_ira_available_class_regs.
2766 (ira_available_class_regs): Delete.
2767 * ira.c (setup_available_class_regs): Delete.
2768 (setup_alloc_classes): Don't call it.
2769 (setup_pressure_classes): Use ira_class_hard_regs_num instead of
2770 ira_available_class_regs.
2771 * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
2772 (model_spill_cost): Likewise.
2773 * ira-build.c (low_pressure_loop_node_p): Likewise.
2774 * ira-color.c (color_pass): Likewise.
2775 * ira-emit.c (change_loop): Likewise.
2776 * ira-lives.c (inc_register_pressure, dec_register_pressure)
2777 (single_reg_class, ira_implicitly_set_insn_hard_regs)
2778 (process_bb_node_lives): Likewise.
2779 * loop-invariant.c (gain_for_invariant): Likewise.
2780
2781 2012-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2782
2783 PR target/52999
2784 * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
2785 (pa_section_type_flags): New.
2786 (pa_legitimate_constant_p): Revert previous change.
2787
2788 2012-05-30 Steven Bosscher <steven@gcc.gnu.org>
2789
2790 * ira.c (allocate_initial_values): Make static.
2791
2792 2012-05-30 Uros Bizjak <ubizjak@gmail.com>
2793
2794 * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
2795 Generate tls_initial_exec_64_sun only when !TARGET_X32.
2796
2797 2012-05-30 Richard Guenther <rguenther@suse.de>
2798
2799 PR middle-end/53501
2800 * fold-const.c (fold_binary_loc): Make sure to call
2801 fold_plusminus_mult_expr with the original sign of operands.
2802
2803 2012-05-30 Steven Bosscher <steven@gcc.gnu.org>
2804
2805 * Makefile.in: Fix many dependencies.
2806 (DWARF2_H): Depend on dwarf2.def.
2807 (RTL_ERROR_H): Depend on rtl-error.h.
2808 (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New. Replace
2809 all gimple-pretty-print.h and tree-pretty-print.h references.
2810
2811 2012-05-30 Marc Glisse <marc.glisse@inria.fr>
2812
2813 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
2814 concatenations.
2815
2816 2012-05-30 Richard Guenther <rguenther@suse.de>
2817
2818 PR middle-end/53522
2819 * tree-emutls.c (gen_emutls_addr): Do not add globals to
2820 referenced-vars.
2821
2822 2012-05-30 Eric Botcazou <ebotcazou@adacore.com>
2823
2824 * explow.c (probe_stack_range): Restore simple control flow and stop
2825 again when the probe cannot be generated if HAVE_check_stack.
2826
2827 2012-05-30 Jakub Jelinek <jakub@redhat.com>
2828
2829 PR rtl-optimization/53519
2830 * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
2831 instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
2832
2833 2012-05-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2834
2835 * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
2836
2837 2012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
2838
2839 PR debug/53453
2840 * doc/tm.texi: Update.
2841 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
2842 * target.def (force_at_comp_dir): New hook.
2843 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
2844 * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
2845
2846 2012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
2847
2848 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
2849 Darwin >= 10.
2850 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
2851 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
2852
2853 2012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
2854
2855 PR target/51340
2856 * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
2857 flag_unsafe_math_optimizations is set.
2858 * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
2859 Update description of -mfused-madd.
2860
2861 2012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
2862
2863 PR target/52941
2864 * config/sh/predicates.md (atomic_arith_operand,
2865 atomic_logical_operand): New predicates.
2866 * config/sh/sh.c (sh_option_override): Check atomic options.
2867 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
2868 UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
2869 (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
2870 UNSUPPORTED_HARD_ATOMIC_CPU.
2871 * config/sh/sync.md: Update description comments.
2872 (I12): New mode iterator.
2873 (fetchop_predicate, fetchop_constraint): New code attributes.
2874 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
2875 atomic_exchangesi_hard, atomic_exchange<mode>_hard,
2876 atomic_fetch_<fetchop_name>si_hard,
2877 atomic_fetch_<fetchop_name><mode>_hard,
2878 atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
2879 atomic_<fetchop_name>_fetchsi_hard,
2880 atomic_<fetchop_name>_fetch<mode>_hard,
2881 atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
2882 atomic_test_and_set_hard): New insns.
2883 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
2884 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
2885 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
2886 atomic_test_and_set_soft): Use same formatting for the first line of
2887 the asm block as in new insns above.
2888 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
2889 atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
2890 atomic_test_and_set): Integrate new *_hard insns into expanders.
2891 * config/sh/sh.opt (mhard-atomic): New option.
2892 * doc/invoke.texi (SH Options): Document it.
2893
2894 2012-05-29 Meador Inge <meadori@codesourcery.com>
2895
2896 * c-decl.c (c_push_function_context): Always create a new language
2897 function.
2898 (c_pop_function_context): Clear the language function created in
2899 c_push_function_context.
2900
2901 2012-05-29 Matt Turner <mattst88@gmail.com>
2902
2903 * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
2904 (define_bypass "ev6_fcmov"): New.
2905
2906 2012-05-29 Steven Bosscher <steven@gcc.gnu.org>
2907
2908 * integrate.c: Remove.
2909 * integrate.h: Remove.
2910 * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
2911 * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
2912 * config/rs6000/t-rs6000: Likewise
2913 * config/spu/t-spu-elf: Likewise.
2914 * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
2915 get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
2916 from integrate.h to here.
2917 (initial_value_entry): New prototype.
2918 * reload.h (allocate_initial_values): Remove prototype.
2919 * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
2920 * cse.c (fixed_base_plus_p): Don't handle virtual registers for
2921 integrate.c.
2922 * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
2923 set_decl_abstract_flags, set_block_abstract_flags): Move from
2924 integrate.c to here, the only user.
2925 * expmed.c (extract_fixed_bit_field): Remove outdated comment
2926 about integrate.c.
2927 * function.c: Don't include integrate.h.
2928 (struct initial_value_pair, struct initial_value_struct,
2929 get_hard_reg_initial_val, has_hard_reg_initial_val,
2930 get_hard_reg_initial_reg, emit_initial_value_sets): Move from
2931 integrate.c to here.
2932 (initial_value_entry): New function.
2933 * genemit.c (main): Don't print integrate.h include line.
2934 * ira.c: Don't include integrate.h.
2935 (allocate_initial_values): Move from integrate.c to here.
2936 (ira): Update allocate_initial_values call.
2937 * tree-inline.c: Don't include integrate.h.
2938 (function_attribute_inlinable_p): Moved from integrate.c to here.
2939 * cfgexpand.c: Don't include integrate.h.
2940 * except.c: Likewise.
2941 * langhooks.c: Likewise.
2942 * passes.c: Likewise.
2943 * toplev.c: Likewise.
2944 * config/frv/frv.c: Likewise.
2945 * config/pa/pa.c: Likewise.
2946 * config/spu/spu.c: Likewise.
2947 * config/epiphany/epiphany.c: Likewise.
2948 * config/mep/mep.c: Likewise.
2949 * config/score/score.c: Likewise.
2950 * config/picochip/picochip.c: Likewise.
2951 * config/sh/sh.c: Likewise.
2952 * config/alpha/alpha.c: Likewise.
2953 * config/microblaze/microblaze.c: Likewise.
2954 * config/mips/mips.c: Likewise.
2955 * config/v850/v850.c: Likewise.
2956 * config/mmix/mmix.c: Likewise.
2957 * config/bfin/bfin.c: Likewise.
2958 * config/arm/arm.c: Likewise.
2959 * config/s390/s390.c: Likewise.
2960 * config/m32r/m32r.c: Likewise.
2961 * config/rs6000/rs6000.c: Likewise.
2962 * config/c6x/c6x.c: Include function.h instead of integrate.h.
2963 * config/tilegx/tilegx.c: Likewise.
2964 * config/tilepro/tilepro.c: Likewise.
2965
2966 2012-05-29 Georg-Johann Lay <avr@gjlay.de>
2967
2968 * config/avr/t-avr (s-avr-mmcu-texi): Call
2969 gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
2970
2971 2012-05-29 Michael Matz <matz@suse.de>
2972
2973 * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
2974 assign_temp): Remove 'keep' argument.
2975 (mark_temp_addr_taken): Remove prototype.
2976 * tree.h (expand_decl): Remove prototype.
2977 * function.c (struct temp_slot): Remove addr_taken and keep member.
2978 (assign_stack_temp_for_type) Don't initialize above, remove
2979 keep argument.
2980 (assign_stack_temp, assign_temp): Remove keep argument.
2981 (mark_temp_addr_taken): Remove.
2982 (preserve_temp_slots): Remove handling of addr_taken and keep members.
2983 (free_temp_slots): Ditto.
2984 * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
2985 dead code.
2986 * stmt.c (expand_asm_operands): Remove dead code.
2987 (expand_decl): Remove.
2988 * c-decl.c (finish_struct): Don't call expand_decl.
2989 * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
2990 and assign_stack_temp.
2991 * calls.c (save_fixed_argument_area, initialize_argument_information,
2992 expand_call, emit_library_call_value_1, store_one_arg): Ditto.
2993 * expmed.c (extract_bit_field_1): Ditto.
2994 * expr.c (emit_group_load_1, emit_group_store,
2995 copy_blkmode_from_reg, emit_push_insn, expand_assignment,
2996 store_field, expand_constructor, expand_cond_expr_using_cmove,
2997 expand_expr_real_2, expand_expr_real_1): Ditto.
2998 * stmt.c (expand_asm_operands, expand_return): Ditto.
2999
3000 * function.c (pop_temp_slots): Call free_temp_slots.
3001 * calls.c (store_one_arg): Don't call preserve_temp_slots or
3002 free_temp_slots.
3003 * expr.c (expand_assignment): Don't call free_temp_slots.
3004
3005 * config/arm/arm.c (neon_expand_vector_init): Ditto.
3006 * config/i386/i386.c (ix86_expand_vector_set): Ditto.
3007 (ix86_expand_vector_extract): Ditto.
3008 * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
3009 ia64_expand_movxf_movrf): Ditto.
3010 * config/mips/mips.c (mips_expand_vi_general): Ditto.
3011 * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
3012 extendsfdf2): Ditto.
3013 * config/rs6000/rs6000.c (rs6000_expand_vector_init,
3014 rs6000_expand_vector_set, rs6000_expand_vector_extract,
3015 rs6000_allocate_stack_temp): Ditto.
3016 * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
3017 * config/sparc/sparc.c (emit_soft_tfmode_libcall,
3018 sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
3019 sparc_expand_vector_init): Ditto.
3020
3021 2012-05-29 Michael Matz <matz@suse.de>
3022
3023 * c-tree.h (c_expand_decl): Remove prototype.
3024
3025 * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
3026 a kept temp.
3027 (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
3028 * gimple-fold.c (canonicalize_constructor_val): Canonicalize
3029 COMPOUND_LITERAL_EXPR.
3030 * function.c (expand_function_start): Don't call expand_decl,
3031 instead assert that we have RTL assigned.
3032 * tree-ssa-live.c (remove_unused_locals): Clear
3033 nonlocal_goto_save_area if its backing variable is removed.
3034 * stmt.c (expand_asm_operands): Remove handling of non-lvalues
3035 as mem inputs.
3036 (expand_decl): Assert that this does nothing.
3037 * calls.c (expand_call): Don't call mark_temp_addr_taken.
3038
3039 2012-05-29 Richard Guenther <rguenther@suse.de>
3040
3041 PR tree-optimization/53516
3042 * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
3043 bitfield accesses.
3044 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3045
3046 2012-05-29 Joseph Myers <joseph@codesourcery.com>
3047
3048 * LANGUAGES: Fix typos.
3049 * Makefile.in: Fix typos.
3050 * alias.c: Fix typos.
3051 * auto-inc-dec.c: Fix typos.
3052 * bb-reorder.c: Fix typos.
3053 * cfgcleanup.c: Fix typos.
3054 * cgraph.c: Fix typos.
3055 * cgraph.h: Fix typos.
3056 * cgraphunit.c: Fix typos.
3057 * collect2-aix.h: Fix typos.
3058 * collect2.c: Fix typos.
3059 * compare-elim.c: Fix typos.
3060 * config/alpha/vms.h: Fix typos.
3061 * config/arm/README-interworking: Fix typos.
3062 * config/arm/arm.c: Fix typos.
3063 * config/arm/iterators.md: Fix typos.
3064 * config/arm/vxworks.h: Fix typos.
3065 * config/avr/avr.c: Fix typos.
3066 * config/avr/avr.h: Fix typos.
3067 * config/avr/avr.md: Fix typos.
3068 * config/avr/builtins.def: Fix typos.
3069 * config/c6x/c6x.c: Fix typos.
3070 * config/cr16/cr16.c: Fix typos.
3071 * config/cr16/cr16.md: Fix typos.
3072 * config/cris/cris.md: Fix typos.
3073 * config/darwin.c: Fix typos.
3074 * config/darwin.opt: Fix typos.
3075 * config/i386/i386-c.c: Fix typos.
3076 * config/i386/i386.c: Fix typos.
3077 * config/ia64/ia64.c: Fix typos.
3078 * config/m68k/cf.md: Fix typos.
3079 * config/mep/mep.c: Fix typos.
3080 * config/microblaze/microblaze.c: Fix typos.
3081 * config/microblaze/microblaze.h: Fix typos.
3082 * config/mn10300/mn10300.c: Fix typos.
3083 * config/mn10300/mn10300.md: Fix typos.
3084 * config/pa/pa.c: Fix typos.
3085 * config/picochip/picochip.h: Fix typos.
3086 * config/rs6000/a2.md: Fix typos.
3087 * config/rs6000/rs6000.c: Fix typos.
3088 * config/rs6000/vector.md: Fix typos.
3089 * config/rx/rx.md: Fix typos.
3090 * config/rx/rx.opt: Fix typos.
3091 * config/s390/2097.md: Fix typos.
3092 * config/s390/s390.c: Fix typos.
3093 * config/s390/s390.h: Fix typos.
3094 * config/sh/sh.c: Fix typos.
3095 * config/sh/sh.md: Fix typos.
3096 * config/sparc/sync.md: Fix typos.
3097 * config/spu/spu.c: Fix typos.
3098 * config/spu/spu.md: Fix typos.
3099 * config/vms/vms.c: Fix typos.
3100 * config/vxworks-dummy.h: Fix typos.
3101 * config/vxworks.h: Fix typos.
3102 * cselib.c: Fix typos.
3103 * df-scan.c: Fix typos.
3104 * df.h: Fix typos.
3105 * doc/extend.texi: Fix typos.
3106 * doc/install.texi: Fix typos.
3107 * doc/invoke.texi: Fix typos.
3108 * doc/md.texi: Fix typos.
3109 * doc/plugins.texi: Fix typos.
3110 * doc/rtl.texi: Fix typos.
3111 * dse.c: Fix typos.
3112 * dwarf2asm.c: Fix typos.
3113 * dwarf2out.c: Fix typos.
3114 * except.h: Fix typos.
3115 * expr.c: Fix typos.
3116 * fold-const.c: Fix typos.
3117 * gcc.c: Fix typos.
3118 * gcse.c: Fix typos.
3119 * genautomata.c: Fix typos.
3120 * gengtype-state.c: Fix typos.
3121 * gengtype.c: Fix typos.
3122 * genhooks.c: Fix typos.
3123 * gimple-fold.c: Fix typos.
3124 * gimple-pretty-print.c: Fix typos.
3125 * gimple.c: Fix typos.
3126 * gimple.h: Fix typos.
3127 * gimplify.c: Fix typos.
3128 * graphite-interchange.c: Fix typos.
3129 * graphite-sese-to-poly.c: Fix typos.
3130 * ifcvt.c: Fix typos.
3131 * input.c: Fix typos.
3132 * ipa-cp.c: Fix typos.
3133 * ipa-inline-analysis.c: Fix typos.
3134 * ipa-inline-transform.c: Fix typos.
3135 * ipa-inline.c: Fix typos.
3136 * ipa-pure-const.c: Fix typos.
3137 * ipa-ref.h: Fix typos.
3138 * ipa-reference.c: Fix typos.
3139 * ipa-utils.c: Fix typos.
3140 * ipa.c: Fix typos.
3141 * ira-emit.c: Fix typos.
3142 * ira-lives.c: Fix typos.
3143 * lto-streamer.c: Fix typos.
3144 * lto-streamer.h: Fix typos.
3145 * lto-wrapper.c: Fix typos.
3146 * mcf.c: Fix typos.
3147 * mode-switching.c: Fix typos.
3148 * modulo-sched.c: Fix typos.
3149 * plugin.c: Fix typos.
3150 * postreload.c: Fix typos.
3151 * sched-deps.c: Fix typos.
3152 * sel-sched-ir.c: Fix typos.
3153 * sel-sched-ir.h: Fix typos.
3154 * sel-sched.c: Fix typos.
3155 * sese.c: Fix typos.
3156 * stor-layout.c: Fix typos.
3157 * target-hooks-macros.h: Fix typos.
3158 * target.def: Fix typos.
3159 * trans-mem.c: Fix typos.
3160 * tree-eh.c: Fix typos.
3161 * tree-predcom.c: Fix typos.
3162 * tree-sra.c: Fix typos.
3163 * tree-ssa-address.c: Fix typos.
3164 * tree-ssa-loop-ivopts.c: Fix typos.
3165 * tree-ssa-loop-niter.c: Fix typos.
3166 * tree-ssa-math-opts.c: Fix typos.
3167 * tree-ssa-pre.c: Fix typos.
3168 * tree-ssa-propagate.c: Fix typos.
3169 * tree-ssa-reassoc.c: Fix typos.
3170 * tree-ssa-sccvn.c: Fix typos.
3171 * tree-ssa-ter.c: Fix typos.
3172 * tree-ssa-uninit.c: Fix typos.
3173 * tree-ssanames.c: Fix typos.
3174 * tree-vect-generic.c: Fix typos.
3175 * tree-vect-slp.c: Fix typos.
3176 * tree.c: Fix typos.
3177 * tree.h: Fix typos.
3178 * varasm.c: Fix typos.
3179 * varpool.c: Fix typos.
3180
3181 2012-05-29 Joseph Myers <joseph@codesourcery.com>
3182
3183 * doc/include/texinfo.tex: Update to version 2012-05-16.16.
3184
3185 2012-05-29 Richard Guenther <rguenther@suse.de>
3186
3187 * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
3188 for globals.
3189 (add_referenced_var_1): Re-organize. Assert we are not
3190 called for globals.
3191 (remove_referenced_var): Likewise.
3192 * varpool.c (add_new_static_var): Use create_tmp_var_raw.
3193 * tree-mudflap.c (execute_mudflap_function_ops): Do not
3194 call add_referenced_var on globals.
3195 * matrix-reorg.c (transform_access_sites): Likewise.
3196
3197 2012-05-29 Steven Bosscher <steven@gcc.gnu.org>
3198
3199 * alias.c (reg_known_value): Make this a VEC.
3200 (reg_known_equiv_p): Make this an sbitmap.
3201 (reg_known_value_size): Remove.
3202 (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
3203 set_reg_known_equiv_p): Update for reg_known_value and
3204 reg_known_value_size data structure change.
3205 (init_alias_analysis, end_alias_analysis): Likewise.
3206
3207 2012-05-29 Jakub Jelinek <jakub@redhat.com>
3208
3209 PR middle-end/53510
3210 * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
3211 to avoid leaking memory. No need to handle memory allocation
3212 failure. Double string_len on each reallocation instead of adding 2.
3213 * gcov.c (read_line): Likewise.
3214
3215 2012-05-29 Hans-Peter Nilsson <hp@axis.com>
3216
3217 * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
3218 New macros.
3219 * config/cris/cris.md ("trap"): Define, enabled for
3220 TARGET_TRAP_USING_BREAK8.
3221 * config/cris/cris.opt (mtrap-using-break8): New option.
3222
3223 2012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
3224
3225 PR c++/25137
3226 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
3227 for C++.
3228
3229 2012-05-28 Hans-Peter Nilsson <hp@axis.com>
3230
3231 * doc/md.texi (stack_protect_test): Remove negation of branch to label.
3232 (Standard Names): Fix typos in documentation of atomic patterns.
3233
3234 2012-05-27 Nathan Sidwell <nathan@acm.org>
3235
3236 * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
3237
3238 2012-05-26 Jason Merrill <jason@redhat.com>
3239
3240 PR c++/53220
3241 * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
3242 about array compound literals.
3243
3244 2012-05-26 Eric Botcazou <ebotcazou@adacore.com>
3245
3246 * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
3247 if CLEANUP_NO_INSN_DEL.
3248 * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
3249 from cfg_layout_merge_blocks.
3250 (emit_nop_for_unique_locus_between): New function.
3251 (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
3252 (cfg_layout_merge_blocks): Likewise.
3253
3254 2012-05-26 Dimitrios Apostolou <jimis@gmx.net>
3255 Paolo Bonzini <bonzini@gnu.org>
3256
3257 * df-scan.c (df_def_record_1): Assert a parallel must contain an
3258 EXPR_LIST at this point. Receive the LOC and move its extraction...
3259 (df_defs_record): ... here. Change if-else to a switch statement.
3260 (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
3261 (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
3262 and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
3263 DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
3264 regs_invalidated_by_call.
3265 (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
3266 df_get_call_refs().
3267
3268 2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
3269
3270 PR lto/52178
3271 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
3272 * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
3273
3274 2012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
3275
3276 * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
3277 software floating point emulation. No longer build the multilibs
3278 with -mstrict-align.
3279
3280 2012-05-25 Aldy Hernandez <aldyh@redhat.com>
3281
3282 PR middle-end/53008
3283 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
3284 accessed indirectly.
3285 (ipa_tm_create_version): Same.
3286
3287 2012-05-25 Uros Bizjak <ubizjak@gmail.com>
3288
3289 PR target/53474
3290 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
3291 <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
3292
3293 2012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3294
3295 PR target/53435
3296 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
3297 (ix86_expand_vec_perm): Use int mode instead of float.
3298 (expand_vec_perm_pshufb): Remove handling of useseless type
3299 conversion.
3300
3301 2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
3302
3303 PR ada/52362
3304 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
3305 gnu_ld variables to yes.
3306 * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
3307 (HAVE_GNU_AS): Likewise.
3308 * config.in: Regenerate.
3309 * configure: Likewise.
3310
3311 2012-05-25 Tristan Gingold <gingold@adacore.com>
3312
3313 * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
3314 (ix86_compute_frame_layout): Fix type of stack_alignment_needed
3315 and preferred_alignment.
3316
3317 2012-05-25 Tristan Gingold <gingold@adacore.com>
3318
3319 * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
3320
3321 2012-05-25 Thomas Schwinge <thomas@codesourcery.com>
3322
3323 * fold-const.c (optimize_bit_field_compare): Abort early in the strict
3324 volatile bitfields case.
3325
3326 2012-05-24 Pat Haugen <pthaugen@us.ibm.com>
3327
3328 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
3329 rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
3330 (adjacent_mem_locations): Move some code to and call...
3331 (get_memref_parts): ...new function.
3332 (mem_locations_overlap): New function.
3333 (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
3334 (is_mem_ref): Rename to...
3335 (find_mem_ref): ...this. Return MEM rtx.
3336 (get_store_dest): Remove function.
3337 (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
3338 new parameter and adjust calls.
3339 (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
3340 mem refs overlap for true_store_to_load_dep_costly.
3341 (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
3342 passed to adjacent_mem_locations.
3343 (is_costly_group): Walk resolved dependency list.
3344 (force_new_group): Emit group ending nop for Power6/Power7.
3345 * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
3346 (group_ending_nop): New define_insn.
3347
3348 2012-05-24 Dodji Seketeli <dodji@redhat.com>
3349
3350 Make unwound macro expansion trace less redundant
3351 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
3352 context of macro definition in the trace, when it's redundant.
3353 Update comments.
3354
3355 2012-05-24 Richard Guenther <rguenther@suse.de>
3356
3357 PR middle-end/53460
3358 * tree-profile.c (tree_profiling): Cleanup the CFG if
3359 execute_fixup_cfg requests it.
3360
3361 2012-05-24 Richard Guenther <rguenther@suse.de>
3362
3363 * tree-flow.h (create_var_ann): Remove.
3364 * tree-dfa.c (create_var_ann): Remove and inline into its
3365 single caller ...
3366 (add_referenced_var_1): ... here.
3367 * varpool.c (add_new_static_var): Do not call add_referenced_var
3368 for global vars.
3369 * gimple-fold.c (canonicalize_constructor_val): Likewise.
3370 * tree-switch-conversion.c (build_one_array): Likewise.
3371 * tree-profile.c (gimple_gen_ic_profiler): Likewise.
3372 * tree-flow-inline.h (gimple_referenced_vars): Guard against
3373 NULL fn argument.
3374 * tree-inline.c (remap_gimple_op_r): Likewise. Check
3375 gimple_referenced_vars instead of gimple_in_ssa_p.
3376 (copy_tree_body_r): Likewise.
3377 (setup_one_parameter): Likewise.
3378 (declare_return_variable): Likewise.
3379 (tree_function_versioning): Likewise.
3380
3381 2012-05-24 Jakub Jelinek <jakub@redhat.com>
3382
3383 PR tree-optimization/53465
3384 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
3385 vr0 into *vr, then vrp_meet that.
3386 (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
3387 have any equivalences.
3388 (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
3389 first time.
3390
3391 2012-05-24 Jim MacArthur <jim.macarthur@arm.com>
3392
3393 * recog.c (reg_fits_class_p): Check both regno and regno + offset are
3394 hard registers.
3395 * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
3396 check end_regno - 1 is a hard register.
3397
3398 2012-05-24 Richard Guenther <rguenther@suse.de>
3399
3400 * varpool.c (add_new_static_var): Remove call to create_var_ann.
3401 * tree-ssa-operands.c (create_vop_var): Likewise.
3402
3403 2012-05-24 Richard Guenther <rguenther@suse.de>
3404
3405 PR bootstrap/53466
3406 * tree-ssa-live.c (remove_unused_scope_block_p): Properly
3407 handle globals.
3408 (remove_unused_locals): Pass global_unused_vars to
3409 remove_unused_scope_block_p. Restore code walking all
3410 referenced vars and pruning them.
3411
3412 2012-05-23 Jan Hubicka <jh@suse.cz>
3413
3414 * tree.h (alias_diag_flags): Remove.
3415 (alias_pair): Remove emitted_diags.
3416 (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
3417 symbol_alias_set_t, symbol_alias_set_destroy,
3418 symbol_alias_set_contains, propagate_aliases_backward): Remove.
3419 * toplev.c (compile_file): Do not call finish_aliases_2
3420 * cgraphunit.c (cgraph_process_new_functions): Do not call
3421 finish_aliases_1.
3422 (handle_alias_pairs): Output diagnostics about aliases to externals.
3423 (assemble_thunks_and_aliases): Use do_assemble_alias.
3424 (output_weakrefs): Likewise.
3425 (finalize_compilation_unit): Do not call finish_aliases_1.
3426 * ipa.c (symtab_remove_unreachable_nodes): De not call
3427 remove_unreachable_alias_pairs.
3428 * varasm.c (do_assemble_alias): Export.
3429 (symbol_alias_set_create, symbol_alias_set_destroy,
3430 symbol_alias_set_contains, symbol_alias_set_insert,
3431 propagate_aliases_forward, propagate_aliases_backward,
3432 propagate_aliases_backward, trivially_visible_alias,
3433 trivially_defined_alias, remove_unreachable_alias_pairs,
3434 finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
3435 * output.h (do_assemble_alias): Declare.
3436 * varpool.c (varpool_remove_unreferenced_decls): Do not call
3437 finish_aliases_1.
3438
3439 2012-05-23 Martin Jambor <mjambor@suse.cz>
3440
3441 * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
3442
3443 2012-05-23 Eric Botcazou <ebotcazou@adacore.com>
3444
3445 * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
3446 size handling.
3447 (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
3448 (iterative_hash_gimple_type): Adjust comment.
3449 (iterative_hash_canonical_type): Likewise. Hash the bounds of the
3450 domain for an array type instead of the domain type itself.
3451
3452 2012-05-23 Richard Guenther <rguenther@suse.de>
3453
3454 PR tree-optimization/53438
3455 * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
3456
3457 2012-05-23 Georg-Johann Lay <avr@gjlay.de>
3458
3459 PR target/53448
3460 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
3461 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
3462 ASM_OUTPUT_ALIGN.
3463
3464 2012-05-23 Richard Guenther <rguenther@suse.de>
3465
3466 * tree-dfa.c (add_referenced_var_1): Do not add global vars.
3467 * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
3468 via the global_unused_vars bitmap.
3469 (remove_unused_locals): Handle global vars in local-decls via
3470 a global_unused_vars bitmap instead of the used flag in the
3471 var annotation. Simplify global variable handling and removal.
3472
3473 2012-05-22 Jan Hubicka <jh@suse.cz>
3474
3475 PR middle-end/53426
3476 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
3477 from other partitions.
3478
3479 2012-05-22 Jan Hubicka <jh@suse.cz>
3480
3481 PR middle-end/53161
3482 * symtab.c (symtab_register_node): Fix ordering issue.
3483
3484 2012-05-22 Steven Drake <sbd@NetBSD.org>
3485
3486 * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
3487
3488 2012-05-22 David Edelsohn <dje.gcc@gmail.com>
3489
3490 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
3491 Use strip_name_encoding target hook.
3492
3493 2012-05-22 Richard Guenther <rguenther@suse.de>
3494
3495 * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
3496 (init_function_for_compilation): Remove.
3497 * tree-dfa.c (find_vars_r): Take struct function argument.
3498 (find_referenced_vars_in): Adjust.
3499 * tree-ssa-operands.c (clobber_stats): Remove.
3500 (create_vop_var): Take struct function argument. Mark
3501 virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
3502 (init_ssa_operands): Take struct function argument.
3503 (fini_ssa_operands): Do not dump dead stats.
3504 * tree-ssa-operands.h (init_ssa_operands): Take struct function
3505 argument.
3506 * cgraphunit.c (init_lowered_empty_function): Adjust.
3507 * lto-streamer-in.c (input_cfg): Likewise.
3508 * tree-inline.c (initialize_cfun): Likewise.
3509 * tree-into-ssa.c (rewrite_into_ssa): Likewise.
3510 * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun.
3511 * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
3512 virtual operands are not registers.
3513
3514 2012-05-22 Richard Guenther <rguenther@suse.de>
3515
3516 * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
3517
3518 2012-05-22 Richard Guenther <rguenther@suse.de>
3519
3520 PR middle-end/53437
3521 * tree-inline.c (setup_one_parameter): Create a dummy init
3522 statement for unused parameters when not optimizing.
3523
3524 2012-05-22 Richard Guenther <rguenther@suse.de>
3525
3526 * tree-flow.h (add_referenced_var_1): Declare.
3527 (add_referenced_var): Define.
3528 * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
3529 (add_referenced_var): Rename to ...
3530 (add_referenced_var_1): ... this. Take struct function argument.
3531
3532 2012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3533
3534 PR target/53334
3535 * config/arm/arm-protos.h (arm_validize_comparison): Declare.
3536 * config/arm/arm.c (arm_validize_comparison): Define.
3537 * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
3538 arm_validize_comparison.
3539 ("cbranchdi4"): Likewise.
3540 ("cstoredi4"): Likewise.
3541 ("movsicc"): Likewise.
3542 ("movsfcc"): Likewise.
3543 ("movdfcc"): Likewise.
3544
3545 2012-05-22 Dimitrios Apostolou <jimis@gmx.net>
3546
3547 * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
3548 the mw_reg_pool size.
3549
3550 2012-05-22 Paolo Bonzini <bonzini@gnu.org>
3551
3552 PR tree-optimization/53336
3553 * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
3554 non-integer integral types to offset type and vice versa.
3555
3556 2012-05-22 Alan Modra <amodra@gmail.com>
3557
3558 * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
3559 * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
3560 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
3561 V_SAVE_INLINE): Delete.
3562 * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
3563 (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
3564 For ELF targets, use out-of-line restores for -Os and any number
3565 of regs if the restore exits, and out-of-line gp save for two or
3566 more regs. Use save_reg_p to test for holes in reg restore set.
3567 Replace "#if" with "if".
3568
3569 2012-05-22 Alan Modra <amodra@gmail.com>
3570
3571 * config/rs6000/rs6000.c (save_reg_p): New function.
3572 (first_reg_to_save, first_fp_reg_to_save): Use it here.
3573 (first_altivec_reg_to_save, restore_saved_cr): Likewise.
3574 (emit_frame_save): Use gen_frame_store.
3575 (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
3576 (rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for
3577 vrsave and toc.
3578 (rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for
3579 vrsave, toc, gp and fp restores.
3580
3581 2012-05-22 Alan Modra <amodra@gmail.com>
3582
3583 * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
3584 Move those with ATTRIBUTE_UNUSED to immediately before definitions.
3585 Move function pointer variables after forward declarations.
3586 (rs6000_builtin_support_vector_misalignment): Make static.
3587 (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
3588 (rs6000_function_value, rs6000_can_eliminate): Likewise.
3589
3590 2012-05-21 Bernd Schmidt <bernds@codesourcery.com>
3591
3592 PR rtl-optimization/53373
3593 * caller-save.c (save_call_clobbered_regs): Look into a possible
3594 PARALLEL manually rather than using single_set on a call insn.
3595
3596 2012-05-21 Jakub Jelinek <jakub@redhat.com>
3597
3598 PR tree-optimization/53436
3599 * omp-low.c (omp_build_component_ref): New function.
3600 (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
3601
3602 2012-05-21 Uros Bizjak <ubizjak@gmail.com>
3603
3604 * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
3605 arguments to bool.
3606 (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
3607 Do not print '.' here. Output operand lossage error for unhandled
3608 sizes. Move.
3609 <case '*'>: Move.
3610 <case '&'>: Ditto.
3611 <case 'Y'>: Ditto.
3612 <case 'z'>: Hardcode "code" argument into error strings.
3613 <case 'Z'>: Ditto.
3614 <case 'D'>: Merge AVX and non-AVX codes.
3615 <case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string.
3616 Update call to put_condition_code.
3617
3618 2012-05-21 Andreas Schwab <schwab@linux-m68k.org>
3619
3620 * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call
3621 CC_STATUS_INIT.
3622 (clzsi2): New expander.
3623 (*clzsi2_68k): New insn.
3624 * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
3625
3626 2012-05-21 Aldy Hernandez <aldyh@redhat.com>
3627
3628 * gimple.h (gimple_set_in_transaction): Remove.
3629 (gimple_in_transaction): Look in BB instead.
3630 (gimple_statement_base): Remove in_transaction field.
3631 * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
3632 * trans-mem.c (compute_transaction_bits): Place transaction bit
3633 information into basic blocks.
3634
3635 2012-05-21 Andreas Schwab <schwab@linux-m68k.org>
3636
3637 * expr.c (get_def_for_expr_class): Define only if
3638 HAVE_conditional_move.
3639 (convert_tree_comp_to_rtx): Likewise.
3640
3641 2012-05-21 Uros Bizjak <ubizjak@gmail.com>
3642
3643 PR target/53399
3644 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
3645 for TARGET_BMI.
3646 (ffssi2_no_cmove): Ditto.
3647 (*ffs<mode>_1): Remove insn pattern.
3648 (*tzcnt<mode>_1): New insn pattern.
3649 (*bsf<mode>1): Ditto.
3650
3651 2012-05-21 Richard Guenther <rguenther@suse.de>
3652
3653 * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
3654 more referenced vars.
3655 * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
3656 flag on variables that have a var-annotation.
3657
3658 2012-05-21 Joseph Myers <joseph@codesourcery.com>
3659
3660 PR c/53418
3661 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
3662 from folded operands before wrapping another around the
3663 conditional expression.
3664
3665 2012-05-21 Jakub Jelinek <jakub@redhat.com>
3666
3667 PR tree-optimization/53366
3668 * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
3669 tests if complex_numbers == 2, but there are non-complex number loads
3670 too.
3671
3672 PR tree-optimization/53409
3673 * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
3674 vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
3675
3676 PR tree-optimization/53410
3677 * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
3678 instead of build_int_cst (type, 0) where vector types might be
3679 involved. Instead of build_int_cst (type, 1) convert the original
3680 integer_onep argument to the desired type.
3681
3682 2012-05-21 Michael Matz <matz@suse.de>
3683
3684 * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
3685 (simplify_test_exp): Handle one more case of distributive law,
3686 decrease cost threshold.
3687 (tests_attr_p, get_attr_order): New functions.
3688 (optimize_attrs): Use topological order, inline only cheap values.
3689 (write_attr_set): Reset our_known_true after some time.
3690
3691 2012-05-21 H.J. Lu <hongjiu.lu@intel.com>
3692
3693 PR target/53425
3694 * config/i386/i386.c (type_natural_mode): Warn passing SSE
3695 vector argument without SSE enabled changes the ABI.
3696
3697 2012-05-21 Richard Guenther <rguenther@suse.de>
3698
3699 PR tree-optimization/53408
3700 * tree-vect-loop.c (vectorizable_induction): Properly check
3701 the restriction that we cannot handle induction results from
3702 the inner loop outside of the outer loop.
3703
3704 2012-05-21 H.J. Lu <hongjiu.lu@intel.com>
3705
3706 PR target/53416
3707 * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
3708 (UNSPECV_RDRAND): This.
3709 (rdrand<mode>_1): Updated.
3710
3711 2012-05-21 Richard Guenther <rguenther@suse.de>
3712
3713 * tree-loop-distribution.c (can_generate_builtin): Reject
3714 volatile stmts.
3715
3716 2012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
3717
3718 * Makefile.in (options.c): Add options.h to included header
3719 files, before tm.h.
3720
3721 2012-05-21 Razya Ladelsky <razya@il.ibm.com>
3722
3723 * tree-parloops.c : Add myself to contributors, update
3724 TODO list, add link to wiki.
3725
3726 2012-05-21 Alan Modra <amodra@gmail.com>
3727
3728 * config/rs6000/predicates.md (input_operand): Don't match
3729 constant pool addresses. Remove label_ref, high and plus from
3730 match_code list. Remove redundant CONSTANT_P test.
3731 (splat_input_operand): Similarly update match_code list.
3732 (small_toc_ref): New predicate.
3733 * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
3734 * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
3735 (legitimate_constant_pool_address_p): Move TARGET_TOC test and
3736 register checks to..
3737 (toc_relative_expr_p): ..here. Add "strict" param. Match new rtl
3738 generated by create_TOC_reference.
3739 (rs6000_legitimize_address): Update cerate_TOC_reference call.
3740 (rs6000_delegitimize_address): Handle new rtl for toc refs.
3741 (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
3742 (use_toc_relative_ref): New function, split out from..
3743 (rs6000_emit_move): ..here. Remove redundant tests. Update
3744 create_TOC_reference calls.
3745 (rs6000_legitimize_reload_address): Formatting. Handle splitting
3746 of medium/large model toc addresses. Use use_toc_relative_ref.
3747 (print_operand): Formatting, style. Adjust for toc changes.
3748 (print_operand_address): Likewise.
3749 (rs6000_output_addr_const_extra): Likewise.
3750 (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
3751 than a PLUS. Use this formulation for both high and low part
3752 of -mcmodel=medium/large toc reference too. Before reload,
3753 always use the small model formulation.
3754 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
3755 a PLUS in high part of addresses here.
3756 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
3757 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
3758 (largetoc_high, largetoc_low): Move earlier. Cope when no
3759 base reg available.
3760 (largetoc_high_plus): New insn.
3761 (movsi_internal1, movsi_internal1_single, movsf_softfloat,
3762 movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
3763 (tocref): ..instead do so here, new insn and split.
3764
3765 2012-05-20 H.J. Lu <hongjiu.lu@intel.com>
3766
3767 * config/i386/driver-i386.c (host_detect_local_cpu): Support
3768 RDRND, F16C and FSGSBASE.
3769
3770 2012-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3771
3772 PR rtl-optimzation/53373
3773 * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
3774 call pattern. Update split patterns.
3775 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
3776 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
3777
3778 2012-05-20 Razya Ladelsky <razya@il.ibm.com>
3779
3780 * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
3781 for outer loops.
3782
3783 2012-05-18 Jan Hubicka <jh@suse.cz>
3784
3785 * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
3786 (cgraph_process_new_functions): Process also aliases.
3787 * lto-streamer-out.c (struct sets): Remove.
3788 (trivally_defined_alias): Remove.
3789 (output_alias_pair_p): Remove.
3790 (output_unreferenced_globals): Remove.
3791 (produce_symtab); Do not handle alias pairs.
3792 (produce_asm_for_decls): Likewise.
3793 * lto-streamer-in.c (input_alias_pairs): Remove.
3794 (lto_read_body): Do not input alias pairs.
3795 (lto_input_constructors_and_inits): Remove.
3796
3797 2012-05-18 Jan Hubicka <jh@suse.cz>
3798
3799 * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
3800 aliases.
3801
3802 2012-05-18 Jan Hubicka <jh@suse.cz>
3803
3804 * cgraphbuild.c (record_reference): Update.
3805 * lto-cgraph.c (lto_output_varpool_node): External vars
3806 are not in other partition even if they are not output
3807 in current partition.
3808 * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
3809 argument; fix.
3810 (canonicalize_constructor_val): Take FROM_DECL argument.
3811 (fold_ctor_reference, fold_string_cst_ctor_reference,
3812 fold_array_ctor_reference, fold_nonarray_ctor_reference,
3813 fold_ctor_reference): Likewise.
3814 (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
3815 * gimple.h (gimple_fold_builtin): Likewise.
3816
3817 2012-05-18 Olivier Hainque <hainque@adacore.com>
3818
3819 * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
3820 $(libsubdir) as libexecsubdir.
3821
3822 2012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3823
3824 * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
3825 relied on signed overflow behavior.
3826
3827 2012-05-18 Richard Guenther <rguenther@suse.de>
3828
3829 PR tree-optimization/53346
3830 * tree-loop-distribution.c (ldist_gen): Make sure to apply
3831 builtin transform even when only a single partition with
3832 all reads/writes exists.
3833
3834 2012-05-18 Richard Guenther <rguenther@suse.de>
3835
3836 PR tree-optimization/53390
3837 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
3838 strided loads.
3839
3840 2012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3841
3842 * tree-ssa-reassoc.c (bip_map): Remove decl.
3843 (completely_remove_stmt): Remove function.
3844 (remove_def_if_absorbed_call): Remove function.
3845 (remove_visited_stmt_chain): Remove __builtin_powi handling.
3846 (possibly_move_powi): Remove function.
3847 (rewrite_expr_tree): Remove calls to possibly_move_powi.
3848 (rewrite_expr_tree_parallel): Likewise.
3849 (attempt_builtin_powi): Build multiplies explicitly rather than
3850 relying on the ops vector and rank system.
3851 (transform_stmt_to_copy): New function.
3852 (transform_stmt_to_multiply): Likewise.
3853 (reassociate_bb): Handle leftover operations after __builtin_powi
3854 optimization; build a final multiply if necessary.
3855
3856 2012-05-18 Jan Hubicka <jh@suse.cz>
3857
3858 * cgraphunit.c (varpool_finalize_decl): Allow external decls.
3859 (mark_functions_to_output): Fix sanity check.
3860 * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
3861
3862 2012-05-18 Richard Guenther <rguenther@suse.de>
3863
3864 * tree-flow.h (mark_symbols_for_renaming): Remove.
3865 * tree-dfa.c (mark_symbols_for_renaming): Likewise.
3866 * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
3867 (copy_debug_stmt): Likewise.
3868 (expand_call_inline): Likewise.
3869 (declare_return_variable): Mark the return variable for renaming
3870 if necessary.
3871
3872 2012-05-18 Andrew Stubbs <ams@codesourcery.com>
3873
3874 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
3875 prototype.
3876 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
3877 * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
3878 (ashrdi3,lshrdi3): Likewise.
3879 (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
3880
3881 2012-05-18 Meador Inge <meadori@codesourcery.com>
3882
3883 PR rtl-optimization/53352
3884 * cse.c (equiv_constant): Ignore paradoxical subregs.
3885
3886 2012-05-17 Steven Bosscher <steven@gcc.gnu.org>
3887
3888 PR rtl-optimization/53125
3889 * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
3890 argument. Simplify calculation of REG_LIVE_LENGTH for regnos that
3891 die in the basic block. Correctly top off REG_FREQ and
3892 REG_FREQ_CALLS_CROSSED.
3893 Remove do_not_gen.
3894 (regstat_compute_ri): Allocate and free local_live_last_luid.
3895 Remove do_not_gen.
3896 (regstat_bb_compute_calls_crossed): Correctly top off
3897 REG_FREQ_CALLS_CROSSED.
3898
3899 2012-05-17 Jan Hubicka <jh@suse.cz>
3900
3901 * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
3902 constructor over decl without.
3903 * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
3904 * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
3905 * cgraphunit.c (process_function_and_variable_attributes): Finalize
3906 extrnal decls.
3907 (mark_functions_to_output): Also accept bodies for functions with
3908 clones.
3909 (output_in_order): Skip external vars.
3910 * lto-cgraph.c (lto_output_node): External functions are never in other
3911 partition.
3912 (lto_output_varpool_node): Likewise.
3913 * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
3914 forgotten initializers.
3915 * ipa.c (process_references): Handle external vars.
3916 (symtab_remove_unreachable_nodes): Update to handle external vars.
3917 (varpool_externally_visible_p): External vars are externally visible.
3918 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
3919 * varpool.c (varpool_remove_node): Remove constructor.
3920 (decide_is_variable_needed): Handle externals.
3921 (varpool_remove_unreferenced_decls): Likewise.
3922
3923 2012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3924
3925 * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
3926 (enable_warning_as_error): Do not special case Wuninitialized.
3927 * optc-gen.awk: Add sanity checks.
3928
3929 2012-05-17 Jan Hubicka <jh@suse.cz>
3930
3931 * ipa-reference.c (is_proper_for_analysis): Do not check flags
3932 that might change as result of global optimization.
3933 (analyze_function): Do not check analyzed and externally_visible
3934 flags; be happy about address dereferences.
3935 (propagate): Prune all_module_statics so it really contains just
3936 statics; prune all the local summaries.
3937 (ipa_reference_write_optimization_summary): Simplify.
3938
3939 2012-05-17 Kwok Cheung Yeung <kcy@codesourcery.com>
3940
3941 * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
3942 * config/m68k/m68k-tables.opt: Regenerated.
3943 * doc/invoke.texi (M680x0 Options): Document.
3944
3945 2012-05-16 Dave Boutcher <daveboutcher@gmail.com>
3946 Patrick Marlier <patrick.marlier@gmail.com>
3947
3948 * trans-mem.c (ipa_tm_transform_clone): Transform functions with
3949 indirect calls.
3950
3951 2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
3952
3953 * configure: Regenerated.
3954
3955 2012-05-16 Andrew Pinski <apinski@cavium.com>
3956
3957 * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
3958 GIMPLE_ASSIGN.
3959
3960 2012-05-16 David S. Miller <davem@davemloft.net>
3961
3962 * jump.c (delete_related_insns): If we remove a CALL, make sure
3963 we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
3964
3965 2012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3966
3967 PR tree-optimization/53217
3968 * tree-ssa-reassoc.c (bip_map): New static variable.
3969 (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
3970 (attempt_builtin_powi): Save feeding multiplies on a stack.
3971 (reassociate_bb): Create and destroy bip_map.
3972
3973 2012-05-16 Olivier Hainque <hainque@adacore.com>
3974
3975 * Makefile.in (install-no-fixedincludes): New target, former toplevel
3976 gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
3977 Add comments and improve stamp preservation across the whole sequence.
3978 (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
3979
3980 2012-05-16 Richard Guenther <rguenther@suse.de>
3981
3982 * tree-inline.c (insert_init_stmt): Do not call
3983 mark_symbols_for_renaming.
3984 (setup_one_parameter): Avoid initializing unused parameters.
3985 (declare_return_variable): Properly handle DECL_BY_REFERENCE
3986 return vars in SSA form.
3987
3988 2012-05-16 Richard Guenther <rguenther@suse.de>
3989
3990 * tree-flow.h (get_virtual_var): Remove.
3991 * tree-dfa.c (get_virtual_var): Likewise.
3992
3993 2012-05-16 Richard Guenther <rguenther@suse.de>
3994
3995 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
3996 Remove set-only bitmap of new names.
3997 (slpeel_tree_peel_loop_to_edge): Likewise. Do not set
3998 CFG hooks.
3999 * tree-flow.h (ssa_names_to_replace): Remove.
4000 * tree-into-ssa.c (ssa_names_to_replace): Likewise.
4001
4002 2012-05-16 Richard Guenther <rguenther@suse.de>
4003
4004 PR tree-optimization/53364
4005 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
4006 detect a view-conversion of the decl.
4007
4008 2012-05-16 Dodji Seketeli <dodji@redhat.com>
4009
4010 PR preprocessor/7263
4011 * c-tree.h (enum c_declspec_word): Declare new enum.
4012 (struct c_declspecs::locations): New member.
4013 (declspecs_add_qual, declspecs_add_scspec)
4014 (declspecs_add_addrspace, declspecs_add_alignas): Take a new
4015 location parameter.
4016 * c-decl.c (build_null_declspecs): Initialize the new struct
4017 c_declspecs::locations member.
4018 (declspecs_add_addrspace): Take a location parameter for the
4019 address space. Store it onto declaration specifiers.
4020 (declspecs_add_qual): Likewise, take a location parameter for the
4021 qualifier.
4022 (declspecs_add_type): Likewise, take a location parameter for the
4023 type specifier.
4024 (declspecs_add_scspec): Likewise, take a location parameter for
4025 the storage class specifier.
4026 (declspecs_add_attrs): Likewise, take a location parameter for the
4027 first attribute.
4028 (declspecs_add_alignas): Likewise, take a location parameter for
4029 the alignas token.
4030 (finish_declspecs): For diagnostics, use the location of the
4031 relevant declspec, instead of the global input_location.
4032 * c-parser.c (c_parser_parameter_declaration): Pass the precise
4033 virtual location of the declspec to the declspecs-setters.
4034 (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token
4035 repeatedly.
4036
4037 2012-05-16 Igor Zamyatin <igor.zamyatin@intel.com>
4038
4039 * configure.ac: Stack protector enabling for Android targets.
4040 * configure: Regenerate.
4041
4042 2012-05-16 Richard Sandiford <r.sandiford@uk.ibm.com>
4043
4044 * ira.c (pseudo_move_insn): Delete.
4045 (find_moveable_pseudos): Don't set it.
4046 (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
4047 the definitions of the original pseudo. Delete all of them.
4048
4049 2012-05-16 Olivier Hainque <hainque@adacore.com>
4050
4051 * config/rs6000/rs6000-opts.h (enum processor_type): Add
4052 PROCESSOR_PPC8548.
4053 * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
4054 * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
4055 * config/rs6000/8540.md: indicate that the units/patterns apply to
4056 ppc8548 as well.
4057
4058 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
4059 default_cpu into implicit_cpu, conveying what --with-cpu was passed at
4060 configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
4061 related flags, check that what is queried is supported by the selected
4062 configuration. Rework the single/double_float and MASK_STRING resets to
4063 hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
4064 costs for PROCESSOR_PPC8548 as well.
4065 (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
4066 (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
4067 statement instead of a sequence of ifs.
4068
4069 * config/rs6000/rs6000.h (TARGET_E500): Remove.
4070 (TARGET_NO_LWSYNC): Adjust accordingly.
4071 * config/rs6000/e500.h (TARGET_E500): Remove.
4072 (CHECK_E500_OPTIONS): Adjust accordingly.
4073 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
4074 (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
4075 * config/rs6000/linuxspe.h: Likewise.
4076 * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
4077 superfluous comments.
4078 * config/rs6000/e500-double.h: Remove.
4079
4080 * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
4081 default to with_cpu=8548 if --enable-e500-double, and to 8540
4082 otherwise.
4083 (set misc flags section): For powerpc*|rs6000*, remove inclusion
4084 of e500-double.h for --enable-e500-double.
4085
4086 2012-05-16 Olivier Hainque <hainque@adacore.com>
4087
4088 * Makefile.in (s-header-vars): Resort to -n instead of trailing
4089 -e d in sed invocation.
4090
4091 2012-05-16 Hans-Peter Nilsson <hp@axis.com>
4092
4093 * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
4094 source-code.
4095 * doc/tm.texi: Regenerate.
4096
4097 2012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
4098
4099 * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
4100
4101 2012-05-15 Jakub Jelinek <jakub@redhat.com>
4102
4103 PR target/53358
4104 * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
4105 that operands[2] is either immediate, or q_regs_operand.
4106
4107 2012-05-15 Richard Guenther <rguenther@suse.de>
4108
4109 * cgraphunit.c (thunk_adjust): Use make_rename_temp.
4110 (assemble_thunk): Likewise. Manually rename and register
4111 function arguments.
4112
4113 2012-05-15 Richard Guenther <rguenther@suse.de>
4114
4115 PR tree-optimization/53355
4116 * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
4117 by constants.
4118
4119 2012-05-15 Tristan Gingold <gingold@adacore.com>
4120
4121 * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
4122
4123 2012-05-15 Richard Guenther <rguenther@suse.de>
4124
4125 * gimple.c (gimple_set_modified): Move ...
4126 * gimple.h (gimple_set_modified): ... here.
4127
4128 2012-05-15 Tristan Gingold <gingold@adacore.com>
4129
4130 * ira-color.c (move_spill_restore): Add a guard.
4131
4132 2012-05-15 Tristan Gingold <gingold@adacore.com>
4133
4134 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
4135 plus_constant.
4136
4137 2012-05-15 Eric Botcazou <ebotcazou@adacore.com>
4138
4139 * gimplify.c (gimplify_init_constructor): Do a block move for very
4140 small objects as well.
4141
4142 2012-05-15 Bernd Schmidt <bernds@codesourcery.com>
4143
4144 * ira.c (find_moveable_pseudos): Skip registers whose
4145 DF_REG_EQ_USE_COUNT is nonzero.
4146
4147 2012-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
4148
4149 * doc/md.texi (fma): Define to only be applicable for single rounding.
4150
4151 2012-05-14 Uros Bizjak <ubizjak@gmail.com>
4152
4153 PR target/46098
4154 * config/i386/i386.c (ix86_expand_special_args_builtin): Always
4155 generate target register for "load" class builtins.
4156
4157 Revert:
4158 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
4159
4160 PR target/46098
4161 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
4162 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
4163 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
4164 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
4165 (<sse>_movu<ssemodesuffix>): New expander.
4166 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
4167 (avx_movdqu<avxmodesuffix>): New expander.
4168 (*sse2_movdqu): Rename from sse2_movdqu.
4169 (sse2_movdqu): New expander.
4170
4171 2012-05-14 Marc Glisse <marc.glisse@inria.fr>
4172
4173 PR target/52607
4174 * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
4175 (canonicalize_perm): ... new function.
4176 (expand_vec_perm_2vperm2f128_vshuf): New function.
4177 (ix86_expand_vec_perm_const_1): Call it.
4178
4179 2012-05-14 Andrew Pinski <apinski@cavium.com>
4180 H.J. Lu <hongjiu.lu@intel.com>
4181 Jakub Jelinek <jakub@redhat.com>
4182
4183 PR target/53315
4184 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
4185 (xbegin): Updated.
4186
4187 2012-05-14 Jakub Jelinek <jakub@redhat.com>
4188
4189 * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
4190 lineno 1 the same as lineno 0 before first start file directive.
4191 (optimize_macinfo_range): Likewise.
4192
4193 * dwarf2out.c (have_macinfo): Define.
4194 (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
4195 attribute, don't force empty compilation unit and don't emit any
4196 .debug_macinfo/.debug_macro section if macinfo_table is empty.
4197
4198 2012-05-14 Georg-Johann Lay <avr@gjlay.de>
4199
4200 PR target/53344
4201 * config/avr/avr.c (avr_const_address_lo16): Remove.
4202 (avr_assemble_integer): Print ".byte lo8(x)",
4203 ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
4204 .warning if 3-byte address is assembled.
4205 * doc/extend.texi (AVR Named Address Spaces): Document that
4206 binutils 2.23 is needed to assemble 3-byte addresses.
4207
4208 2012-05-14 Richard Guenther <rguenther@suse.de>
4209
4210 * tree-vect-data-refs.c (vect_setup_realignment): Remove
4211 call to mark_symbols_for_renaming.
4212 (vect_permute_load_chain): Likewise.
4213 * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
4214 instead of calling mark_symbols_for_renaming.
4215 * tree-vect-stmts.c (read_vector_array): Remove call to
4216 mark_symbols_for_renaming.
4217 (write_vector_array): Likewise.
4218 (vectorizable_call): Likewise.
4219 (vectorizable_store): Likewise.
4220 (vectorizable_load): Likewise.
4221 * matrix-reorg.c (transform_allocation_sites): Likewise.
4222 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
4223 (create_expression_by_pieces): Likewise.
4224
4225 2012-05-14 Richard Guenther <rguenther@suse.de>
4226
4227 * gimplify.c (gimple_regimplify_operands): Only mark the LHS
4228 of statements for renaming.
4229 (force_gimple_operand_1): Likewise, consistently for both
4230 calls to force_gimple_operand and force_gimple_operand_gsi.
4231
4232 2012-05-14 Richard Guenther <rguenther@suse.de>
4233
4234 * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
4235 * omp-low.c (expand_omp_taskreg): Properly conditionalize call
4236 to update_ssa.
4237 (expand_omp_for): Likewise.
4238 (expand_omp_for_generic): Adjust conditional add to referenced vars.
4239 Use make_rename_temp for temporaries that should be rewritten into
4240 SSA form.
4241 (expand_omp_for_static_nochunk): Likewise.
4242 (expand_omp_atomic_pipeline): Likewise.
4243
4244 2012-05-14 Richard Guenther <rguenther@suse.de>
4245
4246 PR tree-optimization/53331
4247 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
4248 strided loads.
4249 * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
4250
4251 2012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
4252
4253 PR 53063
4254 * doc/options.texi: (LangEnabledBy): Document it.
4255 * optc-gen.awk: Handle LangEnabledBy.
4256 * opth-gen.awk: Generate declaration for lang-specific functions.
4257 * opt-read.awk: Record lang numbers.
4258 * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
4259 (lang_sanitized_name): New.
4260
4261 2012-05-14 Bernd Schmidt <bernds@codesourcery.com>
4262
4263 * attribs.c (decl_attributes): Avoid emitting a warning if
4264 ATTR_FLAG_BUILT_IN.
4265 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
4266 codes. Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
4267 * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define. Use it to
4268 define a string "1".
4269 (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
4270 * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
4271 BUILT_IN_STRCPY): Use it for these functions.
4272 * postreload.c (reload_combine): Deal with SETs inside
4273 CALL_INSN_FUNCTION_USAGE.
4274 * caller-save.c (setup_save_areas, save_call_clobbered_regs):
4275 Look for REG_RETURNED notes and use a cheap restore if possible.
4276 * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
4277 (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
4278 * ira-build.c (ira_create_allocno, create_cap_allocno,
4279 propagate_allocno_info, propagate_some_info_from_allocno,
4280 copy_info_to_removed_store_destination, ira_flattening): Handle it.
4281 * ira-lives.c (pseudo_regno_single_word_and_live_p,
4282 find_call_crossed_cheap_reg): New static functions.
4283 (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
4284 and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible. Also make
4285 a REG_RETURNED note in that case.
4286 * ira.c (setup_reg_renumber): Change assert to allow cases where
4287 allocnos only cross calls for which they are cheap to restore.
4288 * ira-costs.c (ira_tune_allocno_costs): Compare
4289 ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
4290 than 0.
4291 * reg-notes.def (REG_RETURNED): New note.
4292 * cse.c (cse_insn): Likewise.
4293 * sched-deps.c (sched_analyze_insn): Likewise.
4294 * expr.c (init_block_move_fn): Set a "fn spec" attribute.
4295 * calls.c (decl_return_flags): New static function.
4296 (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
4297 functions that return one of their arguments.
4298 * regcprop.c (struct kill_set_value_data): New.
4299 (kill_set_value): Interpret data as a pointer to such a struct.
4300 Do nothing if the caller wants the register to be ignored.
4301 (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
4302
4303 2012-05-14 Richard Guenther <rguenther@suse.de>
4304
4305 PR tree-optimization/53340
4306 * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
4307
4308 2012-05-14 Richard Guenther <rguenther@suse.de>
4309
4310 * gimplify.c (gimplify_expr): Remove odd code.
4311
4312 2012-05-14 Eric Botcazou <ebotcazou@adacore.com>
4313
4314 * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
4315 into a PLUS_EXPR byte offset.
4316
4317 * tree-ssa-pre.c (can_value_number_call): Delete.
4318 (compute_avail): Skip all statements with side effects.
4319 <GIMPLE_CALL>: Skip calls to internal functions.
4320
4321 2012-05-13 Steven Bosscher <steven@gcc.gnu.org>
4322
4323 * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
4324
4325 2012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
4326
4327 * common.opt (Wtype-limits): Use EnabledBy.
4328
4329 2012-05-13 Uros Bizjak <ubizjak@gmail.com>
4330
4331 * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
4332 (pushtf splitter): Ditto.
4333 (movtf): Ditto.
4334 (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
4335 (<code>tf2): Enable for TARGET_SSE.
4336 (*absnegtf2_sse): Ditto.
4337 (copysign<mode>3): Enable TFmode for TARGET_SSE.
4338 (copysign<mode>3_const): Ditto.
4339 (copysign<mode>3_var): Ditto.
4340 * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
4341 (*andnottf3): Ditto. Use V4SFmode for !TARGET_SSE2.
4342 (*<code>tf3): Ditto.
4343 * config/i386/i386.c (struct builtin_description bdesc_args)
4344 <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
4345 <IX86_BUILTIN_COPYSIGNQ>: Ditto.
4346 (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
4347 Emit a normal call if SSE isn't available.
4348
4349 2012-05-13 Uros Bizjak <ubizjak@gmail.com>
4350
4351 * config/i386/sse.md (<sse>_andnot<mode>3): Handle
4352 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
4353 (<code><mode>3): Ditto.
4354 (*andnot<mode>3): Ditto.
4355 (*andnottf3): Ditto.
4356 (*<code><mode>3): Ditto.
4357 (<code>tf3): Ditto.
4358
4359 2012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
4360
4361 * optc-gen.awk: Error instead of warning for conflicting help.
4362
4363 2012-05-12 Jason Merrill <jason@redhat.com>
4364
4365 PR debug/53235
4366 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
4367 comdat types.
4368
4369 2012-05-12 Eric Botcazou <ebotcazou@adacore.com>
4370
4371 * function.c (requires_stack_frame_p): If the function can throw
4372 non-call exceptions, return true if the insn can throw internally.
4373
4374 2012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
4375
4376 * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
4377
4378 2012-05-12 Uros Bizjak <ubizjak@gmail.com>
4379
4380 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
4381 ORDERED and UNORDERED conditions.
4382
4383 2012-05-11 Richard Guenther <rguenther@suse.de>
4384
4385 * tree-flow.h (referenced_var_check_and_insert): Remove.
4386 (find_new_referenced_vars): Likewise.
4387 * tree-dfa.c (referenced_var_check_and_insert): Make static.
4388 (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
4389 * tree-inline.c (copy_bb): Use find_referenced_vars_in
4390 instead of find_new_referenced_vars.
4391 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
4392
4393 2012-05-11 Richard Guenther <rguenther@suse.de>
4394
4395 * tree-pass.h (pass_rest_of_compilation,
4396 pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
4397 Remove.
4398 * passes.c (pass_all_optimizations, pass_postreload,
4399 pass_all_early_optimizations): Make static.
4400 (pass_rest_of_compilation): Likewise. Make it an RTL_PASS.
4401 * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
4402 * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
4403 (delete_tree_ssa): Do not call fini_phinodes.
4404 * tree-flow.h (init_phinodes, fini_phinodes): Remove.
4405
4406 2012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
4407
4408 PR 53063
4409 * doc/options.texi (EnabledBy): Document
4410 * opts.c: Include opts.h and options.h before tm.h.
4411 (finish_options): Do not handle some sub-options here...
4412 (common_handle_option): ... instead call common_handle_option_auto
4413 here.
4414 * optc-gen.awk: Handle EnabledBy.
4415 * opth-gen.awk: Declare common_handle_option_auto.
4416 * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
4417 (Wmaybe-uninitialized): Likewise.
4418 (Wunused-but-set-variable): Likewise.
4419 (Wunused-function): Likewise.
4420 (Wunused-label): Likewise.
4421 (Wunused-value): Likewise.
4422 (Wunused-variable): Likewise.
4423 * opt-read.awk: Create opt_numbers array.
4424
4425 2012-05-11 Richard Guenther <rguenther@suse.de>
4426
4427 PR tree-optimization/53295
4428 * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
4429 strides.
4430 * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
4431 strides when analyzing data-references in a loop context.
4432 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
4433 non-constant strides for now.
4434 (vect_enhance_data_refs_alignment): Ignore data references
4435 that are strided loads.
4436 (vect_analyze_data_ref_access): Handle non-constant strides.
4437 (vect_check_strided_load): Verify the data-reference is a load.
4438 (vect_analyze_data_refs): Restructure to make strided load
4439 support not dependent on gather support.
4440 * tree-vect-stmts.c (vectorizable_load): Avoid useless work
4441 when doing strided or gather loads.
4442 * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
4443 integer_zerop to compare stride with zero.
4444
4445 2012-05-11 H.J. Lu <hongjiu.lu@intel.com>
4446
4447 * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
4448
4449 2012-05-11 Jan Hubicka <jh@suse.cz>
4450
4451 PR bootstrap/53300
4452 * varpool.c (varpool_assemble_decl): Also output constat pool entries
4453 that output_constant_pool missed.
4454
4455 2012-05-11 Mingjie Xing <mingjie.xing@gmail.com>
4456
4457 * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
4458 MULTILIB_EXTRA_OPTS.
4459
4460 2012-05-11 Uros Bizjak <ubizjak@gmail.com>
4461
4462 PR target/53291
4463 * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
4464
4465 2012-05-11 Uros Bizjak <ubizjak@gmail.com>
4466
4467 * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
4468 optimization for TARGET_AVX.
4469 (*movti_internal_sse): Ditto.
4470 (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
4471 (*movdi_internal): Ditto.
4472 (*movsi_internal): Ditto.
4473 (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
4474 (*movdf_internal_rex64): Ditto.
4475 (*movfd_internal): Ditto.
4476 (*movsf_internal): Ditto.
4477 * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
4478
4479 2012-05-10 Eric Botcazou <ebotcazou@adacore.com>
4480
4481 * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
4482 reference as size attribute.
4483
4484 2012-05-10 Eric Botcazou <ebotcazou@adacore.com>
4485 Tristan Gingold <gingold@adacore.com>
4486
4487 * doc/md.texi (Standard Names): Document probe_stack_address.
4488 * explow.c (emit_stack_probe): Handle probe_stack_address.
4489 * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
4490 (UNSPECV_PROBE_STACK_RANGE): Likewise.
4491 (probe_stack_address): New insn.
4492 (probe_stack_range): Likewise.
4493 * config/ia64/ia64.c: Include common/common-target.h.
4494 (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
4495 checking is enabled.
4496 (ia64_emit_probe_stack_range): New function.
4497 (output_probe_stack_range): Likewise.
4498 (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
4499 builtin stack checking is enabled.
4500 (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
4501 and UNSPECV_PROBE_STACK_ADDRESS.
4502 (unknown_for_bundling_p): New predicate.
4503 (group_barrier_needed): Use important_for_bundling_p.
4504 (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
4505 (issue_nops_and_insn): Likewise.
4506 (bundling): Likewise.
4507 (final_emit_insn_group_barriers): Likewise.
4508 * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
4509 * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
4510 (STACK_CHECK_PROTECT): Likewise.
4511 * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4512
4513 2012-05-10 Jan Hubicka <jh@suse.cz>
4514
4515 * ipa-inline.c (update_all_callee_keys): Remove.
4516 (inline_small_functions): Simplify priority updating.
4517
4518 2012-05-10 Jan Hubicka <jh@suse.cz>
4519
4520 * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
4521
4522 2012-05-10 Jan Hubicka <jh@suse.cz>
4523
4524 * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
4525 (symtab_remove_unreachable_nodes): ... this one.
4526 * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
4527 * cgraphunit.c (ipa_passes): Update.
4528 * cgraphclones.c (cgraph_materialize_all_clones): Update.
4529 * cgraph.c (cgraph_release_function_body): Only turn initial
4530 into error mark when initial was previously set.
4531 * ipa-inline.c (ipa_inline): Update.
4532 * ipa.c: Include ipa-inline.h
4533 (enqueue_cgraph_node, enqueue_varpool_node): Remove.
4534 (enqueue_node): New function.
4535 (process_references): Update.
4536 (symtab_remove_unreachable_nodes): Cleanup.
4537 * passes.c (execute_todo, execute_one_pass): Update.
4538
4539 2012-05-10 Vladimir Makarov <vmakarov@redhat.com>
4540
4541 PR rtl-optimization/53125
4542 * ira.c (ira): Call find_moveable_pseudos and
4543 move_unallocated_pseudos if only ira_conflicts_p is true.
4544
4545 2012-05-10 Uros Bizjak <ubizjak@gmail.com>
4546
4547 * config/i386/i386.md (*movoi_internal_avx): Handle
4548 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
4549 (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
4550 (*movti_internal_sse): Ditto.
4551 (*movtf_internal): Ditto.
4552 * config/i386/sse.md (ssePSmode): New mode attribute.
4553 (*move<mode>_internal): Use ssePSmode.
4554 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
4555 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
4556 * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
4557 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
4558
4559 2012-05-10 Eric Botcazou <ebotcazou@adacore.com>
4560
4561 * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
4562 DECL_ORIGINAL_TYPE if it is present.
4563
4564 2012-05-10 Nick Clifton <nickc@redhat.com>
4565
4566 PR target/53120
4567 * config/m32c/bitops.md (bset_qi): Change operand 2 from having
4568 a "0" constraint to being a (match_dup 0).
4569
4570 2012-05-10 Richard Guenther <rguenther@suse.de>
4571
4572 * stor-layout.c (byte_from_pos): Amend comment.
4573
4574 2012-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4575
4576 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
4577 Document requirement to call in constructors.
4578
4579 * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
4580
4581 2012-05-10 Richard Guenther <rguenther@suse.de>
4582
4583 * tree.h (TYPE_IS_SIZETYPE): Remove.
4584 * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
4585 (extract_muldiv_1): Likewise.
4586 * gimple.c (gtc_visit): Likewise.
4587 (gimple_types_compatible_p): Likewise.
4588 (iterative_hash_canonical_type): Likewise.
4589 (gimple_canonical_types_compatible_p): Likewise.
4590 * gimplify.c (gimplify_one_sizepos): Likewise.
4591 * print-tree.c (print_node): Likewise.
4592 * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
4593
4594 2012-05-09 Uros Bizjak <ubizjak@gmail.com>
4595
4596 PR target/52908
4597 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
4598 xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
4599 (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
4600 instead of xop_mulv2div2di3_low.
4601 (xop_p<macs>dql): Fix vec_select selector.
4602 (xop_p<macs>dqh): Ditto.
4603 (xop_mulv2div2di3_low): Remove insn_and_split pattern.
4604 (xop_mulv2div2di3_high): Ditto.
4605
4606 2012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
4607
4608 PR c++/53289
4609 * diagnostic.h (diagnostic_context): Add last_location.
4610 * diagnostic.c (diagnostic_initialize): Initialize it.
4611 (diagnostic_show_locus): Use it.
4612
4613 2012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
4614
4615 * doc/extend.texi (Function Attributes): Point xref to section
4616 about Pragmas.
4617
4618 2012-05-09 Uros Bizjak <ubizjak@gmail.com>
4619
4620 * config/i386/i386.c (*movdf_internal_rex64): Remove
4621 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
4622 Calculate "mode" attribute according to
4623 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
4624 (*movdf_internal): Ditto.
4625
4626 2012-05-09 Uros Bizjak <ubizjak@gmail.com>
4627
4628 PR target/44141
4629 * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
4630 128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and
4631 sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
4632 or when optimizing for size.
4633 * config/i386/sse.md (*mov<mode>_internal): Remove
4634 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
4635 Calculate "mode" attribute according to optimize_function_for_size_p
4636 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
4637 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
4638 depending on the mode of the instruction. Calculate "mode" attribute
4639 according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
4640 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
4641 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
4642
4643 2012-05-09 Georg-Johann Lay <avr@gjlay.de>
4644
4645 PR target/53256
4646 * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
4647 * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
4648 * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
4649 * config/avr/avr.c (avr_asm_declare_function_name): Remove.
4650 (expand_prologue): Move initialization of cfun->machine->is_naked,
4651 is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
4652 (avr_set_current_function): ...this new static function.
4653 (TARGET_SET_CURRENT_FUNCTION): New define.
4654 (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
4655 checking attributes of current_function_decl.
4656 (avr_regs_to_save): Ditto.
4657 (signal_function_p): Rename to avr_signal_function_p.
4658 (interrupt_function_p): Rename to avr_interrupt_function_p.
4659
4660 * doc/extend.texi (Function Attributes): Better explanation of
4661 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
4662 alphabetical order.
4663
4664 2012-05-09 Michael Matz <matz@suse.de>
4665
4666 PR tree-optimization/53185
4667 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
4668 peeling when we see strided loads.
4669
4670 2012-05-09 Matthias Klose <doko@ubuntu.com>
4671
4672 * gcc-ar.c (main): Don't check for execute bits for the plugin.
4673
4674 2012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4675
4676 * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
4677 Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
4678 USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
4679 * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
4680 (USE_LOAD_POST_INCREMENT): Define.
4681 (USE_LOAD_PRE_INCREMENT): Define.
4682 (USE_LOAD_POST_DECREMENT): Define.
4683 (USE_LOAD_PRE_DECREMENT): Define.
4684 (USE_STORE_PRE_DECREMENT): Define.
4685 (USE_STORE_PRE_INCREMENT): Define.
4686 (USE_STORE_POST_DECREMENT): Define.
4687 (USE_STORE_POST_INCREMENT): Define.
4688 (arm_auto_incmodes): Add enumeration.
4689 * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
4690 * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
4691
4692 2012-05-09 Jakub Jelinek <jakub@redhat.com>
4693
4694 PR tree-optimization/53226
4695 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
4696 prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
4697 before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
4698 doesn't need to be revisited, look for earliest stmt with
4699 !gimple_plf (stmt, GF_PLF_1) if something changed.
4700
4701 2012-05-09 Terry Guo <terry.guo@arm.com>
4702
4703 * genmultilib: Update copyright dates.
4704 * doc/fragments.texi: Ditto.
4705
4706 2012-05-09 Terry Guo <terry.guo@arm.com>
4707
4708 * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
4709 * genmultilib (MULTILIB_REQUIRED): New.
4710 * doc/fragments.texi: Document the MULTILIB_REQUIRED.
4711
4712 2012-05-09 Richard Guenther <rguenther@suse.de>
4713
4714 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
4715 (vect_do_peeling_for_loop_bound): Likewise.
4716 (vect_do_peeling_for_alignment): Likewise.
4717 * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
4718 (vect_do_peeling_for_loop_bound): Get check_profitability and
4719 threshold as parameters.
4720 (vect_do_peeling_for_alignment): Likewise.
4721 (vect_loop_versioning): Likewise.
4722 * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
4723 and threshold here. Control where to put the check here.
4724
4725 2012-05-09 Richard Sandiford <rdsandiford@googlemail.com>
4726
4727 PR middle-end/53249
4728 * dwarf2out.h (get_address_mode): Move declaration to...
4729 * rtl.h: ...here.
4730 * dwarf2out.c (get_address_mode): Move definition to...
4731 * rtlanal.c: ...here.
4732 * var-tracking.c (get_address_mode): Delete.
4733 * combine.c (find_split_point): Use get_address_mode instead of
4734 targetm.addr_space.address_mode.
4735 * cselib.c (cselib_record_sets): Likewise.
4736 * dse.c (canon_address, record_store): Likewise.
4737 * emit-rtl.c (adjust_address_1, offset_address): Likewise.
4738 * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
4739 (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
4740 (expand_expr_real_1): Likewise.
4741 * ifcvt.c (noce_try_cmove_arith): Likewise.
4742 * optabs.c (maybe_legitimize_operand_same_code): Likewise.
4743 * reload.c (find_reloads): Likewise.
4744 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
4745 * sel-sched-dump.c (debug_mem_addr_value): Likewise.
4746
4747 2012-05-09 Maciej W. Rozycki <macro@codesourcery.com>
4748
4749 * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
4750 information from the instruction produced.
4751
4752 2012-05-09 Richard Guenther <rguenther@suse.de>
4753
4754 * stor-layout.c (bit_from_pos): Document.
4755 (byte_from_pos): Likewise. Optimize.
4756 (pos_from_bit): Likewise.
4757 (normalize_offset): Use pos_from_bit instead of replicating it.
4758
4759 2012-05-09 Alan Modra <amodra@gmail.com>
4760
4761 PR target/53271
4762 * config/rs6000/rs6000.c (gen_frame_set): New function.
4763 (gen_frame_load, gen_frame_store): New functions.
4764 (rs6000_savres_rtx): Use the above.
4765 (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
4766 Correct mode used for CR2 in save/restore_world patterns.
4767 Don't emit instructions for eh_return frame unwind reg info.
4768
4769 2012-05-08 Jan Hubicka <jh@suse.cz>
4770
4771 * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
4772 with VALUE_EXPR.
4773 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
4774 are removable.
4775 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
4776 need to wrapup.
4777 (compile_file): Do not output variables.
4778 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
4779 output it.
4780 * langhooks.c: Include timevar.h
4781 (write_global_declarations): Finalize compilation unit after wrapup;
4782 set timevars correctly.
4783 * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
4784 not to be added to varpool.
4785 * varpool.c (varpool_assemble_decl): Sanity check that we are called
4786 only on cases where it makes sense; skip constant pool and value expr
4787 vars.
4788
4789 2012-05-08 David S. Miller <davem@davemloft.net>
4790
4791 * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
4792 * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
4793 * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
4794
4795 2012-05-08 Richard Sandiford <rdsandiford@googlemail.com>
4796
4797 PR rtl-optimization/53278
4798 * lower-subreg.c (decompose_multiword_subregs): Remove left-over
4799 speed_p code from earlier patch.
4800
4801 2012-05-08 Oleg Endo <olegendo@gcc.gnu.org>
4802
4803 PR target/51244
4804 * config/sh/sh.md (*branch_true, *branch_false): New insns.
4805
4806 2012-05-08 Teresa Johnson <tejohnson@google.com>
4807
4808 * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
4809 * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
4810
4811 2012-05-08 Jan Hubicka <jh@suse.cz>
4812
4813 * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
4814 (cgraph_create_node_1): Rename to ...
4815 (cgraph_create_empty_node): ... this one; export.
4816 (cgraph_create_node): Update.
4817 (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
4818 (cgraph_create_edge_including_clones): Likewise.
4819 (cgraph_find_replacement_node): Likewise.
4820 (cgraph_clone_edge): Likewise.
4821 (cgraph_clone_node): Likewise.
4822 (clone_function_name): Likewise.
4823 (cgraph_create_virtual_clone): Likewise.
4824 (cgraph_remove_node_and_inline_clones): Likewise.
4825 (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
4826 * cgraph.h: Reorder declarations so they match file of origin.
4827 (cgraph_create_empty_node): Declare.
4828 * cgraphunit.c (update_call_expr): Move to cgraphclones.c
4829 (cgraph_copy_node_for_versioning): Likewise.
4830 (cgraph_function_versioning): Likewise.
4831 (cgraph_materialize_clone): Likewise.
4832 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
4833 (cgraph_materialize_all_clones): Likewise.
4834 * cgraphclones.c: New file.
4835 * Makefile.in: Update for cgraphclones.
4836
4837 2012-05-08 Uros Bizjak <ubizjak@gmail.com>
4838
4839 PR target/53176
4840 * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
4841 (ix86_rtx_costs): Handle SET.
4842
4843 2012-05-08 Michael Matz <matz@suse.de>
4844
4845 * basic-block.h (struct rtl_bb_info): Remove visited member and
4846 move head_ member to ...
4847 (struct basic_block_def.basic_block_il_dependent): ... the new
4848 member x, replacing but containing old member rtl.
4849 (enum bb_flags): New BB_VISITED flag.
4850 (BB_HEADER, BB_FOOTER): New macros.
4851
4852 * jump.c (mark_all_labels): Adjust.
4853 * cfgcleanup.c (try_optimize_cfg): Adjust.
4854 * cfglayout.c (record_effective_endpoints): Adjust.
4855 (relink_block_chain): Ditto (and don't fiddle with visited).
4856 (fixup_reorder_chain): Adjust.
4857 (fixup_fallthru_exit_predecessor): Ditto.
4858 (cfg_layout_duplicate_bb): Ditto.
4859 * combine.c (update_cfg_for_uncondjump): Adjust.
4860 * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
4861 (bb_visited_trace): New accessor.
4862 (mark_bb_visited): Move in front.
4863 (rotate_loop): Use bb_visited_trace.
4864 (find_traces_1_round): Ditto.
4865 (emit_barrier_after): Ditto.
4866 (copy_bb): Ditto, and initialize visited on resize.
4867 (reorder_basic_blocks): Initize visited member.
4868 (duplicate_computed_gotos): Clear bb flags at start, use
4869 BB_VISITED flags.
4870
4871 * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
4872 (rtl_verify_flow_info_1): Ditto.
4873 (cfg_layout_split_block): Ditto.
4874 (cfg_layout_delete_block): Ditto.
4875 (cfg_layout_merge_blocks): Ditto.
4876 (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
4877
4878 2012-05-08 Hans-Peter Nilsson <hp@axis.com>
4879
4880 PR target/53272
4881 * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
4882 when a constant source operand matches an "I" constraint, the "no
4883 CC0 change" applies to a register-destination only, not a
4884 strict_low_part-destination.
4885
4886 2012-05-08 Richard Guenther <rguenther@suse.de>
4887
4888 * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
4889 to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
4890
4891 2012-05-08 Georg-Johann Lay <avr@gjlay.de>
4892
4893 * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
4894
4895 * doc/avr-mmcu.texi: New auto-generated file.
4896 * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
4897 to document all valid -mmcu= arguments.
4898
4899 * config/avr/avr.h (arch_info_s): New struct definition.
4900 * config/avr/avr-devices.c (avr_texinfo): New variable.
4901 * config/avr/gen-avr-mmcu-texi.c: New file.
4902 * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
4903
4904 2012-05-08 Dehao Chen <dehao@google.com>
4905
4906 * predict.c (find_qualified_ssa_name): New.
4907 (find_ssa_name_in_expr): New.
4908 (find_ssa_name_in_assign_stmt): New.
4909 (is_comparison_with_loop_invariant_p): New.
4910 (is_bound_expr_similar): New.
4911 (predict_iv_comparison): New.
4912 (predict_loops): Add heuristic for loop-nested branches that compare an
4913 induction variable to a loop bound variable.
4914 * predict.def (PRED_LOOP_IV_COMPARE): New macro.
4915
4916 2012-05-08 Uros Bizjak <ubizjak@gmail.com>
4917
4918 * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
4919 TARGET_BDVER2 defines where appropriate.
4920
4921 2012-05-07 Eric Botcazou <ebotcazou@adacore.com>
4922
4923 * configure.ac (PLUGIN_LD): Rename into...
4924 (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
4925 * config.in: Regenerate.
4926 * configure: Likewise.
4927 * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
4928
4929 2012-05-07 Eric Botcazou <ebotcazou@adacore.com>
4930
4931 * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
4932 computation using the precision of the index type.
4933 * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
4934 (fold_array_ctor_reference): Do index computations in the index type.
4935
4936 2012-05-07 Georg-Johann Lay <avr@gjlay.de>
4937
4938 * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
4939 down to plus_constant.
4940 (expand_epilogue): Ditto.
4941
4942 2012-05-07 Steven Bosscher <steven@gcc.gnu.org>
4943
4944 * postreload.c (reload_cse_regs): Make static.
4945 * reload.h (reload_cse_regs): Remove prototype.
4946
4947 2012-05-07 Richard Henderson <rth@redhat.com>
4948
4949 * config/alpha/alpha.md (clear_cache): New pattern.
4950
4951 2012-05-07 Steven Bosscher <steven@gcc.gnu.org>
4952
4953 PR middle-end/53245
4954 * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
4955 is folded to a type boundary value, verify that the resulting case
4956 label is still a care range.
4957
4958 2012-05-07 Uros Bizjak <ubizjak@gmail.com>
4959
4960 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
4961 only for TARGET_GENERIC, when not optimizing for size.
4962 (*ffs<mode>_1): Ditto.
4963
4964 2012-05-07 Steven Bosscher <steven@gcc.gnu.org>
4965
4966 * tree-cfg.c (verify_gimple_switch): Tighten checks.
4967
4968 2012-05-07 Jakub Jelinek <jakub@redhat.com>
4969
4970 PR tree-optimization/53239
4971 * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
4972 of DECL_BY_REFERENCE RESULT_DECL to nonnull.
4973
4974 2012-05-07 Richard Guenther <rguenther@suse.de>
4975
4976 PR tree-optimization/53195
4977 * tree-inline.c (setup_one_parameter): Properly add referenced
4978 vars from the parameters new known value.
4979
4980 2012-05-07 Steven Bosscher <steven@gcc.gnu.org>
4981
4982 * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
4983 (sched_branch_type): Remove.
4984 (m68k_sched_md_init_global): Don't allocate it.
4985 (m68k_sched_md_finish_global): Don't free it.
4986 * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
4987 * config/m68k/m68k.md: Set the type of insns using
4988 m68k_sched_branch_type to bcc directly.
4989
4990 2012-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4991
4992 * config/sol2.c (solaris_override_options): New function.
4993 * config/sol2-protos.h (solaris_override_options): Declare.
4994 * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
4995
4996 2012-05-07 Richard Guenther <rguenther@suse.de>
4997
4998 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
4999 whether we failed to compute data dependences.
5000 (loop_prefetch_arrays): Fail if we failed.
5001
5002 2012-05-07 Uros Bizjak <ubizjak@gmail.com>
5003 Paolo Bonzini <bonzini@gnu.org>
5004
5005 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
5006 Emit bsf when optimizing for size.
5007 (*ffs<mode>_1): Ditto.
5008
5009 2012-05-07 Oleg Endo <olegendo@gcc.gnu.org>
5010
5011 PR target/53250
5012 * config/sh/sh.c (sh_rtx_costs): Handle SET.
5013
5014 2012-05-06 Uros Bizjak <ubizjak@gmail.com>
5015
5016 PR target/53227
5017 * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
5018 (bswapdi2): Split from bswap<mode>2. Use nonnimediate_operand
5019 predicate for operand 1. Force operand 1 to register for TARGET_BSWAP.
5020 (bswapsi2): Ditto.
5021 (*bswapdi2_doubleword): New insn pattern.
5022 (*bswap<mode>2): Rename from *bswap<mode>2_1.
5023
5024 2012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
5025
5026 * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
5027 (mips_set_reg_reg_cost): Likewise.
5028 (mips_rtx_costs): Handle SET.
5029
5030 2012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
5031
5032 * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
5033 (compute_costs): Likewise for the zero extension. Use set_rtx_cost
5034 to compute the cost of moves. Set the mode of the target register.
5035
5036 2012-05-05 Richard Sandiford <rdsandiford@googlemail.com>
5037
5038 * rtl.h (plus_constant, plus_constant_mode): Merge into a single
5039 plus_constant function.
5040 * explow.c (plus_constant, plus_constant_mode): Likewise. Assert
5041 that the mode is sensible.
5042 (use_anchored_address, round_push, allocate_dynamic_stack_space)
5043 (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
5044 plus_constant.
5045
5046 * alias.c (canon_rtx): Likewise.
5047 (init_alias_analysis): Likewise.
5048 * builtins.c (expand_builtin_return_addr)
5049 (expand_builtin_setjmp_setup, expand_builtin_longjmp)
5050 (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
5051 (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
5052 (expand_builtin_stpcpy): Likewise.
5053 * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
5054 (compute_argument_addresses, internal_arg_pointer_based_exp)
5055 (expand_call, emit_library_call_value_1): Likewise.
5056 * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
5057 * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
5058 * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
5059 * cse.c (insert_const_anchor, find_reg_offset_for_const)
5060 (use_related_value, fold_rtx): Likewise.
5061 * cselib.c (cselib_subst_to_values): Likewise.
5062 * dse.c (record_store, check_mem_read_rtx): Likewise.
5063 * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
5064 * emit-rtl.c (adjust_address_1): Likewise.
5065 * except.c (sjlj_emit_function_enter)
5066 (expand_builtin_extract_return_addr)
5067 (expand_builtin_frob_return_addr): Likewise.
5068 * expmed.c (expand_divmod): Likewise.
5069 * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
5070 (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
5071 (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
5072 * function.c (assign_stack_local_1)
5073 (instantiate_virtual_regs_in_rtx): Likewise.
5074 * optabs.c (prepare_cmp_insn): Likewise.
5075 * recog.c (offsettable_address_addr_space_p): Likewise.
5076 * reload.c (find_reloads_address, form_sum)
5077 (find_reloads_subreg_address): Likewise.
5078 * reload1.c (init_reload, eliminate_regs_1)
5079 (eliminate_regs_in_insn): Likewise.
5080 * simplify-rtx.c (simplify_unary_operation_1)
5081 (simplify_binary_operation_1, simplify_plus_minus): Likewise.
5082 * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
5083 (vt_add_function_parameter): Likewise.
5084
5085 * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
5086 * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
5087 * config/alpha/alpha.c (alpha_legitimize_address_1)
5088 (get_unaligned_address, alpha_expand_unaligned_load)
5089 (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
5090 (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
5091 (alpha_expand_builtin_establish_vms_condition_handler)
5092 (alpha_setup_incoming_varargs, emit_frame_store_1)
5093 (alpha_expand_prologue, alpha_expand_epilogue)
5094 (alpha_use_linkage): Likewise.
5095 * config/alpha/alpha.md: Likewise.
5096
5097 * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
5098 (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
5099 (thumb_legitimize_address, arm_gen_load_multiple_1)
5100 (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
5101 (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
5102 (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
5103 (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
5104 (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
5105 (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
5106 (thumb_expand_movmemqi, arm_set_return_address)
5107 (thumb_set_return_address): Likewise.
5108 * config/arm/arm.md: Likewise.
5109
5110 * config/avr/avr.c (avr_incoming_return_addr_rtx)
5111 (avr_prologue_setup_frame, expand_epilogue)
5112 (avr_const_address_lo16): Likewise.
5113
5114 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
5115 * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
5116 (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
5117 (bfin_output_mi_thunk): Likewise.
5118
5119 * config/c6x/c6x.c (c6x_initialize_trampoline)
5120 (c6x_output_mi_thunk): Likewise.
5121
5122 * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
5123 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
5124
5125 * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
5126 (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
5127 (cris_emit_movem_store, cris_trampoline_init): Likewise.
5128 * config/cris/cris.md: Likewise.
5129
5130 * config/darwin.c (machopic_indirect_data_reference)
5131 (machopic_legitimize_pic_address): Likewise.
5132
5133 * config/epiphany/epiphany.c (epiphany_emit_save_restore)
5134 (epiphany_expand_prologue, epiphany_expand_epilogue)
5135 (epiphany_trampoline_init): Likewise.
5136 * config/epiphany/epiphany.md: Likewise.
5137
5138 * config/fr30/fr30.c (fr30_move_double): Likewise.
5139
5140 * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
5141 (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
5142 (frv_index_memory, unspec_got_name, frv_find_base_term)
5143 (frv_output_dwarf_dtprel): Likewise.
5144
5145 * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
5146 (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
5147
5148 * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
5149 * config/i386/i386.c (setup_incoming_varargs_64)
5150 (setup_incoming_varargs_ms_64, choose_baseaddr)
5151 (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
5152 (ix86_emit_probe_stack_range, ix86_expand_prologue)
5153 (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
5154 (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
5155 (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
5156 (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
5157 (x86_output_mi_thunk): Likewise.
5158 * config/i386/i386.md: Likewise.
5159
5160 * config/ia64/ia64.c (ia64_expand_load_address)
5161 (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
5162 (do_spill, ia64_trampoline_init): Likewise.
5163
5164 * config/iq2000/iq2000.c (iq2000_va_start)
5165 (iq2000_emit_frame_related_store, iq2000_expand_prologue)
5166 (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
5167 (iq2000_print_operand, iq2000_legitimize_address): Likewise.
5168
5169 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
5170
5171 * config/m32c/m32c.c (m32c_return_addr_rtx)
5172 (m32c_expand_insv): Likewise.
5173
5174 * config/m32r/m32r.c (m32r_setup_incoming_varargs)
5175 (m32r_legitimize_pic_address, m32r_print_operand)
5176 (m32r_print_operand_address): Likewise.
5177
5178 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
5179 * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
5180 (EH_RETURN_HANDLER_RTX): Likewise.
5181 * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
5182 (m68k_expand_epilogue, legitimize_pic_address)
5183 (m68k_output_mi_thunk): Likewise.
5184 * config/m68k/m68k.md: Likewise.
5185
5186 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
5187 (mcore_expand_epilog): Likewise.
5188 * config/mcore/mcore.md: Likewise.
5189
5190 * config/mep/mep.c (mep_allocate_initial_value)
5191 (mep_expand_prologue, mep_expand_epilogue): Likewise.
5192
5193 * config/microblaze/microblaze.c (double_memory_operand)
5194 (microblaze_block_move_loop): Likewise.
5195
5196 * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
5197 (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
5198 (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
5199 (mips_expand_prologue, mips_epilogue_set_cfa)
5200 (mips_expand_epilogue): Likewise.
5201 * config/mips/mips.md: Likewise.
5202
5203 * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
5204 (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
5205
5206 * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
5207 (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
5208
5209 * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
5210 (EH_RETURN_HANDLER_RTX): Likewise.
5211 * config/moxie/moxie.c (moxie_static_chain): Likewise.
5212
5213 * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
5214 (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
5215 (pa_return_addr_rtx, hppa_builtin_saveregs)
5216 (pa_trampoline_init): Likewise.
5217 * config/pa/pa.md: Likewise.
5218
5219 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
5220
5221 * config/picochip/picochip.c (picochip_static_chain): Likewise.
5222
5223 * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
5224 * config/rs6000/rs6000.c (rs6000_legitimize_address)
5225 (setup_incoming_varargs, print_operand, rs6000_return_addr)
5226 (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
5227 (rs6000_emit_epilogue)
5228 (rs6000_machopic_legitimize_pic_address): Likewise.
5229
5230 * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
5231
5232 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
5233 (DYNAMIC_CHAIN_ADDRESS): Likewise.
5234 * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
5235 (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
5236 (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
5237 (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
5238 (s390_emit_epilogue, s390_function_profiler): Likewise.
5239 * config/s390/s390.md: Likewise.
5240
5241 * config/score/score.c (score_add_offset, score_prologue): Likewise.
5242
5243 * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
5244 (sh_output_mi_thunk): Likewise.
5245 * config/sh/sh.md: Likewise.
5246
5247 * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
5248 (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
5249 * config/sparc/sparc.c (sparc_legitimize_pic_address)
5250 (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
5251 (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
5252 (emit_and_preserve): Likewise.
5253 * config/sparc/sparc.md: Likewise.
5254
5255 * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
5256 * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
5257 (spu_setup_incoming_varargs, ea_load_store_inline)
5258 (spu_expand_load): Likewise.
5259
5260 * config/stormy16/stormy16.c (xstormy16_expand_prologue)
5261 (combine_bnp): Likewise.
5262
5263 * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
5264 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
5265 (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
5266
5267 * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
5268 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
5269 (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
5270
5271 * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
5272 * config/v850/v850.md: Likewise.
5273
5274 * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
5275 (EH_RETURN_HANDLER_RTX): Likewise.
5276 * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
5277 * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
5278 (print_operand_address, vax_trampoline_init): Likewise.
5279
5280 * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
5281 (xtensa_function_value_regno_p): Likewise.
5282
5283 2012-05-04 Andrew Pinski <apinski@cavium.com>
5284
5285 * expr.c (get_def_for_expr_class): New function.
5286 (convert_tree_comp_to_rtx): New function.
5287 (expand_cond_expr_using_cmove): New function.
5288 (expand_expr_real_2 <case COND_EXPR>): Call
5289 expand_cond_expr_using_cmove first and return if it succeeds.
5290 Remove the check for HAVE_conditional_move since we should have
5291 already converted it to a conditional move.
5292 * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
5293 modes of DImode for 32bits and TImode.
5294
5295 2012-05-04 Steven Bosscher <steven@gcc.gnu.org>
5296
5297 PR other/29442
5298 * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
5299 (print_md_ptr_loc, print_c_condition): Use them.
5300 * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
5301 * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
5302 attr_file, dfa_file, latency_file): New global variables.
5303 (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
5304 write_upcase, write_indent, write_length_unit_log, write_test_expr,
5305 write_attr_get, write_insn_cases, write_eligible_delay,
5306 write_const_num_delay_slots): Accept FILE pointer and toss it around.
5307 Update all callers.
5308 (write_header, open_outfile, handle_arg): New funcions.
5309 (make_automaton_attrs): Write prototypes as extern to the output
5310 files.
5311 (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
5312 names from the command line. Open the output files and write out
5313 internal functions for DFA functions to dfa_file_name, insn latency
5314 functions to latency_file_name, and everything else to attr_file.
5315 * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
5316 (BACKEND): Build libbackend first.
5317 (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
5318 (.PRECIOUS): Likewise.
5319 (insn-dfatab.o): New rule.
5320 (insn-latencytab.o): New rule.
5321 (simple_rtl_generated_c): Do not include insn-attrtab.c.
5322 (s-attrtab): New rule.
5323
5324 2012-05-04 Steven Bosscher <steven@gcc.gnu.org>
5325
5326 * rtl.def (ATTR_FLAG): Remove probability indicating flags.
5327 * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
5328 ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
5329 * reorg.c (get_jump_flags): Do not set the removed flags.
5330
5331 * doc/md.texi (attr_flag): Update for abovementioned changes.
5332
5333 2012-05-04 Uros Bizjak <ubizjak@gmail.com>
5334
5335 PR target/53228
5336 * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
5337 (TARGET_CMOV): Rename from TARGET_CMOVE.
5338 (TARGET_CMOVE): New define.
5339 * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
5340 Do not set TARGET_CMOVE here.
5341
5342 2012-05-04 Dodji Seketeli <dodji@redhat.com>
5343
5344 Enable -Wunused-local-typedefs when -Wall or -Wunused is on
5345 * opts.c (finish_options): Activate -Wunused-local-typedefs if
5346 -Wunused is activated.
5347 * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
5348
5349 2012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5350
5351 * config/s390/s390.md (*movmem_short, *clrmem_short)
5352 (*cmpmem_short): Move the mode check from the insn condition to
5353 the match_scratch.
5354
5355 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
5356
5357 PR tree-optimization/52633
5358 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
5359 vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
5360 (vect_recog_over_widening_pattern): Remove handling of code that was
5361 already detected as over-widening pattern. Remove special handling
5362 of "unsigned" cases. Instead, support general case of conversion
5363 of the shift result to another type.
5364
5365 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
5366
5367 * tree-vect-patterns.c (vect_single_imm_use): New function.
5368 (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
5369 (vect_recog_over_widening_pattern): Likewise.
5370 (vect_recog_widen_shift_pattern): Likewise.
5371
5372 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
5373
5374 * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
5375 (vect_handle_widen_op_by_const): Use it instead of open-coding test.
5376 (vect_recog_widen_mult_pattern): Likewise.
5377 (vect_operation_fits_smaller_type): Likewise.
5378 (vect_recog_over_widening_pattern): Likewise.
5379 (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
5380
5381 2012-05-04 Richard Guenther <rguenther@suse.de>
5382
5383 PR lto/50602
5384 * lto-wrapper.c (merge_and_complain): Complain about mismatches
5385 of -freg-struct-return and -fpcc-struct-return.
5386 (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
5387 from the input file options and ignore those from the link
5388 command line.
5389
5390 2012-05-04 Richard Guenther <rguenther@suse.de>
5391
5392 PR tree-optimization/53168
5393 * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
5394 memory reads when the result is a constant we can pun.
5395
5396 2012-05-04 Richard Guenther <rguenther@suse.de>
5397
5398 * common.opt (flto-report): Do not mark as Optimization.
5399
5400 2012-05-04 Eric Botcazou <ebotcazou@adacore.com>
5401
5402 PR target/48496
5403 * recog.c (constrain_operands): If extra constraints are present, also
5404 accept pseudo-registers with equivalent memory locations during reload.
5405
5406 2012-05-04 Olivier Hainque <hainque@adacore.com>
5407
5408 * collect2.c (may_unlink_output_file): New global.
5409 (maybe_unlink): Honor it.
5410 * collect2.h: Add extern for it.
5411 * tlink.c (do_tlink): Set it to true if the link succeeded.
5412
5413 2012-05-04 Olivier Hainque <hainque@adacore.com>
5414
5415 * gcc.c (eval_spec_function): Finalize/restore the current string
5416 obstack state as part of the context push/pop operations.
5417
5418 2012-05-04 Bin Cheng <bin.cheng@arm.com>
5419
5420 PR rtl-optimization/52804
5421 * reload1.c (reload_reg_reaches_end_p): Check whether successor
5422 reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
5423 of current one with type RELOAD_FOR_INPADDR_ADDRESS.
5424 Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
5425 RELOAD_FOR_OUTADDR_ADDRESS.
5426
5427 2012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
5428
5429 PR c++/24985
5430 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
5431 for macro expansion.
5432
5433 2012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5434
5435 * flags.h (flag_permissive): Do not declare.
5436 * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
5437 option specially.
5438 * toplev.c (flag_permissive): Do not define.
5439 * c-tree.h (system_header_p): Delete unused.
5440
5441 2012-05-03 David S. Miller <davem@davemloft.net>
5442
5443 PR target/52684
5444 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
5445 MEM directly into a libcall, mark it's MEM_EXPR as addressable.
5446 (sparc_emit_float_lib_cmp): Likewise.
5447
5448 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
5449
5450 PR target/53199
5451 * config/rs6000/rs6000.md (bswapdi splitters): If
5452 -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
5453 default) is used, generate an alternate sequence that does not
5454 depend on using indexed addressing.
5455
5456 2012-05-03 Jason Merrill <jason@redhat.com>
5457
5458 * gengtype.c (write_types): Fix warning message.
5459 (write_local): Likewise.
5460
5461 2012-05-02 Jason Merrill <jason@redhat.com>
5462
5463 * dwarf2out.c (struct external_ref, build_local_stub): New.
5464 (hash_external_ref, external_ref_eq, lookup_external_ref): New.
5465 (optimize_external_refs, optimize_external_refs_1): New.
5466 (change_AT_die_ref): New.
5467 (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
5468 (build_abbrev_table): Take the external refs hashtable.
5469 (output_comp_unit): Get it from optimize_external_refs and pass it in.
5470
5471 2012-05-03 Jan Hubicka <jh@suse.cz>
5472
5473 PR middle-end/53093
5474 * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
5475
5476 2012-05-03 Jan Hubicka <jh@suse.cz>
5477
5478 PR middle-end/53106
5479 * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
5480
5481 2012-05-03 Jason Merrill <jason@redhat.com>
5482
5483 * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of
5484 use_debug_types to discriminate the die_id union.
5485 (print_die, assign_symbol_names, copy_decls_walk): Likewise.
5486 (build_abbrev_table, output_die): Likewise.
5487 (prune_unused_types_walk_attribs): Likewise.
5488 (generate_type_signature, copy_declaration_context): Set it.
5489 (remove_child_or_replace_with_skeleton): Set it.
5490 (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
5491 check use_debug_types.
5492 (dwarf2out_finish): Do break_out_includes after .debug_types.
5493
5494 2012-05-03 Jason Merrill <jason@redhat.com>
5495
5496 * dwarf2out.c (modified_type_die): Use scope_die_for.
5497 (gen_type_die_with_usage, dwarf2out_finish): Likewise.
5498 (uses_local_type_r, uses_local_type): New.
5499 (scope_die_for): Keep a type that uses a local type in local scope.
5500 Use get_context_die for namespace and type scope.
5501
5502 2012-05-03 Jason Merrill <jason@redhat.com>
5503
5504 * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
5505 pc thunk.
5506 * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
5507 (dwarf2out_finish): Likewise.
5508
5509 2012-05-03 Martin Jambor <mjambor@suse.cz>
5510
5511 * builtins.c (get_object_alignment_1): Return whether we can determine
5512 the alignment or conservatively assume byte alignment. Return the
5513 alignment by reference. Use get_pointer_alignment_1 for dereference
5514 alignment.
5515 (get_pointer_alignment_1): Return whether we can determine the
5516 alignment or conservatively assume byte alignment. Return the
5517 alignment by reference. Use get_ptr_info_alignment to get SSA name
5518 alignment.
5519 (get_object_alignment): Update call to get_object_alignment_1.
5520 (get_object_or_type_alignment): Likewise, fall back to type alignment
5521 only when it returned false.
5522 (get_pointer_alignment): Update call to get_pointer_alignment_1.
5523 * fold-const.c (get_pointer_modulus_and_residue): Update call to
5524 get_object_alignment_1.
5525 * ipa-prop.c (ipa_modify_call_arguments): Update call to
5526 get_pointer_alignment_1.
5527 * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
5528 of MEM_REF or TARGET_MEM_REF only when it returns false.
5529 * tree-ssa-ccp.c (get_value_from_alignment): Update call to
5530 get_object_alignment_1.
5531 (ccp_finalize): Use set_ptr_info_alignment.
5532 * tree.h (get_object_alignment_1): Update declaration.
5533 (get_pointer_alignment_1): Likewise.
5534 * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
5535 (dump_gimple_stmt): Likewise.
5536 * tree-flow.h (ptr_info_def): Updated comments of fields align and
5537 misalign.
5538 (get_ptr_info_alignment): Declared.
5539 (mark_ptr_info_alignment_unknown): Likewise.
5540 (set_ptr_info_alignment): Likewise.
5541 (adjust_ptr_info_misalignment): Likewise.
5542 * tree-ssa-address.c (copy_ref_info): Use new access functions to get
5543 and set alignment of SSA names.
5544 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
5545 mark_ptr_info_alignment_unknown.
5546 * tree-ssanames.c (get_ptr_info_alignment): New function.
5547 (mark_ptr_info_alignment_unknown): Likewise.
5548 (set_ptr_info_alignment): Likewise.
5549 (adjust_ptr_info_misalignment): Likewise.
5550 (get_ptr_info): Call mark_ptr_info_alignment_unknown.
5551 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5552 Likewise.
5553 (bump_vector_ptr): Likewise.
5554 * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
5555 (vectorizable_store): Likewise.
5556 (vectorizable_load): Likewise.
5557
5558 2012-05-03 Michael Matz <matz@suse.de>
5559
5560 * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
5561 in front of basic_block_def.
5562 (struct basic_block_def): Make il.gimple the full struct, not a
5563 pointer.
5564 (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
5565
5566 * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
5567 * gimple-iterator.c (gimple_stmt_iterator): Don't special case
5568 NULL il.gimple, which can't happen anymore.
5569 * gimple.h (bb_seq): il.gimple can't be NULL.
5570 (bb_seq_add): Ditto.
5571 (set_bb_seq): Adjust.
5572 (gsi_start_bb, gsi_last_bb): Tidy.
5573 * lto-streamer-in.c (make_new_block): Don't zero members that
5574 are zeroed already, don't allocate a gimple_bb_info.
5575 * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
5576 (remove_bb): Clear all il.gimple members.
5577 (gimple_verify_flow_info): Adjust for flat il.gimple.
5578 * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
5579
5580 * coretypes.h (const_gimple_seq): Remove typedef.
5581 * gimple.h (gimple_seq_first): Take gimple_seq.
5582 (gimple_seq_first_stmt): Ditto.
5583 (gimple_seq_last): Ditto.
5584 (gimple_seq_last_stmt): Ditto.
5585 (gimple_seq_empty_p): Ditto.
5586
5587 2012-05-03 Richard Guenther <rguenther@suse.de>
5588
5589 * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
5590 operations.
5591 (prune_clobbered_mems): Do it here. Do not uselessly sort expressions.
5592 (compute_avail): Do not add possibly trapping operations to
5593 EXP_GEN if they might not be executed in the block.
5594
5595 2012-05-03 Uros Bizjak <ubizjak@gmail.com>
5596
5597 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
5598
5599 2012-05-03 Steven Bosscher <steven@gcc.gnu.org>
5600
5601 * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
5602 information as early as possible. Update dominance info instead of
5603 discarding it.
5604
5605 2012-05-03 Richard Guenther <rguenther@suse.de>
5606
5607 * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
5608 (union_contains_value): Remove.
5609 (vro_valid_in_sets): Likewise.
5610 (op_valid_in_sets): New function.
5611 (valid_in_sets): Use op_valid_in_sets.
5612 (insert_into_preds_of_block): Move dumping ...
5613 (do_regular_insertion): ... here.
5614 (do_partial_partial_insertion): ... and here. Dump that
5615 we've found a partial partial redundancy.
5616 (insert): Dump the current insert iteration.
5617
5618 2012-05-03 Jakub Jelinek <jakub@redhat.com>
5619
5620 PR plugins/53126
5621 * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
5622 append program name to it and pass that as first argument
5623 to make_relative_prefix. Always pass standard_libexec_prefix
5624 as last argument to make_relative_prefix. If
5625 make_relative_prefix returns NULL, fall back to
5626 standard_libexec_prefix.
5627
5628 PR debug/53174
5629 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
5630 removed.
5631
5632 PR target/53187
5633 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
5634 mode, return that mode.
5635
5636 PR target/53194
5637 * config/i386/i386-c.c (ix86_target_macros_internal): Don't
5638 define __ATOMIC_HLE_* macros here.
5639 (ix86_target_macros): But here, using cpp_define_formatted.
5640
5641 2012-05-03 Richard Guenther <rguenther@suse.de>
5642
5643 PR tree-optimization/53144
5644 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
5645 Rename to ...
5646 (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
5647 with SSA name values.
5648 (vn_reference_lookup_3): Adjust callers.
5649
5650 2012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
5651
5652 * config/i386/driver-i386.c (host_detect_local_cpu): Reset
5653 has_fma4 for AMD processors with both fma3 and fma4 support.
5654
5655 2012-05-03 Kirill Yukhin <kirill.yukhin@intel.com>
5656
5657 PR target/53201
5658 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
5659 "-mno-hle".
5660
5661 2012-05-03 Michael Matz <matz@suse.de>
5662
5663 PR bootstrap/53197
5664 * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
5665 (dse_enter_block): Properly iterate the whole sequence even
5666 if the last statement was removed.
5667
5668 2012-05-02 Steven Bosscher <steven@gcc.gnu.org>
5669
5670 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
5671 unset flag_jump_tables.
5672 * stmt.c (expand_case): Remove special flag_pic case conditional
5673 on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
5674
5675 2012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
5676
5677 * common/config/s390/s390-common.c (s390_option_optimization_table):
5678 Enable -fsched-pressure using -fsched-pressure-algorithm=model by
5679 default when optimizing.
5680
5681 2012-05-02 Martin Jambor <mjambor@suse.cz>
5682
5683 PR lto/52605
5684 * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
5685 of a variable when the contect is a function.
5686
5687 2012-05-02 Michael Matz <matz@suse.de>
5688
5689 * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
5690 * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
5691 (const_gimple_seq_node): Remove.
5692 (gimple_seq_node): Typedef as gimple.
5693 (struct gimple_statement_base): Add next and prev members,
5694 adjust all WORD markers in using structs.
5695 (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
5696 (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
5697 gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
5698 gimple are the same.
5699 (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
5700 gimple_seq, adjust.
5701 (gimple_init_singleton): New function.
5702 (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
5703 (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
5704 (gsi_stmt): Adjust.
5705 (gsi_stmt_ptr): Remove.
5706 (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
5707
5708 * gimple-iterator.c (update_bb_for_stmts): Take last parameter
5709 again, adjust for above changes.
5710 (update_call_edge_frequencies): Adjust for above changes.
5711 (gsi_insert_seq_nodes_before): Rewrite for new data structure.
5712 (gsi_insert_seq_nodes_after): Ditto.
5713 (gsi_split_seq_after): Ditto.
5714 (gsi_set_stmt): Ditto.
5715 (gsi_split_seq_before): Ditto.
5716 (gsi_remove): Ditto.
5717 (gsi_insert_seq_before_without_update): Don't free sequence.
5718 (gsi_insert_seq_after_without_update): Ditto.
5719 (gsi_replace): Assert some more invariants.
5720 (gsi_insert_before_without_update, gsi_insert_after_without_update):
5721 Tidy.
5722 (gsi_for_stmt): Don't search for stmt.
5723 (gsi_insert_on_edge_immediate): Tidy.
5724
5725 * gimple.c (gimple_alloc_k): Remove "sequences".
5726 (gimple_seq_cache): Remove.
5727 (gimple_alloc_stat): Make stmt a singleton sequence.
5728 (gimple_seq_alloc, gimple_seq_free): Remove.
5729 (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
5730 (gimple_copy): Ditto.
5731 * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
5732 create iterator from correct sequence.
5733 * tree-phinodes.c (make_phi_node): Make stmt a singleton.
5734
5735 2012-05-02 Michael Matz <matz@suse.de>
5736
5737 * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
5738 gimple_seq.
5739 (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
5740 sequence, lazily allocate it.
5741 (bb_seq_addr): New function.
5742 (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
5743 (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
5744 (gsi_none): New function.
5745 (gsi_start_bb): Adjust.
5746 (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
5747 (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
5748 (gsi_last_bb): Adjust.
5749 (gsi_seq): Adjust.
5750 * tree-flow-inline.h (phi_nodes_ptr): New function.
5751
5752 * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
5753 datastructure and interface change.
5754 (gsi_insert_seq_before_without_update): Ditto.
5755 (gsi_insert_seq_nodes_after): Ditto.
5756 (gsi_insert_seq_after_without_update): Ditto.
5757 (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
5758 (gsi_split_seq_before): Ditto.
5759 (gsi_start_phis): Adjust.
5760 * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
5761 (vect_transform_loop): Ditto.
5762 * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
5763 gimple_seq_copy): Don't use gimple_seq_alloc.
5764 * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
5765 (gimplify_seq_add_seq): Ditto.
5766 * lto-streamer-in.c (make_new_block): Ditto.
5767 * tree-cfg.c (create_bb): Ditto.
5768 * tree-sra.c (initialize_parameter_reductions): Ditto.
5769
5770 2012-05-02 Michael Matz <matz@suse.de>
5771
5772 * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
5773 gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
5774 gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
5775 set_bb_seq): Move down to after gimple_statement_d definition.
5776
5777 2012-05-02 Michael Matz <matz@suse.de>
5778
5779 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
5780 gsi_replace_with_seq, instead of inserting itself.
5781 * gimple-iterator.c (gsi_replace_with_seq): New function.
5782 * tree-ssa-forwprop.c (forward_propagate_comparison): Take
5783 iterator instead of statement, advance it.
5784 (ssa_forward_propagate_and_combine): Adjust call to above.
5785
5786 2012-05-02 Michael Matz <matz@suse.de>
5787
5788 * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
5789 gimple_seq_alloc.
5790 * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
5791 * tree-nested.c (walk_gimple_omp_for): Ditto.
5792 * trans-mem.c (lower_transaction): Ditto.
5793 * tree-eh.c (do_return_redirection): Ditto.
5794 (do_goto_redirection): Ditto.
5795 (lower_try_finally_switch): Ditto.
5796 * gimplify.c (gimplify_stmt): Ditto.
5797 (gimplify_scan_omp_clauses): Ditto.
5798 (gimplify_omp_for): Ditto.
5799 (gimplify_function_tree): Ditto.
5800 * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
5801 * tree-mudflap.c (mf_decl_cache_locals): Ditto.
5802 (mf_build_check_statement_for): Ditto.
5803 (mx_register_decls): Ditto.
5804 * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
5805 and don't use itertors to append.
5806 (insert_stmts): Ditto.
5807 (insert_out_of_ssa_copy): Ditto.
5808 (insert_out_of_ssa_copy_on_edge): Ditto.
5809
5810 2012-05-02 Michael Matz <matz@suse.de>
5811
5812 * gimple.h (gimple_bind_body_ptr): New function.
5813 (gimple_bind_body): Use it.
5814 (gimple_catch_handler): Use gimple_catch_handler_ptr.
5815 (gimple_eh_filter_failure_ptr): New function.
5816 (gimple_eh_filter_failure): Use it.
5817 (gimple_eh_else_n_body_ptr): New function.
5818 (gimple_eh_else_n_body): Use it.
5819 (gimple_eh_else_e_body_ptr): New function.
5820 (gimple_eh_else_e_body): Use it.
5821 (gimple_try_eval_ptr): New function.
5822 (gimple_try_eval): Use it.
5823 (gimple_try_cleanup_ptr): New function.
5824 (gimple_try_cleanup): Use it.
5825 (gimple_wce_cleanup_ptr): New function.
5826 (gimple_wce_cleanup): Use it.
5827 (gimple_omp_body_ptr): New function.
5828 (gimple_omp_body): Use it.
5829 (gimple_omp_for_pre_body_ptr): New function.
5830 (gimple_omp_for_pre_body): Use it.
5831 (gimple_transaction_body_ptr): New function.
5832 (gimple_transaction_body): Use it.
5833 (gsi_split_seq_before): Adjust to return nothing and take pointer
5834 to sequence.
5835 (gsi_set_stmt): Declare.
5836 (gsi_replace_with_seq): Declare.
5837 (walk_gimple_seq_mod): Declare.
5838 * function.h (struct function <gimple_body>): Use typedef gimple_seq.
5839
5840 * gimple-iterator.c (gsi_set_stmt): New function.
5841 (gsi_split_seq_before): Return new sequence via pointer argument.
5842 (gsi_replace): Use gsi_set_stmt.
5843
5844 * tree-ssa-loop-im.c (move_computations_stmt): First remove
5845 then insert stmt.
5846 * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
5847 * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
5848 return new stmt.
5849 (reserve_phi_args_for_new_edge): Change call to above,
5850 use gsi_set_stmt.
5851
5852 * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
5853 (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
5854 iterators. Adjust call to lower_omp.
5855 (lower_lastprivate_clauses): Adjust call to lower_omp.
5856 (lower_reduction_clauses): Ditto.
5857 (expand_omp_taskreg): Nullify non-cfg body of child_fn.
5858 (lower_omp_sections): Don't explicitely count sequence length,
5859 nullify lowered bodies earlier, ensure stmts are part of only
5860 one sequence, adjust call to lower_omp.
5861 (lower_omp_single): Ensure stmts are part of only one sequence,
5862 adjust call to lower_omp.
5863 (lower_omp_master): Ditto.
5864 (lower_omp_ordered): Ditto.
5865 (lower_omp_critical): Ditto.
5866 (lower_omp_for): Ditto.
5867 (lower_omp_taskreg): Ditto, tidy.
5868 (lower_omp_1): Adjust calls to lower_omp.
5869 (execute_lower_omp): Ditto.
5870 (lower_omp): Adjust to take pointer to sequence.
5871 (diagnose_sb_2): Use walk_gimple_seq_mod.
5872 (diagnose_omp_structured_block_errors): Ditto and set possibly
5873 changed function body.
5874 * gimple-low.c (lower_function_body): Set function body after
5875 it stabilizes.
5876 (lower_sequence): Adjust to take pointer to sequence.
5877 (lower_omp_directive): Ensure stmt isn't put twice into the
5878 sequence, adjust call to lower_sequence.
5879 (lower_stmt): Adjust calls to lower_sequence.
5880 (lower_gimple_bind): Ditto.
5881 (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
5882 * tree-nested.c (walk_body): Take pointer to sequence, use
5883 walk_gimple_seq_mod.
5884 (walk_function): Adjust call to walk_body, set possibly changed body.
5885 (walk_gimple_omp_for): Adjust calls to walk_body.
5886 (convert_nonlocal_omp_clauses): Ditto.
5887 (convert_nonlocal_reference_stmt): Ditto.
5888 (convert_local_omp_clauses): Ditto.
5889 (convert_local_reference_stmt): Ditto.
5890 (convert_tramp_reference_stmt): Ditto.
5891 (convert_gimple_call): Ditto.
5892 (convert_nl_goto_reference): Use local iterator copy.
5893 * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
5894 but taking pointer to sequence, ensure gsi_start is called with
5895 callers lvalue.
5896 (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
5897 asserting that the sequence head didn't change.
5898 (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
5899 walk_gimple_seq_mod.
5900 * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
5901 (execute_lower_tm): Ditto, and set possibly changed body.
5902 * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
5903 call gsi_start with that lvalue.
5904 (replace_goto_queue_stmt_list): Ditto.
5905 (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
5906 (replace_goto_queue): Ditto.
5907 (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
5908 (lower_try_finally_onedest): Ditto.
5909 (lower_try_finally_copy): Ditto.
5910 (lower_try_finally_switch): Ditto.
5911 (lower_try_finally): Ditto.
5912 (lower_eh_filter): Ditto.
5913 (lower_eh_must_not_throw): Ditto.
5914 (lower_cleanup): Ditto.
5915 (lower_eh_constructs_2): Ditto.
5916 (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
5917 (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
5918 set possibly changed body.
5919 (optimize_double_finally): Call gsi_start with lvalue.
5920
5921 * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
5922 (gimple_split_block): Ditto.
5923 (gimple_merge_blocks): Use gsi_start_phis.
5924 (move_stmt_r): Use walk_gimple_seq_mod.
5925 * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
5926 * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
5927 (rebuild_cgraph_edges): Ditto.
5928 (cgraph_rebuild_references): Ditto.
5929 * ipa-prop.c (ipa_analyze_params_uses): Ditto.
5930 * tree-inline.c (copy_phis_for_bb): Ditto.
5931 * tree-ssa-dce.c: Ditto.
5932
5933 * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
5934
5935 2012-05-02 Kirill Yukhin <kirill.yukhin@intel.com>
5936 Andi Kleen <ak@linux.intel.com>
5937
5938 * coretypes.h (MEMMODEL_MASK): New.
5939 * builtins.c (get_memmodel): Add val. Call target.memmodel_check
5940 and return new variable.
5941 (expand_builtin_atomic_exchange): Mask memmodel values.
5942 (expand_builtin_atomic_compare_exchange): Ditto.
5943 (expand_builtin_atomic_load): Ditto.
5944 (expand_builtin_atomic_store): Ditto.
5945 (expand_builtin_atomic_clear): Ditto.
5946 * doc/extend.texi: Mention port-dependent memory model flags.
5947 * config/i386/cpuid.h (bit_HLE): New.
5948 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5949 HLE support.
5950 * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
5951 * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
5952 (ix86_target_string)<-mhle>: New.
5953 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
5954 * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
5955 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
5956 (ix86_option_override_internal) <PTA_HLE>: New switch, set it
5957 enabled for generic, generic64 and core-avx2.
5958 (ix86_print_operand): Generate HLE lock prefixes.
5959 (ix86_memmodel_check): New.
5960 (TARGET_MEMMODEL_CHECK): Ditto.
5961 * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
5962 (IX86_HLE_ACQUIRE): Ditto.
5963 (IX86_HLE_RELEASE): Ditto.
5964 * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
5965 * config/i386/i386.opt (mhle): Ditto.
5966 * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
5967 success model to instruction emitter.
5968 (atomic_fetch_add<mode>): Ditto.
5969 (atomic_exchange<mode>): Ditto.
5970 (atomic_add<mode>): Ditto.
5971 (atomic_sub<mode>): Ditto.
5972 (atomic_<code><mode>): Ditto.
5973 (*atomic_compare_and_swap_doubledi_pic): Ditto.
5974 (atomic_compare_and_swap_single<mode>): Define and use argument
5975 for success model.
5976 (atomic_compare_and_swap_double<mode>): Ditto.
5977 * configure.ac: Check if assembler support HLE prefixes.
5978 * configure: Regenerate.
5979 * config.in: Ditto.
5980
5981 2012-05-02 Steven Bosscher <steven@gcc.gnu.org>
5982
5983 PR middle-end/53153
5984 * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
5985 split out from ...
5986 (gimplify_switch_expr): ... here.
5987 * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
5988 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
5989 to clean up case labels with values outside the index type range.
5990 (simplify_gimple_switch): Call it if something changed.
5991 Remove strange and unnecessary assert.
5992
5993 2012-05-02 Richard Guenther <rguenther@suse.de>
5994
5995 * fold-const.c (div_if_zero_remainder): sizetypes no longer
5996 sign-extend.
5997 (int_const_binop_1): New worker for int_const_binop with
5998 overflowable parameter. Pass it through to force_fit_type_double.
5999 (int_const_binop): Wrap around int_const_binop_1 with overflowable
6000 equal to one.
6001 (size_binop_loc): Call int_const_binop_1 with overflowable equal
6002 to minus one, forcing overflow detection for even unsigned types.
6003 (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
6004 (fold_binary_loc): Call try_move_mult_to_index with signed offset.
6005 * stor-layout.c (initialize_sizetypes): sizetypes no longer
6006 sign-extend.
6007 (layout_type): For zero-sized arrays ignore overflow on the
6008 size calculations.
6009 * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
6010 (bit_value_binop_1): Likewise.
6011 * tree.c (double_int_to_tree): Likewise.
6012 (double_int_fits_to_tree_p): Likewise.
6013 (force_fit_type_double): Likewise.
6014 (host_integerp): Likewise.
6015 (int_fits_type_p): Likewise.
6016 * varasm.c (output_constructor_regular_field): Sign-extend the
6017 field-offset to cater for negative offsets produced by the Ada
6018 frontend.
6019 * omp-low.c (extract_omp_for_data): Convert the loop step to
6020 signed for pointer adjustments.
6021
6022 2012-05-02 Richard Guenther <rguenther@suse.de>
6023
6024 * tree.c (valid_constant_size_p): New function.
6025 * tree.h (valid_constant_size_p): Declare.
6026 * cfgexpand.c (expand_one_var): Adjust check for too large
6027 variables by using valid_constant_size_p.
6028 * varasm.c (assemble_variable): Likewise.
6029
6030 * c-decl.c (grokdeclarator): Properly check for sizes that
6031 cover more than half of the address-space.
6032
6033 2012-05-02 Jakub Jelinek <jakub@redhat.com>
6034
6035 PR tree-optimization/53163
6036 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
6037 return value from compute_all_dependences.
6038
6039 PR rtl-optimization/53160
6040 * ree.c (combine_reaching_defs): Handle the case where cand->insn
6041 has been modified by ree pass already.
6042
6043 2012-05-01 Ian Lance Taylor <iant@google.com>
6044
6045 PR c/37303
6046 * c-decl.c (build_compound_literal): Make the decl readonly if it
6047 an array of a readonly type.
6048 * gimplify.c (gimplify_compound_literal_expr): Add fallback
6049 parameter. Change all callers. If the decl is not addressable
6050 and is not an l-value, make it readonly.
6051
6052 2012-05-01 Bernd Schmidt <bernds@codesourcery.com>
6053
6054 * ira.c (allocated_reg_info_size): New static variable.
6055 (expand_reg_info): Manage it. Call
6056 setup_preferred_alternate_classes_for_new_pseudos.
6057 (ira): Don't do it here. Remove local allocated_reg_info_size,
6058 set the global before calling find_moveable_pseudos.
6059 (find_moveable_pseudos): Call expand_reg_info rather than
6060 resize_reg_info.
6061
6062 2012-05-01 Richard Henderson <rth@redhat.com>
6063
6064 * common.opt (fsync-libcalls): New.
6065 * doc/invoke.texi: Document it.
6066 * optabs.c (init_sync_libfuncs): Honor it.
6067
6068 2012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
6069 Richard Sandiford <r.sandiford@uk.ibm.com>
6070
6071 PR rtl-optimization/52543
6072 * Makefile.in (lower-subreg.o, target-globals.o): Depend on
6073 lower-subreg.h.
6074 * lower-subreg.h: New file.
6075 * target-globals.h (this_target_lower_subreg): Declare.
6076 (target_globals): Add lower_subreg;
6077 (restore_target_globals): Restore this_target_lower_subreg.
6078 * target-globals.c: Include it.
6079 (default_target_globals): Add default_target_lower_subreg.
6080 (save_target_globals): Initialize target_lower_subreg.
6081 * rtl.h (init_lower_subreg): Added declaration.
6082 * toplev.c (backend_init_target): Call initializer for lower-subreg
6083 pass.
6084 * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
6085 (default_target_lower_subreg): New variable.
6086 (this_target_lower_subreg): Likewise.
6087 (twice_word_mode, choices): New macros.
6088 (shift_cost, compute_splitting_shift, compute_costs)
6089 (init_lower_subreg): New functions.
6090 (resolve_simple_move): Add speed_p argument. Check choices.
6091 (find_pseudo_copy): Don't check the mode size here.
6092 (resolve_simple_move): Assert the mode size.
6093 (find_decomposable_shift_zext): Add speed_p argument and return
6094 a bool. Check choices.
6095 (resolve_shift_zext): Add comment.
6096 (dump_shift_choices, dump_choices): New functions.
6097 (decompose_multiword_subregs): Dump list of profitable
6098 transformations. Add code to skip non profitable transformations.
6099 Update calls to simple_move and find_decomposable_shift_zext.
6100
6101 2012-05-01 Ian Bolton <ian.bolton@arm.com>
6102 Sameera Deshpande <sameera.deshpande@arm.com>
6103 Greta Yorsh <greta.yorsh@arm.com>
6104
6105 * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
6106 (thumb1_unexpanded_epilogue): ...this.
6107 * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
6108 (thumb1_unexpanded_epilogue): ...this.
6109 * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
6110 (thumb1_unexpanded_epilogue): ...this.
6111
6112 2012-05-01 Richard Earnshaw <rearnsha@arm.com>
6113
6114 * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
6115 comparing enumeration values. Update comments.
6116
6117 2012-05-01 Alan Modra <amodra@gmail.com>
6118
6119 PR target/53038
6120 * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
6121 load_cr_save, add_crlr_cfa_restore): New functions.
6122 (rs6000_restore_saved_cr): Rename to..
6123 (restore_saved_cr): ..this. Add cfa_restore notes for cr.
6124 (rs6000_emit_epilogue): Use new functions. Adjust condition
6125 for emitting lr and cr cfa_restore. Emit cfa_restores for fp
6126 regs when using out-of-line restore only when shrink wrapping.
6127
6128 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
6129
6130 PR middle-end/53136
6131 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
6132 calls to cgraph_node_name in xstrdup.
6133 (ipa_make_edge_direct_to_target): Ditto.
6134 * cgraph.c (dump_cgraph_node): Ditto.
6135 * tree-sra.c (convert_callers_for_node): Ditto.
6136 * lto-symtab.c (lto_cgraph_replace_node): Ditto.
6137 * ipa-cp.c (perhaps_add_new_callers): Ditto.
6138 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
6139 (cgraph_materialize_all_clones): Ditto.
6140 * ipa-inline.c (report_inline_failed_reason): Ditto.
6141 (want_early_inline_function_p): Ditto.
6142 (edge_badness): Ditto.
6143 (update_edge_key): Ditto.
6144 (flatten_function): Ditto.
6145 (ipa_inline): Ditto.
6146 (inline_always_inline_functions): Ditto.
6147 (early_inline_small_functions): Ditto.
6148
6149 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
6150
6151 PR target/53141
6152 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
6153 constraints 0 and 1.
6154
6155 012-04-30 Jan Hubicka <jh@suse.cz>
6156
6157 * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
6158 (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
6159 (cgraph_add_to_same_comdat_group): Remove.
6160 (cgraph_add_asm_node): Move to cgraphunit.c.
6161 (cgraph_make_decl_local): Move to symtab.c
6162 (cgraph_make_node_local_1): Update.
6163 (cgraph_can_remove_if_no_direct_calls_and): Update.
6164 (used_from_object_file_p): Update.
6165 (resolution_used_from_other_file_p): Move to symtab.c
6166 (cgraph_used_from_object_file_p): move to symtab.c
6167 (verify_cgraph_node): Verify same comdat groups.
6168 * cgraph.h (cgraph_asm_node): Rename to ...
6169 (asm_node): ... this one.
6170 (cgraph_asm_nodes): Rename to ...
6171 (asm_nodes): ... this one.
6172 (symtab_add_to_same_comdat_group): New function.
6173 (symtab_dissolve_same_comdat_group_list): New function.
6174 (symtab_used_from_object_file_p): Declare.
6175 (symtab_make_decl_local): Declare.
6176 (cgraph_add_to_same_comdat_group): Remove.
6177 (cgraph_add_asm_node): Remove.
6178 (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
6179 Remove.
6180 (cgraph_finalize_compilation_unit): Rename to ...
6181 (finalize_compilation_unit): ... this one.
6182 (cgraph_optimize): Rename to ....
6183 (compile): ... this one.
6184 (add_asm_node): Declare.
6185 (fixup_same_cpp_alias_visibility): Declare.
6186 (cgraph_make_decl_local): Remove.
6187 (varpool_assemble_pending_decls): Rename to ...
6188 (varpool_output_variables): ... this one.
6189 (varpool_remove_unreferenced_decls): Remove.
6190 * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
6191 (preserve_function_body_p): Make static.
6192 * toplev.c (compile_file): Update comments; update.
6193 * cgraphunit.c: Update comments.
6194 (cgraph_expand_all_functions): Rename to ...
6195 (expand_all_functions): ... this one; update.
6196 (cgraph_mark_functions_to_output): Rename to ...
6197 (mark_functions_to_output): ... this one; cleanup.
6198 (cgraph_output_pending_asms): Remove prototype.
6199 (asm_nodes, asm_last_node): New static vars.
6200 (cgraph_process_new_functions): Update.
6201 (cgraph_reset_node): Cleanup; add comment.
6202 (cgraph_add_new_function): Update.
6203 (cgraph_output_pending_asms): Rename to ...
6204 (output_asm_statements): ... this one.
6205 (add_asm_node): New function.
6206 (fixup_same_cpp_alias_visibility): New function based on code
6207 in cgraph_analyze_function.
6208 (cgraph_analyze_function): Use it.
6209 (cgraph_order_sort): Update.
6210 (cgraph_output_in_order): Update.
6211 (cgraph_function_versioning): Update.
6212 (cgraph_optimize): Rename to ...
6213 (compile): ... this one; initialize streamer hooks here.
6214 (cgraph_finalize_compilation_unit): Rename to ...
6215 (finalize_compilation_unit): ... this one; do not initialize streamer
6216 hook here.
6217 * lto-streamer-out.c (lto_output_toplevel_asms): Update.
6218 * dwarf2out.c: Update ocmment.
6219 * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
6220 * method.c (use_thunk): Likewise.
6221 * semantics.c (maybe_add_lambda_conv_op): Likewise.
6222 * decl2.c (maybe_emit_vtables): Likewise.
6223 (cp_write_global_declarations): Use finalize_compilation_unit.
6224 * parser.c (cp_parser_asm_definition): Use add_asm_node.
6225 * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
6226 * c-decl.c (c_write_global_declarations): Use
6227 finalize_compilation_unit.
6228 * langhooks.c (write_global_declarations): Update.
6229 * ipa.c (cgraph_externally_visible_p): Update.
6230 (dissolve_same_comdat_group_list): Remove.
6231 (function_and_variable_visibility): Update.
6232 * symtab.c: Inlcude lto-streamer.h and rtl.h
6233 (ld_plugin_symbol_resolution_names): New.
6234 (symtab_add_to_same_comdat_group): New.
6235 (symtab_dissolve_same_comdat_group_list): New.
6236 (resolution_used_from_other_file_p): Move here from cgraph.c
6237 (symtab_used_from_object_file_p): New.
6238 (symtab_make_decl_local): New.
6239 * passes.c (register_pass): Update comments.
6240 * c-parser.c (c_parser_asm_definition): Update.
6241 * varpool.c (varpool_analyze_node): Use
6242 fixup_same_cpp_alias_visibility.
6243 (varpool_remove_unreferenced_decls): Make static.
6244 (varpool_assemble_pending_decls): Rename to ...
6245 (varpool_output_variables): ... this one; call
6246 varpool_remove_unreferenced_decls.
6247 (varpool_used_from_object_file_p): Remove.
6248
6249 2012-04-30 Marc Glisse <marc.glisse@inria.fr>
6250
6251 PR c++/51033
6252 * c-typeck.c (build_array_ref): Call
6253 convert_vector_to_pointer_for_subscript.
6254 * doc/extend.texi (Vector Extensions): Subscripting not just for C.
6255
6256 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
6257
6258 * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
6259 to compile-time "mode == <MODE>mode" checks.
6260 (and splitter): Ditto.
6261
6262 2012-04-30 Richard Henderson <rth@redhat.com>
6263
6264 * config/arm/arm.md (UNSPEC_LL): New.
6265 * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
6266 (arm_load_exclusivedi): Use %H0.
6267
6268 2012-04-30 Jason Merrill <jason@redhat.com>
6269
6270 * dwarf2out.c (comdat_symbol_id): Add const.
6271 (union die_symbol_or_type_node): Add const to die_symbol.
6272 (output_die_symbol, output_die, output_comp_unit): Adjust.
6273
6274 2012-04-30 Andrew Stubbs <ams@codesourcery.com>
6275
6276 * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
6277 * config/arm/neon.md (negdi2_neon): New insn.
6278 Also add splitters for core and NEON registers.
6279
6280 2012-04-30 Andrew Stubbs <ams@codesourcery.com>
6281
6282 * config/arm/arm.c (neon_valid_immediate): Allow const_int.
6283 (arm_print_operand): Add 'x' format.
6284 * config/arm/constraints.md (Dn): Allow const_int.
6285 * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
6286 Use 'x' format to print constants.
6287 * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
6288 * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
6289 is enabled.
6290 (movdi_vfp_cortexa8): Likewise.
6291
6292 2012-04-30 Ian Bolton <ian.bolton@arm.com>
6293 Sameera Deshpande <sameera.deshpande@arm.com>
6294 Greta Yorsh <greta.yorsh@arm.com>
6295
6296 * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
6297 * config/arm/arm.c (ldm_stm_operation_p): New function.
6298 * config/arm/predicates.md (load_multiple_operation): Update predicate.
6299 (store_multiple_operation): Likewise.
6300
6301 * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
6302 * config/arm/arm.c (ldm_stm_operation_p): New parameters.
6303 * config/arm/predicates.md (load_multiple_operation): Add arguments.
6304 (store_multiple_operation): Likewise.
6305
6306 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
6307
6308 * config/i386/i386.md (and<mode>3): Expand masking operations with
6309 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
6310 (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
6311
6312 2012-04-30 Dodji Seketeli <dodji@redhat.com>
6313
6314 Add -Wvarargs option
6315 * builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an
6316 argument for the various warning_at calls.
6317 * docs/invoke.texi: Update the documentation.
6318
6319 2012-04-30 Dodji Seketeli <dodji@redhat.com>
6320
6321 Switch -ftrack-macro-expansion=2 on by default.
6322 * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
6323 by default.
6324
6325 Fix va_start related location
6326 * builtins.c (fold_builtin_next_arg): Unwinds to the first
6327 location in real source code.
6328
6329 Make conversion warnings work on NULL with -ftrack-macro-expansion
6330 * input.h (expansion_point_location_if_in_system_header): Declare
6331 new function.
6332 * input.c (expansion_point_location_if_in_system_header): Define it.
6333
6334 Fix -Wuninitialized for -ftrack-macro-expansion
6335 * tree-ssa.c (warn_uninit): Use the spelling location of the variable
6336 declaration. Use linemap_location_before_p for source locations.
6337
6338 Strip "<built-in>" loc from displayed expansion context
6339 * input.c (expand_location_1): When expanding to spelling location
6340 in a context of a macro expansion, skip reserved system header
6341 locations. Update comments. * tree-diagnostic.c
6342 (maybe_unwind_expanded_macro_loc): Likewise.
6343
6344 Make expand_location resolve to locus in main source file
6345 * input.c (expand_location_1): New. Takes a parameter to choose
6346 whether to resolve the location to spelling or expansion point.
6347 Was factorized from ...
6348 (expand_location): ... here.
6349 (expand_location_to_spelling_point): New. Implemented in terms of
6350 expand_location_1.
6351 * diagnostic.c (diagnostic_build_prefix): Use the new
6352 expand_location_to_spelling_point instead of expand_location.
6353
6354 Fix PCH crash on GTYed pointer-to-scalar field of a struct
6355 * gengtype.c (write_types_process_field): Force second argument of
6356 the call to the PCH object hierarchy walker to be 'x'.
6357
6358 2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
6359
6360 * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
6361 predicate to discriminate types.
6362
6363 2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
6364
6365 * doc/invoke.texi (Wmissing-format-attribute): Document as an
6366 alias of Wsuggest-attribute=format.
6367 * c-typeck.c (convert_for_assignment): Replace
6368 Wmissing-format-attribute with Wsuggest-attribute=format.
6369 (digest_init): Likewise.
6370
6371 2012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
6372
6373 * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
6374 * common.opt (Wmissing-noreturn): Alias of
6375 -Wsuggest-attribute=noreturn.
6376
6377 2012-04-29 Hans-Peter Nilsson <hp@axis.com>
6378
6379 PR target/53156
6380 * config/cris/cris.md (andqu): New peephole2.
6381 (andu): Tweak head comment.
6382
6383 2012-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
6384 Steven Bosscher <steven@gcc.gnu.org>
6385 Maxim Kuvyrkov <maxim@codesourcery.com>
6386
6387 PR tree-optimization/38785
6388 * common.opt (ftree-partial-pre): New option.
6389 * doc/invoke.texi: Document it.
6390 * opts.c (default_options_table): Initialize flag_tree_partial_pre.
6391 * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
6392 benefit speed path.
6393 (execute_pre): Use flag_tree_partial_pre.
6394
6395 2012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6396
6397 PR target/52999
6398 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
6399 in constant pool.
6400
6401 2012-04-27 Ollie Wild <aaw@google.com>
6402
6403 * doc/invoke.texi (Wliteral-suffix): Document new option.
6404
6405 2012-04-27 Tom Tromey <tromey@redhat.com>
6406
6407 * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
6408 (dwarf_tag_name): Use get_DW_TAG_name.
6409 (dwarf_attr_name): Use get_DW_AT_name.
6410 (dwarf_form_name): Use get_DW_FORM_name.
6411 * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
6412
6413 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
6414
6415 * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
6416 arguments are -1 and 0, by negating the result of the conditional.
6417
6418 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
6419
6420 PR target/53138
6421 * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
6422
6423 2012-04-27 Richard Guenther <rguenther@suse.de>
6424
6425 * tree-flow.h (is_hidden_global_store): Remove.
6426 * tree-ssa-sink.c (is_hidden_global_store): Likewise.
6427 * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
6428 (stmt_may_clobber_global_p): Likewise.
6429 * tree-ssa-alias.c (ref_may_alias_global_p): New function.
6430 (stmt_may_clobber_global_p): Likewise.
6431 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
6432 stmt_may_clobber_global_p.
6433 * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
6434
6435 2012-04-27 Steven Bosscher <steven@gcc.gnu.org>
6436
6437 * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
6438 place.
6439
6440 * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
6441 reorganize some fields and update comments. Rename bit_test_uniq
6442 and bit_test_count to uniq resp. count. Remove bit_test_bb.
6443 (collect_switch_conv_info): New function, collects info about a
6444 GIMPLE_SWITCH into a struct switch_conv_info.
6445 (check_range): Simplify to use pre-recorded info. Fix think-o in
6446 range-branch ratio check.
6447 (check_process_case): Remove function.
6448 (check_all_empty_except_final): New function, verifies that all
6449 non-final basic blocks are empty.
6450 (process_switch): Simplify to use pre-recorded info. Call
6451 collect_switch_conv_info to do that. Assert that degenerate switch
6452 statements have been cleaned up.
6453
6454 2012-04-27 Marc Glisse <marc.glisse@inria.fr>
6455
6456 PR middle-end/27139
6457 * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
6458
6459 2012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
6460
6461 PR c/53130
6462 * c-typeck.c (pop_init_level): Use %qD instead of %qT.
6463
6464 2012-04-27 Tom de Vries <tom@codesourcery.com>
6465
6466 PR tree-optimization/51879
6467 * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
6468 * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
6469 of ...
6470 (defs_to_varying): ... here. Don't set use_processed.
6471 (visit_reference_op_call): Handle gimple_vdef.
6472 Handle case that lhs is NULL_TREE.
6473 (visit_use): Use mark_use_processed. Handle calls with side-effect
6474 using visit_reference_op_call.
6475
6476 2012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
6477
6478 * sched-deps.c (fixup_sched_groups): Rename to...
6479 (chain_to_prev_insn): ...this.
6480 (chain_to_prev_insn_p): New function.
6481 (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
6482
6483 2012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
6484
6485 * sched-int.h (_haifa_insn_data): Move priority_status.
6486 Add model_index.
6487 (INSN_MODEL_INDEX): New macro.
6488 * haifa-sched.c (insn_delay): New function.
6489 (sched_regno_pressure_class): Update commentary.
6490 (mark_regno_birth_or_death): Pass the liveness bitmap and
6491 pressure array as arguments, instead of using curr_reg_live and
6492 curr_reg_pressure. Only update the pressure if the bit in the
6493 liveness set has changed.
6494 (initiate_reg_pressure_info): Always trust the live-in set for
6495 SCHED_PRESSURE_MODEL.
6496 (initiate_bb_reg_pressure_info): Update call to
6497 mark_regno_birth_or_death.
6498 (dep_list_size): Take the list as argument.
6499 (calculate_reg_deaths): New function, extracted from...
6500 (setup_insn_reg_pressure_info): ...here.
6501 (MODEL_BAR): New macro.
6502 (model_pressure_data, model_insn_info, model_pressure_limit)
6503 (model_pressure_group): New structures.
6504 (model_schedule, model_worklist, model_insns, model_num_insns)
6505 (model_curr_point, model_before_pressure, model_next_priority):
6506 New variables.
6507 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
6508 (MODEL_INSN_INFO, MODEL_INSN): New macros.
6509 (model_index, model_update_limit_points_in_group): New functions.
6510 (model_update_limit_points, model_last_use_except): Likewise.
6511 (model_start_update_pressure, model_update_pressure): Likewise.
6512 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
6513 (model_excess_cost, model_dump_pressure_points): Likewise.
6514 (model_set_excess_costs): Likewise.
6515 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
6516 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model
6517 schedule as an alternative tie-breaker. Update the call to
6518 dep_list_size.
6519 (ready_sort): Call model_set_excess_costs.
6520 (update_register_pressure): Update call to mark_regno_birth_or_death.
6521 Rely on that function to check liveness rather than doing it here.
6522 (model_classify_pressure, model_order_p, model_add_to_worklist_at)
6523 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
6524 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
6525 (model_record_pressure, model_record_pressures): New functions.
6526 (model_record_final_pressures, model_add_successors_to_worklist)
6527 (model_promote_predecessors, model_choose_insn): Likewise.
6528 (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
6529 (model_start_schedule, model_finalize_pressure_group): Likewise.
6530 (model_end_schedule): Likewise.
6531 (schedule_insn): Say when we're scheduling the next instruction
6532 in the model schedule.
6533 (schedule_insn): Handle SCHED_PRESSURE_MODEL.
6534 (queue_to_ready): Do not add instructions that are
6535 MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
6536 Always allow the next instruction in the model schedule to be added.
6537 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
6538 and delay for SCHED_PRESSURE_MODEL too.
6539 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
6540 SCHED_PRIORITY_MODEL, but also take the DFA into account.
6541 (schedule_block): Call model_start_schedule and model_end_schedule.
6542 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
6543 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
6544 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
6545 region_ref_regs.
6546 (sched_finish): Update accordingly.
6547 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
6548 to SCHED_PRESSURE_MODEL.
6549 (add_jump_dependencies): Update call to dep_list_size.
6550 (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
6551 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
6552 to SCHED_PRESSURE_MODEL.
6553 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
6554 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
6555 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
6556 handling to SCHED_PRESSURE_MODEL.
6557
6558 2012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
6559
6560 * common.opt (fsched-pressure-algorithm=): New option.
6561 * flag-types.h (sched_pressure_algorithm): New enum.
6562 * sched-int.h (sched_pressure_p): Replace with...
6563 (sched_pressure): ...this new variable.
6564 * haifa-sched.c (sched_pressure_p): Replace with...
6565 (sched_pressure): ...this new variable.
6566 (sched_regno_pressure_class, rank_for_schedule, ready_sort)
6567 (update_reg_and_insn_max_reg_pressure, schedule_insn)
6568 (debug_ready_list, prune_ready_list, schedule_block, sched_init)
6569 (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
6570 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
6571 (sched_analyze_insn): Likewise.
6572 * sched-rgn.c (schedule_region): Likewise.
6573 * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
6574
6575 2012-04-26 Bernd Schmidt <bernds@codesourcery.com>
6576
6577 * PR middle-end/52997
6578 * ira.c (find_moveable_pseudos): Call resize_reg_info.
6579
6580 PR middle-end/52940
6581 * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
6582 * expr.c (convert_move): Honor unsignedp when extending partial int
6583 modes.
6584 * genmodes.c (complete_mode): Don't clear component field of partial
6585 int modes.
6586 (emit_mode_inner): Don't emit it however.
6587 (calc_wider_mode): Partial int modes widen to their component.
6588
6589 2012-04-26 David S. Miller <davem@davemloft.net>
6590
6591 * config/sparc/niagara4.md: New file.
6592 * config/sparc/sparc.md: Include it.
6593 * config/sparc/sparc.c (niagara4_costs): New processor costs.
6594 (sparc_option_override): Use it.
6595 (sparc_use_sched_lookahead): Return 2 for niagara4.
6596 (sparc_issue_rate): Likewise.
6597
6598 * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
6599 (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
6600 (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
6601 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
6602 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
6603 alignaddrldi_vis): Set type to gsr.
6604 (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
6605 (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
6606 cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
6607 v<vis3_shift_patname><mode>3, fmean16_vis,
6608 fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
6609 fucmp<code>8<P:mode>_vis): Set type to fga.
6610 * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
6611 * config/sparc/niagara.md: Likewise.
6612 * config/sparc/niagara2.md: Likewise.
6613 * config/sparc/ultra3.md: Likewise, and fix type matching for
6614 us3_ialuX reservation.
6615
6616 2012-04-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6617
6618 * reload.c (find_reloads): Change the loop nesting when trying an
6619 alternative with swapped operands.
6620
6621 2012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
6622
6623 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
6624 comment. Delete unused parameter first_exp_point_map.
6625 (virt_loc_aware_diagnostic_finalizer): Update call.
6626
6627 2012-04-26 Michael Hope <michael.hope@linaro.org>
6628 Richard Earnshaw <rearnsha@arm.com>
6629
6630 * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
6631 (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
6632 (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
6633 (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
6634
6635 2012-04-25 Sriraman Tallam <tmsriram@google.com>
6636
6637 * doc/extend.texi: Document avx2 support.
6638 * config/i386/i386.c (fold_builtin_cpu): Add avx2.
6639
6640 2012-04-26 Hans-Peter Nilsson <hp@axis.com>
6641
6642 PR target/53120
6643 * config/cris/cris.md ("*andhi_lowpart_v32")
6644 ("*andqi_lowpart_v32"): Change first input-only operand from
6645 a (match_operand ...) to (match_dup 0). Drop alternatives with
6646 const_int-matching constraints for redundancy.
6647 ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
6648 three-operand alternative.
6649
6650 2012-04-25 Jakub Jelinek <jakub@redhat.com>
6651
6652 PR target/53110
6653 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
6654 instead expand it as zero extension.
6655
6656 2012-04-25 H.J. Lu <hongjiu.lu@intel.com>
6657
6658 PR debug/52857
6659 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
6660
6661 2012-04-25 Jakub Jelinek <jakub@redhat.com>
6662
6663 * common.opt (flag_debug_types_section): Default to 0.
6664 (dwarf_version): Default to 4.
6665 (dwarf_record_gcc_switches): Default to 1.
6666 (dwarf_strict): Default to 0.
6667 * toplev.c (process_options): Don't handle dwarf_strict
6668 or dwarf_version here.
6669 * config/vxworks.c (vxworks_override_options): Don't
6670 test whether dwarf_strict or dwarf_version are negative,
6671 instead test !global_options_set.x_dwarf_*.
6672 * config/darwin.c (darwin_override_options): Default to
6673 dwarf_version 2.
6674 * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
6675 and -fno-debug-types-section are now the default.
6676
6677 2012-04-25 Jan Hubicka <jh@suse.cz>
6678
6679 * cgraphunit.c: Update toplevel comment.
6680 (tree_rest_of_compilation): Merge into cgraph_expand_function.
6681 (cgraph_analyze_function): Make static.
6682 (cgraph_decide_is_function_needed): Make static.
6683 (cgraph_add_new_function): Use expand_function instead of
6684 rest_of_compilation.
6685 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
6686 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
6687 Move to cgraph.c
6688 (cgraph_inline_p): Remove.
6689 (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
6690 (init_cgraph): Add comment.
6691 * cgraphbuild.c (record_reference, mark_address, mark_load,
6692 mark_store): Do not call analyze_expr hook.
6693 * cgraph.c: Update toplevel comment.
6694 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
6695 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
6696 Move fere from cgraphunit.c
6697 (cgraph_mark_force_output_node): Move to cgraph.h
6698 * cgraph.h: Reorder so the comments match the function placement.
6699 (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
6700 (cgraph_mark_force_output_node): Move here from cgraph.c
6701 * tree.c (free_lang_data): Do not clear analyze_expr hook.
6702 * ipa-inline-transform.c (preserve_function_body_p): New function.
6703 (inline_transform): Update.
6704 * langhooks.c (lhd_callgraph_analyze_expr): Remove.
6705 * langhooks.h (lang_hooks_for_callgraph): Remove.
6706 (lang_hooks): Remove callgraph.
6707 * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
6708 * varpool.c: Remove out of date comment.
6709 * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
6710 (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
6711
6712 2012-04-25 Jan Hubicka <jh@suse.cz>
6713
6714 PR middle-end/53089
6715 * cgraphunit.c (referred_to_p): Move ahead in file to avoid
6716 forward declaration.
6717 (cgraph_finalize_function): Finalize them here.
6718 * symtab.c (dump_symtab): Dump ctors and dtors.
6719
6720 2012-04-25 Jakub Jelinek <jakub@redhat.com>
6721
6722 PR middle-end/52979
6723 * stor-layout.c (get_best_mode): Don't return mode with bitsize
6724 larger than maxbits. Don't compute maxbits modulo align.
6725 Also check that unit bytes long store at bitpos / unit * unit
6726 doesn't affect bits beyond bitregion_end.
6727 * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
6728 would not fit into bitregion_start ... bitregion_end + 1 bit region.
6729 (store_split_bit_field): Decrease unit close to end of bitregion_end
6730 if access is restricted in order to avoid mutual recursion.
6731
6732 PR tree-optimization/53058
6733 * double-int.h (double_int_max_value, double_int_min_value): New
6734 prototypes.
6735 * double-int.c (double_int_max_value, double_int_min_value): New
6736 functions.
6737 * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
6738 or GT_EXPR with double_int_max_value instead of double_int_mask.
6739
6740 2012-04-25 Richard Guenther <rguenther@suse.de>
6741
6742 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
6743 * tree-vect-loop.c (vect_transform_loop): Adjust.
6744 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
6745 the maximum number of iterations for the epilogue loop.
6746 (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
6747
6748 2012-04-25 Jakub Jelinek <jakub@redhat.com>
6749
6750 PR c/52880
6751 * c-typeck.c (set_nonincremental_init,
6752 set_nonincremental_init_from_string): Pass true instead of false
6753 as IMPLICIT to add_pending_init.
6754
6755 2012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
6756
6757 * c-typeck.c (pop_init_level): Improve diagnostics.
6758
6759 2012-04-25 Uros Bizjak <ubizjak@gmail.com>
6760
6761 * compare-elim.c (try_eliminate_compare): Also handle operands with
6762 implicit extensions.
6763
6764 2012-04-25 Alan Modra <amodra@gmail.com>
6765
6766 * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
6767 V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
6768 SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
6769 (no_global_regs_above): Delete.
6770 (no_global_regs): New function.
6771 (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p
6772 value for load multiple test.
6773 (savres_routine_syms): Increase size.
6774 (rs6000_savres_routine_name, rs6000_savres_routine_sym,
6775 ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
6776 rather than a number of boolean flags. Update all callers.
6777 (rs6000_savres_routine_name): Generate vector save/restore names.
6778 (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl.
6779 (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
6780 (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
6781 and using_store_multiple. Expand uses. Don't always use r11 as
6782 frame reg when needed for out-of-line saves. Set up initial offset
6783 for out-of-line vector saves when buying stack frame. Handle pointer
6784 reg setup for out-of-line fp save. Emit call to out-of-line vector
6785 save function. Choose r11 or r12 for vrsave reg when available for
6786 better scheduling.
6787 (rs6000_output_function_prologue): Don't emit .extern for ELF.
6788 (rs6000_emit_epilogue): Choose a better frame reg when restoring
6789 from back-chain to suit out-of-line vector restore functions. Emit
6790 call to out-of-line vector restore function. Adjust register used
6791 for cr restore. Tweak pointer register setup for gpr restore.
6792 * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
6793 FIXED_R13.
6794 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
6795 (V_SAVE_INLINE): Define.
6796 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
6797
6798 2012-04-25 Alan Modra <amodra@gmail.com>
6799
6800 * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
6801 out-of-line save/restore for large frames. Don't disable
6802 out-of-line saves on ABI_AIX when using static chain reg.
6803 (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
6804 clobber static chain reg, and tweak for out-of-line gpr saves
6805 that use r1.
6806
6807 2012-04-25 Alan Modra <amodra@gmail.com>
6808
6809 * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
6810 (rs6000_emit_prologue): Use the above to catch register overlap.
6811
6812 2012-04-25 Alan Modra <amodra@gmail.com>
6813
6814 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
6815 decl. Move logic selecting update reg to callers. Update all callers.
6816 (rs6000_emit_allocate_stack): Add copy_off param.
6817 (emit_frame_save): Don't handle reg+reg addressing.
6818 (ptr_regno_for_savres): New function, extracted from..
6819 (rs6000_emit_savres_rtx): ..here. Add lr_offset param.
6820 (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
6821 Set frame_reg_rtx to r11 whenever r11 is needed, and merge
6822 frame offset adjustment for out-of-line save with copy from sp.
6823 Simplify condition controlling whether cr is saved early or
6824 late. Use ptr_regno_for_savres to verify correct reg is set
6825 up for out-of-line saves. Pass the actual pointer reg used to
6826 rs6000_emit_savres_rtx so rtl matches insns in out-of-line
6827 function. Rearrange spe vars so code is similar to that
6828 elsewhere in this function. Don't update frame_off when spe
6829 save code will restore r11. Use emit_frame_save for spe and
6830 gpr saves. Consolidate darwin out-of-line gpr setup with that
6831 for other abis. Don't assume frame_offset is zero and frame
6832 reg is sp when setting up altivec reg saves, and calculate
6833 exact offset requirement.
6834 (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off. Tidy
6835 spe restore code. Consolidate darwin out-of-line gpr setup
6836 with that for other abis.
6837
6838 2012-04-25 Alan Modra <amodra@gmail.com>
6839
6840 * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
6841 REG_FRAME_RELATED_EXPR note when the instruction exactly matches
6842 the replacement.
6843 (emit_frame_save): Delete frame_ptr param. Rename total_size to
6844 frame_reg_to_sp.
6845 (rs6000_emit_prologue): Add sp_off. Update rs6000_frame_related
6846 and emit_frame_save calls. Cope with possibly missing note.
6847
6848 2012-04-24 Sriraman Tallam <tmsriram@google.com>
6849
6850 * config/i386/i386.c (build_processor_model_struct): New function.
6851 (make_var_decl): New function.
6852 (fold_builtin_cpu): New function.
6853 (ix86_fold_builtin): New function.
6854 (make_cpu_type_builtin): New function.
6855 (ix86_init_platform_type_builtins): New function.
6856 (ix86_expand_builtin): Expand new builtins by folding them.
6857 (ix86_init_builtins): Make new builtins to detect CPU type.
6858 (TARGET_FOLD_BUILTIN): New macro.
6859 (IX86_BUILTIN_CPU_INIT): New enum value.
6860 (IX86_BUILTIN_CPU_IS): New enum value.
6861 (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
6862 * config/i386/i386-builtin-types.def: New function type.
6863 * testsuite/gcc.target/builtin_target.c: New testcase.
6864 * doc/extend.texi: Document builtins.
6865
6866 2012-04-24 Olivier Hainque <hainque@adacore.com>
6867
6868 * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
6869 * toplev.c (process_options): Default to dwarf_version 2.
6870 * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
6871 and dwarf_version 2.
6872
6873 2012-04-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
6874
6875 * tree-pretty-print.h (default_tree_printer): Do not declare.
6876 * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
6877 intl.h.
6878 (default_tree_diagnostic_starter): Make static.
6879 (default_tree_printer): Move to here. Make static.
6880 (tree_diagnostics_defaults): New.
6881 * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
6882 * tree.c (free_lang_data): Use tree_diagnostics_defaults.
6883 * toplev.c: Do not include tree-pass.h.
6884 (default_tree_printer): Move from here.
6885 (general_init): Use tree_diagnostics_defaults.
6886
6887 2012-04-24 Chao-ying Fu <fu@mips.com>
6888
6889 * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
6890 (mips*-*-linux*): Append mips/linux-common.h to tm_file.
6891 * config/mips/gnu-user.h
6892 (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
6893 (GNU_USER_TARGET_LINK_SPEC): New define.
6894 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
6895 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
6896 (GNU_USER_TARGET_MATHFILE_SPEC): New define.
6897 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
6898 GNU_USER_TARGET_ENDFILE_SPEC.
6899 * config/mips/gnu-user64.h (LIB_SPEC): Remove.
6900 (GNU_USER_TARGET_LINK_SPEC): New define.
6901 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
6902 * config/mips/linux-common.h: New file.
6903
6904 2012-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6905
6906 PR target/47197
6907 * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
6908 (altivec_build_resolved_builtin): Call fully_fold_convert.
6909
6910 2012-04-24 Georg-Johann Lay <avr@gjlay.de>
6911
6912 PR target/53065
6913 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
6914
6915 2012-04-24 Richard Guenther <rguenther@suse.de>
6916
6917 PR tree-optimization/53085
6918 * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
6919 stores.
6920
6921 2012-04-24 Richard Guenther <rguenther@suse.de>
6922
6923 * tree-if-conv.c (main_tree_if_conversion): Move bb under
6924 ENABLE_CHECKING.
6925
6926 2012-04-24 Jim Meyering <meyering@redhat.com>
6927
6928 * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
6929 absence of an define_enum call.
6930
6931 2012-04-24 Richard Guenther <rguenther@suse.de>
6932
6933 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
6934 the epilogue loop is not re-used as unvectorized version
6935 record the its maximum number of iterations.
6936
6937 2012-04-24 Andrew Pinski <apinski@cavium.com>
6938
6939 * tree-ssa-forwprop.c (simplify_bitwise_binary):
6940 Don't directly use def1/def2.
6941
6942 2012-04-24 Richard Guenther <rguenther@suse.de>
6943
6944 PR tree-optimization/53098
6945 * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
6946 comparison sign.
6947
6948 2012-04-24 Andrew Pinski <apinski@cavium.com>
6949
6950 PR tree-opt/33512
6951 * tree-ssa-forwprop.c (defcodefor_name): New function.
6952 (simplify_bitwise_binary): Use defcodefor_name instead of manually
6953 Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
6954 Simplify "(~X | Y) & X" to "X & Y" and
6955 "(~X & Y) | X" to "X | Y".
6956
6957 2012-04-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6958
6959 * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
6960 validate_change to add clobbers if IN_GROUP is nonzero.
6961 (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
6962 * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
6963 prototype.
6964 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
6965 set to false.
6966 * config/s390/s390.c (insn_invalid_p): Likewise.
6967
6968 2012-04-24 Jakub Jelinek <jakub@redhat.com>
6969
6970 PR middle-end/53084
6971 * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
6972 (output_addressed_constants): Likewise.
6973
6974 PR middle-end/52999
6975 * varasm.c (get_section): Don't ICE for section conflicts with
6976 built-in section kinds.
6977
6978 2012-04-23 DJ Delorie <dj@redhat.com>
6979
6980 * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
6981 (LIBSTDCXX): Change to CPP2.
6982
6983 2012-04-23 H.J. Lu <hongjiu.lu@intel.com>
6984
6985 PR bootstrap/52878
6986 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
6987 extra_masks.
6988
6989 2012-04-23 Uros Bizjak <ubizjak@gmail.com>
6990
6991 * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
6992 (*addsi_2_zext): Ditto.
6993 (*add<mode>_3): Ditto.
6994 (*addsi_3_zext): Ditto.
6995 (*add<mode>_5): Ditto.
6996
6997 2012-04-23 Andrew Pinski <apinski@cavium.com>
6998
6999 * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
7000 (C & B) to (A OP0) & B.
7001
7002 2012-04-23 Martin Jambor <mjambor@suse.cz>
7003
7004 * expr.c (expand_expr_real_1): Remove setting parent's alias set for
7005 temporaries created for a bitfield (reverting revision 122014).
7006
7007 2012-04-23 Richard Guenther <rguenther@suse.de>
7008
7009 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
7010 the condition using is_gimple_condexpr and avoid the not necessary
7011 boolification.
7012 (set_prologue_iterations): Likewise.
7013 (vect_loop_versioning): Likewise.
7014
7015 2012-04-23 Richard Guenther <rguenther@suse.de>
7016
7017 PR tree-optimization/53070
7018 * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
7019 (main_tree_if_conversion): Verify we succeeded in that.
7020
7021 2012-04-23 Jan Hubicka <jh@suse.cz>
7022
7023 * lto-symtab.c (lto_cgraph_replace_node): Do not call
7024 mark_reahcable_node.
7025 * cgraph.c (cgraph_remove_node): Do not clear reachable.
7026 (cgraph_mark_reachable_node): Remove.
7027 (cgraph_mark_force_output_node): Do not set reachable.
7028 (dump_cgraph_node): Do not dump reachable.
7029 (cgraph_create_virtual_clone): Do not set reachable.
7030 * cgraph.h (cgraph_node): Remove reachable flag.
7031 (varpool_node): Remove reachable flag.
7032 (cgraph_mark_if_needed): Remove.
7033 (cgraph_mark_reachable_node): Remove.
7034 * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
7035 * cgraphunit.c (cgraph_finalize_function): Do not mark node as
7036 reachable.
7037 (cgraph_add_new_function): Likewise.
7038 (cgraph_mark_if_needed): Remove.
7039 (cgraph_analyze_function): Do not set target as reachable.
7040 (process_function_and_variable_attributes): Do not care about
7041 dllexport.
7042 (cgraph_analyze_functions): Do not set reachable flags.
7043 (cgraph_mark_functions_to_output): Do not check reachability.
7044 (cgraph_copy_node_for_versioning): Do not set reachable flag.
7045 (dbxout_expand_expr): Update.
7046 * c-decl.c (merge_decls): Do not track changed externs.
7047 * ipa.c: Include pointer-set.h
7048 (enqueue_cgraph_node): Use reachable pointer set.
7049 (process_references): Likewise.
7050 (cgraph_remove_unreachable_nodes): Likewise.
7051 (whole_program_function_and_variable_visibility): Do not recompute
7052 reachable.
7053 * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
7054
7055 2012-04-23 Georg-Johann Lay <avr@gjlay.de>
7056
7057 * doc/extend.texi (AVR Named Address Spaces): Fix typos.
7058
7059 2012-04-23 Richard Guenther <rguenther@suse.de>
7060
7061 PR c/53060
7062 * c-typeck.c (build_binary_op): Fix typo.
7063
7064 2012-04-23 Jakub Jelinek <jakub@redhat.com>
7065
7066 PR tree-optimizations/52891
7067 * tree-vect-patterns.c (adjust_bool_pattern): Use
7068 build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
7069 but with non-standard precision.
7070
7071 2012-04-22 Jan Hubicka <jh@suse.cz>
7072
7073 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
7074 tree refs.
7075
7076 2012-04-22 Jan Hubicka <jh@suse.cz>
7077
7078 * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
7079 * cgraphbuild.c (record_reference, record_type_list, mark_address,
7080 mark_load, mark_store): Do not mark varpool nodes as needed.
7081 * cgraph.c (cgraph_new_nodes): Remove.
7082 (cgraph_create_function_alias): Do not mark nodes as reachable.
7083 (cgraph_add_thunk): Likewise.
7084 (cgraph_mark_reachable_node): Do not manage the queue.
7085 * cgraph.h (cgraph_node): Remove next_needed.
7086 (varpool_nodes_queue): Remove next_needed and prev_needed.
7087 (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
7088 (cgraph_new_nodes): Declare.
7089 (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
7090 (varpool_analyze_pending_decls): Remove.
7091 (varpool_analyze_node): New.
7092 (varpool_mark_needed_node): Remove.
7093 (varpool_first_variable, varpool_next_variable): New inlines.
7094 (varpool_first_static_initializer, varpool_next_static_initializer):
7095 Update.
7096 (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
7097 (varpool_first_defined_variable): New inline.
7098 (varpool_next_defined_variable): New inline
7099 (FOR_EACH_VARIABLE): Reimplement.
7100 (FOR_EACH_DEFINED_VARIABLE): Reimplement.
7101 * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
7102 needed flag.
7103 * cgraphunit.c (cgraph_new_nodes): Declare here.
7104 (enqueue_node): New function.
7105 (cgraph_process_new_functions): update for new
7106 node set; when constructing cgraph enqueue node for processing.
7107 (cgraph_add_new_function): Use new node set.
7108 (process_function_and_variable_attributes): Do not set varpool needed
7109 flags.
7110 (referred_to_p): New function.
7111 (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
7112 when varpool is in construction.
7113 (cgraph_analyze_functions): Rewrite.
7114 (cgraph_expand_all_functions): Update.
7115 (cgraph_output_in_order): Do not analyze pending decls; do not set
7116 needed flags.
7117 (cgraph_optimize): Do not analyze pending decls.
7118 * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
7119 in other partition; do not mark node as needed.
7120 * dwarf2out.c (reference_to_unused): Use analyzed flag.
7121 (premark_types_used_by_global_vars_helper): Likewise.
7122 * ipa.c (process_references): Do not call varpool_mark_needed_node.
7123 (cgraph_remove_unreachable_nodes): Do not rely on varpool and
7124 cgrpah queues.
7125 (function_and_variable_visibility): Do not mark node as needed.
7126 (whole_program_function_and_variable_visibility): Likewise.
7127 * Makefile.in (gt-varpool.h): No longer needed.
7128 * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
7129 (ipa_write_summaries): Do not use needed flag.
7130 * varpool.c: Do not include gt-varpool.h
7131 (x_varpool_nodes_queue, x_varpool_last_needed_node,
7132 x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
7133 x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
7134 Remove.
7135 (varpool_remove_node): Do not update the lists.
7136 (dump_varpool_node): Do not dump needed flag.
7137 (varpool_enqueue_needed_node): Remove.
7138 (varpool_mark_needed_node): Remove.
7139 (varpool_reset_queue): Remove.
7140 (varpool_finalize_decl): Move to cgraphunit.c
7141 (varpool_analyze_node): New functions based on former
7142 varpool_analyze_pending_decls.
7143 (varpool_analyze_pending_decls): Remove.
7144 (varpool_assemble_decl): Do not update the lists.
7145 (enqueue_node): New function.
7146 (varpool_remove_unreferenced_decls): Rewrite.
7147 (varpool_empty_needed_queue): Remove.
7148 (add_new_static_var): Do not mark node as needed.
7149 (varpool_create_variable_alias): Handle expansion state
7150 creation.
7151 * except.c (output_ttype): Do not mark node as needed.
7152 * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
7153 * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
7154 Likewise.
7155 * tree-switch-conversion.c (build_one_array): Likewise.
7156
7157 2012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
7158
7159 PR c/44774
7160 * doc/invoke.texi (pedantic): Rename to Wpedantic.
7161 * common.opt (Wpedantic): New.
7162 (pedantic): Alias Wpedantic.
7163 * diagnostic.c (warning_at): Likewise.
7164 * c-decl.c (diagnose_mismatched_decls): Likewise.
7165 (build_array_declarator): Likewise.
7166 (mark_forward_parm_decls):
7167 (check_bitfield_type_and_width): Likewise.
7168 (grokdeclarator): Likewise.
7169 (grokfield): Likewise.
7170 (finish_struct): Likewise.
7171 (build_enumerator): Likewise.
7172 (store_parm_decls_oldstyle): Likewise.
7173 (declspecs_add_qual): Likewise.
7174 (declspecs_add_type): Likewise.
7175 (finish_declspecs): Likewise.
7176 * c-typeck.c (composite_type): Likewise.
7177 (comp_target_types): Likewise.
7178 (build_array_ref): Likewise.
7179 (pointer_diff): Likewise.
7180 (build_unary_op): Likewise.
7181 (build_conditional_expr): Likewise.
7182 (build_c_cast): Likewise.
7183 (convert_for_assignment): Likewise.
7184 (maybe_warn_string_init): Likewise.
7185 (digest_init): Likewise.
7186 (pop_init_level): Likewise.
7187 (set_init_index): Likewise.
7188 (c_finish_goto_label): Likewise.
7189 (c_finish_return): Likewise.
7190 (do_case): Likewise.
7191 (build_binary_op): Likewise.
7192 * c-parser.c (static): Likewise.
7193 (c_parser_external_declaration): Likewise.
7194 (c_parser_declaration_or_fndef): Likewise.
7195 (c_parser_static_assert_declaration_no_se): Likewise.
7196 (c_parser_enum_specifier): Likewise.
7197 (c_parser_struct_or_union_specifier): Likewise.
7198 (c_parser_struct_declaration): Likewise.
7199 (c_parser_alignas_specifier): Likewise.
7200 (c_parser_braced_init): Likewise.
7201 (c_parser_initelt): Likewise.
7202 (c_parser_compound_statement_nostart): Likewise.
7203 (c_parser_conditional_expression): Likewise.
7204 (c_parser_alignof_expression): Likewise.
7205 (c_parser_postfix_expression): Likewise.
7206 (c_parser_postfix_expression_after_paren_): Likewise.
7207 (c_parser_objc_class_instance_variables): Likewise.
7208 (c_parser_objc_method_definition): Likewise.
7209 (c_parser_objc_methodprotolist): Likewise.
7210
7211 2012-04-22 Ian Lance Taylor <iant@google.com>
7212
7213 * godump.c (go_output_typedef): Dump size of structs.
7214
7215 2012-04-22 Razya Ladelsky <razya@il.ibm.com>
7216
7217 Correcting transform_to_exit_first_loop + fix to PR46886
7218 * tree-parloops.c (transform_to_exit_first_loop): Remove
7219 setting of number of iterations according to the loop pattern.
7220 Duplicate from entry to exit->src instead of loop->latch.
7221 (pallelize_loops): Remove the condition preventing do-while loops.
7222 * tree-cfg.c (bool bb_in_region_p): New.
7223 (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
7224 Adjust redirection of the duplicated iteration.
7225
7226 2012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
7227
7228 PR bootstrap/53021
7229 * rtl.def (ADDRESS): Use "i" rather than "w".
7230 * rtl.h (find_base_term): Delete.
7231 (may_be_sp_based_p): Declare.
7232 * rtl.c (rtx_code_size): Remove ADDRESS special case.
7233 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
7234 (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
7235 * alias.c: ...here.
7236 (find_base_term): Make static.
7237 (may_be_sp_based_p): New function.
7238 * dse.c (record_store): Use it.
7239 * store-motion.c (store_killed_in_insn): Likewise.
7240
7241 2012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
7242
7243 * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
7244
7245 2012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7246
7247 PR 35441
7248 * c-typeck.c (inform_declaration): New.
7249 (build_function_call_vec): Do not pretty-print
7250 expressions when caret is enabled.
7251 (convert_arguments): Use inform_declaration.
7252
7253 2012-04-20 Jim Meyering <meyering@redhat.com>
7254
7255 * genmodes.c (make_complex_modes): Don't truncate a mode name of
7256 length 7 or more when prepending a "C". Suggested by Richard Guenther.
7257
7258 2012-04-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7259
7260 PR rtl-optimization/44214
7261 * fold-const.c (exact_inverse): New function.
7262 (fold_binary_loc): Fold vector and complex division by constant into
7263 multiply by recripocal with flag_reciprocal_math; fold vector division
7264 by constant into multiply by reciprocal with exact inverse.
7265
7266 2012-04-20 Jan Hubicka <jh@suse.cz>
7267
7268 * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
7269 force flags.
7270 * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
7271 (cgraph_remove_node): Update.
7272 (cgraph_mark_needed_node): Remove.
7273 (cgraph_mark_force_output_node): New.
7274 (dump_cgraph_node): Do not dump needed flag.
7275 (cgraph_node_cannot_be_local_p_1): Update.
7276 (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
7277 * cgraph.h (symtab_node_base): Add force_output flag.
7278 (cgraph_node): Remove needed flag.
7279 (varpool_node): Remove force_output flag.
7280 (cgraph_mark_needed_node): Remove.
7281 (cgraph_mark_force_output_node): New.
7282 (cgraph_only_called_directly_or_aliased_p,
7283 varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
7284 * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
7285 * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
7286 (cgraph_add_new_function): Update.
7287 (cgraph_mark_if_needed): Update.
7288 (verify_cgraph_node): Update.
7289 (cgraph_analyze_function): Alias target is reachable.
7290 (process_function_and_variable_attributes): Update: externally_visible
7291 flag makes function reachable.
7292 (cgraph_analyze_functions): Update dumping.
7293 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
7294 input_overwrite_node, input_varpool_node): Update streaming.
7295 * lto-streamer-out.c (produce_symtab): Use force_output.
7296 * ipa.c (process_references): Weakrefs must be processed.
7297 (cgraph_remove_unreachable_nodes): Likewise; update for new
7298 force_output flag.
7299 (varpool_externally_visible_p): Weakrefs are externally visible
7300 even if they are not.
7301 (function_and_variable_visibility): Update; when processing alias
7302 pair force the targets to be output.
7303 (whole_program_function_and_variable_visility): Use
7304 mark_reachable_node.
7305 * trans-mem.c (ipa_tm_mark_needed_node): Remove
7306 (ipa_tm_mark_force_output_node): New function.
7307 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
7308 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
7309 aliases.
7310 * varasm.c (mark_decl_referenced): Update.
7311 (find_decl_and_mark_needed): Remove.
7312 (find_decl): New function.
7313 (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
7314 alias targets as needed.
7315 (dump_tm_clone_pairs): Update.
7316 * tree-inline.c (copy_bb): Update check.
7317 * symtab.c (dump_symtab_base): Dump force_output.
7318 * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
7319 * passes.c (execute_todo): Fix dumping.
7320 * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
7321 (varpool_analyze_pending_decls): Alias target is reachable.
7322 (varpool_create_variable_alias): Finalize weakrefs.
7323
7324 2012-04-20 Jakub Jelinek <jakub@redhat.com>
7325
7326 PR bootstrap/53021
7327 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
7328 UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
7329 * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
7330 macros instead of constants.
7331 * dse.c (record_store): Check for SP ADDRESS by comparing
7332 XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
7333 XEXP to be stack_pointer_rtx.
7334
7335 2012-04-20 Richard Guenther <rguenther@suse.de>
7336
7337 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
7338 update_call_from_tree when propagating into a call.
7339
7340 2012-04-20 Alan Modra <amodra@gmail.com>
7341
7342 * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
7343 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. Rename
7344 sp_offset to frame_off. Move world save code earlier.
7345
7346 2012-04-20 Richard Guenther <rguenther@suse.de>
7347
7348 PR tree-optimization/53050
7349 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
7350 Do only one transform on COND_EXPRs at the same time.
7351
7352 2012-04-19 Jan Hubicka <jh@suse.cz>
7353
7354 * symtab.c (dump_symtab_base): Revert accidental checkin.
7355
7356 2012-04-20 Alan Modra <amodra@gmail.com>
7357
7358 PR target/53040
7359 * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
7360 static chain, set REST_INLINE_FPRS too.
7361
7362 2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
7363
7364 * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
7365 nodes.
7366
7367 2012-04-20 Richard Guenther <rguenther@suse.de>
7368
7369 * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
7370 loops that can never run more often than the vectorization factor.
7371
7372 2012-04-19 Jan Hubicka <jh@suse.cz>
7373
7374 * symtab.c (dump_symtab_base): Fix dumping of asm lists.
7375
7376 2012-04-19 David Edelsohn <dje.gcc@gmail.com>
7377
7378 * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
7379
7380 2012-04-19 Jim Meyering <meyering@redhat.com>
7381
7382 * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
7383 We verified above that the string(including trailing NUL) fits in buf,
7384 so just use memcpy.
7385
7386 2012-04-19 Richard Guenther <rguenther@suse.de>
7387
7388 * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
7389 for dumping DECL_SECTION_NAME.
7390
7391 2012-04-19 Michael Matz <matz@suse.de>
7392
7393 PR middle-end/52977
7394 * tree.h (VECTOR_CST_NELTS): Use part number of types again.
7395 (struct tree_vector): Adjust GTY length.
7396 * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
7397
7398 * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
7399 members.
7400 (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
7401 caller emitted the length calulation already.
7402 (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
7403 before handling any of the fields for structs.
7404
7405 2012-04-19 Richard Guenther <rguenther@suse.de>
7406
7407 PR tree-optimization/53031
7408 * tree-vrp.c (adjust_range_with_scev): Revert back to
7409 using max_loop_iterations.
7410
7411 2012-04-19 Michael Matz <matz@suse.de>
7412
7413 * diagnostic.c (emit_diagnostic): Move va_end call after user
7414 of the va_list.
7415 (warning, warning_at, pedwarn, permerror): Ditto.
7416
7417 2012-04-19 Richard Guenther <rguenther@suse.de>
7418
7419 * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
7420 array access.
7421
7422 2012-04-19 Georg-Johann Lay <avr@gjlay.de>
7423
7424 PR target/53033
7425 * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
7426 the case *(X+const).
7427
7428 2012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7429
7430 * config/arm/sync.md (sync_optab): Change ior attribute to "or".
7431
7432 2012-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
7433
7434 PR c/52283/37985
7435 * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
7436 * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
7437
7438 2012-04-19 Richard Guenther <rguenther@suse.de>
7439
7440 PR rtl-optimization/44688
7441 * loop-iv.c (determine_max_iter): Only return max_iter.
7442 (iv_number_of_iterations): Also use the recorded loop bound
7443 on the maximum number of iterations.
7444 * loop-unroll.c (decide_unroll_runtime_iterations): Use
7445 max_iter to avoid unrolling loops that do not roll.
7446 (decide_unroll_stupid): Likewise.
7447
7448 2012-04-18 Steven Bosscher <steven@gcc.gnu.org>
7449
7450 * targhooks.c (default_case_values_threshold): Fix code style nit.
7451
7452 * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
7453 case range and type folding from here...
7454 * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE
7455 type, as documented in tree.def.
7456
7457 2012-04-18 Jan Hubicka <jh@suse.cz>
7458
7459 * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
7460 Declare.
7461 * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
7462 cgraph hash and same comdat groups.
7463 (cgraph_optimize): Verify symbol table.
7464 * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
7465 (dissolve_same_comdat_group_list): Work on symtab nodes.
7466 (function_and_variable_visibility): Dissolve variable same comdat group
7467 lists, too.
7468 * symtab.c: Include timevar.h
7469 (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
7470
7471 2012-04-18 Steven Bosscher <steven@gcc.gnu.org>
7472
7473 * tree-switch-conversion.c (info): Remove global pass info.
7474 (check_range, check_process_case, check_final_bb, create_temp_arrays,
7475 free_temp_arrays, gather_default_values, build_constructors,
7476 array_value_type, build_one_array, build_arrays, gen_def_assigns,
7477 fix_phi_nodes, gen_inbound_check): Pass info around from ...
7478 (process_switch): ... here. Unify message format. Return a const
7479 char pointer to the failure reason message.
7480 (do_switchconv): Unify message format. Update process_switch usage.
7481
7482 * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
7483 * tree-cfg.c (edge_to_cases): Fix documentation.
7484
7485 2012-04-18 Uros Bizjak <ubizjak@gmail.com>
7486
7487 * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
7488
7489 2012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7490
7491 PR tree-optimization/52976
7492 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
7493 (possibly_move_powi): New function.
7494 (rewrite_expr_tree): Call possibly_move_powi.
7495 (rewrite_expr_tree_parallel): Likewise.
7496 (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
7497 call add_to_ops_vec instead.
7498
7499 2012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7500
7501 PR tree-optimization/52976
7502 * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
7503 (decrement_power): Likewise.
7504 (propagate_op_to_single_use): Likewise.
7505 (zero_one_operation): Handle __builtin_pow* calls in linearized
7506 expression trees; factor logic into propagate_op_to_single_use.
7507 (undistribute_ops_list): Allow operands with repeat counts > 1.
7508
7509 2012-04-18 Richard Guenther <rguenther@suse.de>
7510
7511 PR tree-optimization/44688
7512 * cfgloop.h (record_niter_bound): Declare.
7513 * tree-ssa-loop-niter.c (record_niter_bound): Export.
7514 Update the estimation with the upper bound here...
7515 (estimate_numbers_of_iterations_loop): ... instead of here.
7516 Do not forcefully reset a recorded upper bound.
7517 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
7518 Record the maximum number of loop iterations of the prologue loop.
7519
7520 2012-04-18 Jan Hubicka <jh@suse.cz>
7521
7522 * lto-symtab.c (lto_cgraph_replace_node): Update.
7523 * cgraphbuild.c (record_reference, record_type_list,
7524 record_eh_tables, mark_address, mark_load, mark_store): Update.
7525 * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
7526 cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
7527 Update.
7528 * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
7529 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
7530 * reload.c: Fix typo in comment.
7531 * rtlanal.c: Likewise.
7532 * tree-emultls.c (gen_emutls_addr): Update.
7533 * ipa-reference.c (analyze_function): Update.
7534 * cgraphunit.c (cgraph_analyze_function,
7535 cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
7536 Update.
7537 * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
7538 (ipa_remove_reference): Likewise.
7539 (ipa_remove_all_refering): Rename to ...
7540 (ipa_remove_all_referring): ... this one; update.
7541 (ipa_dump_references): Update.
7542 (ipa_dump_referring): Update.
7543 (ipa_clone_references): Update.
7544 (ipa_clone_refering): Rename to ...
7545 (ipa_clone_referring): ... this one; update.
7546 (ipa_ref_cannot_lead_to_return): Update.
7547 (ipa_ref_has_aliases_p): Update.
7548 * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
7549 forward typedefs.
7550 (ipa_ref_type): Remove.
7551 (ipa_ref_ptr_u): Remove.
7552 (ipa_ref): Remove referencing, refered, refered_index, refering_type
7553 and refered_type; add referring, referred and referred_index.
7554 (ipa_ref_list): Rename refering to referring.
7555 (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
7556 ipa_clone_references, ipa_clone_referring): Update prototypes.
7557 * lto-cgraph.c (referenced_from_other_partition_p): Update.
7558 (lto_output_ref): Update.
7559 (add_references): Update.
7560 (input_varpool_node): Update.
7561 (input_refs): Update.
7562 * ipa-ref-inline.h (ipa_ref_node): Update.
7563 (ipa_ref_varpool_node): Update.
7564 (ipa_ref_referring_node): Update.
7565 (ipa_ref_referring_varpool_node): Update.
7566 (ipa_ref_referring_ref_list): Update.
7567 (ipa_ref_referred_ref_list): Update.
7568 (ipa_ref_list_first_referring): Update.
7569 (ipa_empty_ref_list): Update.
7570 (ipa_ref_list_refering_iterate): Rename to ...
7571 (ipa_ref_list_referring_iterate): ... this one.
7572 * cse.c: Update comment.
7573 * ipa-utils.c (ipa_reverse_postorder): Update.
7574 * tree-ssa-alias.c: Update.
7575 * ipa-inline.c (reset_edge_caches): Update.
7576 (update_caller_keys): Update.
7577 * ipa-inline.h: Update comments.
7578 * jump.c: Update comment.
7579 * alias.c: Likewise.
7580 * ipa.c (process_references): Update.
7581 (cgraph_remove_unreachable_nodes): Likewise.
7582 (ipa_discover_readonly_nonaddressable_var): Likewise.
7583 (cgraph_address_taken_from_non_vtable_p): Likewise.
7584 * trans-mem.c (ipa_tm_execute): Update.
7585 * simplify-rtx.c: Fix comment.
7586 * rtl.c: Fix comment.
7587 * symtab.c (symtab_unregister_node): Update.
7588 * varpool.c (dump_varpool_node): Update.
7589 (varpool_analyze_pending_decls): Update.
7590 (assemble_aliases): Update.
7591 (varpool_for_node_and_aliases): Update.
7592
7593 2012-04-18 Richard Guenther <rguenther@suse.de>
7594
7595 * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
7596 use_undefined_p parameter.
7597 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
7598 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
7599 Likewise.
7600 (estimate_numbers_of_iterations): Likewise.
7601 (estimated_loop_iterations): Adjust.
7602 (max_loop_iterations): Likewise.
7603 (scev_probably_wraps_p): Likewise.
7604 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
7605 * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
7606 not max_loop_iterations.
7607 (execute_vrp): Remove explicit number of iterations estimation.
7608
7609 2012-04-18 Enkovich Ilya <ilya.enkovich@intel.com>
7610
7611 * config/i386/linux-common.h: New.
7612
7613 * config.gcc: Add i386/linux-common.h before
7614 all i386/linux.h and i386/linux64.h usages.
7615
7616 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
7617 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
7618 * config/i386/gnu-user64.h: Likewise.
7619
7620 * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
7621 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
7622 (GNU_USER_TARGET_MATHFILE_SPEC): New.
7623 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
7624
7625 2012-04-18 Jan Hubicka <jh@suse.cz>
7626
7627 * cgraph.c (cgraph_node_name): Remove.
7628 (dump_cgraph_node): Use dump_symtab_base; reformat.
7629 * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
7630 debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
7631 Declare.
7632 (cgraph_node_name, varpool_node_name): Remove.
7633 (cgraph_node_asm_name, varpool_node_asm_name,
7634 cgraph_node_name, varpool_node_name): New.
7635 * tree-pass.h (TODO_dump_cgraph): Rename to ...
7636 (TODO_dump_symtab): ... this one.
7637 * ipa-cp (pass_ipa_cp): Update.
7638 * ia-reference.c (generate_summary, read_write_all_from_decl,
7639 propagate, ipa_reference_read_optimization_summary): Update.
7640 * cgraphunit.c (cgraph_analyze_functions): Update.
7641 (cgraph_optimize): Update.
7642 * ipa-ref.c (ipa_dump_references): Update.
7643 (ipa_dump_refering): Update.
7644 * ipa-inline.c (pass_ipa_inline): Update.
7645 * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
7646 * ipa.c (pass_ipa_function_visibility,
7647 pass_ipa_whole_program_visibility): Update.
7648 * tree-sra.c (pass_early_ipa_sra): Update.
7649 * symtab.c: Include langhooks.h
7650 (symtab_node_asm_name): New.
7651 (symtab_node_name): New.
7652 (symtab_type_names): New static var.
7653 (dump_symtab_base): New.
7654 (dump_symtab_node, dump_symtab): New.
7655 (debug_symtab_node, debug_symtab): New.
7656 * tree-ssa-structalias.c: Dump symbol table.
7657 * pases.c (execute_todo): Handle TODO_dump_symtab instead
7658 of TODO_dump_cgraph.
7659 * varpoo.c (varpool_node_name): Remove.
7660 (dump_varpool_node): Use dump_symtab_base; reformat.
7661
7662 2012-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
7663
7664 * doc/invoke.texi (Language Independent Options): @item should be
7665 before @opindex.
7666
7667 2012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
7668
7669 PR bootstrap/53021
7670 * rtl.c (rtx_code_size): Handle ADDRESS.
7671
7672 2012-04-17 Tom de Vries <tom@codesourcery.com>
7673
7674 * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
7675 is not a STMT_LIST.
7676
7677 2012-04-17 Uros Bizjak <ubizjak@gmail.com>
7678
7679 PR target/53020
7680 * config/i386/sync.md (atomic_<code><mode>): Rename to
7681 atomic_<logic><mode>.
7682
7683 2012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
7684
7685 * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
7686 * alias.c (reg_base_value): Expand and update comment.
7687 (arg_base_value): New variable.
7688 (unique_id): Move up file.
7689 (unique_base_value, unique_base_value_p, known_base_value_p): New.
7690 (find_base_value): Use arg_base_value and known_base_value_p.
7691 (record_set): Document REG_NOALIAS handling. Use unique_base_value.
7692 (find_base_term): Use known_base_value_p.
7693 (base_alias_check): Use unique_base_value_p.
7694 (init_alias_target): Initialize arg_base_value. Use unique_base_value.
7695 (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
7696
7697 2012-04-17 Pat Haugen <pthaugen@us.ibm.com>
7698
7699 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
7700
7701 2012-04-17 Michael Matz <matz@suse.de>
7702
7703 PR tree-optimization/18437
7704 * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
7705 (STMT_VINFO_STRIDE_LOAD_P): New accessor.
7706 (vect_check_strided_load): Declare.
7707 * tree-vect-data-refs.c (vect_check_strided_load): New function.
7708 (vect_analyze_data_refs): Use it to accept strided loads.
7709 * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
7710
7711 2012-04-17 Richard Guenther <rguenther@suse.de>
7712
7713 PR middle-end/53011
7714 * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
7715 loops when redirecting an entry or latch edge.
7716
7717 2012-04-17 Bernd Schmidt <bernds@codesourcery.com>
7718
7719 * sel-sched.c (sel_global_init): Revert previous change.
7720
7721 2012-04-17 Richard Guenther <rguenther@suse.de>
7722
7723 * tree-flow.h (array_at_struct_end_p): Move declaration ...
7724 * tree.h (array_at_struct_end_p): ... here.
7725 * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
7726 * expr.c (array_at_struct_end_p): ... here. Rewrite.
7727
7728 2012-04-17 Steven Bosscher <steven@gcc.gnu.org>
7729
7730 * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
7731 COST_TABLE): Remove.
7732 (estimate_case_costs): Remove.
7733 (expand_case): Do not call estimate_case_costs
7734 to set use_cost_table.
7735 (balance_case_nodes): Do not use use_cost_table.
7736
7737 2012-04-16 Jan Hubicka <jh@suse.cz>
7738
7739 * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
7740 (hash_node, eq_node): Remove.
7741 (cgraph_create_node): Do not handle hashtable.
7742 (cgraph_get_node): Remove.
7743 (cgraph_insert_node_to_hashtable): Remove.
7744 (hash_node_by_assembler_name): Remove.
7745 (eq_assembler_name): Remove.
7746 (cgraph_node_for_asm): Rewrite.
7747 (cgraph_find_replacement_node): Break out from ...
7748 (cgraph_remove_node): ... here; do not maintain hashtables.
7749 (change_decl_assembler_name): Remove.
7750 (cgraph_clone_node): Do not maintain hashtables.
7751 * cgraph.h (const_symtab_node): New typedef.
7752 (cgraph_insert_node_to_hashtable): Remove.
7753 (symtab_get_node, symtab_node_for_asm,
7754 symtab_insert_node_to_hashtable): Declare.
7755 (cgraph_find_replacement_node): Declare.
7756 (cgraph_get_node, varpool_get_node): Turn into inlines.
7757 (cgraph, varpool): Work sanely on NULL pointers.
7758 (FOR_EACH_SYMBOL): New walker.
7759 * ipa-inline-transform.c (save_inline_function_body): Use
7760 symtab_insert_node_to_hashtable.
7761 * symtab.c: Include ggc.h and diagnostics.h
7762 (symtab_hash, assembler_name_hash): New static vars;
7763 (hash_node, eq_node, hash_node_by_assembler_name,
7764 eq_assembler_name, insert_to_assembler_name_hash,
7765 unlink_from_assembler_name_hash): New.
7766 (symtab_register_node): Update hashtables.
7767 (symtab_insert_node_to_hashtable): New.
7768 (symtab_unregister_node): Update hashtables.
7769 (symtab_get_node): New.
7770 (symtab_node_for_asm): New.
7771 (change_decl_assembler_name): New.
7772 * Makefile.in (symtab.o): Needs GTY.
7773 * varpool.c (varpool_hash): Remove.
7774 (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
7775 (varpool_node): Rewrite using varpool_get_node.
7776 (varpool_remove_node): DO not maintain hashtables.
7777 (varpool_node_for_asm): Rewrite.
7778
7779 2012-04-16 Sandra Loosemore <sandra@codesourcery.com>
7780
7781 * doc/invoke.texi: Copy-edit to put verbs in the present tense
7782 when describing the current behavior of GCC.
7783
7784 2012-04-16 Richard Sandiford <rdsandiford@googlemail.com>
7785
7786 * genemit.c (gen_exp): Remove ADDRESS handling.
7787 * genoutput.c (scan_operands): Likewise.
7788 * genpeep.c (match_rtx): Likewise.
7789 * genrecog.c (add_to_sequence): Likewise.
7790
7791 2012-04-16 David Edelsohn <dje.gcc@gmail.com>
7792
7793 * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
7794
7795 2012-04-16 Martin Jambor <mjambor@suse.cz>
7796
7797 * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
7798 bit-fields.
7799
7800 2012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org>
7801
7802 PR target/51819
7803 * config/arm/arm.c (arm_print_operand): Fix invalid alignment
7804 hints for 'A' operand types.
7805
7806 2012-04-16 Jan Hubicka <jh@suse.cz>
7807
7808 * cgraph.h (symtab_node_base): Add next and previous pointers.
7809 (cgraph_node): Remove next and preivous pointers.
7810 (varpool_node): Likewise; remove next/previous GTY marker;
7811 it is not type safe.
7812 (symtab_node_def): Update GTY marker
7813 (x_cgraph_nodes, cgraph_nodes): Remove.
7814 (symtab_nodes): New function.
7815 (cgraph_order): Rename to ...
7816 (symtab_order): ... this one.
7817 (symtab_register_node, symtab_unregister_node, symtab_remove_node):
7818 Declare.
7819 (x_varpool_nodes, varpool_nodes): Remove.
7820 (FOR_EACH_STATIC_VARIABLE): Update.
7821 (symtab_function_p, symtab_variable_p): New function.
7822 (FOR_EACH_VARIABLE): Update.
7823 (varpool_first_variable, varpool_next_variable): New functions.
7824 (FOR_EACH_VARIABLE): Update.
7825 (cgraph_first_defined_function): Update.
7826 (cgraph_next_defined_function, cgraph_next_defined_function): Update.
7827 (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
7828 (cgraph_first_function, cgraph_next_function): New.
7829 (FOR_EACH_FUNCTION): Update.
7830 (cgraph_first_function_with_gimple_body,
7831 cgraph_next_function_with_gimple_body): Update.
7832 * symtab.c: New file.
7833 * cgraph.c: Update copyright dates.
7834 (x_cgraph_nodes, cgraph_order): Remove.
7835 (NEXT_FREE_NODE): Update.
7836 (SET_NEXT_FREE_NODE): New.
7837 (cgraph_create_node_1): Remove common code.
7838 (cgraph_create_node): Remove common code; call symtab_register_node.
7839 (cgraph_remove_node): Remove common code; call symtab_unregister-node.
7840 (cgraph_add_asm_node): Update.
7841 (cgraph_clone_node): Register new node.
7842 * cgraphunit.c (process_function_and_variable_attributes): Update.
7843 (cgraph_analyze_functions): Update.
7844 (cgraph_analyze_functions): Update.
7845 (cgraph_output_in_order): Update.
7846 * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
7847 Update.
7848 * ipa-inline.c (recursive_inlining): Update.
7849 * lto-streamer-in.c (lto_input_toplevel_asms): Update.
7850 * ipa.c (cgraph_remove_unreachable_nodes): Update.
7851 * Makefile.in: Add symtab.o
7852 * varpool.c (x_varpool_nodes): Remove
7853 (varpool_node): Remove common code; call symtab_register_node.
7854 (varpool_remove_node): Remove common code; call symtab_unregister_node.
7855
7856 2012-04-16 Richard Guenther <rguenther@suse.de>
7857
7858 PR middle-end/52977
7859 * tree.h (VECTOR_CST_NELTS): Adjust.
7860 (struct tree_vector): Add explicit length field.
7861 (make_vector_stat): Declare.
7862 (make_vector): Define.
7863 * tree.c (make_vector_stat): New function.
7864 (build_vector_stat): Use it.
7865 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
7866
7867 2012-04-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7868
7869 PR tree-optimization/52976
7870 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
7871 (undistribute_ops_list): Ops with repeat counts aren't eligible for
7872 undistribution.
7873 (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
7874
7875 2012-04-16 Jan Hubicka <jh@suse.cz>
7876
7877 * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
7878 New macros.
7879 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
7880 walkers to walk cgraph and varpool.
7881 * cgraph.c (cgraph_node_for_asm): Likewise.
7882 (dump_cgraph): Likewise.
7883 * value-prof.c (init_node_map): Likewise.
7884 * tree.c (free_lang_data_in_cgraph): Likewise.
7885 * tree-emutls.c: (ipa_lower_emutls): Likewise.
7886 * ipa-reference.c (generate_summary, propagate): Likewise.
7887 * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
7888 cgraph_mark_functions_to_output, cgraph_output_in_order,
7889 output_weakrefs, cgraph_materialize_all_clones,
7890 cgraph_optimize): Likewise.
7891 * lto-cgraph.c (merge_profile_summaries): Likewise.
7892 (input_cgraph): Likewise.
7893 * ipa-pure-const.c (generate_summary): Likewise.
7894 (propagate): Likwise.
7895 * ipa-utils.c (ipa_reduced_postorder): Likewise.
7896 (ipa_free_postorder_info): Likewise.
7897 (ipa_reverse_postorder): Likewise.
7898 * ipa-inline.c (ipa_inline): Likewise.
7899 * matrix-reorg.c (find_matrices_decl): Likewise.
7900 (matrix_reorg): Likewise.
7901 * tree-vectorizer.c (increase_alignment): Likewise.
7902 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
7903 (function_and_variable_visibility): Likewise.
7904 (whole_program_function_and_variable_visibility): Likewise.
7905 (ipa_cdtor_merge): Likewise.
7906 * trans-mem.c (ipa_tm_execute): Likewise.
7907 * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
7908 * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
7909 (ipa_print_all_params): Likewise.
7910 (ipa_update_after_lto_read): Likewise.
7911 * tree-profie.c (tree_profiling): Likewise.
7912 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7913 * passes.c (dump_passes): Likewise.
7914 (do_per_function): Likewise.
7915 (ipa_write_summaries): Likewise.
7916 * varpool.c (dump_varpool): Likewise.
7917 (varpool_node_for_asm): Likewise.
7918 (varpool_assemble_pending_decls): Likewise.
7919
7920 2012-04-16 Richard Guenther <rguenther@suse.de>
7921
7922 PR tree-optimization/52975
7923 * tree-if-conv.c (predicate_bbs): Do not simplify inverted
7924 condition but always mark it with TRUTH_NOT_EXPR.
7925
7926 2012-04-16 Richard Guenther <rguenther@suse.de>
7927
7928 PR tree-optimization/52975
7929 * tree-ssa-forwprop.c (combine_cond_exprs): New function.
7930 (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
7931 and VEC_COND_EXPRs. Also combine into VEC_COND_EXPRs condition.
7932 * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
7933
7934 2012-04-14 Uros Bizjak <ubizjak@gmail.com>
7935
7936 * config/i386/sse.md (ssse3_plusminus): New code iterator.
7937 (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
7938 avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
7939 (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
7940 ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
7941 (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
7942 ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
7943
7944 (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
7945 avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
7946 (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
7947 ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
7948 (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
7949 ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
7950
7951 (xop_plus): New code iterator.
7952 (macs): New code attribute.
7953 (macds): Ditto.
7954 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
7955 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
7956 iterator.
7957 (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
7958 xop_plus code iterator.
7959 (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
7960 xop_plus code iterator.
7961 (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
7962 xop_plus code iterator.
7963 (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
7964 xop_plus code iterator.
7965
7966 (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
7967 any_extend code iterator.
7968 (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
7969 any_extend code iterator.
7970 (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
7971 any_extend code iterator.
7972 (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
7973 any_extend code iterator.
7974 (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
7975 any_extend code iterator.
7976 (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
7977 any_extend code iterator.
7978
7979 2012-04-14 Tom de Vries <tom@codesourcery.com>
7980
7981 * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
7982 call to delete_insn. Remove code to reorder BASIC_BLOCK note and
7983 DELETED_LABEL note, and move it to ...
7984 * cfgrtl.c (delete_insn): ... here. Change return type to void.
7985 (delete_insn_and_edges): Likewise.
7986 (delete_insn_chain): Handle new return type of delete_insn. Delete
7987 chain backwards rather than forwards.
7988 * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
7989 void.
7990 * cfglayout.c (fixup_reorder_chain): Delete unused label.
7991
7992 2012-04-14 Jan Hubicka <jh@suse.cz>
7993
7994 * cgraph.h: Update copyrights;
7995 (symtab_node): Turn to union typedef.
7996 (symtab_node_base): New structure.
7997 (symtab_type): Add SYMTAB_SYMBOL tag.
7998 (cgraph_node): Annotate some pinters with nested_ptr.
7999 (varpool_node): Likewise.
8000 (cgraph_local_info): Remove lto_file_data
8001 and externally_visible.
8002 (cgraph_node): Remove decl; same_comdat_group list;
8003 aux; ref_list; order; address_taken; reachable_from_other_parittion,
8004 in_other_partition; resolution.
8005 (varpool_node): Remove decl; same_comdat_group;
8006 ref_list; lto_file_data; aux; order; resolution; externally_visible;
8007 used_from_other_partition; in_other_partition.
8008 (symtab_node_def): New union.
8009 (cgraph, varpool): Update.
8010 (varpool_first_static_initializer, varpool_next_static_initializer,
8011 cgraph_only_called_directly_or_aliased_p,
8012 varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
8013 varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
8014 varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
8015 field references.
8016 * cgraph.c: Likewise.
8017 (cgraph_hash, assembler_name_hash): Turn into symtab_node.
8018 * cgraphbuild.c: Likewise.
8019 * lto-symtab.c: Likewise.
8020 * c-gimplify.c: Likewise.
8021 * value-prof.c: Likewise.
8022 * tree.c: Likewise.
8023 * ipa-cp.c: Likewise.
8024 * tree-emutls.c: Likewise.
8025 * ipa-inline-transform.c: Likwise.
8026 * ipa-reference.c: Likewise.
8027 * cgraphunit.c: Likewise.
8028 * ipa-ref.c: Likewise.
8029 * lto-cgraph.c: Likewise.
8030 * ipa-ref-inline.h: Likewise.
8031 * ipa-pure-const.c: Likewise.
8032 * lto-streamer-out.c: Likewise.
8033 * ipa-utils.c: Likewise.
8034 * ipa-inline.c: Likewise.
8035 * matrix-reorg.c: Likewise.
8036 * tree-eh.c: Likewise.
8037 * tree-vectorizer.c: Likewise.
8038 * ipa-split.c: Likewise.
8039 * ipa.c: Likewise.
8040 * trans-mem.c: Likewise.
8041 * ipa-inline-analysis.c: Likewise.
8042 * gimplify.c: Likewise.
8043 * cfgexpand.c: Likewise.
8044 * tree-sra.c: Likewise.
8045 * ipa-prop.c: Likewise.
8046 * varasm.c: Likewise.
8047 * tree-nested.c: Likewise.
8048 * tree-inline.c: Likewise.
8049 * tree-profile.c: Likewise.
8050 * tree-ssa-structalias.c: Likewise.
8051 * passes.c: Likewise.
8052 * varpool.c: Likewise.
8053
8054 2012-04-14 Tom de Vries <tom@codesourcery.com>
8055
8056 * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
8057 same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND.
8058 Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use
8059 of find_edge.
8060 (gsi_advance_fw_nondebug_nonlocal): New function.
8061 (local_def): Removed function.
8062 (same_succ_hash): Use stmt_local_def.
8063 (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
8064 (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
8065
8066 2012-04-13 H.J. Lu <hongjiu.lu@intel.com>
8067
8068 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
8069 and __ILP32__ for x32.
8070
8071 2012-04-13 Martin Jambor <mjambor@suse.cz>
8072
8073 PR middle-end/52939
8074 * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
8075 fold_ctor_reference returns a zero constant.
8076
8077 2012-04-13 Enkovich Ilya <ilya.enkovich@intel.com>
8078
8079 * config.gcc: Add i386/gnu-user-common.h before all
8080 i386/gnu-user.h and i386/gnu-user64.h usages.
8081
8082 * config/i386/gnu-user-common.h: New.
8083
8084 * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
8085 (CC1_SPEC): Likewise.
8086 (ENDFILE_SPEC): Likewise.
8087 (DEFAULT_PCC_STRUCT_RETURN): Likewise.
8088 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
8089 (TARGET_OS_CPP_BUILTINS): Likewise.
8090 (LIBGCC2_HAS_TF_MODE): Likewise.
8091 (LIBGCC2_TF_CEXT): Likewise.
8092 (TF_SIZE): Likewise.
8093 (TARGET_ASM_FILE_END): Likewise.
8094 (STACK_CHECK_MOVING_SP): Likewise.
8095 (STACK_CHECK_STATIC_BUILTIN): Likewise.
8096 * config/i386/gnu-user64.h: Likewise.
8097
8098 2012-04-13 Martin Jambor <mjambor@suse.cz>
8099
8100 * expr.c (expand_expr_real_1): Pass type, not the expression, to
8101 set_mem_attributes for a memory temporary. Do not call the function
8102 for the memory temporary created for a bitfield.
8103
8104 2012-04-13 Alexandre Oliva <aoliva@redhat.com>
8105
8106 PR debug/48866
8107 * df.h (enum debug_temp_where): New.
8108 (dead_debug_init, dead_debug_finish) Declare.
8109 (dead_debug_add, dead_debug_insert_temp): Declare.
8110 (struct dead_debug_use, struct dead_debug): Moved from...
8111 * df-problems.c: ... here.
8112 (df_set_unused_notes_for_mw): Bind debug uses of unused regno
8113 to a debug temp.
8114 (df_create_unused_note): Likewise.
8115 (df_set_dead_notes_for_mw): Move comment where it belongs.
8116 (dead_debug_init): Export.
8117 (dead_debug_reset_uses): New, factored out of...
8118 (dead_debug_finish): ...this. Export.
8119 (dead_debug_reset): Remove.
8120 (dead_debug_add): Export.
8121 (dead_debug_insert_before): Rename to...
8122 (dead_debug_insert_temp): ... this. Add where argument. Export.
8123 Locate stored value for BEFORE_WITH_VALUE. Avoid repeat inserts.
8124 Return insertion count.
8125 (df_note_bb_compute): Adjust.
8126 * dce.c (word_dce_process_block): Adjust dead debug uses.
8127 (dce_process_block): Likewise.
8128
8129 2012-04-13 Alexandre Oliva <aoliva@redhat.com>
8130
8131 * df-problems.c (df_note_bb_compute): Do not take note of
8132 debug uses for whose REGs we won't emit DEAD or UNUSED notes.
8133
8134 2012-04-13 Alexandre Oliva <aoliva@redhat.com>
8135
8136 PR debug/51570
8137 * var-tracking.c (expand_depth): New type.
8138 (onepart_aux, expand_loc_callback_data): Change depth type to it.
8139 (loc_exp_dep_alloc): Adjust initializer.
8140 (update_depth): Use new type. Add entryvals.
8141 (vt_expand_var_loc_chain): Take note of expansions with
8142 ENTRY_VALUEs, but don't accept them right away. Run an optional
8143 second pass accepting the minimum ENTRY_VALUE count found in the
8144 first pass.
8145 (vt_expand_loc_callback, INIT_ELCD): Adjust.
8146
8147 2012-04-13 Tom de Vries <tom@codesourcery.com>
8148
8149 * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
8150 parameters vuse and vuse_escaped.
8151 (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
8152 gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
8153 vuse1 != vuse2.
8154
8155 2012-04-13 Richard Guenther <rguenther@suse.de>
8156
8157 PR tree-optimization/52969
8158 * tree-if-conv.c (predicate_mem_writes): Properly gimplify
8159 the condition for the COND_EXPR and handle predicate negation
8160 by swapping the COND_EXPR arms.
8161
8162 2012-04-13 Nick Clifton <nickc@redhat.com>
8163
8164 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
8165 TODO_dump_func flag.
8166
8167 2012-04-13 Andrey Belevantsev <abel@ispras.ru>
8168
8169 PR rtl-optimization/52203
8170 PR rtl-optimization/52715
8171
8172 Revert the 2012-03-07 fix for PR 52203.
8173 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
8174 the insn does not modify DFA right before issuing, adjust
8175 issue_rate accordingly.
8176
8177 2012-04-13 Richard Guenther <rguenther@suse.de>
8178
8179 PR c/52549
8180 * c-typeck.c (pointer_diff): Remove bogus assert.
8181
8182 2012-04-13 Richard Guenther <rguenther@suse.de>
8183
8184 PR c/52862
8185 * convert.c (convert_to_pointer): Remove special-casing of zero.
8186
8187 2012-04-13 Joey Ye <joey.ye@arm.com>
8188
8189 * config/arm/constraints.md (Pe): New constraint.
8190 * config/arm/arm.md: New split for imm 256-510.
8191
8192 2012-04-13 Terry Guo <terry.guo@arm.com>
8193
8194 * config/arm/arm-cores.def: Added core cortex-m0plus.
8195 * config/arm/arm-tune.md: Regenerated.
8196 * config/arm/arm-tables.opt: Regenerated.
8197 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
8198
8199 2012-04-13 Alan Modra <amodra@gmail.com>
8200
8201 PR target/52828
8202 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
8203 tie regs on destination of sets. Delete forward declaration.
8204 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
8205 (rs6000_emit_prologue): Likewise.
8206 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
8207 and gen_stack_tie.
8208 (is_mem_ref): Use tie_operand to recognise stack ties.
8209 * config/rs6000/predicates.md (tie_operand): New.
8210 * config/rs6000/rs6000.md (restore_stack_block): Generate new
8211 stack tie rtl.
8212 (restore_stack_nonlocal): Likewise.
8213 (stack_tie): Update.
8214 (frame_tie): Delete.
8215
8216 2012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8217
8218 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
8219 HOST_WIDE_INT_PRINT_DEC in format strings.
8220
8221 2012-04-12 Uros Bizjak <ubizjak@gmail.com>
8222
8223 PR target/52932
8224 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
8225 argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
8226 * config/i386/sse.md (UNSPEC_VPERMVAR): New.
8227 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
8228 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
8229 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
8230 avx2_permvarv8si using VI4F_256 mode iterator.
8231 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
8232 Update builtin type to V8SF_FTYPE_V8SF_V8SI.
8233 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
8234 gen_avx2_permvarv8sf.
8235 (expand_vec_perm_pshufb): Ditto.
8236
8237 2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8238
8239 PR target/52775
8240 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
8241 the list of options to enable the FCFID instruction.
8242 (TARGET_EXTRA_BUILTINS): Adjust comment.
8243
8244 2012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8245
8246 PR tree-optimization/18589
8247 * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
8248 (operand_entry): Add count field.
8249 (add_repeat_to_ops_vec): New function.
8250 (completely_remove_stmt): Likewise.
8251 (remove_def_if_absorbed_call): Likewise.
8252 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
8253 (acceptable_pow_call): New function.
8254 (linearize_expr_tree): Look for builtin pow/powi calls and add operand
8255 entries with repeat counts when found.
8256 (repeat_factor_d): New struct and associated typedefs.
8257 (repeat_factor_vec): New static vector variable.
8258 (compare_repeat_factors): New function.
8259 (get_reassoc_pow_ssa_name): Likewise.
8260 (attempt_builtin_powi): Likewise.
8261 (reassociate_bb): Call attempt_builtin_powi.
8262 (fini_reassoc): Two new calls to statistics_counter_event.
8263
8264 2012-04-12 Richard Guenther <rguenther@suse.de>
8265
8266 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
8267 * cgraph.h (tree_rest_of_compilation): Remove.
8268 * cgraph.c (cgraph_add_new_function): Move ...
8269 * cgraphunit.c (cgraph_add_new_function): ... here.
8270 (tree_rest_of_compilation): Make static.
8271 (cgraph_expand_function): Do not set cgraph_function_flags_ready.
8272 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
8273 gate_all_early_local_passes, execute_all_early_local_passes,
8274 pass_early_local_passes, gate_all_early_optimizations,
8275 pass_all_early_optimizations): Move ...
8276 * passes.c (gate_all_optimizations, pass_all_optimizations,
8277 gate_all_early_local_passes, execute_all_early_local_passes,
8278 pass_early_local_passes, gate_all_early_optimizations,
8279 pass_all_early_optimizations): ... here.
8280 * tree-optimize.c (execute_free_datastructures): Remove.
8281 * tree-flow.h (execute_free_datastructures): Remove.
8282 * tree-optimize.c (execute_init_datastructures,
8283 pass_init_datastructures): Move ...
8284 * tree-ssa.c (execute_init_datastructures,
8285 pass_init_datastructures): ... here.
8286 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
8287 execute_free_datastructures.
8288
8289 2012-04-12 Bernd Schmidt <bernds@codesourcery.com>
8290
8291 * dbgcnt.def (ira_move): New counter.
8292 * ira-int.h (ira_create_new_reg): Declare function.
8293 (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
8294 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
8295 no longer static. All callers changed.
8296 * ira.c: Include "dbgcnt.h".
8297 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
8298 move_unallocated_pseudos): New static functions.
8299 (first_moveable_pseudo, last_moveable_pseudo): New global variables.
8300 (pseudo_replaced_reg, pseudo_move_insn): New static variables.
8301 (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
8302 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
8303 to the pseudos generated in find_moveable_pseudos.
8304 * Makefile.in (ira.o): Add $(DBGCNT_H).
8305
8306 2012-04-12 Richard Guenther <rguenther@suse.de>
8307
8308 PR tree-optimization/52943
8309 * tree-chrec.h (chrec_is_positive): Remove.
8310 * tree-scalar-evolution.c (chrec_is_positive): Move ...
8311 * tree-data-ref.c (chrec_is_positive): ... here. Make static.
8312 Return false for a constant zero instead of negative.
8313 (analyze_siv_subscript_cst_affine): Handle zero difference
8314 in the initial condition explicitely.
8315
8316 2012-04-12 Richard Guenther <rguenther@suse.de>
8317
8318 * tree-parloops.c (parallelize_loops): Also consult the upper
8319 bound for the number of iterations.
8320 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
8321 (loop_prefetch_arrays): Likewise.
8322
8323 2012-04-12 Richard Guenther <rguenther@suse.de>
8324
8325 * cfgloop.h (estimated_loop_iterations_int): Ditch
8326 'conservative' parameter.
8327 (max_stmt_executions_int): Likewise.
8328 (estimated_loop_iterations): Likewise.
8329 (max_stmt_executions): Likewise.
8330 (max_loop_iterations): Declare.
8331 (max_loop_iterations_int): Likewise.
8332 (estimated_stmt_executions): Likewise.
8333 (estimated_stmt_executions_int): Likewise.
8334 * tree-ssa-loop-niter.c (estimated_loop_iterations):
8335 Split parts to ...
8336 (max_loop_iterations): ... this.
8337 (estimated_loop_iterations_int): Split parts to ...
8338 (max_loop_iterations_int): ... this.
8339 (max_stmt_executions_int): Split parts to ...
8340 (estimated_stmt_executions_int): ... this.
8341 (max_stmt_executions): Split parts to ...
8342 (estimated_stmt_executions): ... this.
8343 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
8344 * predict.c (predict_loops): Likewise.
8345 * tree-data-ref.c (max_stmt_executions_tree): Likewise.
8346 (analyze_siv_subscript_cst_affine): Likewise.
8347 (compute_overlap_steps_for_affine_1_2): Likewise.
8348 (analyze_subscript_affine_affine): Likewise.
8349 (init_omega_for_ddr_1): Likewise.
8350 * tree-parloops.c (parallelize_loops): Likewise.
8351 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
8352 (may_eliminate_iv): Likewise.
8353 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
8354 (loop_prefetch_arrays): Likewise.
8355 * tree-vrp.c (adjust_range_with_scev): Likewise.
8356
8357 2012-04-12 Oleg Endo <olegendo@gcc.gnu.org>
8358
8359 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
8360 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
8361 Fix line width.
8362 (dump_table): Use bool type for need_align and have_df variables.
8363 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
8364 (regs_used): Remove register modifier.
8365 (barrier_align): Move variables slot, credit, jump_to_next
8366 into if block above for loop. Use bool type for jump_to_next.
8367 (sh_function_arg): Use NULL_RTX instead of 0.
8368
8369 2012-04-11 Andreas Schwab <schwab@linux-m68k.org>
8370
8371 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
8372 (bswapsi2): New expander.
8373
8374 2012-04-11 H.J. Lu <hongjiu.lu@intel.com>
8375
8376 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
8377 0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
8378
8379 2012-04-11 H.J. Lu <hongjiu.lu@intel.com>
8380
8381 PR rtl-optimization/52876
8382 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
8383 Don't call mark_reg_pointer for incompatible pointer sign extension.
8384
8385 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
8386 directly.
8387
8388 2012-04-11 Bernd Schmidt <bernds@codesourcery.com>
8389
8390 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
8391 comparisons against TYPE_PRECISION.
8392 * tree-ssa-forwprop.c (combine_conversions): Likewise.
8393
8394 2012-04-11 Xinliang David Li <davidxl@google.com>
8395
8396 * tree-passes.h: Remove TODO_dump_func.
8397 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
8398 * trans-mem.c: Remove TODO_dump_func.
8399 * ira.c: Remove TODO_dump_func.
8400
8401 2012-04-11 H.J. Lu <hongjiu.lu@intel.com>
8402
8403 * config/i386/i386.c (ix86_option_override_internal): Check
8404 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
8405 after TARGET_64BIT is updated.
8406
8407 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
8408
8409 * config/sh/sh.h: Remove old secondary reload code.
8410
8411 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
8412
8413 * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
8414 (ready_reorder): ... this function.
8415
8416 2012-04-11 Bernd Schmidt <bernds@codesourcery.com>
8417
8418 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
8419 sched_init calls.
8420
8421 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
8422 insns so that no other insn is queued for a time before them.
8423
8424 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
8425 unknown.
8426
8427 2012-04-11 Richard Guenther <rguenther@suse.de>
8428
8429 PR middle-end/52621
8430 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
8431 consider loop nesting.
8432 (evolution_function_is_univariate_p): Properly check the remainder
8433 for chrecs.
8434
8435 2012-04-11 Richard Guenther <rguenther@suse.de>
8436
8437 PR middle-end/52918
8438 * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
8439
8440 2012-04-11 Nick Clifton <nickc@redhat.com>
8441
8442 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
8443 information, if requested.
8444
8445 * config/rx/rx.c (rx_expand_prologue): Likewise.
8446
8447 2012-04-11 Peter Bergner <bergner@vnet.ibm.com>
8448 Michael Matz <matz@suse.de>
8449
8450 PR target/16458
8451 * rtlanal.c (unsigned_reg_p): New function.
8452 Update copyright notice dates.
8453 * rtl.h (unsigned_reg_p): Prototype it.
8454 Update copyright notice dates.
8455 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
8456 Update comment.
8457 * expr.c (expand_expr_real_1): Set register attributes.
8458 * stmt.c (expand_case): Likewise.
8459
8460 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
8461
8462 PR target/50751
8463 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
8464 consider_sh2a and allow_zero.
8465 * config/sh/sh.c (sh_legitimate_index_p): Likewise.
8466 (disp_addr_displacement): New function.
8467 (sh_address_cost): Use disp_addr_displacement function instead
8468 of DISP_ADDR_OFFSET.
8469 (sh_legitimate_address_p): Adapt to changed
8470 sh_legitimate_index_p declaration.
8471 (sh_find_mov_disp_adjust): Remove HImode check.
8472 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd,
8473 disp_addr_displacement and max_mov_insn_displacement.
8474 (max_mov_insn_displacement): Remove HImode check.
8475 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
8476 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
8477 * config/sh/constraints.md (K05, K13): New constraints.
8478 (K12): Correct comment.
8479 (Sdd): Do not use DISP_ADDR_P macro.
8480 (Snd, Sbw): Use satisfies_constraint_Sdd.
8481 * config/sh/sh.md (extendhisi2): Remove constraints from expander.
8482 (*extendhisi2_compact, movhi_i): Remove.
8483 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
8484 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
8485 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
8486 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
8487 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
8488 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
8489 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
8490 CONST_OK_FOR_Kxx.
8491 Add new peepholes for HImode displacement addressing.
8492
8493 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
8494
8495 * config/sh/sh.h (SIDI_OFF): Remove.
8496 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
8497 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
8498 or operand_subword.
8499
8500 2012-04-11 Eric Botcazou <ebotcazou@adacore.com>
8501
8502 PR target/52624
8503 * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
8504 (PowerPC AltiVec/VSX Built-in Functions): Remove it.
8505 * doc/md.texi (Standard Names): Add bswap.
8506 * builtin-types.def (BT_UINT16): New primitive type.
8507 (BT_FN_UINT16_UINT16): New function type.
8508 * builtins.def (BUILT_IN_BSWAP16): New.
8509 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
8510 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to
8511 expand_builtin_bswap.
8512 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
8513 (fold_builtin_1): Likewise.
8514 (is_inexpensive_builtin): Likewise.
8515 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add
8516 missing bits for bswap to libcall code.
8517 * tree.c (build_common_tree_nodes): Build uint16_type_node.
8518 * tree.h (enum tree_index): Add TI_UINT16_TYPE.
8519 (uint16_type_node): New define.
8520 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
8521 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
8522 above builtin.
8523 (rs6000_init_builtins): Likewise.
8524 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
8525
8526 2012-04-11 Tristan Gingold <gingold@adacore.com>
8527
8528 * doc/extend.texi (Type Attributes): Move paragraph.
8529
8530 2012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
8531
8532 PR 24985
8533 * diagnostic.h (show_caret): Declare.
8534 (caret_max_width): Declare.
8535 (diagnostic_show_locus): Declare.
8536 * diagnostic.c (diagnostic_initialize): Initialize to false.
8537 (diagnostic_show_locus): New.
8538 (diagnostic_report_diagnostic): Call it.
8539 (getenv_columns): New.
8540 (adjust_line): New.
8541 (diagnostic_set_caret_max_width): New.
8542 * input.c (read_line): New.
8543 (location_get_source_line): New.
8544 * input.h (location_get_source_line): Declare.
8545 * toplev.c (general_init): Initialize show_caret from options.
8546 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
8547 * opts.c (common_handle_option): Likewise.
8548 * pretty-print.h (pp_get_prefix): New.
8549 (pp_base_get_prefix): New.
8550 * common.opt (fdiagnostics-show-caret): New option.
8551 * doc/invoke.texi (fdiagnostics-show-caret): Document it.
8552
8553 2012-04-11 Richard Guenther <rguenther@suse.de>
8554
8555 PR rtl-optimization/52881
8556 * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
8557
8558 2012-04-11 Richard Guenther <rguenther@suse.de>
8559
8560 PR tree-optimization/52912
8561 * tree-ssa-threadupdate.c (thread_block): Tell the cfg
8562 manipulation code we are threading through a loop header
8563 to an exit destination.
8564
8565 2012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
8566
8567 * tree.h (warn_if_unused_value): Move declaration from here.
8568 * stmt.c (warn_if_unused_value): Move definition from here.
8569
8570 2012-04-10 Michael Matz <matz@suse.de>
8571
8572 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
8573 grouped_stores.
8574 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
8575 (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
8576 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
8577 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
8578 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
8579 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
8580 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
8581 (vect_record_strided_load_vectors): Rename to
8582 vect_record_grouped_load_vectors.
8583 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
8584 Rename use of above macros.
8585 (vect_verify_datarefs_alignment): Ditto.
8586 (vector_alignment_reachable_p): Ditto.
8587 (vect_peeling_hash_get_lowest_cost): Ditto.
8588 (vect_enhance_data_refs_alignment): Ditto.
8589 (vect_analyze_group_access): Ditto and rename stride to groupsize.
8590 (vect_analyze_data_ref_access): Rename "strided" to "grouped".
8591 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
8592 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
8593 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
8594 (vect_record_strided_load_vectors): Rename to
8595 vect_record_grouped_load_vectors.
8596 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
8597 (destroy_loop_vec_info): Ditto.
8598 (vect_transform_loop): Ditto and rename strided_store to grouped_store.
8599 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
8600 (vect_analyze_slp): Ditto.
8601 (new_bb_vec_info): Ditto.
8602 (destroy_bb_vec_info): Ditto.
8603 (vect_schedule_slp_instance): Ditto and rename strided_store to
8604 grouped_store.
8605 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
8606 vect_cost_group_size.
8607 (vect_model_store_cost): Rename use of above macros and call
8608 to vect_cost_strided_group_size.
8609 (vect_model_load_cost): Ditto.
8610 (vectorizable_store): Ditto, rename strided_store to grouped_store
8611 and calls to renamed tree-vectorizer.h functions.
8612 (vectorizable_load): Ditto.
8613 (vect_transform_stmt): Rename use of above macros and strided_store
8614 to grouped_store.
8615
8616 2012-04-10 Jan Hubicka <jh@suse.cz>
8617
8618 * cgraph.h: Remove misledaing comment on ipa-ref.h.
8619 (symtab_type): New enum.
8620 (symtab_node): New structure.
8621 (cgraph_node, varpool_node): Add symbol base type.
8622 (cgraph, varpool): New accestor functions.
8623 * cgraph.c (cgraph_create_node_1): Set symbol type.
8624 * varpool.c (varpool_node): Set symbol type.
8625
8626 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
8627 Richard Sandiford <rdsandiford@googlemail.com>
8628
8629 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
8630
8631 2012-04-10 Richard Guenther <rguenther@suse.de>
8632
8633 PR middle-end/52888
8634 * gimple-low.c (gimple_check_call_args): Properly account for
8635 compatible aggregate types.
8636
8637 2012-04-10 Richard Guenther <rguenther@suse.de>
8638
8639 * toplev.h (tree_rest_of_compilation): Remove.
8640 * tree-optimize.c (tree_rest_of_compilation): Likewise.
8641 * cgraph.h (tree_rest_of_compilation): Declare.
8642 * tree-optimize.c (tree_rest_of_compilation): Move ...
8643 * cgraphunit.c (tree_rest_of_compilation): ... here.
8644 * cgraph.c (cgraph_add_new_function): Adjust.
8645 * Makefile.in (tree-optimize.o): Adjust.
8646 (cgraphunit.o): Likewise.
8647
8648 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
8649
8650 PR tree-optimization/52870
8651 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
8652 presumed pattern statement is within the same loop or basic block.
8653
8654 2012-04-10 Tristan Gingold <gingold@adacore.com>
8655
8656 * gengtype.c (main): Make uintptr_t a known type.
8657
8658 2012-04-10 Richard Guenther <rguenther@suse.de>
8659
8660 * tree-pass.h (tree_lowering_passes): Remove.
8661 * tree-optimize.c (tree_lowering_passes): Remove.
8662 * cgraph.c (cgraph_add_new_function): Inline relevant parts
8663 of tree_lowering_passes, avoid redundant call of early local passes.
8664 * cgraphunit.c (cgraph_lower_function): Fold into ...
8665 (cgraph_analyze_function): ... its single caller. Inline
8666 relevant parts of tree_lowering_passes.
8667
8668 2012-04-09 H.J. Lu <hongjiu.lu@intel.com>
8669
8670 PR other/52777
8671 * config/pa/pa.opt: Remove SIO and GNU_LD.
8672
8673 2012-04-09 Jan Hubicka <jh@suse.cz>
8674
8675 PR lto/52722
8676 PR lto/51765
8677 PR lto/52634
8678 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
8679 boundary, add its target too.
8680 * lto.c (add_references_to_partition): Add also aliased nodes.
8681 (add_cgraph_node_to_partition,
8682 add_varpool_node_to_partition): Work on nodes, not functions/variables;
8683 when adding alias, add also the aliased object.
8684
8685 2012-04-09 Uros Bizjak <ubizjak@gmail.com>
8686
8687 PR target/52883
8688 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
8689 VOIDmode immediate operands.
8690 * config/i386/constraints.md (Wz): New constraint.
8691 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
8692
8693 2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
8694
8695 PR target/52717
8696 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
8697 the DECL generated for the special GOT helper.
8698
8699 2012-04-09 Oleg Endo <olegendo@gcc.gnu.org>
8700
8701 * config/sh/constraints.md: Update list of constraints in
8702 comment block.
8703 (Sr0): Remove unused memory constraint.
8704
8705 2012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
8706
8707 * tree-pretty-print.h: Update comment.
8708
8709 2012-04-08 Oleg Endo <olegendo@gcc.gnu.org>
8710
8711 * config/sh/sh.md: Use braced string notation where applicable.
8712 (*prefetch_i4, prefetch_m2a): Merge into ...
8713 (*prefetch): ... this new insn.
8714
8715 2012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
8716
8717 * config/sh/sh.h (high_life_started): Remove
8718 * config/sh/predicates.md (general_movdst_operand): Use
8719 'reload_in_progress' instead of 'high_life_started'.
8720 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
8721 divsi_inv_fp): Likewise.
8722
8723 2012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
8724
8725 * config/sh/sh-protos.h (prepare_move_operands): Return void
8726 instead of int.
8727 * config/sh/sh.c (prepare_move_operands): Likewise.
8728 * config/sh/sh.md: Remove return value checks of prepare_move_operands.
8729
8730 2012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
8731
8732 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
8733 general_movsrc_operand, general_movdst_operand, arith_reg_operand,
8734 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
8735 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
8736 commutative_float_operator, noncommutative_float_operator,
8737 sh_handle_pragma): Remove.
8738
8739 2012-04-06 Sandra Loosemore <sandra@codesourcery.com>
8740
8741 * doc/invoke.texi: Clean up Texinfo markup throughout the file.
8742 Use @option markup on command-line options. Use @samp markup on
8743 literal keywords to options. Use @code markup on code fragments.
8744 Use other markup in preference to quotation marks in the text.
8745 Add markup to some passages without any.
8746
8747 2012-04-06 Mike Stump <mikestump@comcast.net>
8748
8749 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
8750
8751 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
8752
8753 * config/sh/sh.c (hi_const): Remove.
8754 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
8755 of hi_const.
8756
8757 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
8758
8759 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
8760 to bool.
8761 * config/sh/sh.c (sh_expand_t_scc): Likewise.
8762 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
8763 calling sh_expand_t_scc.
8764
8765 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
8766
8767 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
8768 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
8769 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
8770 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
8771 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
8772 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
8773 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
8774 sh2a_is_function_vector_call): Use bool as return type.
8775 (sh_pass_in_reg_p): Remove.
8776 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
8777 flow_dependent_p, sh2a_function_vector_p, expand_block_move,
8778 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
8779 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
8780 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
8781 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
8782 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
8783 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
8784 sh_loads_bankedreg_p): Use bool as return type.
8785 (nonpic_symbol_mentioned_p): Use bool as return type. Remove
8786 'register' modifier.
8787
8788 2012-04-06 Matt Turner <mattst88@gmail.com>
8789
8790 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
8791
8792 2012-04-06 Eric Botcazou <ebotcazou@adacore.com>
8793
8794 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
8795 of the destination isn't also a FP_REGS register.
8796
8797 2012-04-05 Teresa Johnson <tejohnson@google.com>
8798 H.J. Lu <hongjiu.lu@intel.com>
8799
8800 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
8801 * config/i386/i386.md (move immediate to memory peephole2):
8802 Add cases for HImode move when LCP stall avoidance is needed.
8803 * config/i386/i386.c (initial_ix86_tune_features): Initialize
8804 X86_TUNE_LCP_STALL entry.
8805
8806 2012-04-05 Uros Bizjak <ubizjak@gmail.com>
8807
8808 PR target/52882
8809 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
8810 CONST_INT operands, zero-extended with AND.
8811
8812 2012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
8813
8814 PR target/50751
8815 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
8816 first argument instead of mode size. Move displacement calculations
8817 to ...
8818 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
8819 ... these new functions.
8820 (disp_adjust): Remove max_mov_disp field.
8821 (sh_legitimate_index_p): Use max_mov_insn_displacement and
8822 mov_insn_alignment_mask.
8823 (sh_address_cost): Use max_mov_insn_displacement.
8824
8825 2012-04-05 Andrew Stubbs <ams@codesourcery.com>
8826
8827 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
8828 (arch_enabled): Handle new arch types.
8829 (one_cmpldi2): Add NEON support.
8830
8831 2012-04-05 Richard Guenther <rguenther@suse.de>
8832
8833 * gimple.c (walk_gimple_op): Compute val_only for the LHS
8834 of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
8835 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
8836 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
8837 ... here and make static.
8838 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
8839 Remove.
8840
8841 2012-04-05 Richard Guenther <rguenther@suse.de>
8842
8843 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
8844 basic-block before removing it.
8845
8846 2012-04-05 Richard Guenther <rguenther@suse.de>
8847
8848 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
8849 version namespace as we release the freelist.
8850
8851 2012-04-05 Richard Guenther <rguenther@suse.de>
8852
8853 * tree-nrv.c (tree_nrv): Release VDEFs.
8854 * tree-sra.c (sra_modify_constructor_assign): Likewise.
8855 (sra_modify_assign): Likewise.
8856 * tree-vect-stmts.c (vect_remove_stores): Likewise.
8857 * tree-vect-loop.c (vect_transform_loop): Likewise.
8858 * tree-ssa-dom.c (optimize_stmt): Likewise.
8859 * tree-vect-slp.c (vect_schedule_slp): Likewise.
8860 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
8861
8862 2012-04-05 Richard Guenther <rguenther@suse.de>
8863
8864 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
8865 cleanup.
8866 * gimple.h (gsi_remove): Adjust.
8867 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
8868 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
8869 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
8870 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
8871 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
8872 * tree-ssa-pre.c (eliminate): Likewise.
8873
8874 2012-04-04 Mike Stump <mikestump@comcast.net>
8875
8876 * doc/rtl.texi (const_double): Document as sign-extending.
8877 * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
8878 * emit-rtl.c (immed_double_int_const): Refine to state the
8879 value is signed.
8880 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
8881 CONST_DOUBLE integers.
8882 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
8883 negative values are converted. Fix conversions bigger than
8884 HOST_BITS_PER_WIDE_INT.
8885 (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
8886 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
8887 * explow.c (plus_constant_mode): Add.
8888 (plus_constant): Implement with plus_constant_mode.
8889 * rtl.h (plus_constant_mode): Add.
8890
8891 2012-04-04 Richard Guenther <rguenther@suse.de>
8892
8893 PR tree-optimization/52808
8894 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
8895 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
8896
8897 2012-04-04 Tristan Gingold <gingold@adacore.com>
8898
8899 * expr.c (expand_expr_real_2): Handle larger sizetype in
8900 POINTER_PLUS_EXPR.
8901
8902 2012-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
8903
8904 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
8905 to m2a-single instead of m2e.
8906
8907 2012-04-03 Eric Botcazou <ebotcazou@adacore.com>
8908
8909 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
8910 Change type of BITOFFSET to signed. Make sure the lower bound of
8911 the computed range is non-negative by adjusting OFFSET and BITPOS.
8912 (expand_assignment): Adjust call to get_bit_range.
8913
8914 2012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
8915
8916 * h8300/h8300.c (h8300_current_function_monitor_function_p):
8917 New function. Added to check monitor functions.
8918 (h8300_option_override): Modified to generate error/warning
8919 messages for invalid combinations of different command line
8920 options.
8921 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
8922 save EXR on stack for monitor function in case of H8S target
8923 when "-mno-exr" is passed.
8924 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
8925 Add prototype.
8926 * doc/invoke.texi: Document H8S options.
8927
8928 2012-04-03 Tristan Gingold <gingold@adacore.com>
8929
8930 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
8931 of gcc_AC_FUNC_MMAP_BLACKLIST.
8932 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
8933 * Makefile.in (aclocal_deps): Add mmap.m4.
8934 * configure: Regenerate.
8935 * aclocal.m4: Regenerate.
8936
8937 2012-04-03 Richard Guenther <rguenther@suse.de>
8938
8939 PR tree-optimization/52808
8940 * tracer.c (tail_duplicate): Return whether we have duplicated
8941 any block.
8942 (tracer): If we have duplicated any block, cleanup the CFG.
8943 * cfghooks.c (duplicate_block): If we duplicated a loop
8944 header but not its loop, destroy the loop because it now has
8945 multiple entries.
8946 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
8947 the cfg manipulation routines we are not creating a multiple
8948 entry loop.
8949
8950 2012-04-03 Tristan Gingold <gingold@adacore.com>
8951
8952 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
8953 'byte' alignment.
8954 (vms_c_common_override_options): Allow parameterless variadic
8955 functions.
8956
8957 2012-04-03 Jakub Jelinek <jakub@redhat.com>
8958
8959 PR tree-optimization/52835
8960 * tree-data-ref.c (build_rdg): Return NULL if
8961 compute_data_dependences_for_loop failed.
8962
8963 2012-04-03 Eric Botcazou <ebotcazou@adacore.com>
8964
8965 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
8966 for REAL_CST as well.
8967 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
8968 In the bitfield case, if the value is a REAL_CST, convert it first to
8969 an INTEGER_CST.
8970
8971 2012-04-02 H.J. Lu <hongjiu.lu@intel.com>
8972
8973 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
8974 for --with-abi={x32|mx32} or --with-multilib-list=mx32.
8975 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
8976
8977 * config/i386/biarchx32.h: New.
8978
8979 2012-04-02 Anatoly Sokolov <aesok@post.ru>
8980
8981 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
8982 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8983 (arm_preferred_reload_class): New function.
8984
8985 2012-04-02 Richard Guenther <rguenther@suse.de>
8986
8987 PR tree-optimization/52756
8988 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
8989 (thread_through_loop_header): After threading through the loop latch
8990 remove the split part from the loop and clear further threading
8991 opportunities that would create a multiple entry loop.
8992
8993 2012-04-02 Richard Guenther <rguenther@suse.de>
8994
8995 PR rtl-optimization/52800
8996 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
8997 CLEANUP_CFG_CHANGED.
8998
8999 2012-04-02 Richard Guenther <rguenther@suse.de>
9000
9001 PR middle-end/52803
9002 * loop-init.c (gate_handle_loop2): Destroy loops here if
9003 we don't enter RTL loop optimizers.
9004
9005 2012-04-02 Uros Bizjak <ubizjak@gmail.com>
9006
9007 Partially revert:
9008 2012-03-29 Richard Guenther <rguenther@suse.de>
9009
9010 * rtl.h (extended_count): Remove.
9011 * combine.c (extended_count): Remove.
9012
9013 2012-04-02 Dodji Seketeli <dodji@redhat.com>
9014
9015 PR c++/40942
9016 * pt.c (more_specialized_fn): Don't apply decay conversion to
9017 types of function parameters.
9018
9019 2012-04-02 Tristan Gingold <gingold@adacore.com>
9020
9021 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
9022 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
9023 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
9024 (ggc_pch_this_base): Use uintptr_t instead of size_t.
9025
9026 2012-03-31 H.J. Lu <hongjiu.lu@intel.com>
9027
9028 PR bootstrap/52784
9029 * config/i386/i386.c (ix86_option_override_internal): Don't
9030 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
9031
9032 2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
9033
9034 * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
9035 (stmt_can_make_abnormal_goto): Use it.
9036 (is_ctrl_altering_stmt): Likewise.
9037
9038 2012-03-30 Naveen H.S <naveen.S@kpitcummins.com>
9039 Kaz Kojima <kkojima@gcc.gnu.org>
9040
9041 * config/sh/sh.c (push_regs): Skip banked registers when
9042 resbank attribute is specified.
9043 (sh_expand_epilogue): Likewise.
9044
9045 2012-03-30 Richard Henderson <rth@redhat.com>
9046
9047 PR debug/52727
9048 * combine-stack-adj.c (prev_active_insn_bb): New.
9049 (next_active_insn_bb): New.
9050 (force_move_args_size_note): New.
9051 (combine_stack_adjustments_for_block): Use it.
9052
9053 2012-03-30 Richard Henderson <rth@redhat.com>
9054
9055 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
9056 (ix86_expand_vector_init_duplicate): Initialize it.
9057 (expand_vec_perm_palignr): Likewise.
9058 (ix86_expand_vec_perm_const): Likewise.
9059 (ix86_vectorize_vec_perm_const_ok): Likewise.
9060 (expand_vec_perm_blend): Use it.
9061 (expand_vec_perm_vpermil): Likewise.
9062 (expand_vec_perm_pshufb): Likewise.
9063 (expand_vec_perm_1): Likewise.
9064 (expand_vec_perm_pshuflw_pshufhw): Likewise.
9065 (expand_vec_perm_interleave2): Likewise.
9066 (expand_vec_perm_vpermq_perm_1): Likewise.
9067 (expand_vec_perm_vperm2f128): Likewise.
9068 (expand_vec_perm_interleave3): Likewise.
9069 (expand_vec_perm_vperm2f128_vblend): Likewise.
9070 (expand_vec_perm_vpshufb2_vpermq): Likewise.
9071 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
9072 (expand_vec_perm_broadcast): Likewise.
9073 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
9074
9075 2012-03-30 Richard Henderson <rth@redhat.com>
9076
9077 * dwarf2out.c (gen_variable_die): Initialize off.
9078
9079 2012-03-30 Tristan Gingold <gingold@adacore.com>
9080
9081 * config/vms/vms-f.c: New file.
9082 * config/vms/t-vms (vms-f.o): New rule.
9083 * config.gcc (*-*-*vms*): Define fortran_target_objs.
9084
9085 2012-03-30 Richard Guenther <rguenther@suse.de>
9086
9087 PR tree-optimization/52754
9088 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
9089 propagate arbitrary addresses into really plain dereferences.
9090
9091 2012-03-30 Richard Guenther <rguenther@suse.de>
9092
9093 PR middle-end/52772
9094 * except.c (emit_to_new_bb_before): Move loop updating ...
9095 (dw2_build_landing_pads): ... here. Use a proper block for
9096 querying the loop father.
9097
9098 2012-03-30 Tristan Gingold <gingold@adacore.com>
9099
9100 * config/ia64/ia64.c (ia64_section_type_flags): Remove
9101 common_object attribute handling.
9102 (SECTION_VMS_OVERLAY): Remove
9103 (ia64_vms_common_object_attribute): Replace abort with an assert.
9104 Do not set DECL_SECTION_NAME.
9105 (ia64_vms_output_aligned_decl_common): Handle common_object
9106 attribute.
9107 (ia64_vms_elf_asm_named_section): Remove.
9108 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
9109
9110 2012-03-30 Richard Guenther <rguenther@suse.de>
9111
9112 PR middle-end/52786
9113 * double-int.c (rshift_double): Remove not needed cast.
9114
9115 2012-03-30 Richard Guenther <rguenther@suse.de>
9116
9117 * tree-affine.h (print_aff): Remove.
9118 * tree-affine.c (print_aff): Make static.
9119 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
9120 (get_references_in_stmt): Likewise.
9121 (print_direction_vector): Likewise.
9122 (print_dir_vectors): Likewise.
9123 (print_dist_vectors): Likewise.
9124 (dump_subscript): Likewise.
9125 (dump_ddrs): Likewise.
9126 (dump_dist_dir_vectors): Likewise.
9127 (dump_data_references): Likewise.
9128 (dump_data_dependence_relation): Likewise.
9129 (dump_data_dependence_direction): Likewise.
9130 (dump_rdg_vertex): Likewise.
9131 (dump_rdg_component): Likewise.
9132 (debug_ddrs): Declare.
9133 (struct data_ref_loc_d): Move ...
9134 * tree-data-ref.c (struct data_ref_loc_d): ... here.
9135 (get_references_in_stmt): Make static.
9136 (dump_data_references): Likewise.
9137 (dump_subscript): Likewise.
9138 (print_direction_vector): Likewise.
9139 (print_dir_vectors): Likewise.
9140 (print_dist_vectors): Likewise.
9141 (dump_data_dependence_relation): Likewise.
9142 (dump_dist_dir_vectors): Likewise.
9143 (dump_ddrs): Likewise.
9144 (dump_rdg_vertex): Likewise.
9145 (dump_rdg_component): Likewise.
9146 (debug_ddrs): New function.
9147 (access_matrix_get_index_for_parameter): Remove.
9148
9149 2012-03-30 Tristan Gingold <gingold@adacore.com>
9150
9151 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
9152 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
9153 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
9154 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
9155 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
9156 (vms_patch_builtins): Handle new flags
9157 * config/vms/vms-crtlmap.map: Completed using nm on
9158 c and math system libraries.
9159 * config/vms/make-crtlmap.awk: Handle any number of flags.
9160
9161 2012-03-30 Martin Jambor <mjambor@suse.cz>
9162
9163 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
9164 is a builtin_stack_save in a dominating BB.
9165
9166 2012-03-29 Uros Bizjak <ubizjak@gmail.com>
9167
9168 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
9169 crossing 128bit lane boundary.
9170
9171 2012-03-29 Vladimir Makarov <vmakarov@redhat.com>
9172
9173 * ira-color.c (setup_left_conflict_sizes_p): Process all
9174 conflicting objects.
9175
9176 2012-03-29 Jakub Jelinek <jakub@redhat.com>
9177
9178 PR tree-optimization/52760
9179 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
9180 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
9181
9182 2012-03-29 Richard Guenther <rguenther@suse.de>
9183
9184 * cgraph.h (cgraph_materialize_all_clones): Remove.
9185 (reset_inline_failed): Likewise.
9186 * cgraphunit.c (cgraph_materialize_all_clones): Make static.
9187 * cgraphbuild.c (reset_inline_failed): Remove.
9188 * rtl.h (cse_main): Remove.
9189 (extended_count): Likewise.
9190 * cse.c (dump_class): Mark as DEBUG_FUNCTION.
9191 (cse_main): Make static.
9192 * combine.c (extended_count): Remove.
9193 (dump_combine_stats): Mark as DEBUG_FUNCTION.
9194 * basic-block.h (reorder_basic_blocks): Remove.
9195 * bb-reorder.c (reorder_basic_blocks): Make static.
9196 * Makefile.in (dse.o): Remove dse.h dependency.
9197 * dse.h: Remove.
9198 * dse.c (gate_dse): Remove.
9199 (clear_alias_mode_eq): Likewise.
9200 (clear_alias_mode_hash): Likewise.
9201 (dse_record_singleton_alias_set): Likewise.
9202 (dse_invalidate_singleton_alias_set): Likewise.
9203
9204 2012-03-29 H.J. Lu <hongjiu.lu@intel.com>
9205
9206 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
9207 crtbegin_so%O%s for -shared.
9208 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
9209
9210 2012-03-29 Richard Guenther <rguenther@suse.de>
9211
9212 * tree-flow.h (struct pre_expr_d): Remove forward declaration.
9213 (add_to_value): Remove.
9214 (print_value_expressions): Likewise.
9215 * tree-ssa-pre.c (add_to_value): Make static.
9216 (print_value_expressions): Likewise.
9217 * gimple.h (gimple_adjust_this_by_delta): Remove.
9218 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
9219
9220 2012-03-29 Richard Guenther <rguenther@suse.de>
9221
9222 PR middle-end/50708
9223 * double-int.h (rshift_double): Remove.
9224 * double-int.c (lshift_double): Use absu_hwi to make count positive.
9225 (rshift_double): Make static, take unsigned count argument,
9226 remove handling of negative count argument.
9227 (double_int_rshift): Dispatch to lshift_double.
9228
9229 2012-03-28 H.J. Lu <hongjiu.lu@intel.com>
9230
9231 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
9232 OPTION_MASK_ABI_64.
9233
9234 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
9235 (SPEC_X32): Likewise.
9236 (MULTILIB_DEFAULTS): Likewise.
9237
9238 * config/i386/i386.c (isa_opts): Remove -m64.
9239 (ix86_target_string): Properly handle -m32/-m64/-mx32.
9240 (ix86_option_override_internal): Properly
9241 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
9242 handle -m32, -m64 and -mx32.
9243
9244 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
9245 with OPTION_ABI_X32. Moved after TARGET_LP64.
9246 (TARGET_LP64): Changed to OPTION_ABI_64.
9247
9248 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
9249 (mx32): Replace ISA_X32 with ABI_X32.
9250
9251 2012-03-28 Eric Botcazou <ebotcazou@adacore.com>
9252
9253 * tree.c (tree_size) <VECTOR_CST>: New case.
9254
9255 2012-03-28 Uros Bizjak <ubizjak@gmail.com>
9256
9257 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
9258 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
9259
9260 2012-03-28 Jakub Jelinek <jakub@redhat.com>
9261
9262 PR middle-end/52691
9263 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
9264 __builtin_va_start to __builtin_next_arg if the latter is
9265 builtin_decl_explicit_p rather than when it is not.
9266
9267 PR middle-end/52750
9268 * tree-vect-generic.c (vector_element): Perform multiplication
9269 for pos in bitsizetype type instead of idx type.
9270
9271 2012-03-28 Richard Guenther <rguenther@suse.de>
9272
9273 * loop-init.c (loop_optimizer_init): If loops are preserved
9274 perform incremental initialization of required loop features.
9275 (loop_optimizer_finalize): If loops are to be preserved only
9276 clean up optional loop features.
9277 (rtl_loop_done): Forcefully free loops here.
9278 * cgraph.c (cgraph_release_function_body): Forcefully free loops.
9279 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
9280 to existing loops.
9281 (construct_init_block): Likewise.
9282 (construct_exit_block): Likewise.
9283 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
9284 the CFG after expanding.
9285 * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
9286 If we needed to calculate them, free them afterwards.
9287 * tree-pass.h (PROP_loops): New define.
9288 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
9289 * basic-block.h (CLEANUP_CFG_CHANGED): New.
9290 * cfgcleanup.c (merge_blocks_move): Protect loop latches.
9291 (cleanup_cfg): If we did something and have loops around, fix them up.
9292 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
9293 with CLEANUP_CFG_CHANGED.
9294 * cfghooks.c (merge_blocks): If we merge a loop header into
9295 its predecessor, update the loop structure.
9296 (duplicate_block): If we copy a loop latch, adjust loop state
9297 to note we may have multiple latches.
9298 (delete_basic_block): Mark loops for fixup if we remove a loop.
9299 * cfganal.c (forwarder_block_p): Protect loop latches, headers
9300 and preheaders.
9301 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
9302 (cfg_layout_can_merge_blocks_p): Likewise.
9303 * cprop.c (bypass_block): If we create a loop with multiple
9304 entries, mark it for removal.
9305 * except.c (emit_to_new_bb_before): Add the new basic-block
9306 to existing loops.
9307 * tree-eh.c (lower_resx): Likewise.
9308 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
9309 (expand_omp_taskreg): Likewise.
9310 * tree-inline.c (initialize_cfun): Likewise.
9311 * tree-mudflap.c (add_bb_to_loop): Prototype.
9312 (mf_build_check_statement_for): Properly add new basic-blocks
9313 to existing loops.
9314 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
9315 if we remove a loop.
9316 (thread_through_loop_header): Likewise.
9317 * trans-mem.c (tm_log_emit_save_or_restores): Properly add
9318 new basic-blocks to existing loops.
9319 (expand_transaction): Likewise.
9320 * Makefile.in (except.o): Add $(CFGLOOP_H).
9321 (expr.o): Likewise.
9322 (cgraph.o): Likewise.
9323 (cprop.o): Likewise.
9324 (cfgexpand.o): Likewise.
9325 (cfganal.o): Likewise.
9326 (trans-mem.o): Likewise.
9327 (tree-eh.o): Likewise.
9328
9329 2012-03-28 Georg-Johann Lay <avr@gjlay.de>
9330
9331 PR target/52692
9332 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
9333 (avr_builtin_decl): New static function.
9334 (struct avr_builtin_description, avr_bdesc): Move up.
9335 Add GTY marker. Add field fndecl. Remove redundant field id.
9336 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
9337 (avr_expand_builtin): Code cleanup because .id is removed.
9338
9339 2012-03-28 Georg-Johann Lay <avr@gjlay.de>
9340
9341 PR target/52737
9342 * config.gcc (tm_file): Remove avr/multilib.h.
9343
9344 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
9345
9346 * config/avr/genmultilib.awk: Remove code to generate multilib.h.
9347 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
9348 * config/avr/t-avr: Remove generation of multilib.h.
9349 * config/avr/t-multilib: Regenerate.
9350 * config/avr/multilib.h: Remove.
9351 * config/avr/avr.opt (-msp8): New option.
9352 (avr_sp8): New variable.
9353 * config/avr/driver-avr.c (avr_device_to_sp8): New function.
9354 * config/avr/avr.h (AVR_HAVE_SPH): New define.
9355 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
9356 (avr_device_to_sp8): New prototype.
9357 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
9358 (DRIVER_SELF_SPECS): New define.
9359 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
9360 __AVR_SP8__, __AVR_HAVE_SPH__.
9361 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
9362 AVR_HAVE_8BIT_SP to decide if SP_H is present.
9363 (avr_file_start): Ditto.
9364
9365 2012-03-28 Jakub Jelinek <jakub@redhat.com>
9366
9367 PR target/52736
9368 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
9369 instead of 8 in adjust_address.
9370
9371 2012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
9372
9373 PR middle-end/51893
9374 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
9375 targets.
9376
9377 2012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
9378
9379 PR target/50751
9380 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
9381 Rearrange conditional logic. Move displacement address calculations
9382 to ...
9383 (sh_find_mov_disp_adjust): ... this new function.
9384
9385 2012-03-27 H.J. Lu <hongjiu.lu@intel.com>
9386
9387 * config/arm/arm.opt (mapcs): Remove MaskExists.
9388 * config/cris/linux.opt (mno-gotplt): Likewise.
9389 * config/i386/i386.opt (mhard-float): Likewise.
9390 (msse4): Likewise.
9391 (mno-sse4): Likewise.
9392 * config/m68k/m68k.opt (mhard-float): Likewise.
9393 * config/mep/mep.op (mcop32): Likewise.
9394 * config/pa/pa-hpux.opt (msio): Likewise.
9395 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
9396 * config/picochip/picochip.opt (mlittle): Likewise.
9397 * config/sh/sh.opt (mrenesas): Likewise.
9398 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
9399 * config/sparc/sparc.opt (mhard-float): Likewise.
9400 * config/v850/v850.opt (mv850es): Likewise.
9401 * config/vax/vax.opt (mg-float): Likewise.
9402
9403 2012-03-27 Martin Jambor <mjambor@suse.cz>
9404
9405 PR middle-end/52693
9406 * tree-sra.c (sra_modify_assign): Do not call
9407 load_assign_lhs_subreplacements when working with an unscalarizable
9408 region.
9409
9410 2012-03-27 Uros Bizjak <ubizjak@gmail.com>
9411
9412 PR target/52698
9413 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
9414 New prototype.
9415 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
9416 * config/i386/i386.c: Include reload.h.
9417 (ix86_legitimize_reload_address): New function.
9418
9419 2012-03-27 H.J. Lu <hongjiu.lu@intel.com>
9420
9421 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
9422 hasn't been allocated. Define a target macro for Mask and
9423 InverseMask if it hasn't been defined. Remove MaskExists handling.
9424
9425 * doc/options.texi: Remove MaskExists.
9426
9427 2012-03-27 Chung-Lin Tang <cltang@codesourcery.com>
9428
9429 PR target/52667
9430 * config/sh/sh.c (find_barrier): Add equality check of last_got
9431 to avoid going above orig insn. Update comments.
9432
9433 2012-03-27 Richard Guenther <rguenther@suse.de>
9434
9435 PR middle-end/52720
9436 * fold-const.c (try_move_mult_to_index): Handle &x.array more
9437 explicitely.
9438
9439 2012-03-27 Eric Botcazou <ebotcazou@adacore.com>
9440
9441 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
9442 of a unit before computing the offset in units.
9443 * expr.c (get_bit_range): Return the null range if the enclosing record
9444 is part of a larger bit field.
9445
9446 2012-03-27 Tristan Gingold <gingold@adacore.com>
9447
9448 * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
9449 * config/ia64/ia64.md: Remove mode in template.
9450 Sign extend operand in expand_simple_binop.
9451 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
9452 CASE_VECTOR_MODE instead of TARGET_ILP32.
9453 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
9454
9455 2012-03-26 Steven Bosscher <steven@gcc.gnu.org>
9456
9457 * varasm.c (assemble_external): #if 0 out the new assert from the
9458 previous commit, it breaks the Java and Go front ends.
9459
9460 2012-03-26 Steven Bosscher <steven@gcc.gnu.org>
9461
9462 * toplev.c (check_global_declaration_1): Do not call assemble_external.
9463 * expr.c (emit_block_move_libcall_fn): Likewise.
9464 (clear_storage_libcall_fn): Likewise.
9465 (expand_expr_addr_expr_1): Likewise.
9466 (expand_expr_real_1): Likewise.
9467 * calls.c (rtx_for_function_call): Likewise.
9468
9469 * varasm.c (assemble_external): Assert this function is only called
9470 during or after expanding to RTL.
9471
9472 2012-03-26 Martin Jambor <mjambor@suse.cz>
9473
9474 PR tree-optimization/50052
9475 * tree-sra.c (tree_non_aligned_mem_p): Removed.
9476 (tree_non_aligned_mem_for_access_p): Likewise.
9477 (build_accesses_from_assign): Removed strict alignment requirements
9478 checks.
9479 (access_precludes_ipa_sra_p): Likewise.
9480
9481 2012-03-26 Richard Guenther <rguenther@suse.de>
9482
9483 PR tree-optimization/52701
9484 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
9485 compute and set the evolution part of PHI nodes.
9486
9487 2012-03-26 Richard Guenther <rguenther@suse.de>
9488
9489 PR tree-optimization/52721
9490 * tree-vect-stmts.c (vect_init_vector): Handle scalars.
9491
9492 2012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
9493
9494 PR tree-optimization/52686
9495 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
9496 WIDEN_LSHIFT_EXPR.
9497
9498 2012-03-26 Tristan Gingold <gingold@adacore.com>
9499
9500 * config/alpha/vms.h (LINK_SPEC): Simplify.
9501 (STARTFILE_SPEC): Remove -mvms-return-codes handling.
9502 (NAME__MAIN, SYMBOL__MAIN): Remove.
9503 (VMS_DEBUG_MAIN_POINTER): Remove.
9504 * config/ia64/vms.h: Likewise.
9505 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
9506 code to vms.c. Call vms_start_function.
9507 * config/ia64/ia64.c (ia64_start_function): Likewise.
9508 * config/vms/vms-protos.h (vms_start_function): Declare.
9509 * config/vms/vms.c (vms_start_function): New function.
9510 * config/vms/vms.h (MATH_LIBRARY): Define.
9511 (VMS_DEBUG_MAIN_POINTER): Define.
9512
9513 2012-03-26 Eric Botcazou <ebotcazou@adacore.com>
9514
9515 PR rtl-optimization/52629
9516 * reload1.c (count_pseudo): Short-circuit common case.
9517 (count_spilled_pseudo): Return early for pseudos without hard regs.
9518 Assert that the pseudo has got a hard reg before manipulating it.
9519
9520 2012-03-24 Jan Hubicka <jh@suse.cz>
9521
9522 PR lto/51663
9523 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
9524 (decide_is_variable_needed): Do not handle toplevel reorder here.
9525 * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
9526 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
9527 even at -O0.
9528
9529 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
9530
9531 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
9532 and str_bitsize instead of more convoluted expressions.
9533
9534 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
9535
9536 PR target/52610
9537 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
9538
9539 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
9540
9541 PR target/52656
9542 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
9543
9544 2012-03-23 Martin Jambor <mjambor@suse.cz>
9545
9546 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
9547
9548 2012-03-23 Richard Guenther <rguenther@suse.de>
9549
9550 PR tree-optimization/52678
9551 * tree-vectorizer.h (struct _stmt_vec_info): Add
9552 loop_phi_evolution_part member.
9553 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
9554 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
9555 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
9556 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9557 Use the cached evolution part and the PHI nodes value from
9558 the loop preheader edge instead of re-analyzing the evolution.
9559
9560 2012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
9561
9562 * config/mips/mips-tables.opt: Update.
9563 * config/mips/mips.md (processor): Add xlp.
9564 * config/mips/mips-cpus.def: Add xlp.
9565 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
9566 5KF for now.
9567 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
9568 * doc/invoke.texi: Mention XLP.
9569
9570 2012-03-22 Jakub Jelinek <jakub@redhat.com>
9571
9572 PR middle-end/52547
9573 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
9574 on any new_local_var_chain vars declared during recursing on
9575 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
9576
9577 2012-03-22 Uros Bizjak <ubizjak@gmail.com>
9578
9579 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
9580 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
9581 (ASM_OUTPUT_LOCAL): Ditto.
9582 (ASM_OUTPUT_COMMON): Remove.
9583 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
9584 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
9585
9586 2012-03-22 Jan Hubicka <jh@suse.cz>
9587
9588 PR middle-end/51737
9589 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
9590 parameter.
9591 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
9592 * ipa-inline-transform.c (save_inline_function_body): Remove
9593 copied clone if needed.
9594 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
9595
9596 2012-03-22 Richard Guenther <rguenther@suse.de>
9597
9598 PR middle-end/52666
9599 * fold-const.c (fold_ternary_loc): Fix typo.
9600
9601 2012-03-22 Georg-Johann Lay <avr@gjlay.de>
9602
9603 PR target/52496
9604 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
9605 (unspecv): Add UNSPECV_MEMORY_BARRIER.
9606 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
9607 (delay_cycles_1, delay_cycles_2): Ditto.
9608 (delay_cycles_3, delay_cycles_4): Ditto.
9609 (nopv, *nopv): Ditto.
9610 (sleep, *sleep): Ditto.
9611 (wdr, *wdr): Ditto.
9612
9613 2012-03-22 Richard Guenther <rguenther@suse.de>
9614
9615 PR tree-optimization/52548
9616 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
9617 because of clobbers.
9618 (prune_clobbered_mems): New function.
9619 (compute_antic_aux): Use it to prune ANTIC_OUT.
9620 (compute_partial_antic_aux): Use it to prune PA_IN.
9621 (compute_avail): Only insert expressions into EXP_GEN that are not
9622 invalidated when translated up to the beginning of the block.
9623
9624 2012-03-22 Richard Guenther <rguenther@suse.de>
9625
9626 PR tree-optimization/52638
9627 * tree-vect-stmts.c (vect_init_vector_1): New function, split
9628 out from ...
9629 (vect_init_vector): ... here. Handle scalar vector inits.
9630 (vect_get_vec_def_for_operand): Adjust.
9631 (vectorizable_load): Likewise.
9632
9633 2012-03-22 Uros Bizjak <ubizjak@gmail.com>
9634
9635 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
9636 (alpha*-*-freebsd*): Ditto.
9637 (alpha*-*-netbsd*): Ditto.
9638 (alpha*-*-openbsd*): Ditto.
9639 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
9640 (DWARF2_DEBUGGING_INFO): Remove.
9641 (PREFERRED_DEBUGGING_TYPE): Remove.
9642 (ASM_FINAL_SPEC): Remove.
9643 (IDENT_ASM_OP): Remove.
9644 (ASM_OUTPUT_IDENT): Remove.
9645 (SKIP_ASM_OP): Remove.
9646 (ASM_OUTPUT_SKIP): Remove.
9647 (ALIGN_ASM_OP): Remove.
9648 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
9649 (ASM_OUTPUT_CASE_LABEL): Remove.
9650 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
9651 (COMMON_ASM_OP): Remove.
9652 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
9653 (ASCII_DATA_ASM_OP): Remove.
9654 (READONLY_DATA_SECTION_ASM_OP): Remove.
9655 (INIT_SECTION_ASM_OP): Remove.
9656 (FINI_SECTION_ASM_OP): Remove.
9657 (ASM_SECTION_START_OP): Remove.
9658 (ASM_OUTPUT_SECTION_START_FILE): Remove.
9659 (TARGET_ASM_NAMED_SECTION): Remove.
9660 (TARGET_ASM_SELECT_SECTION): Remove.
9661 (MAKE_DECL_ONE_ONLY): Remove.
9662 (TYPE_ASM_OP): Remove.
9663 (SIZE_ASM_OP): Remove.
9664 (ASM_WEAKEN_LABEL): Remove.
9665 (TYPE_OPERAND_FMT): Remove.
9666 (ASM_DECLARE_RESULT): Remove.
9667 (ASM_DECLARE_OBJECT_NAME): Remove.
9668 (ASM_FINISH_DECLARE_OBJECT): Remove.
9669 (ELF_ASCII_ESCAPES): Remove.
9670 (ELF_STRING_LIMIT): Remove.
9671 (STRING_ASM_OP): Remove.
9672 (ASM_OUTPUT_EXTERNAL): Remove.
9673 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
9674 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
9675 before define.
9676 (ASM_DECLARE_FUNCTION_NAME): Ditto.
9677 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
9678 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
9679 (ASM_OUTPUT_SKIP): Ditto.
9680 (READONLY_DATA_SECTION_ASM_OP): Remove.
9681 (USER_LABEL_PREFIX): Remove.
9682 (ASM_OUTPUT_ASCII): Remove.
9683 (ASM_OUTPUT_CASE_LABEL): Remove.
9684 (NO_DOLLAR_IN_LABEL): Undefine.
9685
9686 2012-03-22 Richard Guenther <rguenther@suse.de>
9687
9688 PR tree-optimization/52459
9689 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
9690 PHI insertion for calls.
9691
9692 2012-03-21 Steven Bosscher <steven@gcc.gnu.org>
9693
9694 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
9695 find_sets_in_insn, canonicalize_insn): Split out from ...
9696 (cse_insn): ... here.
9697 (invalidate_from_clobbers): Take an insn instead of the pattern.
9698
9699 2012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
9700
9701 PR target/52479
9702 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
9703 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
9704 * config/sh/sh.md (sindf2, cosdf2): Remove.
9705
9706 2012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
9707
9708 PR target/52642
9709 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
9710 prologue for unwinder and profiler.
9711
9712 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
9713
9714 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
9715 Introduce emul_name to select the right linker emulation for
9716 powerpc64-*-freebsd*.
9717 * configure: Regenerate.
9718 * config.gcc: Add bits to support powerpc64-*-freebsd*.
9719 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
9720 * config/rs6000/freebsd64.h: New file.
9721 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
9722 POWERPC_FREEBSD.
9723 (rs6000_savres_strategy): Likewise.
9724 (rs6000_savres_routine_name): Likewise.
9725 (rs6000_elf_file_end): Likewise.
9726 * config/rs6000/t-freebsd64: New file.
9727 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
9728 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
9729
9730 * config/rs6000/freebsd64.h: Remove duplicated entries from last
9731 commit.
9732 * config/rs6000/t-freebsd64: Likewise.
9733
9734 2012-03-21 Georg-Johann Lay <avr@gjlay.de>
9735
9736 PR rtl-optimization/52543
9737 PR target/52461
9738 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
9739 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
9740 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
9741 (avr_load_libgcc_p): Restrict to __flash loads.
9742 (avr_out_lpm): Only handle 1-byte loads from __flash.
9743 (avr_load_lpm): New function.
9744 (avr_find_unused_d_reg): Remove.
9745 (avr_out_lpm_no_lpmx): Remove.
9746 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
9747 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
9748 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
9749 (load_<mode>, load_<mode>_clobber): New insns.
9750 (mov<mode>): For multi-byte move from non-generic
9751 16-bit address spaces: Expand to load_<mode> resp.
9752 load_<mode>_clobber.
9753 (load<mode>_libgcc): Remove expander.
9754 (split-lpmx): Remove split.
9755
9756 2012-03-21 Richard Earnshaw <rearnsha@arm.com>
9757
9758 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
9759 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
9760 All callers changed.
9761 (Fixed_core_reg): New feature.
9762 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
9763 disassembly.
9764 * neon-testgen.ml: Handle Fixed_core_reg.
9765
9766 2012-03-21 Andrew Stubbs <ams@codesourcery.com>
9767
9768 * config/arm/arm.c (thumb2_reorg): Add complete support
9769 for 16-bit instructions.
9770 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
9771
9772 2012-03-21 Richard Guenther <rguenther@suse.de>
9773
9774 PR tree-optimizer/52636
9775 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
9776 to the appropriate type.
9777
9778 2012-03-21 Richard Guenther <rguenther@suse.de>
9779
9780 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
9781 dependencies.
9782 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
9783 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
9784 * passes.c (init_optimization_passes): Remove pass_init_function,
9785 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
9786 * tree-pass.h (pass_init_function): Remove.
9787 (pass_jump): Remove.
9788 (pass_initial_value_sets): Remove.
9789 (pass_unshare_all_rtl): Remove.
9790 * integrate.c (pass_initial_value_sets): Remove.
9791 * emit-rtl.c (pass_unshare_all_rtl): Remove.
9792 * tree.h (init_function_for_compilation): Remove.
9793 * function.c (init_function_for_compilation): Remove.
9794 (pass_init_function): Remove.
9795 * cfgcleanup.c (rest_of_handle_jump): Remove.
9796 (pass_jump): Remove.
9797
9798 2012-03-20 Jason Merrill <jason@redhat.com>
9799
9800 * tree-streamer-in.c (streamer_alloc_tree): Call
9801 ggc_alloc_zone_cleared_tree_node instead of
9802 ggc_alloc_zone_cleared_tree_node_stat.
9803
9804 2012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
9805
9806 * doc/extend.texi (Template Instantiation): Remove anachronisms.
9807
9808 2012-03-20 Jakub Jelinek <jakub@redhat.com>
9809
9810 PR target/52607
9811 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
9812 (ix86_expand_vec_perm_const_1): Call it.
9813
9814 * config/i386/i386.c (vselect_insn): New variable.
9815 (init_vselect_insn): New function.
9816 (expand_vselect, expand_vselect_insn): Add testing_p argument.
9817 Call init_vselect_insn if vselect_insn is NULL. Adjust
9818 PATTERN (vselect_insn), instead of creating a new insn each time,
9819 only emit a copy of it if not testing and recog has been successful.
9820 (expand_vec_perm_pshufb, expand_vec_perm_1,
9821 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
9822 callers.
9823
9824 PR target/52607
9825 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
9826 ("enabled" attribute): Handle avx2 and noavx2 isas.
9827 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
9828 New insns.
9829 (vec_dup<mode>): Add avx2 =x,x alternative.
9830 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
9831 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
9832 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
9833 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
9834 for V8SFmode.
9835 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
9836 if possible, handle also V8SFmode.
9837
9838 2012-03-20 Richard Earnshaw <rearnsha@arm.com>
9839
9840 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
9841 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
9842 reg_or_zero_operand predicate.
9843 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
9844
9845 2012-03-20 Jakub Jelinek <jakub@redhat.com>
9846
9847 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
9848 If operand isn't UNSPEC, return 0.
9849
9850 2012-03-20 Richard Guenther <rguenther@suse.de>
9851
9852 * tree-pass.h (pass_rtl_eh): Remove.
9853 * except.c (gate_handle_eh): Likewise.
9854 (rest_of_handle_eh): Likewise.
9855 (pass_rtl_eh): Likewise.
9856 (finish_eh_generation): Export.
9857 * except.h (finish_eh_generation): Declare.
9858 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
9859 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
9860 after expanding stack alignment. Instead of compacting blocks
9861 call cleanup_cfg.
9862
9863 2012-03-20 Richard Guenther <rguenther@suse.de>
9864
9865 * stor-layout.c (finish_bitfield_representative): Fallback
9866 to conservative maximum size if the padding up to the next
9867 field cannot be computed as a constant.
9868 (finish_bitfield_layout): If we cannot compute the distance
9869 between the start of the bitfield representative and the
9870 bitfield member start a new representative.
9871 * expr.c (get_bit_range): The distance between the start of
9872 the bitfield representative and the bitfield member is zero
9873 if the field offsets are not constants.
9874
9875 2012-03-20 Tristan Gingold <gingold@adacore.com>
9876
9877 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
9878 convert in lowercase.
9879 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
9880 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
9881 * stor-layout.c (sizetype_tab): Adjust.
9882 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
9883 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
9884 instead of type_kind_last.
9885 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
9886 instead of size_int_kind.
9887 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
9888 * doc/tm.texi: Regenerate.
9889 * defaults.h (SIZETYPE): Provide a default value.
9890 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
9891 (SIZETYPE): Define.
9892
9893 2012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
9894
9895 * config/sh/sh.md: Use braced string notation where applicable.
9896
9897 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
9898
9899 * config/i386/i386.md (allocate_stack): Simplify.
9900
9901 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
9902
9903 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
9904 copy_to_mode_reg (Pmode, ...).
9905 (expand_builtin_frame_address): Ditto.
9906 * expr.c (emit_block_move_via_libcall): Ditto.
9907 (set_storage_via_libcall): Ditto.
9908
9909 * config/i386/i386.c (ix86_expand_movmem): Ditto.
9910 (ix86_expand_setmem): Ditto.
9911 (ix86_trampoline_init): DItto.
9912 * config/i386/i386.md (cmpstrnsi): Ditto.
9913
9914 2012-03-19 Sandra Loosemore <sandra@codesourcery.com>
9915
9916 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
9917 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
9918 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
9919 (SH Options): Likewise.
9920
9921 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
9922
9923 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
9924 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
9925 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
9926 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
9927 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
9928
9929 Revert:
9930 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
9931
9932 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
9933 * config/i386/i386.c (ix86_decompose_address): Use
9934 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
9935 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
9936 thread pointer to a register.
9937
9938 Revert:
9939 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
9940
9941 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
9942 if Pmode != word_mode.
9943 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
9944 Pmode == SImode for TARGET_X32.
9945
9946 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
9947 (tls_initial_exec_x32): Likewise.
9948
9949 2012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
9950
9951 PR target/50751
9952 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
9953 DISP_ADDR_OFFSET): New macros.
9954 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
9955 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
9956 (sh_legitimize_address): Add QImode displacement handling.
9957 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
9958 vector subregs.
9959 (sh_secondary_reload): Add QImode displacement handling.
9960 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
9961 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
9962 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
9963 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
9964 to register operands only.
9965 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
9966 (extendqihi2): Change insn to expander.
9967 (*extendqihi2_compact_reg): New insn.
9968 (movqi_i, movqi): Replace with ...
9969 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
9970 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
9971 Add new peepholes for QImode displacement addressing.
9972
9973 2012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
9974
9975 PR c++/14710
9976 * doc/invoke.texi: Document -Wuseless-cast.
9977
9978 2012-03-19 Eric Botcazou <ebotcazou@adacore.com>
9979
9980 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
9981 * tree.h (handled_component_p): Reorder cases.
9982 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
9983 not initialize unsignedp.
9984 (loc_list_from_tree): Likewise.
9985 (fortran_common): Likewise.
9986 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
9987
9988 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
9989
9990 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
9991 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
9992 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
9993 (ix86_split_long_move): Ditto.
9994 (legitimize_tls_address): Use ix86_gen_sub3.
9995 (construct_plt_address): Assert that Pmode == DImode.
9996
9997 2012-03-18 Uros Bizjak <ubizjak@gmail.com>
9998
9999 * config/i386/i386.md: Remove empty predicates and/or constraints.
10000 * config/i386/sync.md: Ditto.
10001 * config/i386/sse.md: Ditto.
10002 * config/i386/mmx.md: Ditto.
10003 * config/i386/pentium.md: Ditto.
10004 * config/i386/athlon.md: Ditto.
10005
10006 2012-03-16 Richard Guenther <rguenther@suse.de>
10007
10008 PR tree-optimization/52603
10009 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
10010 comment.
10011
10012 Revert
10013 2012-03-14 Richard Guenther <rguenther@suse.de>
10014
10015 PR tree-optimization/52571
10016 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
10017 flag_section_anchors check ...
10018 (vect_can_force_dr_alignment_p): ... here.
10019
10020 2012-03-16 Martin Jambor <mjambor@suse.cz>
10021
10022 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
10023 memory through MEM_REFs by calling extract_bit_field.
10024
10025 2012-03-16 Richard Guenther <rguenther@suse.de>
10026
10027 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
10028 and REFERENCE_TYPE interpretations.
10029 (can_native_interpret_type_p): New function.
10030 (fold_ternary_loc): Use native encode/interpret to fold
10031 BIT_FIELD_REFs of constants.
10032
10033 2012-03-16 Richard Guenther <rguenther@suse.de>
10034
10035 PR middle-end/52584
10036 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
10037 of vector constants and constructors.
10038
10039 2012-03-16 Richard Guenther <rguenther@suse.de>
10040
10041 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
10042 VIEW_CONVERT_EXPR to convert constants.
10043 (vect_is_simple_use): Treat all constants as vec_constant_def.
10044
10045 2012-03-16 Richard Guenther <rguenther@suse.de>
10046 Kai Tietz <ktietz@redhat.com>
10047
10048 PR middle-end/48814
10049 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
10050 side-effects completely in the pre-queue and use a temporary
10051 for the result.
10052
10053 2012-03-16 Richard Guenther <rguenther@suse.de>
10054
10055 * stor-layout.c (finish_bitfield_representative): Fall back
10056 to the conservative maximum size if we cannot compute the
10057 size of the tail padding.
10058
10059 2012-03-16 Tristan Gingold <gingold@adacore.com>
10060
10061 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
10062 __CRTL_VER and __VMS_VER.
10063 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
10064 and vms_c_get_vms_ver.
10065 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
10066 functions.
10067 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
10068 (VMS_DEFAULT_VMS_VER): Define.
10069 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
10070 (VMS_DEFAULT_VMS_VER): Define.
10071
10072 2012-03-16 Richard Guenther <rguenther@suse.de>
10073
10074 * tree-vect-loop.c (get_initial_def_for_induction): Use
10075 build_constructor directly.
10076 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
10077 build_vector_from_val.
10078 * tree.c (build_vector_from_val): Avoid creating a constructor
10079 first when we want a constant vector.
10080
10081 2012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10082
10083 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
10084
10085 2012-03-16 Richard Guenther <rguenther@suse.de>
10086
10087 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
10088 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
10089 (struct tree_vector): Remove elements member, add variable size
10090 elts array member.
10091 (build_vector_stat): Declare.
10092 (build_vector): Define in terms of build_vector_stat.
10093 * tree.c (build_vector): Rename to ...
10094 (build_vector_stat): ... this. Take array of trees as parameter.
10095 (build_vector_from_ctor): Adjust.
10096 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
10097 initializer_zerop): Adjust.
10098 * cfgexpand.c (expand_debug_expr): Likewise.
10099 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
10100 const_vector_from_tree): Likewise.
10101 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
10102 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
10103 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
10104 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
10105 (lto_input_ts_vector_tree_pointers): Adjust.
10106 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
10107 (write_ts_vector_tree_pointers): Adjust.
10108 * varasm.c (const_hash_1, compare_constant, copy_constant,
10109 output_constant): Adjust.
10110 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
10111 * print-tree.c (print_node): Adjust.
10112 * tree-pretty-print.c (dump_generic_node): Adjust.
10113 * tree-vect-generic.c (uniform_vector_p, vector_element,
10114 lower_vec_perm): Adjust.
10115 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
10116 * tree-vect-slp.c (vect_get_constant_vectors,
10117 vect_transform_slp_perm_load): Adjust.
10118 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
10119 * expmed.c (make_tree): Adjust.
10120 * config/i386/i386.c (ix86_expand_builtin): Adjust.
10121 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
10122 and implementation.
10123 (sparc_fold_builtin): Adjust.
10124
10125 2012-03-16 Tristan Gingold <gingold@adacore.com>
10126
10127 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
10128 * config/vms/vms-stdint.h: New file.
10129
10130 2012-03-16 Tristan Gingold <gingold@adacore.com>
10131
10132 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
10133 (ia64-hp-*vms*): Replaced by ...
10134 (*-*-*vms*): ... This new entry.
10135
10136 2012-03-15 Jakub Jelinek <jakub@redhat.com>
10137
10138 PR target/52568
10139 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
10140 (ix86_expand_vec_perm_const_1): Use it.
10141
10142 PR target/52568
10143 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
10144 (avx2_permv4df): Remove.
10145 (avx2_permv4di): Macroize into...
10146 (avx2_perm<mode>): ... this using VI8F_256 iterator.
10147 (avx2_permv4di_1): Macroize into...
10148 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
10149
10150 2012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
10151
10152 * combine.c (apply_distributive_law): Do not distribute SUBREG.
10153
10154 2012-03-15 Ira Rosen <irar@il.ibm.com>
10155 Ulrich Weigand <ulrich.weigand@linaro.org>
10156
10157 * tree-vect-patterns.c (widened_name_p): Rename to ...
10158 (type_conversion_p): ... this. Add new argument to determine
10159 if it's a promotion or demotion operation. Check for
10160 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
10161 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
10162 widened_name_p.
10163 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
10164 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
10165 Likewise.
10166 (vect_recog_mixed_size_cond_pattern): Likewise and allow
10167 non-constant then and else clauses.
10168
10169 2012-03-15 Ira Rosen <irar@il.ibm.com>
10170 Ulrich Weigand <ulrich.weigand@linaro.org>
10171
10172 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
10173 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
10174 vect_pattern_recog.
10175 * tree-vect-patterns.c (widened_name_p): Pass basic block
10176 info to vect_is_simple_use.
10177 (vect_recog_dot_prod_pattern): Fail for basic blocks.
10178 (vect_recog_widen_sum_pattern): Likewise.
10179 (vect_handle_widen_op_by_const): Support basic blocks.
10180 (vect_operation_fits_smaller_type,
10181 vect_recog_over_widening_pattern): Likewise.
10182 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
10183 Update call to vect_is_simple_use.
10184 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
10185 Add printing.
10186 (check_bool_pattern): Add an argument, update call to
10187 vect_is_simple_use and the recursive calls.
10188 (vect_recog_bool_pattern): Update relevant function calls.
10189 Add printing.
10190 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
10191 (vect_pattern_recog_1): Check for reduction only in loops.
10192 (vect_pattern_recog): Add new argument. Support basic blocks.
10193 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
10194 info to vect_is_simple_use_1.
10195 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
10196 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
10197
10198 2012-03-15 Jakub Jelinek <jakub@redhat.com>
10199 Andrew Pinski <apinski@cavium.com>
10200
10201 PR middle-end/52592
10202 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
10203 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
10204 calls instead of __builtin_ir{int,ound}*.
10205
10206 2012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10207
10208 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
10209 documentation.
10210
10211 2012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10212
10213 * config.gcc (target_type_format_char): New. Document it. Set it for
10214 arm*-*-* .
10215 * configure.ac (gnu_unique_option): Use target_type_format_char
10216 in test. Comment rationale.
10217 * configure: Regenerate .
10218
10219 2012-03-15 Jakub Jelinek <jakub@redhat.com>
10220
10221 PR tree-optimization/52267
10222 * tree-vrp.c (masked_increment): New function.
10223 (register_edge_assert_for_2): Derive ASSERT_EXPRs
10224 from (X & CST1) cmp CST2 tests.
10225
10226 2012-03-15 Richard Guenther <rguenther@suse.de>
10227
10228 PR middle-end/52580
10229 * tree-data-ref.c (subscript_dependence_tester_1): Check
10230 all dimensions for non-conflicting access functions.
10231
10232 2012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
10233
10234 PR c++/44783
10235 * doc/invoke.texi [C++ Language Options]: Document
10236 -ftemplate-backtrace-limit.
10237
10238 2012-03-15 Tristan Gingold <gingold@adacore.com>
10239
10240 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
10241 before a parameter.
10242
10243 2012-03-15 Tristan Gingold <gingold@adacore.com>
10244
10245 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
10246 use DW_OP_call_frame_cfa.
10247
10248 2012-03-14 H.J. Lu <hongjiu.lu@intel.com>
10249
10250 PR target/50797
10251 * config/i386/i386-opts.h (pmode): New.
10252
10253 * config/i386/i386.c (ix86_option_override_internal): Properly
10254 check and set ix86_pmode.
10255
10256 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
10257
10258 * config/i386/i386.opt (maddress-mode=): New.
10259
10260 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
10261
10262 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10263
10264 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
10265 (dwarf2out_do_cfi_asm): Likewise.
10266 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
10267 handling.
10268 (add_data_member_location_attribute): Likewise.
10269 (gen_array_type_die): Likewise.
10270 (gen_subprogram_die): Likewise.
10271 (gen_producer_string): Likewise.
10272 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
10273 Remove MIPS_DEBUGGING_INFO handling.
10274 (sdb_debug_hooks): Likewise.
10275 (sdbout_begin_block): Likewise.
10276 (sdbout_end_block): Likewise.
10277 (sdbout_begin_prologue): Likewise.
10278 (sdbout_start_source_file): Likewise.
10279 (sdbout_end_source_file): Likewise.
10280 (sdbout_init): Likewise.
10281 * system.h (MIPS_DEBUGGING_INFO): Poison.
10282
10283 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10284
10285 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
10286 (alpha_file_start) [MS_STAMP]: Remove.
10287
10288 * config/alpha/elf.h (TARGET_GAS): Remove.
10289 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
10290 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
10291 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
10292 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
10293 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
10294 (alpha*-*-freebsd*): Likewise.
10295 (alpha*-*-netbsd*): Likewise.
10296 (alpha*-*-openbsd*): Likewise.
10297 (alpha*-*-*): Remove target_cpu_default2.
10298 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
10299 handling.
10300 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
10301 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
10302 * config/alpha/alpha.c (print_operand): Always assume
10303 TARGET_AS_SLASH_BEFORE_SUFFIX.
10304 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
10305 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
10306 ("*builtin_setjmp_receiver_er_1"): Remove.
10307 * config/alpha/alpha.opt (malpha-as): Remove.
10308 (mgas): Ignore.
10309 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
10310 -malpha-as, -mgas.
10311 Remove DEC Unix reference.
10312
10313 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
10314 (EXTENDED_COFF): Remove.
10315 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
10316 (EXTENDED_COFF): Don't undef.
10317 * config/alpha/alpha.c (alpha_file_start): Always assume
10318 OBJECT_FORMAT_ELF.
10319 Don't set targetm.asm_file_start_file_directive.
10320 [!OBJECT_FORMAT_ELF]: Remove.
10321 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
10322
10323 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
10324 (DBX_DEBUGGING_INFO): Remove.
10325 (MIPS_DEBUGGING_INFO): Remove.
10326 (PREFERRED_DEBUGGING_TYPE): Remove.
10327 (DBX_OUTPUT_SOURCE_LINE): Remove.
10328 (SDB_OUTPUT_SOURCE_LINE): Remove.
10329 (DBX_CONTIN_LENGTH): Remove.
10330 (NO_DBX_FUNCTION_END): Remove.
10331 (ASM_STABS_OP): Remove.
10332 (ASM_STABN_OP): Remove.
10333 (ASM_STABD_OP): Remove.
10334 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
10335 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
10336 (PUT_SDB_DEF): Remove.
10337 (PUT_SDB_PLAIN_DEF): Remove.
10338 (PUT_SDB_TYPE): Remove.
10339 (sdb_label_count): Remove.
10340 (PUT_SDB_BLOCK_START): Remove.
10341 (PUT_SDB_BLOCK_END): Remove.
10342 (PUT_SDB_FUNCTION_START): Remove.
10343 (PUT_SDB_FUNCTION_END): Remove.
10344 (PUT_SDB_EPILOGUE_END): Remove.
10345 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
10346 (MIPS_DEBUGGING_INFO): Don't undef.
10347 (DBX_DEBUGGING_INFO): Don't undef.
10348 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
10349 (MIPS_DEBUGGING_INFO): Don't undef.
10350 (DBX_DEBUGGING_INFO): Don't undef.
10351 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
10352 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
10353 handling.
10354 (alpha_start_function): Likewise.
10355 (sdb_label_count): Remove.
10356 (alpha_output_filename): Remove DBX_DEBUG handling.
10357 (alpha_file_start): Likewise.
10358
10359 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10360
10361 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
10362 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
10363 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
10364 Solaris 8 support.
10365 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
10366 (ld_tls_support): Remove Solaris 8 references.
10367 (lwp_dir, lwp_spec): Remove support for alternate thread library.
10368 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
10369 * configure: Regenerate.
10370 * config.in: Regenerate.
10371
10372 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
10373 * config/i386/sol2.h: Remove Solaris 8 references.
10374
10375 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
10376 (i?86-*-solaris2.9): ... this.
10377 Remove Solaris 8 references.
10378 (Specific, *-*-solaris2*): Document Solaris 8 removal.
10379 Remove Solaris 8 references.
10380
10381 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10382
10383 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
10384 (mips-sgi-irix6.5*): Remove.
10385 * config.host (mips-sgi-irix*): Remove.
10386 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
10387 (set_have_as_tls): Remove *-*-irix6*.
10388 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
10389 * configure: Regenerate.
10390
10391 * config/mips/iris6.h: Remove.
10392 * config/mips/iris6.opt: Remove.
10393 * config/mips/t-irix6: Remove.
10394
10395 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
10396 (TARGET_IRIX6): Remove.
10397 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
10398 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
10399 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
10400 handling.
10401 (mips_file_start): Likewise.
10402 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
10403
10404 * config/mips/driver-native.c [__sgi__]: Remove.
10405 (host_detect_local_cpu) [__sgi__]: Remove.
10406
10407 * config/mips/gnu-user.h: Remove iris5.h reference.
10408
10409 * config/mips/mips-modes.def: Remove IRIX 6 reference.
10410 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
10411 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
10412 Remove.
10413
10414 * gcc.c (main): Move asm_debug initialization ...
10415 (asm_debug): ... here.
10416
10417 * ginclude/stddef.h (__STDDEF_H__): Don't define.
10418
10419 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
10420 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
10421 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
10422 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
10423 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
10424 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
10425 Remove.
10426 * doc/tm.texi: Regenerate.
10427
10428 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
10429 IRIX 6 reference.
10430 (MIPS Options, -march): Remove IRIX reference.
10431 * doc/install.texi (Binaries, SGI IRIX): Remove.
10432 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
10433 of section.
10434 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
10435
10436 2012-03-14 Martin Jambor <mjambor@suse.cz>
10437
10438 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
10439 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
10440 (expand_expr_real_1): Do not handle misalignment if modifier is
10441 EXPAND_WRITE.
10442
10443 2012-03-14 Richard Guenther <rguenther@suse.de>
10444
10445 PR middle-end/52584
10446 * tree-vect-generic.c (type_for_widest_vector_mode): Take
10447 element type instead of mode, use build_vector_type_for_mode
10448 instead of the langhook, build a vector of proper signedness.
10449 (expand_vector_operations_1): Adjust.
10450
10451 2012-03-14 Richard Guenther <rguenther@suse.de>
10452
10453 PR middle-end/52582
10454 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
10455 a cgraph node for a FUNCTION_DECL that comes from a constructor.
10456 (gimple_get_virt_method_for_binfo): Likewise.
10457
10458 2012-03-14 Richard Guenther <rguenther@suse.de>
10459
10460 PR tree-optimization/52571
10461 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
10462 flag_section_anchors check ...
10463 (vect_can_force_dr_alignment_p): ... here. Do not re-align
10464 DECL_COMMON variables.
10465
10466 2012-03-14 Richard Guenther <rguenther@suse.de>
10467
10468 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
10469 * stor-layout.c (start_bitfield_representative): New function.
10470 (finish_bitfield_representative): Likewise.
10471 (finish_bitfield_layout): Likewise.
10472 (finish_record_layout): Call finish_bitfield_layout.
10473 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
10474 for QUAL_UNION_TYPE fields.
10475 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
10476 Stream DECL_BIT_FIELD_REPRESENTATIVE.
10477 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
10478
10479 PR middle-end/52080
10480 PR middle-end/52097
10481 PR middle-end/48124
10482 * expr.c (get_bit_range): Unconditionally extract bitrange
10483 from DECL_BIT_FIELD_REPRESENTATIVE.
10484 (expand_assignment): Adjust call to get_bit_range.
10485
10486 2012-03-14 Richard Guenther <rguenther@suse.de>
10487
10488 PR middle-end/52578
10489 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
10490 the outermost conversion is a sign-change only.
10491 (fold_binary_loc): Disregard widening and sign-changing
10492 conversions when we determine if two variables are equal
10493 for reassociation.
10494 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
10495 (T1)x if the outermost conversion is a sign-change only.
10496
10497 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
10498
10499 Revert:
10500 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
10501
10502 * config/i386/predicates.md (constant_call_address_operand): Declare
10503 as special predicate. Update all uses.
10504
10505 2012-03-13 Jakub Jelinek <jakub@redhat.com>
10506
10507 PR c/52577
10508 * c-parser.c (c_parser_postfix_expression)
10509 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
10510
10511 * config/i386/smmintrin.h: Avoid /* within a comment.
10512 * config/i386/nmmintrin.h: Likewise.
10513
10514 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
10515
10516 * config/i386/i386.md (xbegin): Remove constraint from expander.
10517
10518 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
10519
10520 * config/i386/predicates.md (constant_call_address_operand): Declare
10521 as special predicate. Update all uses.
10522 * config/i386/i386.md: Remove mode from constant_call_address_operand
10523 predicates.
10524 * config/i386/i386.c (ix86_output_call_insn): Call
10525 constant_call_address_operand with VOIDmode.
10526
10527 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
10528
10529 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
10530 AND zero extended address correctly.
10531
10532 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
10533
10534 * config/i386/predicates.md (tls_symbolic_operand): Declare as
10535 special predicate.
10536 (tls_modbase_operand): Ditto.
10537 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
10538 tls_modbase_operand predicates.
10539
10540 2012-03-13 Martin Jambor <mjambor@suse.cz>
10541
10542 * expr.c (expand_assignment): Handle misaligned scalar writes to
10543 memory through top-level MEM_REFs by calling store_bit_field.
10544
10545 2012-03-13 Richard Guenther <rguenther@suse.de>
10546
10547 PR middle-end/52134
10548 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
10549 if Y is a constant multiple of 1 << CST.
10550
10551 2012-03-13 Georg-Johann Lay <avr@gjlay.de>
10552
10553 PR target/52488
10554 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
10555 offset (size) to a value the insns can deal with.
10556 (expand_epilogue): Ditto.
10557
10558 2012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
10559
10560 * config/arm/neon.ml (ops): Fixup expected instructions for
10561 unsigned vector compares.
10562
10563 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
10564
10565 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
10566 addresses only when %reg is not in word mode.
10567
10568 2012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10569
10570 * config/microblaze/microblaze.md: Fix typo.
10571 * tree-if-conv.c: Likewise.
10572 * tree-vect-patterns.c: Likewise.
10573
10574 2012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10575
10576 * config.gcc (extra_passes): Remove.
10577 * configure.ac (extra_passes): Don't substitute.
10578 * configure: Regenerate.
10579 * Makefile.in (EXTRA_PASSES): Remove.
10580 (GCC_PASSES): Remove $(EXTRA_PASSES).
10581 (MOSTLYCLEANFILES): Likewise.
10582 (native): Likewise.
10583 (install-common): Likewise.
10584
10585 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
10586
10587 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
10588 * config/i386/i386.c (ix86_decompose_address): Use
10589 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
10590 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
10591 thread pointer to a register.
10592
10593 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
10594
10595 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
10596 on tls_symbolic_operand.
10597 (tls_global_dynamic_64_<mode>): Likewise.
10598
10599 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
10600
10601 PR other/52545
10602 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
10603 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
10604
10605 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
10606
10607 PR target/52499
10608 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
10609 type from reg_class_t to enum reg_class.
10610 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
10611
10612 2012-03-12 Andrew Pinski <apinski@cavium.com>
10613
10614 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
10615 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
10616 (value_replacement): Likewise.
10617 (empty_block_p): Check also if the PHIs for the block are empty.
10618
10619 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
10620
10621 PR target/52148
10622 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
10623 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
10624 r184615 from 2012-02-28.
10625
10626 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
10627
10628 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
10629 (ix86_gen_tls_local_dynamic_base_64): Likewise.
10630 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
10631 and ix86_gen_tls_local_dynamic_base_64.
10632 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
10633 ix86_gen_tls_local_dynamic_base_64.
10634
10635 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
10636 (*tls_global_dynamic_64_<mode>): This.
10637 (tls_global_dynamic_64): Renamed to ...
10638 (tls_global_dynamic_64_<mode>): This.
10639 (*tls_local_dynamic_base_64): Renamed to ...
10640 (*tls_local_dynamic_base_64_<mode>): This.
10641 (tls_local_dynamic_base_64): Renamed to ...
10642 (tls_local_dynamic_base_64_<mode>): This.
10643
10644 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
10645
10646 * config/i386/i386.c (ix86_option_override_internal): Properly
10647 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
10648 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
10649 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
10650 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
10651
10652 * config/i386/sse.md (sse3_monitor64): Renamed to ...
10653 (sse3_monitor64_<mode>): This.
10654
10655 2012-03-12 Tristan Gingold <gingold@adacore.com>
10656
10657 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
10658 (ia64_function_arg_advance): Ditto.
10659
10660 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10661
10662 * config.gcc (mips*-*-openbsd*): Remove.
10663 * config/mips/openbsd.h: Remove.
10664 * config/mips/sdb.h: Remove.
10665
10666 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
10667 * config/mips/mips.c (sdb_label_count): Remove.
10668 (mips_debugger_offset): Remove #if 0 code.
10669 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
10670 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
10671
10672 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10673
10674 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
10675 binutils reference.
10676 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
10677 Update binutils references.
10678 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
10679 Update binutils reference.
10680 Update Sun as/GNU ld caveat.
10681 Document binutils largefile requirement for LTO plugin.
10682 Remove reference to alternate libpthread.
10683
10684 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10685
10686 * config.gcc (alpha*-dec-osf5.1*): Remove.
10687 * config.host (alpha*-dec-osf*): Remove.
10688 * configure.ac (*-*-osf*): Remove.
10689 (alpha*-dec-osf*): Remove.
10690 * configure: Regenerate.
10691
10692 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
10693 config/alpha/va_list.h, config/alpha/x-osf: Remove.
10694
10695 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
10696 * config/alpha/alpha.c (struct machine_function): Update comment.
10697 (alpha_start_function): Remove Tru64 UNIX as handling for
10698 max_frame_size.
10699 * config/alpha/alpha.md ("exception_receiver"): Remove
10700 TARGET_LD_BUGGY_LDGP.
10701 ("*exception_receiver_2"): Likewise.
10702 * except.c (finish_eh_generation): Remove Tru64 reference.
10703 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
10704 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
10705 * target.def (handle_pragma_extern_prefix): Remove.
10706
10707 * Makefile.in (mips-tfile.o-warn): Remove.
10708 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
10709 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
10710 * mips-tdump.c, mips-tfile.c: Remove.
10711
10712 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
10713 extern_prefix.
10714 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
10715 (Specific, alpha*-dec-osf5.1): Note removal.
10716 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
10717 Remove.
10718 * doc/tm.texi: Regenerate.
10719 * doc/trouble.texi (Cross-Compiler Problems): Remove.
10720
10721 2012-03-12 Richard Guenther <rguenther@suse.de>
10722
10723 * config/arm/arm.c (neon_dereference_pointer): Do not call
10724 covert during RTL expansion.
10725
10726 2012-03-12 Tristan Gingold <gingold@adacore.com>
10727
10728 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
10729 Options. Mention -mpointer-size.
10730
10731 2012-03-12 Richard Guenther <rguenther@suse.de>
10732
10733 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
10734 build_nonstandard_integer_type.
10735
10736 2012-03-12 Richard Guenther <rguenther@suse.de>
10737
10738 * tree.c (signed_or_unsigned_type_for): Use
10739 build_nonstandard_integer_type.
10740 (signed_type_for): Adjust documentation.
10741 (unsigned_type_for): Likewise.
10742 * tree-pretty-print.c (dump_generic_node): Use standard names
10743 for non-standard integer types if available.
10744
10745 2012-03-12 Tristan Gingold <gingold@adacore.com>
10746
10747 * config/vms/vms.opt: Add vms-opts.h header.
10748 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
10749 target mask.
10750 (-mvms-return-codes): Document.
10751 (-mpointer-size): New option.
10752 (vms_pointer_size): Add enumeration.
10753 * config/vms/vms-opts.h: New file.
10754 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
10755 __INITIAL_POINTER_SIZE.
10756 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
10757 (C_COMMON_OVERRIDE_OPTIONS): Define.
10758 (DWARF2_ADDR_SIZE): Define.
10759 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
10760 * config/vms/vms-protos.h (vms_c_common_override_options):
10761 New prototype.
10762 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
10763 if -mno-pointer-size.
10764 (vms_c_common_override_options): New function.
10765 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
10766 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
10767 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
10768 and flag_vms_pointer_size.
10769 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
10770 * config.gcc (*-*-*vms*): Define xm_file.
10771 (alpha*-dec-*vms*): Do not define xm_file.
10772 (alpha64-dec-*vms*): Remove.
10773 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
10774 and tmake_file.
10775
10776 2012-03-12 Jakub Jelinek <jakub@redhat.com>
10777
10778 PR tree-optimization/51721
10779 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
10780 if (int) unsvar cmp CST.
10781
10782 2012-03-12 Richard Guenther <rguenther@suse.de>
10783
10784 * tree-sra.c (create_access_replacement): Only rename the replacement
10785 if we can rewrite it into SSA form. Properly mark register typed
10786 replacements that we cannot rewrite with TREE_ADDRESSABLE.
10787 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
10788 for aggregate or BLKmode results.
10789
10790 2012-03-12 Jakub Jelinek <jakub@redhat.com>
10791
10792 PR tree-optimization/52533
10793 * tree-vrp.c (register_edge_assert_for_2): Use double_int
10794 type for mask, only handle shifts by non-zero in-range
10795 shift count, for LE_EXPR and GT_EXPR if new_val is
10796 maximum, don't add the assertion.
10797
10798 2012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
10799
10800 * doc/invoke.texi: Document -mrtm option.
10801 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
10802 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
10803 (ix86_handle_option): Handle OPT_mrtm.
10804 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
10805 xtestintrin.h.
10806 (x86_64-*-*): Ditto.
10807 * i386-builtin-types.def (INT_FTYPE_VOID): New.
10808 * config/i386/i386-c.c (ix86_target_macros_internal): Define
10809 __RTM__ if needed.
10810 (ix86_target_string): Define -mrtm option.
10811 (PTA_RTM): New.
10812 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
10813 Handle new option.
10814 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
10815 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
10816 IX86_BUILTIN_XTEST.
10817 (bdesc_special_args): Ditto.
10818 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
10819 (ix86_expand_special_args_builtin): Handle new built-in type.
10820 (ix86_expand_builtin): Handle XABORT instruction.
10821 * config/i386/i386.h (TARGET_RTM): New.
10822 * config/i386/i386.md (UNSPECV_XBEGIN): New.
10823 (UNSPECV_XEND): Ditto.
10824 (UNSPECV_XABORT): Ditto.
10825 (UNSPECV_XTEST): Ditto.
10826 (xbegin): Ditto.
10827 (xbegin_1): Ditto.
10828 (xend): Ditto.
10829 (xabort): Ditto
10830 (xtest): Ditto.
10831 (xtest_1): Ditto.
10832 * config/i386/i386.opt (mrtm): New.
10833 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
10834 * config/i386/rtmintrin.h: New header.
10835 * config/i386/xtestintrin.h: Ditto.
10836
10837 2012-03-12 Tristan Gingold <gingold@adacore.com>
10838
10839 * ginclude/stddef.h: Adjust previous patch.
10840 Use __VMS__ instead of VMS.
10841
10842 2012-03-12 Uros Bizjak <ubizjak@gmail.com>
10843
10844 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
10845 Also convert sequences with CC setting arithmetic instruction.
10846
10847 2012-03-11 Sandra Loosemore <sandra@codesourcery.com>
10848
10849 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
10850 from C Language Options to Preprocessor Options.
10851 (C Dialect Options): Move -no-integrated-cpp documentation
10852 from here...
10853 (Preprocessor Options): ...to here. Rewrite the description
10854 so it makes more sense, and remove discussion of merging front ends.
10855
10856 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
10857
10858 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
10859 needed for loop.
10860 (ix86_expand_setmem): Likewise.
10861
10862 2012-03-11 Uros Bizjak <ubizjak@gmail.com>
10863
10864 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
10865 convert_to_mode.
10866
10867 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
10868
10869 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
10870 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
10871
10872 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
10873
10874 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
10875
10876 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
10877
10878 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
10879 TARGET_64BIT.
10880
10881 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
10882 Uros Bizjak <ubizjak@gmail.com>
10883
10884 * config/i386/predicates.md (call_insn_operand): Allow
10885 constant_call_address_operand in Pmode only.
10886 (sibcall_insn_operand): Ditto.
10887 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
10888 (*call_vzeroupper): Ditto.
10889 (*sibcall): Ditto.
10890 (*sibcall_vzeroupper): Ditto.
10891 (*call_value): Ditto.
10892 (*call_value_vzeroupper): Ditto.
10893 (*sibcall_value): Ditto.
10894 (*sibcall_value_vzeroupper): Ditto.
10895 (*indirect_jump): Ditto.
10896 (*tablejump_1): Ditto.
10897 (indirect_jump): Convert memory address to word mode for TARGET_X32.
10898 (tablejump): Ditto.
10899 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
10900 to word mode.
10901
10902 2012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
10903
10904 PR target/51244
10905 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
10906 Use movrt_negc instead of negc pattern for non-SH2A.
10907 (*movnegt): Remove.
10908 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
10909
10910 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
10911
10912 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
10913 if Pmode != word_mode.
10914 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
10915 Pmode == SImode for TARGET_X32.
10916
10917 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
10918 (tls_initial_exec_x32): Likewise.
10919
10920 2012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
10921
10922 PR rtl-optimization/52528
10923 * combine.c (can_combine_p): Add setting of subst_low_luid
10924 before call to expand_field_assignment().
10925
10926 2012-03-09 Sandra Loosemore <sandra@codesourcery.com>
10927
10928 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
10929 and related program names.
10930
10931 2012-03-09 Sandra Loosemore <sandra@codesourcery.com>
10932
10933 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
10934
10935 2012-03-09 Uros Bizjak <ubizjak@gmail.com>
10936
10937 PR target/52530
10938 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
10939 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
10940 to set code to 'q'.
10941 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
10942 (*movdi_internal_rex64): Use %E operand modifier for lea.
10943 (*movsi_internal): Ditto.
10944 (*lea_1): Ditto.
10945 (*lea<mode>_2): Ditto.
10946 (*lea_{3,4,5,6}_zext): Ditto.
10947 (*tls_global_dynamic_32_gnu): Ditto.
10948 (*tls_global_dynamic_64): Ditto.
10949 (*tls_dynamic_gnu2_lea_32): Ditto.
10950 (*tls_dynamic_gnu2_lea_64): Ditto.
10951 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
10952
10953 2012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
10954
10955 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
10956 redefine to be NULL if the current bit-size is different from the
10957 configured bit-size.
10958
10959 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
10960 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
10961 set the default tuning. Add asserts to make sure the cpu and tune
10962 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
10963 test whether the index is set, instead of > 0.
10964 (rs6000_file_start): Do not reset the default cpu if the current
10965 bit-size is different from the configured bit-size.
10966
10967 2012-03-09 Tristan Gingold <gingold@adacore.com>
10968
10969 * config/vms/vms-crtlmap.map: Add comments.
10970 Add entries needed to build Ada RTS.
10971
10972 2012-03-09 Tristan Gingold <gingold@adacore.com>
10973
10974 * ginclude/stddef.h: Do not define __size_t on VMS.
10975
10976 2012-03-09 Tristan Gingold <gingold@adacore.com>
10977
10978 * c-tree.h (c_default_pointer_mode): New variable.
10979 * c-decl.c (c_default_pointer_mode): New variable.
10980 (c_build_pointer_type): New function.
10981 (grokdeclarator): Call c_build_pointer_type instead
10982 of build_pointer_type.
10983
10984 * config/vms/vms-c.c: Include c-tree.h
10985 (saved_pointer_mode): New variable.
10986 (handle_pragma_pointer_size): New function.
10987 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
10988 (vms_c_register_pragma): Register __pointer_size and
10989 __required_pointer_size pragmas.
10990
10991 2012-03-09 Tristan Gingold <gingold@adacore.com>
10992
10993 * config/vms/vms-c.c (vms_construct_include_filename): New function.
10994 (vms_c_register_includes): Reference it.
10995
10996 2012-03-09 Andrew Pinski <apinski@cavium.com>
10997
10998 PR middle-end/51988
10999 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
11000 print_generic_expr.
11001 (tree_ssa_phiopt_worker): Go through all the PHIs for
11002 value_replacement instead of just the singleton one.
11003 (value_replacement): Change return type to int. Return 0 instead of
11004 false.
11005 Allow the middle basic block to contain more than just the defining
11006 statement.
11007 Handle non empty middle basic blocks.
11008 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
11009
11010 2012-03-09 Jiangning Liu <jiangning.liu@arm.com>
11011
11012 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
11013 array reference and component reference.
11014 (analyze_scalar_evolution_for_address_of): New.
11015
11016 2012-03-08 Jie Zhang <jzhang918@gmail.com>
11017
11018 PR target/49862
11019 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
11020 (hwloop_pattern_reg): Fix set but not used warning.
11021 (bfin_reorg_loops): Remove unused parameter.
11022 (bfin_reorg): Update use of bfin_reorg_loops.
11023
11024 2012-03-08 H.J. Lu <hongjiu.lu@intel.com>
11025
11026 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
11027 with integer parameters in registers.
11028 (gen_push): Push register in word_mode instead of Pmode.
11029 (ix86_emit_save_regs): Likewise.
11030 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
11031 (gen_pop): Pop register in word_mode instead of Pmode.
11032 (ix86_emit_restore_regs_using_pop): Likewise.
11033 (ix86_expand_prologue): Replace Pmode with word_mode for push
11034 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
11035 restore RAX and R10 in word_mode.
11036 (ix86_emit_restore_regs_using_mov): Restore integer registers
11037 in word_mode.
11038 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
11039 word_mode.
11040 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
11041 (ix86_split_long_move): Likewise.
11042
11043 * config/i386/i386.md (W): New.
11044 (*push<mode>2_prologue): Replace :P with :W.
11045 (*pop<mode>1): Likewise.
11046 (*pop<mode>1_epilogue): Likewise.
11047 (push/pop peephole2): Use word_mode scratch registers.
11048
11049 2012-03-08 Uros Bizjak <ubizjak@gmail.com>
11050
11051 * config/i386/predicates.md (indirect_branch_operand): Simplify.
11052
11053 2012-03-08 Georg-Johann Lay <avr@gjlay.de>
11054
11055 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
11056 for constants in [-63,63].
11057
11058 2012-03-08 Uros Bizjak <ubizjak@gmail.com>
11059
11060 PR target/52530
11061 Revert:
11062 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
11063
11064 * config/i386/i386.c (ix86_print_operand_address): Only handle
11065 zero-extended DImode addresses.
11066
11067 2012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11068
11069 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
11070 * configure: Regenerate.
11071
11072 2012-03-08 Georg-Johann Lay <avr@gjlay.de>
11073
11074 PR target/52496
11075 * config/avr/avr.c (avr_mem_clobber): New static function.
11076 (avr_expand_delay_cycles): Add memory clobber operand to
11077 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
11078 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
11079 (enable_interrupt, disable_interrupt): New expander.
11080 (nopv, sleep, wdr): New expanders.
11081 (delay_cycles_1): Add memory clobber.
11082 (delay_cycles_2): Add memory clobber.
11083 (delay_cycles_3): Add memory clobber.
11084 (delay_cycles_4): Add memory clobber.
11085 (cli_sei): New insn from former "enable_interrupt",
11086 "disable_interrupt" with memory clobber.
11087 (*wdt): New insn from former "wdt" with memory clobber.
11088 (*nopv): Similar, but for "nopv".
11089 (*sleep): Similar, but for "sleep".
11090
11091 2012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
11092 Kaz Kojima <kkojima@gcc.gnu.org>
11093
11094 PR target/52503
11095 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
11096 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
11097 (SUBTARGET_OVERRIDE_OPTIONS): Define.
11098
11099 2012-03-07 Uros Bizjak <ubizjak@gmail.com>
11100
11101 * config/i386/predicates.md (x86_64_zext_general_operand): New.
11102 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
11103 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
11104
11105 2012-03-07 Walter Lee <walt@tilera.com>
11106
11107 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
11108 REG_CFA_* notes for the stack pointer.
11109 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
11110 EH_RETURN_STACKADJ_RTX.
11111 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
11112 generate REG_CFA_* notes for the stack pointer.
11113 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
11114 by EH_RETURN_STACKADJ_RTX.
11115
11116 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
11117
11118 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
11119 when __AVR_3_BYTE_PC__ is defined.
11120
11121 2012-03-07 Uros Bizjak <ubizjak@gmail.com>
11122
11123 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
11124 (ix86_print_operand): Handle '^'.
11125 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
11126 using P mode iterator. Add %^ to asm template to conditionally emit
11127 addr32 prefix.
11128 (*rep_movdi_rex64): Ditto.
11129 (*strsetdi_rex_1): Ditto.
11130 (*rep_stosdi_rex64): Ditto.
11131 (*strmov{si,hi,qi}_1): Add %^ to asm template to
11132 conditionally emit addr32 prefix.
11133 (*rep_mov{si,qi}): Ditto.
11134 (*strset{si,hi,qi}): Ditto.
11135 (*rep_stos{si,qi}): Ditto.
11136 (*cmpstrnqi_nz_1): Ditto.
11137 (*cmpstrnqi_1): Ditto.
11138 (*strlenqi_1): Ditto.
11139
11140 2012-03-07 H.J. Lu <hongjiu.lu@intel.com>
11141
11142 * config/i386/i386.c (function_value_64): Return pointers in
11143 word_mode instead of Pmode.
11144 (ix86_promote_function_mode): Likewise.
11145
11146 2012-03-07 Richard Guenther <rguenther@suse.de>
11147
11148 * coverage.c (get_gcov_type): Use type_for_mode.
11149 (get_gcov_unsigned_t): Likewise.
11150 * expr.c (store_constructor): Use type_for_mode.
11151 (try_casesi): Likewise.
11152 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
11153 (add_standard_iv_candidates): Use standard type trees.
11154 * dojump.c (do_jump): Remove dead code.
11155
11156 2012-03-07 Richard Guenther <rguenther@suse.de>
11157
11158 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
11159
11160 2012-03-07 Richard Guenther <rguenther@suse.de>
11161
11162 * convert.c (strip_float_extensions): Move ...
11163 * tree.c (strip_float_extensions): ... here.
11164
11165 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
11166
11167 PR target/52484
11168 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
11169
11170 2012-03-07 Richard Guenther <rguenther@suse.de>
11171
11172 * omp-low.c (extract_omp_for_data): Use signed_type_for.
11173 (expand_omp_for_generic): Likewise.
11174 (expand_omp_for_static_nochunk): Likewise.
11175 (expand_omp_for_static_chunk): Likewise.
11176 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
11177 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
11178 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
11179 Use unsigned_type_for.
11180 (vect_create_cond_for_align_checks): Use signed_type_for.
11181
11182 2012-03-07 Andrey Belevantsev <abel@ispras.ru>
11183
11184 PR rtl-optimization/52203
11185 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
11186 all callers to pass NULL except ...
11187 (reset_sched_cycles_in_current_ebb): ... here, save the value
11188 in new variable 'empty'. Increase issue_rate only for
11189 non-empty insns.
11190
11191 2012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
11192
11193 PR target/51417
11194 * Makefile.in: Let install-gcc-ar depend on installdirs,
11195 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
11196 Don't double canonicalize if cross-compiling.
11197
11198 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
11199
11200 PR target/52506
11201 * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
11202 to: RAMPZ, RAMPY, RAMPX, RAMPD.
11203 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
11204
11205 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
11206
11207 PR target/52505
11208 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
11209 from RAM.
11210 * config/avr/avr.md (xload_8): Adjust insn length.
11211
11212 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
11213
11214 PR target/52461
11215 * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
11216 if RAMPZ affects reading from RAM.
11217
11218 2012-03-07 Richard Guenther <rguenther@suse.de>
11219
11220 PR pch/52518
11221 PR pch/38987
11222 * doc/invoke.texi (Precompiled Headers): Remove sentence that
11223 suggests you can include PCHs from inside another header.
11224
11225 2012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
11226
11227 PR middle-end/52515
11228 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
11229
11230 2012-03-07 Kai Tietz <ktietz@redhat.com>
11231
11232 * doc/invoke.texi (fwritable-relocated-rdata): Document
11233 new Cygwin/MinGW target option.
11234 * config/i386/winnt.c (i386_pe_unique_section): Ignore
11235 reloc if flag -fwritable-relocated-rdata is not set.
11236 (i386_pe_section_type_flags): Likewise.
11237 * config/i386/cygming.opt (fwritable-relocated-rdata):
11238 Add new flag variable flag_writable_rel_rdata.
11239
11240 2012-03-07 Richard Guenther <rguenther@suse.de>
11241
11242 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
11243 precision against gimple constraints.
11244
11245 2012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
11246
11247 PR middle-end/52372
11248 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
11249 variables.
11250 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
11251 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
11252 variables.
11253 (init_emit_regs): Move associated initialization to...
11254 (init_emit_once): ...here.
11255
11256 2012-03-06 Richard Henderson <rth@redhat.com>
11257
11258 * config/m68k/m68k.h (ISA_HAS_TAS): New.
11259 * config/m68k/sync.md (atomic_test_and_set): Use it.
11260 (atomic_test_and_set_1): Likewise.
11261
11262 2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
11263
11264 PR target/50310
11265 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
11266 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
11267 (vector_ltgt<mode>): Likewise.
11268 (vector_ordered<mode>): Likewise.
11269 (vector_unordered<mode>): Likewise.
11270 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
11271
11272 2012-03-06 Aldy Hernandez <aldyh@redhat.com>
11273
11274 * trans-mem.c: New typedef for tm_region_p.
11275 Define vector types for tm_region_p.
11276 (tm_region_init): Replace region_worklist to a vector called
11277 bb_regions.
11278
11279 2012-03-06 Richard Guenther <rguenther@suse.de>
11280
11281 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
11282 MEM_REF with constant pointer operand.
11283
11284 2012-03-06 Richard Guenther <rguenther@suse.de>
11285
11286 PR middle-end/52493
11287 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
11288
11289 2012-03-06 Tristan Gingold <gingold@adacore.com>
11290
11291 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
11292 (external_model_kind): Improve documentation.
11293 (vms_pragma_extern_model): Handle relaxed_redef.
11294 (vms_c_register_pragma): Allow expansion for nomember_alignment.
11295
11296 2012-03-06 Georg-Johann Lay <avr@gjlay.de>
11297
11298 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
11299 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
11300 Some more notes on EIND usage and reorder EIND subsection.
11301
11302 2012-03-06 Tristan Gingold <gingold@adacore.com>
11303
11304 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
11305 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
11306
11307 2012-03-06 Tristan Gingold <gingold@adacore.com>
11308
11309 * config/vms/t-vmsnative (version): Define.
11310 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
11311
11312 2012-03-06 Andrey Belevantsev <abel@ispras.ru>
11313
11314 PR rtl-optimization/52250
11315 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
11316 to put note list into. Unconditionally call move_bb_info.
11317 (move_bb_info): Do not assert the blocks being in the same region,
11318 just drop the note list if they are not.
11319
11320 2012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
11321
11322 PR target/51244
11323 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
11324 and use unified expansion logic.
11325 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
11326 closer to the existing movt insn.
11327 (negc): Rename insn to *negc. Add new expander.
11328 (movnegt): Use xor pattern for T bit negation. Reserve helper
11329 constant for negc pattern.
11330 (*movnegt): New insn and splitter.
11331
11332 2012-03-05 Bernd Schmidt <bernds@codesourcery.com>
11333
11334 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
11335 PLUS_EXPR.
11336
11337 2012-03-05 Richard Henderson <rth@redhat.com>
11338
11339 * genemit.c (main): Include "target.h" in insn-emit.c.
11340 * Makefile.in (insn-emit.o): Depend on TARGET_H.
11341 * config/sh/sync.md (atomic_test_and_set): Reference
11342 targetm.atomic_test_and_set_trueval instead of
11343 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
11344
11345 2012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
11346
11347 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
11348 Make static.
11349
11350 2012-03-05 Steven Bosscher <steven@gcc.gnu.org>
11351
11352 * langhooks.c (add_builtin_type): New function.
11353 * langhooks.h (add_builtin_type): Export it.
11354 * config/mep/mep.c (mep_init_builtins): Use it.
11355 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
11356
11357 2012-03-05 Jakub Jelinek <jakub@redhat.com>
11358
11359 PR debug/51902
11360 * tree.h (BLOCK_SAME_RANGE): Define.
11361 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
11362 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
11363 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
11364 isn't equal to supercontext fragment's fragment chain.
11365 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
11366 fragment origin.
11367 (blocks_nreverse_all): Likewise.
11368 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
11369 BLOCK_SUPERCONTEXT to supercontext fragment instead of
11370 supercontext fragment's fragment origin.
11371 * dwarf2out.c (add_high_low_attributes): If stmt has the same
11372 range as its parent (or parents thereof etc.), use the parent's
11373 DW_AT_ranges value instead of creating a new .debug_ranges range.
11374
11375 2012-03-05 Richard Henderson <rth@redhat.com>
11376
11377 PR tree-opt/52242
11378 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
11379 * omp-low.c (expand_omp_atomic): Assume anything aligned to
11380 BIGGEST_ALIGNMENT is aligned.
11381
11382 2012-03-05 Richard Henderson <rth@redhat.com>
11383
11384 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
11385 * config/sh/sh.c: ... here.
11386
11387 2012-03-05 Richard Henderson <rth@redhat.com>
11388
11389 PR target/52481
11390 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
11391 instead of calling negqi2 directly.
11392
11393 2012-03-05 Aldy Hernandez <aldyh@redhat.com>
11394
11395 PR middle-end/52463
11396 * trans-mem.c (tm_region_init): Use last_basic_block.
11397
11398 2012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
11399
11400 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
11401 * config/sh/sync.md (atomic_test_and_set): New expander.
11402 (tasb, atomic_test_and_set_soft): New insns.
11403 * config/sh/sh.opt (menable-tas): New option.
11404 * doc/invoke.texi (SH Options): Document it.
11405
11406 2012-03-05 Richard Guenther <rguenther@suse.de>
11407
11408 * cfgloop.c (verify_loop_structure): Verify dominators before
11409 using them.
11410 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
11411 dominators from here.
11412 * graphite-scop-detection.c (create_sese_edges): Likewise.
11413 * loop-doloop.c (doloop_optimize_loops): Likewise.
11414 * loop-init.c (loop_optimizer_init): Likewise.
11415 * loop-unroll.c (unroll_and_peel_loops): Likewise.
11416 * loop-unswitch.c (unswitch_loops): Likewise.
11417 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
11418 * tree-parloops.c (parallelize_loops): Likewise. Verify
11419 only when checking is enabled.
11420 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
11421
11422 2012-03-05 Bernd Schmidt <bernds@codesourcery.com>
11423
11424 * genautomata.c (parse_automata_opt): New static function.
11425 (initiate_automaton_gen): Remove all option handling code. Remove
11426 argc argument. All callers changed.
11427 (main): Call init_rtx_reader_args_cb with the new function as argument.
11428
11429 2012-03-05 Richard Guenther <rguenther@suse.de>
11430
11431 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
11432 * tree-if-conv.c (combine_blocks): Free post-dominator info
11433 after breaking it.
11434 * tree-parloops.c (create_parallel_loop): Free and re-compute
11435 dominator info after breaking it.
11436
11437 2012-03-05 Richard Guenther <rguenther@suse.de>
11438
11439 PR middle-end/52353
11440 * optabs.h (trapv_unoptab_p): New function.
11441 (trapv_binoptab_p): Likewise.
11442 * optabs.c (expand_binop): Use emit_libcall_block_1 with
11443 a proper equiv_may_trap argument.
11444 (expand_unop): Likewise.
11445 (emit_libcall_block_1): Take extra argument whether the
11446 instruction may trap. Renamed from ...
11447 (emit_libcall_block): ... this. New wrapper.
11448
11449 2012-03-05 Jakub Jelinek <jakub@redhat.com>
11450
11451 PR tree-optimization/51721
11452 * tree-vrp.c (register_edge_assert_for_2): If comparing
11453 lhs of right shift by constant with an integer constant,
11454 add ASSERT_EXPRs for the rhs1 of the right shift.
11455
11456 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
11457
11458 2012-03-05 Richard Guenther <rguenther@suse.de>
11459
11460 * tree.c (integer_zerop): Handle VECTOR_CSTs.
11461 (integer_onep): Likewise.
11462 (integer_all_onesp): Likewise.
11463
11464 2012-03-05 Georg-Johann Lay <avr@gjlay.de>
11465
11466 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
11467
11468 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
11469
11470 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
11471 instead of TARGET_64BIT.
11472
11473 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
11474
11475 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
11476 adjust_stack_insn.
11477
11478 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
11479
11480 * config/i386/i386.c (ix86_print_operand_address): Only handle
11481 zero-extended DImode addresses.
11482
11483 2012-03-04 Uros Bizjak <ubizjak@gmail.com>
11484
11485 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
11486 taken and cputaken as bool.
11487
11488 2012-03-04 Uros Bizjak <ubizjak@gmail.com>
11489
11490 * config/i386/constraints.md (Ya): New internal constraint.
11491 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
11492 (*zero_extendsidi2_rex64): Add x,x alternative.
11493 (*zero_extendsidi2): Ditto. Add o,0 alternative.
11494 Remove flags reg clobber. Adjust corresponding splits.
11495 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
11496 zero_extendqisi2 expanders using SWI12 mode iterator.
11497 (zero_extend<mode>si2_and): Macroize insn from
11498 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
11499 splitters.
11500 (*zero_extend<mode>si2): Macroize insn from
11501 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
11502 (*zero_extend*2_movzbl_and): Remove insn patterns.
11503 (zero_extendqihi2_and): Merge corresponding splitter.
11504 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
11505 (*zero_extend*2_movzbl_and): Remove insn patterns.
11506 (*anddi_1): Split TYPE_IMOVX instructions.
11507 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
11508 (*andhi_1): Ditto.
11509 (and->zext splitter): Add splitter pattern.
11510 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
11511
11512 2012-03-04 Sandra Loosemore <sandra@codesourcery.com>
11513
11514 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
11515 x86-specific text.
11516 (Debugging Options): Likewise.
11517 (Optimize Options): Likewise.
11518 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
11519 with other architectures. Use official processor names with correct
11520 spelling/capitalization. Fix formatting and grammar issues.
11521 (i386 and x86-64 Windows Options): Similar cleanup here.
11522
11523 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
11524
11525 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
11526
11527 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
11528
11529 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
11530 DBX_REGISTER_NUMBER.
11531
11532 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
11533
11534 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
11535 operand is CONST_INT. Take COSTS_N_INSNS into account.
11536 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
11537 of shiftcosts.
11538
11539 2012-03-02 Richard Henderson <rth@redhat.com>
11540
11541 * optabs.c (expand_atomic_test_and_set): Honor
11542 atomic_test_and_set_trueval even when atomic_test_and_set
11543 optab is not in use.
11544
11545 2012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
11546
11547 PR target/48596
11548 PR target/48806
11549 * config/sh/sh.c (sh_register_move_cost): Increase cost between
11550 GENERAL_REGS and FP_REGS for SImode.
11551
11552 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
11553
11554 PR target/49486
11555 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
11556 (absdi2): New expander.
11557 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
11558
11559 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
11560
11561 * config/sh/sync.md (atomic_exchange<mode>): New expander.
11562 (atomic_exchange<mode>_soft): New insn.
11563
11564 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
11565
11566 * config/sh/sync.md: Update copyright notice dates.
11567 (atomic_compare_and_swap<mode>): Use SImode for return value instead
11568 of QImode.
11569 (atomic_compare_and_swap<mode>_soft): Likewise.
11570
11571 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
11572
11573 PR target/31640
11574 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
11575 * config/sh/sh.c: Update copyright notice dates.
11576 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
11577 alignment for TARGET_HARD_SH4.
11578 (sh_option_override): Reduce default function alignment. Set
11579 loop alignment to 4 bytes when not optimizing for size.
11580
11581 2012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
11582
11583 PR middle-end/50335
11584 * doc/invoke.texi (floop-flatten): Remove.
11585 * toplev.c (process_options): Remove references to flag_loop_flatten.
11586 * tree-ssa-loop.c (gate_graphite_transform): Same.
11587 * common.opt (floop-flatten): Obsolete.
11588 * graphite-poly.c (apply_poly_transforms): Remove reference to
11589 flag_loop_flatten.
11590 * Makefile.in (graphite-flattening.o): Remove.
11591 * graphite-flattening.c: Remove.
11592
11593 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
11594
11595 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
11596 having mode compatible with the mode of previous compare. Substitute
11597 compare mode of previous compare with the mode, compatible
11598 with eliminated and previous compare.
11599
11600 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
11601
11602 * config/rs6000/dfp.md (floatdidd2): New define_insn.
11603
11604 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
11605
11606 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
11607 compatible with CCGOCmode and CCGCmode.
11608
11609 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
11610
11611 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
11612
11613 2012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
11614
11615 * config/arm/arm.c (arm_sat_operator_match): New function.
11616 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
11617 * config/arm/arm.md ("insn" attribute): Add "sat" value.
11618 ("SAT", "SATrev"): New code iterators.
11619 ("SATlo", "SAThi"): New code iterator attributes.
11620 ("*satsi_<SAT:code>"): New pattern.
11621 ("*satsi_<SAT:code>_shift"): Likewise.
11622 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
11623 and "shift" attributes.
11624 ("arm_usatsihi"): Add "insn" attribute.
11625 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
11626 by powers of two. Do not allow shift by 32.
11627
11628 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
11629
11630 PR target/46716
11631 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
11632 to pass the argument in the register of "natural" mode.
11633
11634 2012-03-02 Richard Guenther <rguenther@suse.de>
11635
11636 PR tree-optimization/52406
11637 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
11638 (struct indices): Add unconstrained_base member.
11639 (struct dr_alias): Remove unused vops member.
11640 (DR_UNCONSTRAINED_BASE): New define.
11641 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
11642 add indices to allow their disambiguation. Make DR_BASE_OBJECT
11643 be an artificial access that covers the whole indexed object,
11644 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
11645 plain decl base-objects to their MEM_REF variant.
11646 (dr_may_alias_p): When the base-object of either data reference
11647 has unknown size use only points-to information.
11648 (compute_affine_dependence): Make dumps easier to read and
11649 more verbose.
11650 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
11651 DR_REF when looking for packed references.
11652 (vect_supportable_dr_alignment): Likewise.
11653
11654 2012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
11655
11656 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
11657 Improve conditions for peepholes of loads followed by commutative
11658 operators.
11659 * config/arm/ldmstm.md: Regenerated.
11660
11661 2012-03-02 Richard Guenther <rguenther@suse.de>
11662
11663 * BASE-VER: Set to 4.8.0.
11664
11665 2012-03-01 Richard Earnshaw <rearnsha@arm.com>
11666
11667 * config.gcc (obsolete): Add all ARM targets using the FPA.
11668 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
11669 * doc/install.texi: Avoid references to obsolete ARM ports.
11670
11671 2012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
11672
11673 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
11674
11675 2012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
11676 Joern Rennecke <joern.rennecke@embecosm.com>
11677
11678 * doc/extend.texi: Expand and update information on interrupt
11679 attribute for Epiphany.
11680
11681 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
11682
11683 * config/sh/sh-protos.h: Update copyright notice dates.
11684 * config/sh/sh.h: Likewise.
11685 * config/sh/sh.md: Likewise.
11686 * config/sh/constraints.md: Likewise.
11687 * config/sh/predicates.md: Likewise.
11688
11689 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
11690
11691 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
11692 * config/sh/sh.c (tertiary_reload_operand): Likewise.
11693
11694 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
11695
11696 * config/sh/constraints.md: Fix comment typo.
11697
11698 2012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11699
11700 PR target/52408
11701 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
11702 unsigned HOST_WIDE_INT.
11703 (zvdep_imm64): Likewise.
11704 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
11705 (vdepi_and): Likewise.
11706 Likewise for unamed 64-bit patterns.
11707 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
11708
11709 2012-03-01 Alexandre Oliva <aoliva@redhat.com>
11710
11711 PR debug/52001
11712 PR rtl-optimization/52417
11713 * cselib.c (cselib_any_perm_equivs): New variable.
11714 (cselib_reset_table): Check that it's not set when not
11715 preserving constants.
11716 (cselib_add_permanent_equiv): Set it.
11717 (cselib_have_permanent_equivalences): New.
11718 (cselib_init, cselib_finish): Reset it.
11719 * cselib.h (cselib_have_permanent_equivalences): Declare.
11720 * alias.c (get_addr): Restore earlier behavior when there
11721 aren't permanent equivalences.
11722
11723 2012-03-01 Steven Bosscher <steven@gcc.gnu.org>
11724
11725 * config/mn10300/mn10300-modes.def: Fix copyright notice.
11726 * config/v850/v850-modes.def: Fix copyright notice.
11727
11728 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
11729
11730 * doc/extend.texi (AVR Built-in Functions): Document
11731 __builtin_avr_flash_segment.
11732
11733 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
11734 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
11735 (*split.flash_segment): New insn-and-split.
11736 * config/avr/avr.c (avr_init_builtins): Add local variables:
11737 const_memx_void_node, const_memx_ptr_type_node,
11738 char_ftype_const_memx_ptr.
11739
11740 2012-03-01 Jakub Jelinek <jakub@redhat.com>
11741
11742 PR tree-optimization/52445
11743 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
11744 add ssa_name_ver, offset and size fields and change store field
11745 to bool.
11746 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
11747 (add_or_mark_expr): Likewise. Only consider previous stores
11748 with the same size and offset.
11749 (nt_init_block): Only look at gimple_assign_single_p stmts,
11750 doesn't look at rhs2.
11751
11752 2012-03-01 Richard Guenther <rguenther@suse.de>
11753
11754 PR middle-end/52443
11755 * tree-cfg.c (verify_gimple_assign_unary): Allow any
11756 conversions from integral types to pointer types.
11757
11758 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
11759
11760 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
11761 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
11762 unintentionally removed in r184616.
11763
11764 2012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
11765
11766 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
11767 3DNow from bdver1.
11768
11769 2012-02-29 Jakub Jelinek <jakub@redhat.com>
11770 Uros Bizjak <ubizjak@gmail.com>
11771
11772 PR target/52437
11773 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
11774 alternatives, add "e" constraint to the new last alternative
11775 and ! to last 3 alternatives.
11776
11777 2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
11778
11779 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
11780 DW_AT_artificial attributes at the end of the processing.
11781 (gen_array_type_die): Likewise.
11782 (gen_enumeration_type_die): Likewise.
11783 (gen_struct_or_union_type_die): Likewise.
11784 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
11785 the parent type.
11786
11787 2012-02-29 Jakub Jelinek <jakub@redhat.com>
11788
11789 PR middle-end/52419
11790 * expr.c (expand_assignment): If doing misaligned store that doesn't
11791 cover all mode bits, perform a RMW cycle.
11792
11793 PR tree-optimization/52429
11794 * tree-parloops.c (separate_decls_in_region_debug): Return early
11795 if var is LABEL_DECL.
11796
11797 2012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11798
11799 PR tree-optimization/52424
11800 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
11801 calling dom_thread_across_edge.
11802
11803 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
11804
11805 * config/avr/avr.c: Move definition of TARGET macros to end of file.
11806
11807 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
11808
11809 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
11810 * config/avr/avr.c (avr_output_bld): Remove unused function.
11811 (avr_out_sbxx_branch): Use "%T" to print bit position.
11812
11813 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
11814
11815 * config/avr/avr.md: Untabify.
11816
11817 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
11818
11819 * config/avr/avr.md (eqne): New code iterator.
11820 (*dec-and-branchsi): Use it in text peephole's condition.
11821 (*dec-and-branchhi): Ditto.
11822 (*dec-and-branchqi): Ditto.
11823
11824 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
11825
11826 PR target/49939
11827 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
11828 the device does not have the skip-bug.
11829
11830 2012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
11831
11832 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
11833 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
11834 -mpretend-cmove): New.
11835
11836 2012-02-29 Jakub Jelinek <jakub@redhat.com>
11837
11838 PR bootstrap/52397
11839 * df.h (struct df_d): Adjust comment that hard_regs_live_count
11840 doesn't count DEBUG_INSN refs.
11841 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
11842 for DEBUG_INSN refs.
11843
11844 2012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11845
11846 Partially revert:
11847
11848 2012-02-20 Richard Guenther <rguenther@suse.de>
11849 PR tree-optimization/52298
11850 * tree-vect-stmts.c (vectorizable_load): Properly use
11851 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
11852
11853 2012-02-28 Aldy Hernandez <aldyh@redhat.com>
11854
11855 PR middle-end/51752
11856 * gimple.h (gimple_in_transaction): New.
11857 (gimple_set_in_transaction): New.
11858 (struct gimple_statement_base): Add in_transaction field.
11859 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
11860 transaction loads.
11861 (tree_ssa_lim_initialize): Compute transaction bits.
11862 * tree.h (compute_transaction_bits): Protoize.
11863 * trans-mem.c (tm_region_init): Use the heap to store BB
11864 auxilliary data.
11865 (compute_transaction_bits): New.
11866
11867 2012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11868
11869 * gcc.c (display_help): Document --help=common and sort entries
11870 alphabetically.
11871
11872 2012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11873
11874 * doc/install.texi: Document check-$LANG specific shortcuts
11875
11876 2012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
11877
11878 PR target/51534
11879 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
11880 and vcgtu.
11881 * config/arm/arm_neon.h: Regenerate.
11882 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
11883 (neon_vcgeu): New insn.
11884 (neon_vcgtu): Likewise.
11885 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
11886 (ops): Unsigned comparison intrinsics call a different builtin.
11887
11888 2012-02-28 Richard Guenther <rguenther@suse.de>
11889
11890 PR target/52407
11891 * config/i386/i386.c (ix86_expand_vector_set): Fix element
11892 ordering for the VEC_CONCAT for two element vectors for
11893 V2SFmode, V2SImode and V2DImode.
11894
11895 2012-02-28 Richard Earnshaw <rearnsha@arm.com>
11896
11897 PR target/49448
11898 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
11899 detecting big-endian triplets.
11900
11901 2012-02-28 Richard Earnshaw <rearnsha@arm.com>
11902
11903 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
11904 mode if there is no type information available.
11905
11906 2012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
11907
11908 PR tree-optimization/53207
11909 * doc/invoke.texi: Document as experimental and relying on graphite.
11910
11911 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
11912
11913 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
11914 of initializer to changes from r184614.
11915
11916 2012-02-28 Richard Guenther <rguenther@suse.de>
11917
11918 PR tree-optimization/52395
11919 * tree-sra.c (build_ref_for_offset): Also look at the base
11920 TYPE_ALIGN when figuring out the alignment of the replacement.
11921
11922 2012-02-28 Richard Guenther <rguenther@suse.de>
11923
11924 PR tree-optimization/52402
11925 * ipa-prop.c (ipa_modify_call_arguments): Properly use
11926 mis-aligned types when creating the accesses at the call site.
11927
11928 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
11929
11930 * config/avr/builtins.def: New file.
11931 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
11932 * config/avr/avr.c (enum avr_builtin_id): Use it.
11933 (avr_init_builtins): Use it. And use avr_bdesc.
11934 (bdesc_1arg): Remove.
11935 (bdesc_2arg): Remove.
11936 (bdesc_3arg): Remove.
11937 (struct avr_builtin_description): Add field n_args.
11938 (avr_bdesc): New static variable using builtins.def.
11939 (avr_expand_builtin): Use it.
11940 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
11941 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
11942 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
11943
11944 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
11945
11946 PR target/52148
11947 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
11948 match only one single hard register with respective hard reg rtx.
11949 (movmemx_<mode>): Ditto.
11950 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
11951 insn anatomy of movmem[x]_<mode>.
11952 (avr_out_movmem): Same for printing assembler and operand usage.
11953
11954 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
11955
11956 PR target/49868
11957 PR target/52261
11958 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
11959 address spaces located outside of device flash.
11960
11961 * config/avr/avr.h (base_arch_s): Remove field n_segments.
11962 (mcu_type_s): Add field n_flash.
11963 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
11964 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
11965 (AVR_MCU): Add N_FLASH argument.
11966 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
11967 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
11968 macro __FLASH<n> if that address space makes sense for the device.
11969 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
11970 outside of target flash.
11971 (avr_asm_named_section): Ditto.
11972 (avr_asm_select_section): Ditto.
11973 (avr_addr_space_convert): Ditto.
11974 (avr_emit_movmemhi): Ditto.
11975 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
11976 address space is outside of device flash.
11977 (avr_insert_attributes): Ditto.
11978 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
11979 avr_current_arch->n_segments.
11980
11981 2012-02-27 H.J. Lu <hongjiu.lu@intel.com>
11982
11983 PR target/52352
11984 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
11985 (*movabs<mode>_2): Likewise.
11986
11987 2012-02-27 Jakub Jelinek <jakub@redhat.com>
11988
11989 PR target/52375
11990 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
11991 s_register_operand in the test instead of REG_P. Don't call
11992 gen_reg_rtx if it won't be used.
11993
11994 PR tree-optimization/52376
11995 * ipa-split.c (split_function): Ignore CLOBBER stmts.
11996
11997 2012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
11998
11999 * ifcvt.c (noce_get_condition): Check condition variable is not
12000 small_register_classes_for_mode_p before accepting.
12001
12002 2012-02-27 Uros Bizjak <ubizjak@gmail.com>
12003
12004 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
12005
12006 2012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
12007
12008 Revert:
12009 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
12010 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
12011 tuning parameters.
12012 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
12013
12014 2012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
12015
12016 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
12017
12018 2012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
12019
12020 * config/sh/predicates.md: Remove blank lines.
12021 * config/sh/sh.c: Fix typos in comments.
12022 * config/sh/constraints.md: Likewise.
12023 * config/sh/sh.md: Remove blank lines.
12024 Fix typos in comments. Use ;; as comment characters.
12025
12026 2012-02-26 Walter Lee <walt@tilera.com>
12027
12028 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
12029 (replace_mov_pcrel_step2): Ditto.
12030
12031 2012-02-25 Alexandre Oliva <aoliva@redhat.com>
12032
12033 PR debug/52001
12034 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
12035 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
12036 and locs that reference values newer than the non-canonical value
12037 at hand. Return the canonical value as a worst case.
12038 (memrefs_conflict_p): Walk canonical value's locs.
12039
12040 PR debug/52001
12041 * cselib.c (preserve_only_constants): Rename to...
12042 (preserve_constants_and_equivs): ... this. Split out...
12043 (invariant_or_equiv_p): ... this. Preserve plus expressions
12044 of other preserved expressions too.
12045 (cselib_reset_table): Adjust.
12046 * var-tracking.c (reverse_op): Use canonical value to build
12047 reverse operation.
12048
12049 2012-02-23 Kai Tietz <ktietz@redhat.com>
12050
12051 * config/i386/i386.c (ix86_delegitimize_address): Handle
12052 UNSPEC_PCREL plus displacement.
12053
12054 2012-02-24 Georg-Johann Lay <avr@gjlay.de>
12055
12056 PR target/52261
12057 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
12058 to test for unusedness in st X addressing.
12059
12060 2012-02-24 Richard Guenther <rguenther@suse.de>
12061
12062 PR middle-end/52361
12063 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
12064 (is_gimple_reg_type): Move inline ...
12065 * gimple.h (is_gimple_reg_type): ... here.
12066
12067 2012-02-24 Richard Guenther <rguenther@suse.de>
12068
12069 PR middle-end/52361
12070 * passes.c (execute_function_todo): When verifying SSA form
12071 verify gimple form first.
12072 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
12073
12074 2012-02-24 Richard Guenther <rguenther@suse.de>
12075
12076 PR middle-end/52355
12077 * fold-const.c (fold_addr_of_array_ref_difference): New function.
12078 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
12079
12080 2012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12081
12082 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
12083
12084 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12085
12086 * tree-phinodes.c (make_phi_node): Mark static.
12087 * tree-flow.h (make_phi_node): Remove extern decl.
12088 * doc/gimple.texi (make_phi_node): Remove documentation.
12089
12090 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12091
12092 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
12093 * tree-ssa-sccvn.c (print_scc): Ditto.
12094
12095 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12096
12097 * doc/passes.texi (Full redundancy elimination): Fix typo.
12098
12099 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12100
12101 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
12102
12103 2012-02-23 Eric Botcazou <ebotcazou@adacore.com>
12104
12105 PR bootstrap/52287
12106 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
12107
12108 2012-02-23 Uros Bizjak <ubizjak@gmail.com>
12109
12110 PR c/52290
12111 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
12112
12113 2012-02-23 Georg-Johann Lay <avr@gjlay.de>
12114
12115 * config/avr/avr.md (code_stdname): Add ior, xor.
12116 (xior): New code iterator.
12117 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
12118 (*<code_stdname><mode>qi.byte1-3): Ditto.
12119
12120 2012-02-23 Jakub Jelinek <jakub@redhat.com>
12121
12122 PR tree-optimization/52019
12123 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
12124 CLOBBER stmts.
12125
12126 2012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12127
12128 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
12129 HAVE_INITFINI_ARRAY to work around namespace pollution in
12130 certain versions of newlib system headers.
12131 * config.in: Regenerate.
12132 * configure: Regenerate.
12133 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
12134 instead of HAVE_INITFINI_ARRAY.
12135
12136 2012-02-22 Uros Bizjak <ubizjak@gmail.com>
12137
12138 PR target/52330
12139 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
12140 is not offsettable memory reference.
12141
12142 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
12143
12144 PR target/18145
12145 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
12146 setting avr_need_clear_bss_p for __gnu_lto* symbols.
12147
12148 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
12149
12150 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
12151 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
12152
12153 2012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12154
12155 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
12156 library on Solaris 8 even without TLS support.
12157 * configure: Regenerate.
12158
12159 2012-02-22 Richard Guenther <rguenther@suse.de>
12160
12161 PR middle-end/52329
12162 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
12163 for GIMPLE_DEBUG stmts.
12164
12165 2012-02-22 Martin Jambor <mjambor@suse.cz>
12166
12167 PR middle-end/51782
12168 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
12169 according to the base object.
12170
12171 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
12172
12173 PR rtl-optimization/50063
12174 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
12175 and 2 (8-bit SP) in operand 2.
12176 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
12177 setup to use movhi_sp_r instead of vanilla move to write SP.
12178 Adjust REG_CFA notes to superseed unspec.
12179 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
12180 of vanilla move.
12181 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
12182 known to be off) only with TARGET_NO_INTERRUPTS. Never use
12183 irq_state 1 (IRQ known to be on) here.
12184
12185 2012-02-21 Bernd Schmidt <bernds@codesourcery.com>
12186
12187 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
12188 WORDS_BIG_ENDIAN.
12189 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
12190 assign_hard_reg): Likewise.
12191
12192 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
12193
12194 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
12195
12196 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
12197
12198 * config/avr/avr.md
12199 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
12200 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
12201
12202 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
12203
12204 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
12205 prototype from here to...
12206 * config/avr/avr.h: ...here.
12207
12208 2012-02-21 Richard Earnshaw <rearnsha@arm.com>
12209
12210 PR target/52294
12211 * thumb2.md (thumb2_shiftsi3_short): Split register and
12212 immediate shifts. For register shifts tie operands 0 and 1.
12213 (peephole2 for above): Check that register-controlled shifts
12214 have suitably tied operands.
12215
12216 2012-02-21 Quentin Neill <quentin.neill@amd.com>
12217
12218 PR target/52137
12219 * config/i386/bdver1.md (bdver1_call, bdver1_push,
12220 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
12221 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
12222 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
12223 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
12224 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
12225 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
12226 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
12227 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
12228 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
12229 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
12230 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
12231 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
12232 bdver1_ssevector_avx256_unaligned_load,
12233 bdver1_ssevector_sse128_unaligned_load,
12234 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
12235 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
12236 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
12237 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
12238 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
12239 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
12240 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
12241 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
12242 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
12243 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
12244 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
12245 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
12246 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
12247 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
12248 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
12249 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
12250 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
12251 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
12252 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
12253 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
12254 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
12255 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
12256 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
12257 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
12258 bdver1_ssediv_double_load, bdver1_ssediv_double,
12259 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
12260 Add "bdver2" attribute.
12261
12262 2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12263
12264 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
12265 default if possible and not specified otherwise.
12266
12267 2012-02-21 Richard Guenther <rguenther@suse.de>
12268
12269 PR middle-end/52314
12270 * gimplify.c (create_tmp_from_val): Use the main variant type
12271 for the type of the temporary we create.
12272
12273 2012-02-21 Richard Guenther <rguenther@suse.de>
12274
12275 PR tree-optimization/52324
12276 * gimplify.c (gimplify_expr): When re-gimplifying expressions
12277 do not gimplify a MEM_REF address operand if it is already
12278 in suitable form.
12279
12280 2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12281
12282 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
12283 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
12284
12285 2012-02-21 Richard Guenther <rguenther@suse.de>
12286
12287 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
12288 nested_in_vect_loop.
12289
12290 2012-02-21 Jakub Jelinek <jakub@redhat.com>
12291
12292 PR tree-optimization/52318
12293 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
12294 vdef also to non-pure/const call stmts in the sequence.
12295
12296 2012-02-21 Tristan Gingold <gingold@adacore.com>
12297
12298 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
12299
12300 2012-02-20 David S. Miller <davem@davemloft.net>
12301
12302 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
12303 don't use the "rd %pc" instruction on v9 for PIC register loads.
12304
12305 2012-02-20 Aldy Hernandez <aldyh@redhat.com>
12306
12307 PR middle-end/52141
12308 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
12309 in a transaction safe function.
12310
12311 2012-02-20 Kai Tietz <ktietz@redhat.com>
12312
12313 PR target/52238
12314 * stor-layout.c (place_field): Handle desired_align for
12315 ms-bitfields, too.
12316
12317 2012-02-20 Richard Guenther <rguenther@suse.de>
12318
12319 PR tree-optimization/52298
12320 * tree-vect-stmts.c (vectorizable_store): Properly use
12321 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
12322 outer loops.
12323 (vectorizable_load): Likewise.
12324 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
12325 Access DR_STEP after ensuring it is not NULL.
12326
12327 2012-02-20 Jakub Jelinek <jakub@redhat.com>
12328
12329 PR tree-optimization/52286
12330 * fold-const.c (fold_binary_loc): For (X & C1) | C2
12331 optimization use double_int_to_tree instead of build_int_cst_wide,
12332 rewrite to use double_int vars.
12333
12334 2012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12335
12336 PR target/50166
12337 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
12338 Define _start.
12339 Remove -e 0 from $gcc_cv_ld invocation.
12340 Only use __GLIBC_PREREQ if defined.
12341 Enable on Solaris since Solaris 8 patch.
12342 (gcc_SUN_LD_VERSION): New macro.
12343 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
12344 gcc_SUN_LD_VERSION for version number format.
12345 * configure: Regenerate.
12346 * varasm.c (get_elf_initfini_array_priority_section): Set
12347 SECTION_NOTYPE for non-default priority.
12348 Use get_section instead of get_unnamed_section to emit
12349 .init_array/.fini_array with default priority.
12350
12351 2012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
12352
12353 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
12354 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
12355 (mips_start_unique_function, mips_output_mips16_rdhwr)
12356 (mips_code_end): New functions.
12357 (TARGET_ASM_CODE_END): Define.
12358
12359 2012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
12360
12361 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
12362 to stubs with non-sibling calls.
12363
12364 2012-02-18 Sandra Loosemore <sandra@codesourcery.com>
12365
12366 * doc/invoke.texi (-fira-* options): Copy-edit.
12367 (ira-* parameters): Copy-edit.
12368
12369 2012-02-17 Sandra Loosemore <sandra@codesourcery.com>
12370
12371 * doc/invoke.texi: Minor copy-edits to bring into conformance with
12372 GCC coding conventions.
12373
12374 2012-02-17 Sandra Loosemore <sandra@codesourcery.com>
12375
12376 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
12377 when used as adjectives.
12378
12379 2012-02-16 Sandra Loosemore <sandra@codesourcery.com>
12380
12381 * doc/invoke.texi: Clean up "that"/"which" confusion.
12382
12383 2012-02-17 Steven Bosscher <steven@gcc.gnu.org>
12384
12385 * system.h: Poison SMALL_REGISTER_CLASSES
12386 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
12387 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
12388
12389 2012-02-16 Jakub Jelinek <jakub@redhat.com>
12390
12391 PR tree-optimization/52285
12392 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
12393 when deciding if a call is a tail call or tail recursion.
12394
12395 2012-02-16 Kai Tietz <ktietz@redhat.com>
12396
12397 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
12398 interger-constant displacement for UNSPEC_PCREL.
12399
12400 2012-02-16 Jakub Jelinek <jakub@redhat.com>
12401
12402 PR rtl-optimization/52208
12403 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
12404 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
12405
12406 PR tree-optimization/52255
12407 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
12408 loop->header has virtual PHI, but exit_e->dest doesn't, add
12409 virtual PHI to exit_e->dest and adjust all uses after the loop.
12410
12411 PR debug/52260
12412 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
12413 children with clone_tree_hash, not after it.
12414
12415 2012-02-16 Iain Sandoe <iains@gcc.gnu.org>
12416
12417 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
12418 extended identifiers.
12419
12420 2012-02-16 Jakub Jelinek <jakub@redhat.com>
12421
12422 PR middle-end/51929
12423 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
12424 a same_body_alias, also test whether e->callee isn't a former
12425 or current clone of the decl this is a same body alias of.
12426
12427 PR translation/52264
12428 * cgraphunit.c (verify_cgraph_node): Fix a typo.
12429
12430 2012-02-15 Sandra Loosemore <sandra@codesourcery.com>
12431
12432 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
12433
12434 2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
12435
12436 PR target/52199
12437 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
12438 force_reg instead of copy_to_reg for better optimization. Force
12439 non-register or memory operands into a register.
12440
12441 2012-02-15 Andrew MacLeod <amacleod@redhat.com>
12442
12443 * extend.texi: Reserve upper bits of memory model for future use.
12444
12445 2012-01-15 Georg-Johann Lay <avr@gjlay.de>
12446 Anatoly Sokolov <aesok@post.ru>
12447 Eric Weddington <eric.weddington@atmel.com>
12448
12449 PR target/52261
12450 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
12451 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
12452 Rewrite initializers for .macro.
12453 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
12454 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
12455 atxmega32d4, atxmega32x1.
12456 avrxmega4: atxmega64a3, atxmega64d3.
12457 avrxmega5: atxmega64a1, atxmega64a1u.
12458 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
12459 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
12460 avrxmega7: atxmega128a1, atxmega128a1u.
12461 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
12462 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
12463 (struct base_arch_s): Rename reserved to xmega_p.
12464 Rename reserved2 to have_rampd.
12465 (AVR_XMEGA): New define.
12466 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
12467 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
12468 * config/avr/predicates.md (io_address_operand): Take into
12469 account SFR offset.
12470 (low_io_address_operand): Ditto.
12471 (high_io_address_operand): Ditto.
12472 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
12473 (enabled, movhi_sp_r): Use them.
12474 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
12475 cpp_define_formatted to built-in define __AVR_ARCH__.
12476 (__AVR_XMEGA__): New built-in define.
12477 (__AVR_HAVE_RAMPD__): New built-in define.
12478 (__AVR_HAVE_RAMPX__): New built-in define.
12479 (__AVR_HAVE_RAMPY__): New built-in define.
12480 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
12481
12482 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
12483 (avr_option_override): Initialize them.
12484 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
12485 (avr_init_expanders): Initialize them. No more block several calls.
12486 (emit_push_sfr): New static function.
12487 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
12488 Handle AVR_XMEGA.
12489 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
12490 (avr_print_operand): Print addreeses as symbols for
12491 RAMPX, RAMPY, RAMPD, CCP.
12492 (output_movhi): Handle AVR_XMEGA when writing to SP.
12493 (avr_out_movhi_mr_r_xmega): New static function.
12494 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
12495 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
12496 __RAMPD__, __CCP__ as needed.
12497
12498 * config/avr/multilib.h: Regenerate.
12499 * config/avr/t-multilib: Regenerate.
12500 * config/avr/avr-tables.opt: Regenerate.
12501
12502 2012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
12503
12504 PR tree-optimization/50561
12505 * graphite-flattening.c (lst_project_loop): Do not
12506 remove old scattering dimensions after flattening.
12507 (lst_do_flatten): Likewise.
12508
12509 2012-02-15 Georg-Johann Lay <avr@gjlay.de>
12510
12511 * doc/extend.texi (AVR Built-in Functions): Remove doc for
12512 __builtin_avr_map8, __builtin_avr_map16.
12513 Document __builtin_avr_insert_bits.
12514
12515 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
12516 (insert_bits): New insn.
12517 (adjust_len.map_bits): Rename to insert_bits.
12518 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
12519 * avr-protos.h (avr_out_map_bits): Remove.
12520 (avr_out_insert_bits, avr_has_nibble_0xf): New.
12521 * config/avr/constraints.md (Cxf,C0f): New.
12522 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
12523 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
12524 New built-in define __BUILTIN_AVR_INSERT_BITS.
12525 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
12526 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
12527 (avr_move_bits): Rewrite.
12528 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
12529 functions.
12530 (avr_map_op_t): New typedef.
12531 (avr_map_op): New static variable.
12532 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
12533 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
12534 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
12535 (bdesc_3arg, avr_expand_triop_builtin): New.
12536 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
12537 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
12538 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
12539 (avr_map_equal_p, avr_map_sig_p): Remove.
12540 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
12541 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
12542 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
12543 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
12544 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
12545 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
12546
12547 2012-02-14 Bernd Schmidt <bernds@codesourcery.com>
12548
12549 * config/c6x/c6x.md (reserve_cycles): New attribute.
12550 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
12551 don't reserve functional units after the branch occurs.
12552
12553 2012-02-14 Aldy Hernandez <aldyh@redhat.com>
12554
12555 PR middle-end/52142
12556 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
12557 functions into non-tm_pure functions.
12558
12559 2012-02-14 Eric Botcazou <ebotcazou@adacore.com>
12560
12561 PR lto/52178
12562 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
12563 (iterative_hash_canonical_type): Likewise.
12564 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
12565 the dead edges.
12566
12567 2012-02-14 Bernd Schmidt <bernds@codesourcery.com>
12568
12569 * haifa-sched.c (prune_ready_list): Ensure that if there is a
12570 sched-group insn, it either remains alone or the entire list is pruned.
12571
12572 2012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
12573
12574 * doc/install.texi (Prerequisites): Fix grammar.
12575 (Configuration): Likewise.
12576
12577 2012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
12578
12579 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
12580 MPC as part of GCC before describing configuring with --with-gmp etc.
12581 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
12582 sources are present.
12583
12584 2012-02-14 Jakub Jelinek <jakub@redhat.com>
12585
12586 PR debug/51950
12587 * dwarf2out.c (clone_tree_hash): New function.
12588 (copy_decls_walk): Use it instead of clone_tree.
12589
12590 2012-02-14 Richard Guenther <rguenther@suse.de>
12591
12592 PR tree-optimization/52244
12593 PR tree-optimization/51528
12594 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
12595 replacements for integral types.
12596
12597 2012-02-14 Walter Lee <walt@tilera.com>
12598
12599 * config.gcc: Handle tilegx and tilepro.
12600 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
12601 tilegx and tilepro.
12602 Add HAVE_AS_TLS check for tilegx and tilepro.
12603 * configure: Regenerate.
12604 * doc/contrib.texi: Add Mat Hostetter and self.
12605 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
12606 Document instruction intrinsics and network accessing intrinsics.
12607 (TILEPro Built-in Functions): New node. Document instruction
12608 intrinsics and network accessing intrinsics.
12609 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
12610 (Specific, tilepro-*-linux*): Likewise.
12611 * doc/invoke.texi (TILE-Gx Options): New section.
12612 (TILEPro Options): New section.
12613 * doc/md.texi (TILE-Gx): New section.
12614 (TILEPro): New section.
12615 * common/config/tilegx/tilegx-common.c: New file.
12616 * common/config/tilepro/tilepro-common.c: New file.
12617 * config/tilegx/constraints.md: New file.
12618 * config/tilegx/linux.h: New file.
12619 * config/tilegx/mul-tables.c: New file.
12620 * config/tilegx/predicates.md: New file.
12621 * config/tilegx/sync.md: New file.
12622 * config/tilegx/t-tilegx: New file.
12623 * config/tilegx/tilegx-builtins.h: New file.
12624 * config/tilegx/tilegx-c.c: New file.
12625 * config/tilegx/tilegx-generic.md: New file.
12626 * config/tilegx/tilegx-modes.def: New file.
12627 * config/tilegx/tilegx-multiply.h: New file.
12628 * config/tilegx/tilegx-protos.h: New file.
12629 * config/tilegx/tilegx.c: New file.
12630 * config/tilegx/tilegx.h: New file.
12631 * config/tilegx/tilegx.md: New file.
12632 * config/tilegx/tilegx.opt: New file.
12633 * config/tilepro/constraints.md: New file.
12634 * config/tilepro/gen-mul-tables.cc: New file.
12635 * config/tilepro/linux.h: New file.
12636 * config/tilepro/mul-tables.c: New file.
12637 * config/tilepro/predicates.md: New file.
12638 * config/tilepro/t-tilepro: New file.
12639 * config/tilepro/tilepro-builtins.h: New file.
12640 * config/tilepro/tilepro-c.c: New file.
12641 * config/tilepro/tilepro-generic.md: New file.
12642 * config/tilepro/tilepro-modes.def: New file.
12643 * config/tilepro/tilepro-multiply.h: New file.
12644 * config/tilepro/tilepro-protos.h: New file.
12645 * config/tilepro/tilepro.c: New file.
12646 * config/tilepro/tilepro.h: New file.
12647 * config/tilepro/tilepro.md: New file.
12648 * config/tilepro/tilepro.opt: New file.
12649
12650 2012-02-14 Jakub Jelinek <jakub@redhat.com>
12651
12652 PR tree-optimization/52210
12653 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
12654 vect_model_simple_cost with two entry vect_def_type array instead
12655 of an address of dt.
12656
12657 2012-02-14 Richard Guenther <rguenther@suse.de>
12658
12659 PR lto/52178
12660 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
12661 Do not stream DECL_QUALIFIER.
12662 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
12663 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
12664 (find_decls_types_r): Do not walk DECL_QUALIFIER.
12665
12666 2012-02-14 Jakub Jelinek <jakub@redhat.com>
12667
12668 PR c/52181
12669 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
12670 newdecl.
12671
12672 2012-02-13 Jakub Jelinek <jakub@redhat.com>
12673
12674 PR bootstrap/52172
12675 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
12676 * cselib.c (cselib_subst_to_values_from_insn): New function.
12677 * sched-deps.c (add_insn_mem_dependence,
12678 sched_analyze_1, sched_analyze_2): Use it.
12679
12680 2012-02-13 Jan Hubicka <jh@suse.cz>
12681
12682 PR middle-end/52214
12683 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
12684
12685 2012-02-13 Eric Botcazou <ebotcazou@adacore.com>
12686
12687 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
12688 (GTM_SELF_SPECS): Define if not already defined.
12689 (driver_self_specs): Add GTM_SELF_SPECS.
12690 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
12691 (GTM_SELF_SPECS): Define.
12692 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
12693 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
12694
12695 2012-02-13 Jakub Jelinek <jakub@redhat.com>
12696
12697 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
12698 away if seen.
12699
12700 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
12701
12702 PR middle-end/52230
12703 * omp-low.c (expand_omp_for): If a static schedule without chunk size
12704 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
12705
12706 2012-02-13 Andrew MacLeod <amacleod@redhat.com>
12707
12708 PR c/52190
12709 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
12710
12711 2012-02-13 Richard Guenther <rguenther@suse.de>
12712
12713 PR translation/52211
12714 * passes.c (enable_disable_pass): Fix typo.
12715
12716 2012-02-13 Jakub Jelinek <jakub@redhat.com>
12717
12718 PR middle-end/52209
12719 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
12720 XOR for reduce_bit_field if type is unsigned.
12721
12722 2012-02-12 Eric Botcazou <ebotcazou@adacore.com>
12723
12724 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
12725 disallow changes from SFmode to mode with different size in FP regs.
12726
12727 2012-02-12 Robert Millan <rmh@gnu.org>
12728 Gerald Pfeifer <gerald@pfeifer.com>
12729
12730 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
12731 Tweak comment.
12732
12733 2012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
12734
12735 PR rtl-optimization/52175
12736 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
12737 to frame-related instructions.
12738
12739 2012-02-10 Jason Merrill <jason@redhat.com>
12740
12741 PR c++/51910
12742 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
12743 (demangle_new_symbols): Fill it.
12744 (scan_linker_output): Walk it.
12745 (start_tweaking): Split out from scan_linker_output.
12746 (maybe_tweak): Update sym->chosen.
12747 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
12748
12749 2012-02-11 Jakub Jelinek <jakub@redhat.com>
12750
12751 PR debug/52132
12752 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
12753
12754 2012-02-11 Uros Bizjak <ubizjak@gmail.com>
12755
12756 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
12757 having the same mode as previous compare.
12758
12759 2012-02-10 Eric Botcazou <ebotcazou@adacore.com>
12760
12761 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
12762 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
12763 (nonlocal_goto_internal): Likewise.
12764 (nonlocal_goto): Emit a use and an indirect jump directly.
12765
12766 2012-02-10 Andrew MacLeod <amacleod@redhat.com>
12767
12768 PR c/52190
12769 * doc/extend.texi : Update comments for __atomic_compare_exchange and
12770 __atomic_{is,always}_lock_free.
12771
12772 2012-02-10 Uros Bizjak <ubizjak@gmail.com>
12773
12774 PR target/52146
12775 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
12776 negative constant address for TARGET_X32.
12777
12778 2012-02-10 Richard Henderson <rth@redhat.com>
12779
12780 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
12781 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
12782 for GIMPLE_TRANSACTION. Tidy if's into a switch.
12783
12784 2012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12785 Ira Rosen <irar@il.ibm.com>
12786
12787 PR tree-optimization/50031
12788 * targhooks.c (default_builtin_vectorization_cost): Handle
12789 vec_promote_demote.
12790 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
12791 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
12792 all types of reduction and pattern statements.
12793 (vect_estimate_min_profitable_iters): Likewise.
12794 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
12795 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
12796 for explicit realigns.
12797 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
12798 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
12799 vec_promote_demote.
12800 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
12801 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
12802 vec_perm for VSX and handle vec_promote_demote.
12803
12804 2012-02-10 Jakub Jelinek <jakub@redhat.com>
12805
12806 PR middle-end/52177
12807 * builtins.c (fold_builtin_atomic_always_lock_free,
12808 expand_builtin_atomic_always_lock_free,
12809 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
12810 Return and/or test boolean_true_node/boolean_false_node instead of
12811 integer_one_node/integer_zero_node.
12812
12813 2012-02-10 Jan Hubicka <jh@suse.cz>
12814
12815 PR middle-end/48600
12816 * predict.c (predict_paths_for_bb): Prevent looping.
12817 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
12818
12819 2012-02-10 Roman Zhuykov <zhroma@ispras.ru>
12820
12821 * config/arm/arm.c (output_move_double): In one case properly
12822 count number of instructions that will be emitted.
12823
12824 2012-02-10 Richard Guenther <rguenther@suse.de>
12825
12826 PR translation/52193
12827 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
12828
12829 2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
12830
12831 PR middle-end/52140
12832 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
12833
12834 2012-02-09 Jakub Jelinek <jakub@redhat.com>
12835
12836 PR debug/52165
12837 * var-tracking.c (emit_note_insn_var_location): If
12838 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
12839 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
12840 non-NOTE_DURING_CALL_P insn.
12841
12842 2012-02-09 Bin Cheng <bin.cheng@arm.com>
12843
12844 PR middle-end/51867
12845 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
12846
12847 2012-02-08 Magnus Granberg <zorry@gentoo.org>
12848
12849 PR driver/48524
12850 * gcc.c (switch_matches) Support switches with separated form,
12851 -D and -U.
12852
12853 2012-02-08 Georg-Johann Lay <avr@gjlay.de>
12854
12855 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
12856 (SP_ADDR): Ditto.
12857 (RAMPZ_ADDR): Ditto.
12858 * config/avr/avr.c (avr_addr_t): New typedef.
12859 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
12860 (avr_init_expanders): Initialize it.
12861 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
12862 SREG_ADDR.
12863 (expand_epilogue): Ditto.
12864 (avr_print_operand): Ditto.
12865 (avr_file_start): Ditto.
12866 (avr_emit_movmemhi): Ditto.
12867
12868 2012-02-08 Richard Guenther <rguenther@suse.de>
12869
12870 PR tree-optimization/46886
12871 * tree-flow.h (do_while_loop_p): Declare.
12872 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
12873 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
12874
12875 2012-02-08 Andrew MacLeod <amacleod@redhat.com>
12876
12877 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
12878 always succeed for integers larger than a native word.
12879
12880 2012-02-08 Richard Guenther <rguenther@suse.de>
12881
12882 PR rtl-optimization/52170
12883 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
12884 properly handle integer vector modes.
12885
12886 2012-02-08 Jakub Jelinek <jakub@redhat.com>
12887
12888 PR gcov-profile/52150
12889 * coverage.c: Include target.h.
12890 (build_var): Call targetm.strip_name_encoding on the assembler name.
12891 Change one _ into . or $ if the target allows it.
12892 * Makefile.in (coverage.o): Depend on $(TARGET_H).
12893
12894 PR rtl-optimization/52139
12895 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
12896 is a BARRIER after emit_insn_after_noloc, move BB_END
12897 to the last non-BARRIER insn before it.
12898
12899 2012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
12900
12901 PR middle-end/24306
12902 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
12903 (mips_gimplify_va_arg_expr): Call it instead of
12904 std_gimplify_va_arg_expr.
12905
12906 2012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
12907
12908 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
12909 message for -mno-pointers-to-nested-function.
12910
12911 2012-02-07 Eric Botcazou <ebotcazou@adacore.com>
12912
12913 PR middle-end/51994
12914 * expr.c (get_inner_reference): If there is an offset, add a negative
12915 bit position to it (if any).
12916
12917 2012-02-07 Jakub Jelinek <jakub@redhat.com>
12918
12919 PR rtl-optimization/52060
12920 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
12921 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
12922 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
12923 and/or i0src_copy2 when needed.
12924
12925 2012-02-07 Jakub Jelinek <jakub@redhat.com>
12926
12927 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
12928 or LTOPLUGINSONAME if have_c.
12929
12930 * config/freebsd-spec.h: Add comment about what macros can be defined
12931 in this header.
12932 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
12933 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
12934 here instead.
12935
12936 2012-02-07 Richard Guenther <rguenther@suse.de>
12937
12938 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
12939 newline in -alias dumps.
12940
12941 2012-02-07 Kai Tietz <ktietz@redhat.com>
12942 Dave Korn <dave.korn.cygwin@gmail.com>
12943
12944 PR target/40068
12945 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
12946 Take care that typinfo gets dllexport-attribute.
12947
12948 2012-02-07 Jakub Jelinek <jakub@redhat.com>
12949
12950 PR middle-end/52074
12951 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
12952 if modifier < EXPAND_SUM call force_operand on the result.
12953
12954 2012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
12955
12956 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
12957 adding __forwarder_dst__ prefix if a forwarder_section attribute is
12958 present.
12959 (epiphany_function_type): Replace types for specific interrupts with
12960 EPIPHANY_FUNCTION_INTERRUPT.
12961 (EPIPHANY_INTERRUPT_P): Update.
12962 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
12963 New static function.
12964 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
12965 <disinterrupt>: Affects type identity.
12966 (epiphany_handle_interrupt_attribute): Handle variable number of
12967 arguments.
12968 (epiphany_compute_function_type): Update for new
12969 epiphany_function_type definition.
12970 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
12971 handlers with a longcall forwarder.
12972 (epiphany_start_function): Handle multiple interrupt arguments and/or
12973 forwarder_section attribute.
12974
12975 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
12976 libgloss.
12977
12978 2012-02-07 Alan Modra <amodra@gmail.com>
12979
12980 PR target/52107
12981 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
12982 subregs of TFmode.
12983
12984 2012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12985
12986 PR tree-optimization/50969
12987 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
12988 use vec_perm rather than vector_stmt.
12989 (vect_model_load_cost): Likewise.
12990 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
12991 vec_perm to be the same as other vector statements.
12992 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
12993 cost of vec_perm for TARGET_VSX.
12994
12995 2012-02-06 Richard Guenther <rguenther@suse.de>
12996
12997 PR tree-optimization/52115
12998 * tree-sra.c (access_has_replacements_p): New function.
12999 (sra_modify_assign): Use it to decide whether a use is uninitialized.
13000
13001 2012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
13002
13003 PR middle-end/52047
13004 * trans-mem.c (expand_call_tm): Add an assertion.
13005 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
13006 functions.
13007
13008 2012-02-06 Richard Guenther <rguenther@suse.de>
13009
13010 PR tree-optimization/50955
13011 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
13012 raise cost of expressions that replace an address with an
13013 expression based on a different pointer.
13014
13015 2012-02-06 Jakub Jelinek <jakub@redhat.com>
13016
13017 PR target/52129
13018 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
13019 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
13020
13021 2012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
13022
13023 PR c++/48680
13024 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
13025 -Weffc++ and specify guidelines come from second edition.
13026
13027 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
13028
13029 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
13030 (sibcall_value_multiple_internal, call_split, call_internal_direct)
13031 (call_direct_split, call_value_split, call_value_internal_direct)
13032 (call_value_direct_split, call_value_multiple_split): Use jal and
13033 jal_macro attributes.
13034
13035 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
13036
13037 * reload1.c (reload_regs_reach_end_p): Replace with...
13038 (reload_reg_rtx_reaches_end_p): ...this function.
13039 (new_spill_reg_store): Update commentary.
13040 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
13041 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
13042 before setting new_spill_reg_store.
13043 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
13044 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
13045 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
13046 for non-spill reload registers.
13047
13048 2012-02-05 Ira Rosen <irar@il.ibm.com>
13049
13050 PR tree-optimization/52091
13051 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
13052 (vect_is_simple_use_1): Likewise.
13053 * tree-vect-loop.c (vectorizable_reduction): Update calls
13054 to vect_is_simple_use_1 and vect_is_simple_use.
13055 (vectorizable_live_operation): Likewise.
13056 * tree-vect-patterns.c (widened_name_p,
13057 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
13058 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
13059 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
13060 vectorizable_shift,vectorizable_operation, vectorizable_store,
13061 vectorizable_load): Likewise.
13062 (vect_is_simple_cond): Add an argument, pass it to
13063 vect_is_simple_use_1.
13064 (vectorizable_condition): Update calls to vect_is_simple_cond,
13065 vect_is_simple_use.
13066 (vect_is_simple_use): Add an argument, the statement in which
13067 OPERAND is used. Check that if OPERAND's def stmt is a double
13068 reduction phi node, the use is a phi node too.
13069 (vect_is_simple_use_1): Add an argument, pass it to
13070 vect_is_simple_use.
13071 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
13072 to vect_is_simple_use.
13073
13074 2012-02-04 Jakub Jelinek <jakub@redhat.com>
13075
13076 PR rtl-optimization/52095
13077 * modulo-sched.c (dump_insn_locator): New function.
13078 (loop_canon_p, sms_schedule): Use it.
13079
13080 PR rtl-optimization/52113
13081 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
13082 even for decomposable shift/zext insns.
13083
13084 2012-02-03 Jakub Jelinek <jakub@redhat.com>
13085 Zdenek Dvorak <ook@ucw.cz>
13086
13087 PR rtl-optimization/52092
13088 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
13089 on get_iv_value result.
13090
13091 2012-02-02 Andrew Pinski <apinski@cavium.com>
13092
13093 PR middle-end/47982
13094 PR middle-end/43967
13095 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
13096
13097 2012-02-02 Jakub Jelinek <jakub@redhat.com>
13098
13099 PR middle-end/48071
13100 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
13101
13102 2012-02-02 Vladimir Makarov <vmakarov@redhat.com>
13103
13104 PR rtl-optimization/49800
13105 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
13106 (sched_finish): Call regstat_free_n_sets_and_refs.
13107
13108 2012-02-02 Jia Liu <proljc@gmail.com>
13109
13110 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
13111 than operand 2.
13112
13113 2012-02-02 Jan Hubicka <jh@suse.cz>
13114 Tom de Vries <tom@codesourcery.com>
13115
13116 PR middle-end/51998
13117 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
13118 * varpool.c (varpool_analyze_pending_decls): Likewise.
13119
13120 2012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
13121 Jayant R Sonar <jayant.sonar@kpitcummins.com>
13122
13123 * config.gcc: Add cr16-* support.
13124
13125 * doc/extend.texi: Document cr16 extensions.
13126 * doc/install.texi: Document cr16 install.
13127 * doc/invoke.texi: Document cr16 options.
13128 * doc/md.texi: Document cr16 constraints.
13129
13130 * common/config/cr16/cr16-common.c: New file.
13131 * config/cr16/cr16.c: New file.
13132 * config/cr16/cr16.h: New file.
13133 * config/cr16/cr16.md: New file.
13134 * config/cr16/cr16.opt: New file.
13135 * config/cr16/cr16-protos.h: New file.
13136 * config/cr16/predicates.md: New file.
13137 * config/cr16/constraints.md: New file.
13138 * config/cr16/t-cr16: New file.
13139
13140 2012-02-02 Jakub Jelinek <jakub@redhat.com>
13141
13142 PR target/52086
13143 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
13144 that operands[2] is either immediate, or q_regs_operand.
13145
13146 PR tree-optimization/52073
13147 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
13148 a pattern stmt for pattern uses, ignore uses outside of the loop.
13149
13150 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
13151
13152 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
13153 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
13154 (OUT_AS1, OUT_AS2): Remove.
13155
13156 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
13157
13158 PR rtl-optimization/51374
13159 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
13160 to cross other volatile_refs_p insns.
13161
13162 2012-02-01 Richard Guenther <rguenther@suse.de>
13163
13164 * doc/invoke.texi (fno-inline): Clarify documentation.
13165 (finline-small-functions): Likewise.
13166 (finline-functions): Likewise.
13167 * common.opt (finline): Adjust comment and documentation.
13168 (finline-small-functions): Clarify documentation.
13169 (finline-functions): Likewise.
13170 (finline-functions-called-once): Likewise.
13171
13172 2012-02-01 Tristan Gingold <gingold@adacore.com>
13173
13174 * c-typeck.c (composite_type): Keep mode for pointers.
13175
13176 2012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
13177
13178 * function.h (regno_reg_rtx): Adjust comment.
13179 * reginfo.c (init_reg_modes_target): Only use the previous mode
13180 if it fits within one register. Remove MIPS comment.
13181
13182 2012-01-31 Jakub Jelinek <jakub@redhat.com>
13183
13184 PR bootstrap/52058
13185 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
13186
13187 2012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13188
13189 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
13190 to srak instruction.
13191
13192 2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
13193
13194 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
13195
13196 2012-01-31 Jakub Jelinek <jakub@redhat.com>
13197
13198 PR bootstrap/52041
13199 PR bootstrap/52039
13200 PR target/51974
13201 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
13202
13203 2012-01-31 Richard Guenther <rguenther@suse.de>
13204
13205 PR tree-optimization/51528
13206 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
13207 assigns.
13208
13209 2012-01-31 Jakub Jelinek <jakub@redhat.com>
13210
13211 PR bootstrap/52041
13212 PR bootstrap/52039
13213 PR target/51974
13214 * ree.c (add_removable_extension): Change def_map argument
13215 to unsigned *, store in def_map 1 + offset into *insn_list vector
13216 instead of pointers into the vector.
13217 (find_removable_extensions): Adjust caller.
13218
13219 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
13220
13221 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
13222 Transform all "* quoted-c-code" to { c-code }.
13223 Remove redundant test for "optimize" in combine patterns.
13224 Move (include "avr-dimode.md") to end of file.
13225
13226 2012-01-30 Bin Cheng <bin.cheng@arm.com>
13227
13228 PR target/51835
13229 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
13230 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
13231
13232 2012-01-30 Richard Guenther <rguenther@suse.de>
13233
13234 PR tree-optimization/52028
13235 * tree-loop-distribution.c (ldist_gen): Properly update
13236 virtual SSA form.
13237
13238 2012-01-30 Jakub Jelinek <jakub@redhat.com>
13239
13240 PR debug/52027
13241 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
13242 set_cur_line_info_table if not emitting debug info.
13243
13244 PR tree-optimization/52046
13245 * tree-vect-patterns.c (check_bool_pattern): Give up if
13246 a comparison could throw.
13247
13248 PR debug/52048
13249 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
13250
13251 2012-01-30 Richard Guenther <rguenther@suse.de>
13252
13253 PR tree-optimization/52045
13254 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
13255 SSA form if cfgcleanup did anything.
13256
13257 2012-01-30 Richard Guenther <rguenther@suse.de>
13258
13259 PR tree-optimization/52045
13260 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
13261 before computing final todo.
13262
13263 2012-01-30 Richard Guenther <rguenther@suse.de>
13264
13265 PR tree-optimization/51528
13266 * tree-sra.c (sra_modify_assign): Re-factor in preparation
13267 for PR51528 fix.
13268
13269 2012-01-30 Paolo Bonzini <bonzini@gnu.org>
13270
13271 * df-problems.c (df_kill_notes): Check that the use refers
13272 to the note under examination.
13273
13274 2012-01-30 Eric Botcazou <ebotcazou@adacore.com>
13275
13276 PR target/51920
13277 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
13278 parameter and use short-lived pseudos.
13279 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
13280 (sparc_expand_vector_init): Const-ify local variables and adjust
13281 calls to above functions.
13282
13283 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
13284
13285 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
13286
13287 2012-01-29 Sandra Loosemore <sandra@codesourcery.com>
13288
13289 * doc/invoke.texi: Make usage of "compile time" and
13290 "run time"/"runtime" consistent throughout the file.
13291
13292 2012-01-29 Uros Bizjak <ubizjak@gmail.com>
13293
13294 * config/alpha/alpha.c (alpha_option_override): Default to
13295 full IEEE compliance mode for Go language.
13296
13297 2012-01-29 Tijl Coosemans <tijl@coosemans.org>
13298
13299 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
13300 (LINK_SSP_SPEC): Define.
13301
13302 2012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13303
13304 PR target/51871
13305 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
13306 stubs.
13307
13308 2012-01-28 Sandra Loosemore <sandra@codesourcery.com>
13309
13310 * doc/invoke.texi: Correct hyphenation of "floating point",
13311 "double precision", and related terminology throughout the file.
13312
13313 2012-01-28 Jakub Jelinek <jakub@redhat.com>
13314
13315 PR target/52006
13316 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
13317 arm_general_register_operand predicate for operand 2 instead of
13318 register_operand.
13319
13320 2012-01-27 Ian Lance Taylor <iant@google.com>
13321
13322 PR go/47656
13323 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
13324 * builtins.c (expand_builtin_init_trampoline): Add onstack
13325 parameter. Change caller.
13326 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
13327 * tree.c (build_common_builtin_nodes): Declare
13328 __builtin_init_heap_trampoline.
13329
13330 2012-01-27 Georg-Johann Lay <avr@gjlay.de>
13331
13332 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
13333 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
13334 * config/avr/avr.c: Ditto.
13335 (avr_regnames): Remove because unused.
13336 * config/avr/avr.md (*cpse.ne): New peephole.
13337 (*cpse.eq): New peephole from former cpse peepholes.
13338
13339 2012-01-27 Michael Eager <eager@eagercon.com>
13340
13341 * config/microblaze.c (microblaze_emit_compare): Correct
13342 test after pcmp instruction.
13343
13344 2012-01-27 Richard Guenther <rguenther@suse.de>
13345
13346 PR tree-optimization/52020
13347 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
13348
13349 2012-01-27 Richard Guenther <rguenther@suse.de>
13350
13351 * ipa-pure-const.c (check_stmt): Clobbers do not make a
13352 function non-const/pure.
13353
13354 2012-01-27 Richard Guenther <rguenther@suse.de>
13355
13356 PR tree-optimization/50444
13357 * tree-sra.c (build_ref_for_offset): Properly adjust the
13358 MEM_REF type for unaligned accesses.
13359
13360 2012-01-27 Richard Guenther <rguenther@suse.de>
13361
13362 PR tree-optimization/50444
13363 * expr.c (mem_ref_refers_to_non_mem_p): New function.
13364 (expand_assignment): Use it. Properly handle misaligned
13365 bases when expanding stores to component references.
13366 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
13367 refactor that case.
13368
13369 2012-01-27 Andrey Belevantsev <abel@ispras.ru>
13370
13371 PR middle-end/51389
13372 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
13373 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
13374 * tree-data-ref.c (find_data_references_in_loop): Make static.
13375 (compute_all_dependences): Change return type to bool. Bail out
13376 for too many datarefs in a loop. Move the hunk resetting the data
13377 dependences vector from ...
13378 (compute_data_dependences_for_loop): ... here. Account for
13379 compute_all_dependences returning false.
13380 (compute_data_dependences_for_bb): Likewise.
13381 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
13382 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
13383
13384 2012-01-27 Richard Guenther <rguenther@suse.de>
13385
13386 PR middle-end/51959
13387 * expr.c (store_field): Use the alias-set of the scratch memory
13388 for storing to it.
13389
13390 2012-01-27 Tom de Vries <tom@codesourcery.com>
13391
13392 PR tree-optimization/51990
13393 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
13394 WITH_SIZE_EXPR.
13395 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
13396
13397 2012-01-27 Jakub Jelinek <jakub@redhat.com>
13398
13399 PR debug/52001
13400 * var-tracking.c (reverse_op): Don't add any reverse operation
13401 if V already has any constant locations.
13402
13403 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
13404
13405 * doc/invoke.texi: Correct usage of "command line" (noun)
13406 vs "command-line" (adjective) throughout.
13407
13408 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
13409
13410 * doc/invoke.texi (Language Independent Options): Move
13411 -Wcoverage-mismatch blurb from here....
13412 (Warning Options): ...to here.
13413
13414 2012-01-27 Peter Bergner <bergner@vnet.ibm.com>
13415
13416 * config/rs6000/rs6000.c (rs6000_option_override_internal):
13417 Set rs6000_always_hint to false for 476.
13418
13419 2012-01-27 Matthias Klose <doko@ubuntu.com>
13420
13421 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
13422 system root.
13423 * incpath.c (add_standard_paths): Likewise.
13424
13425 2012-01-27 Richard Henderson <rth@redhat.com>
13426
13427 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
13428 * config/m68k/sync.md (atomic_test_and_set): Rename from
13429 sync_test_and_setqi and adjust the operands.
13430 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
13431 and unconditionally enable.
13432
13433 2012-01-27 Richard Henderson <rth@redhat.com>
13434
13435 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
13436 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
13437 (ldstub): Rename from ldstubqi.
13438 (ldstub<I24MODE>): Remove.
13439
13440 2012-01-27 Richard Henderson <rth@redhat.com>
13441
13442 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
13443 * c-cppbuiltin.c (cpp_atomic_builtins): Define
13444 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
13445 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
13446 * doc/tm.texi: Rebuild.
13447
13448 2012-01-27 Richard Henderson <rth@redhat.com>
13449
13450 * optabs.c (gen_atomic_test_and_set): Remove default.
13451 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
13452
13453 2012-01-26 Jakub Jelinek <jakub@redhat.com>
13454
13455 PR rtl-optimization/51978
13456 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
13457 (combine_reaching_defs): Likewise.
13458 (struct re_info): Remove.
13459 (add_removable_extension): Remove x and data arguments,
13460 add insn, insn_list and def_map. Use the arguments directly
13461 instead of using struct re_info.
13462 (find_removable_extensions): Don't call add_removable_extension
13463 through note_stores, instead just call it with single_set
13464 result if non-NULL.
13465 (find_and_remove_re): Pass curr_cand->expr instead of
13466 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
13467
13468 2012-01-26 Michael Matz <matz@suse.de>
13469
13470 PR tree-optimization/46590
13471 * cfgexpand.c: Revert last change (r183305).
13472 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
13473 regs.
13474 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
13475 checking for emptiness.
13476
13477 2012-01-26 Jakub Jelinek <jakub@redhat.com>
13478
13479 PR middle-end/51895
13480 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
13481 non-addressable non-BLKmode base correctly.
13482
13483 2012-01-26 Michael Matz <matz@suse.de>
13484
13485 PR tree-optimization/48794
13486 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
13487 regions referenced from RESX/EH_DISPATCH.
13488
13489 2012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13490
13491 * config/s390/s390.h: Make BRANCH_COST an option.
13492 * config/s390/s390.opt: New option -mbranch-cost.
13493
13494 2012-01-26 Richard Henderson <rth@redhat.com>
13495
13496 Revert 2012-01-24 change:
13497 * trans-mem.c (requires_barrier): Do not instrument thread local
13498 variables and emit save/restore for them.
13499
13500 2012-01-25 Jakub Jelinek <jakub@redhat.com>
13501
13502 PR middle-end/51986
13503 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
13504 for pat == 0.
13505
13506 2012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
13507
13508 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
13509 ASM_OPERANDS.
13510
13511 2012-01-25 Georg-Johann Lay <avr@gjlay.de>
13512
13513 PR target/49868
13514 Rename __pgm to __flash.
13515 Rename __pgm1 to __flash1.
13516 Rename __pgm2 to __flash2.
13517 Rename __pgm3 to __flash3.
13518 Rename __pgm4 to __flash4.
13519 Rename __pgm5 to __flash5.
13520 Rename __pgmx to __memx.
13521 * doc/extend.texi (AVR Named Address Spaces)
13522 Rename address space names as indicated above.
13523 * config/avr/avr.c (avr_addrspace): Ditto.
13524
13525 * config/avr/avr-protos.h
13526 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
13527 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
13528 * config/avr/predicates.md: Ditto.
13529 * config/avr/avr.c Ditto, and
13530 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
13531 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
13532
13533 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
13534 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
13535 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
13536 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
13537 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
13538 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
13539 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
13540 * config/avr/avr.c: Ditto.
13541 * config/avr/avr.md: Ditto.
13542
13543 2012-01-25 Jason Merrill <jason@redhat.com>
13544
13545 PR c++/51992
13546 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
13547
13548 2012-01-25 Jakub Jelinek <jakub@redhat.com>
13549
13550 PR tree-optimization/51987
13551 * tree-data-ref.c (get_references_in_stmt): Handle references in
13552 non-volatile GIMPLE_ASM.
13553
13554 2012-01-25 Richard Guenther <rguenther@suse.de>
13555
13556 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
13557 bases are dereferenced.
13558
13559 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
13560
13561 PR rtl-optimization/48374
13562 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
13563
13564 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
13565
13566 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
13567 compute_data_dependences_for_loop returns false.
13568 * tree-parloops.c (loop_parallel_p): Likewise.
13569
13570 2012-01-25 Richard Guenther <rguenther@suse.de>
13571
13572 * tree.h (get_pointer_alignment_1): Declare.
13573 * builtins.c (get_pointer_alignment_1): New function.
13574 (get_pointer_alignment): Use it.
13575
13576 2012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13577
13578 PR rtl-optimization/48308
13579 * combine.c (enum undo_kind): Add UNDO_LINKS.
13580 (struct undo): Add member l to other_contents and where.
13581 (do_SUBST_LINK): New.
13582 (SUBST_LINK): New.
13583 (try_combine): Handle LOG_LINKS for the dummy i1 case.
13584 (undo_all): Handle UNDO_LINKS.
13585
13586 2012-01-25 Richard Henderson <rth@redhat.com>
13587
13588 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
13589 mem inputs.
13590
13591 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
13592
13593 * optabs.c (gen_atomic_test_and_set): Use each argument.
13594
13595 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
13596
13597 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
13598 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
13599 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
13600 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
13601 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
13602 TARGET_PAIRED_SINGLE_FLOAT.
13603
13604 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
13605
13606 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
13607 (in_struct, return_val): Remove MEM documentation.
13608 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
13609 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
13610 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
13611 and MEM_SCALAR.
13612 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
13613 * cfgexpand.c (add_alias_set_conflicts): Likewise.
13614 * expr.c (store_field): Likewise.
13615 * function.c (assign_stack_temp_for_type): Likewise.
13616 * ifcvt.c (noce_try_cmove_arith): Likewise.
13617 * reload1.c (reload): Likewise.
13618 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
13619 (alpha_set_memflags): Likewise.
13620 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
13621
13622 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
13623
13624 * rtl.h (true_dependence, canon_true_dependence): Remove varies
13625 parameter.
13626 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
13627 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
13628 (true_dependence_1, true_dependence, canon_true_dependence): Remove
13629 varies parameter.
13630 * cselib.c (cselib_rtx_varies_p): Delete.
13631 (cselib_invalidate_mem): Update call to canon_true_dependence.
13632 * dse.c (record_store, check_mem_read_rtx): Likewise.
13633 (scan_reads_nospill): Likewise.
13634 * cse.c (check_dependence): Likewise.
13635 (cse_rtx_varies_p): Delete.
13636 * expr.c (safe_from_p): Update call to true_dependence.
13637 * ira.c (validate_equiv_mem_from_store): Likewise.
13638 (memref_referenced_p): Likewise.
13639 * postreload-gcse.c (find_mem_conflicts): Likewise.
13640 * sched-deps.c (sched_analyze_2): Likewise.
13641 * store-motion.c (load_kills_store): Likewise.
13642 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
13643 * gcse.c (mems_conflict_for_gcse_p): Likewise.
13644 (compute_transp): Update call to canon_true_dependence.
13645
13646 2012-01-25 Richard Henderson <rth@redhat.com>
13647
13648 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
13649 (maybe_emit_atomic_test_and_set): New.
13650 (expand_sync_lock_test_and_set): Use it.
13651 (expand_atomic_test_and_set): Likewise.
13652 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
13653 the implementation; clarify implementation defined details.
13654 * doc/md.texi (atomic_test_and_set): Document.
13655
13656 2012-01-25 Richard Henderson <rth@redhat.com>
13657
13658 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
13659
13660 2012-01-25 Richard Henderson <rth@redhat.com>
13661
13662 PR target/51968
13663 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
13664 to effect no-op split.
13665
13666 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
13667
13668 PR lto/51698
13669 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
13670 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
13671 (BT_FN_VOID_PTR_INT_SIZE): New.
13672 (BT_FN_UINT_UINT_VAR): Remove.
13673 (BT_FN_UINT32_UINT32_VAR): New.
13674 (BT_FN_DOUBLE_VPTR): Remove.
13675 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
13676
13677 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
13678 (_ITM_changeTransactionMode): Same.
13679 (_ITM_memmoveRtWt): Change return type to void.
13680 (_ITM_memcpyRtWt): Same.
13681 (_ITM_memsetW): Same.
13682 (_ITM_RaRD): Change types to double.
13683 (_ITM_RD): Same.
13684 (_ITM_RaWD): Same.
13685 (_ITM_RfWD): Same.
13686
13687 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
13688
13689 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
13690 Patrick Marlier <patrick.marlier@gmail.com>
13691
13692 * trans-mem.c (requires_barrier): Do not instrument thread local
13693 variables and emit save/restore for them.
13694
13695 2012-01-24 Jason Merrill <jason@redhat.com>
13696
13697 PR c++/51812
13698 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
13699 output static aliases.
13700
13701 2012-01-24 Jakub Jelinek <jakub@redhat.com>
13702
13703 PR driver/47249
13704 * common.opt (-pie, -shared, pie, shared): Change from Common to
13705 Driver.
13706 * gcc.c (display_help): Display help for -pie and -shared.
13707
13708 2012-01-24 Georg-Johann Lay <avr@gjlay.de>
13709
13710 PR target/49868
13711 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
13712 Remove note on size/offset limitation.
13713 (AVR Variable Attributes): Add example how to read data located
13714 with progmem. Refer to named address spaces.
13715 * doc/invoke.texi (AVR Options): Fix typo.
13716
13717 2012-01-24 Richard Guenther <rguenther@suse.de>
13718
13719 Forward-port to trunk
13720 2010-09-21 Jakub Jelinek <jakub@redhat.com>
13721
13722 PR middle-end/45678
13723 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
13724 op0 isn't sufficiently aligned and there is movmisalignM
13725 insn for mode, use it to load op0 into a temporary register.
13726
13727 2012-01-24 Jakub Jelinek <jakub@redhat.com>
13728
13729 PR target/51957
13730 * target.def (const_not_ok_for_debug_p): New hook.
13731 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
13732 documentation.
13733 * doc/tm.texi: Regenerated.
13734 * dwarf2out.c (const_ok_for_output_1): If
13735 targetm.const_not_ok_for_debug_p returns true, fail.
13736 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
13737 function.
13738 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
13739
13740 2012-01-23 Kai Tietz <ktietz@redhat.com>
13741
13742 PR target/51900
13743 * config/i386/predicates.md (symbolic_operand): Allow
13744 UNSPEC_PCREL as PIC expression for lea.
13745 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
13746 * config/i386/i386.c (ix86_delegitimize_address): Handle
13747 UNSPEC_PCREL for none-MEM, too.
13748
13749 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
13750
13751 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
13752 (ipa_tm_create_version_alias): Same.
13753
13754 2012-01-23 Uros Bizjak <ubizjak@gmail.com>
13755
13756 PR libitm/51830
13757 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
13758 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
13759
13760 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
13761 Patrick Marlier <patrick.marlier@gmail.com>
13762 Iain Sandoe <developer@sandoe-acoustics.co.uk>
13763
13764 PR lto/51916
13765 * lto-wrapper.c (run_gcc): Pass the LTO section name to
13766 simple_object_start_read.
13767
13768 2012-01-23 Richard Guenther <rguenther@suse.de>
13769
13770
13771 PR tree-optimization/51895
13772 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
13773 parameter decomposition into BLKmode components.
13774
13775 2012-01-23 Eric Botcazou <ebotcazou@adacore.com>
13776
13777 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
13778 fake variables for restrict-qualified pointers whose pointed-to type
13779 contains a placeholder.
13780
13781 2012-01-23 Richard Guenther <rguenther@suse.de>
13782
13783 PR tree-optimization/51949
13784 * ipa-split.c (execute_split_functions): Do not split malloc functions.
13785
13786 2012-01-23 Jakub Jelinek <jakub@redhat.com>
13787
13788 PR rtl-optimization/51933
13789 * ree.c (transform_ifelse): Return true right away if dstreg is
13790 already wider or equal to cand->mode.
13791 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
13792 (make_defs_and_copies_lists): Remove defs_list and copies_list
13793 arguments, add state argument, just truncate state->work_list
13794 instead of always allocating and freeing the vector. Assert that
13795 get_defs succeeds instead of returning 2. Changed return type to bool.
13796 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
13797 have ext_src_mode, see if it has been modified already with the
13798 right kind of extension and has been extended before from the
13799 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
13800 just return true. Remember the original mode in state->modified array.
13801 (combine_reaching_defs): Add state argument. Don't allocate and
13802 free here def_list, copied_list and vec vectors, instead just
13803 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
13804 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
13805 Add state variable, clear vectors in it, initialize state.modified
13806 if needed. Free all the vectors at the end and state.modified too.
13807 Don't skip a candidate if the extension expression has been modified.
13808
13809 2012-01-22 Douglas B Rupp <rupp@gnat.com>
13810
13811 PR target/47096
13812 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
13813 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
13814 (extra_options) interix.opt -> i386/interix.opt"
13815 (extra_objs):Add winnt-stubs.o
13816 * configure.ac: Add interix to target_os .comm on PE check.
13817 * configure: Regenerate.
13818 * config/interix3.h: Delete and move bits to..
13819 * config/interix.h: Delete and move bits to..
13820 * config/i386/i386-interix3.h: Delete and move bits to..
13821 * config/i386/i386-interix.h: ..here.
13822 (TARGET_CPU_DEFAULT): Remove redefinition.
13823 (TARGET_ASM_CONSTRUCTOR): Undefine.
13824 (SUBTARGET_SWITCHES): Define for ms-bitfields.
13825 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
13826 (PTRDIFF_TYPE): Define.
13827 (LONG_DOUBLE_TYPE_SIZE): Define.
13828 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
13829 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
13830 (TARGET_SECTION_TYPE_FLAGS): Define.
13831 (ASM_DECLARE_FUNCTION_NAME): Define.
13832 (ASM_OUTPUT_EXTERNAL): Define.
13833 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
13834 (ASM_OUTPUT_ALIGNED_BSS): Define.
13835 (PCC_BITFIELD_TYPE_MATTERS): Define.
13836 (USE_CONST_SECTION): Define.
13837 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
13838 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
13839 (SUPPORTS_ONE_ONLY): Remove.
13840 (I386_PE_STRIP_ENCODING): Define.
13841 * config/interix.opt: Delete and move bits to..
13842 * config/i386/interix.opt: ..here. New.
13843 (mpe-aligned-commons): Add.
13844 * config/i386/t-interix: Add copyright header.
13845 (winnt-stubs.o): Add rule.
13846
13847 2012-01-22 Jason Merrill <jason@redhat.com>
13848
13849 PR c++/51832
13850 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
13851 for extra name aliases.
13852
13853 2012-01-22 Eric Botcazou <ebotcazou@adacore.com>
13854
13855 PR rtl-optimization/51924
13856 * ree.c (combine_set_extension): Improve debugging message.
13857 (combine_reaching_defs): Likewise.
13858 (get_defs): Rename confusingly named variable.
13859 (find_and_remove_re): Skip a candidate if the extension expression has
13860 been modified.
13861
13862 2012-01-21 Robert Millan <rmh@gnu.org>
13863 Gerald Pfeifer <gerald@pfeifer.com>
13864
13865 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
13866 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
13867
13868 2012-01-20 Jakub Jelinek <jakub@redhat.com>
13869
13870 PR tree-optimization/51914
13871 * tree-vect-stmts.c (vectorizable_conversion): For
13872 cvt_type && modifier == WIDEN, put temporary with cvt_type
13873 at the beginning of vec_dsts and set vec_dest to temporary
13874 with vectype_out.
13875
13876 2012-01-20 Eric Botcazou <ebotcazou@adacore.com>
13877
13878 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
13879
13880 2012-01-20 Tijl Coosemans <tijl@coosemans.org>
13881
13882 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
13883 * config/rs6000/rs6000.c: Likewise.
13884
13885 2012-01-20 Jakub Jelinek <jakub@redhat.com>
13886
13887 PR target/51915
13888 * config/arm/arm.c (arm_count_output_move_double_insns): Call
13889 output_move_double on a copy of operands array.
13890
13891 2012-01-20 Cary Coutant <ccoutant@google.com>
13892 Dodji Seketeli <dodji@redhat.com>
13893
13894 PR debug/45682
13895 * dwarf2out.c (copy_declaration_context): Return ref to parent
13896 of declaration DIE, if necessary.
13897 (remove_child_or_replace_with_skeleton): Add new parameter; update
13898 caller. Place skeleton DIE under parent DIE of original declaration.
13899 Move call to copy_declaration_context to here ...
13900 (break_out_comdat_types): ... from here.
13901
13902 2012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13903
13904 PR rtl-optimization/51856
13905 * reload.c (find_reloads_subreg_address): Set the address_reloaded
13906 flag to reloaded.
13907
13908 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13909
13910 PR target/51819
13911 * config/arm/arm.c (arm_print_operand): Correct output of alignment
13912 hints for neon loads and stores.
13913
13914 2012-01-20 Georg-Johann Lay <avr@gjlay.de>
13915
13916 PR target/49868
13917 PR target/50887
13918 * doc/extend.texi (Named Address Spaces): Split into subsections.
13919 (AVR Named Address Spaces): New subsection.
13920 (M32C Named Address Spaces): New subsection.
13921 (RL78 Named Address Spaces): New subsection.
13922 (SPU Named Address Spaces): New subsection.
13923 (Variable Attributes): New anchor "AVR Variable Attributes".
13924 (AVR Variable Attributes): Rewrite and avoid wording
13925 "address space" in this context.
13926 * doc/invoke.texi (AVR Options): Rewrite and add documentation
13927 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
13928 (AVR Built-in Macros): New subsubsection therein.
13929 * doc/md.texi (AVR constraints): Remove "C04", "R".
13930
13931 2012-01-20 Richard Guenther <rguenther@suse.de>
13932
13933 PR tree-optimization/51903
13934 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
13935 when removing stmts.
13936
13937 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13938
13939 PR target/50313
13940 * config/arm/arm.c (arm_load_pic_register): Use
13941 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
13942 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
13943 (arm_pic_static_addr): Likewise.
13944 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
13945 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
13946 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
13947 (pic_load_addr_unified): New.
13948
13949 2012-01-20 Andrey Belevantsev <abel@ispras.ru>
13950
13951 PR target/51106
13952 * function.c (instantiate_virtual_regs_in_insn): Use
13953 delete_insn_and_edges when removing a wrong asm insn.
13954
13955 2012-01-19 Vladimir Makarov <vmakarov@redhat.com>
13956
13957 PR rtl-optimization/40761
13958 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
13959 Add new member loop_num.
13960 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
13961 (ira_build): Remove the parameter.
13962
13963 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
13964 (ira.c): Do not build CFG loops for one region allocation. Remove
13965 argument from ira_build call.
13966
13967 * ira-build.c (init_loop_tree_node): New function.
13968 (create_loop_tree_nodes): Use it. Separate the case when CFG
13969 loops are not built.
13970 (more_one_region_p): Check current_loops.
13971 (finish_loop_tree_nodes): Separate the case when CFG loops are not
13972 built.
13973 (add_loop_to_tree): Process loop equal to NULL too.
13974 (form_loop_tree): Separate the case when CFG loops are not built.
13975 Use explicitly number for the root.
13976 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
13977 an assertion.
13978 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
13979 instead of loop->num.
13980 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
13981 (mark_all_loops_for_removal): Ditto.
13982 (remove_unnecessary_regions): Separate the case when CFG loops
13983 are not built.
13984 (ira_build): Remove the parameter. Use explicit number of regions
13985 when CFG loops are not built.
13986
13987 * ira-color.c (print_loop_title): Separate the case for the root node.
13988 Use loop_num instead of loop->num.
13989 (move_spill_restore): Use loop_num instead of loop->num.
13990
13991 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
13992 (change_loop): Ditto.
13993 (change_loop): Use loop_num instead of loop->num.
13994
13995 * ira-lives.c (process_bb_node_lives): Ditto.
13996
13997 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
13998
13999 * ira-conflicts.c (print_allocno_conflicts): Ditto.
14000
14001 2012-01-19 Jakub Jelinek <jakub@redhat.com>
14002
14003 PR libmudflap/40778
14004 * tree-mudflap.c (mf_artificial): New function.
14005 (execute_mudflap_function_ops, execute_mudflap_function_decls,
14006 mx_register_decls, mudflap_enqueue_decl): Use it.
14007
14008 PR target/51876
14009 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
14010 numbers in the insn pattern.
14011
14012 2012-01-19 Michael Matz <matz@suse.de>
14013
14014 PR tree-optimization/46590
14015 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
14016 use it in remembering which conflicts we already created.
14017 (add_scope_conflicts): Adjust call to above, (de)allocate helper
14018 bitmap.
14019
14020 2012-01-19 Aldy Hernandez <aldyh@redhat.com>
14021
14022 PR lto/51280
14023 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
14024 (merge_and_complain): Same.
14025
14026 2012-01-19 Jakub Jelinek <jakub@redhat.com>
14027
14028 PR bootstrap/50237
14029 * config/initfini-array.h: Guard content of the header
14030 with #ifdef HAVE_INITFINI_ARRAY.
14031 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
14032 Add initfini-array.h to tm_file here.
14033 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
14034 * config.gcc: Don't add initfini-array.h to tm_file here.
14035 * configure: Regenerated.
14036
14037 2012-01-19 Andrey Belevantsev <abel@ispras.ru>
14038
14039 PR rtl-optimization/51505
14040 * df-problems.c (df_kill_notes): New parameter live. Update comment.
14041 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
14042 (df_note_bb_compute): Update the call to df_kill_notes.
14043
14044 2012-01-18 Aldy Hernandez <aldyh@redhat.com>
14045
14046 * trans-mem.c (requires_barrier): Remove call to is_global_var.
14047
14048 2012-01-18 Richard Guenther <rguenther@suse.de>
14049
14050 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
14051 of conversions to void *.
14052
14053 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14054 Richard Sandiford <rdsandiford@googlemail.com>
14055
14056 PR middle-end/50325
14057 PR middle-end/51192
14058 * optabs.h (simplify_expand_binop): Declare.
14059 * optabs.c (simplify_expand_binop): Make global.
14060 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
14061 endian targets if the source cannot be exactly covered by word
14062 mode chunks.
14063
14064 2012-01-17 Jakub Jelinek <jakub@redhat.com>
14065
14066 PR bootstrap/51872
14067 * hard-reg-set.h (struct hard_reg_set_container): New type.
14068 * target.h (struct hard_reg_set_container): Forward declare.
14069 * target.def (set_up_by_prologue): New target hook.
14070 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
14071 * doc/tm.texi: Regenerated.
14072 * function.c (thread_prologue_and_epilogue_insns): Change
14073 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
14074 Call targetm.set_up_by_prologue on it.
14075 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
14076 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
14077
14078 2012-01-17 Nick Clifton <nickc@redhat.com>
14079
14080 * config/rx/rx.c (rx_can_use_simple_return): New function.
14081 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
14082 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
14083
14084 2012-01-17 Richard Guenther <rguenther@suse.de>
14085
14086 PR middle-end/51782
14087 * expr.c (expand_assignment): Take address-space information
14088 from the address operand of MEM_REF and TARGET_MEM_REF.
14089 (expand_expr_real_1): Likewise.
14090
14091 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14092
14093 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
14094 reload dump is requested.
14095
14096 2012-01-17 Aldy Hernandez <aldyh@redhat.com>
14097
14098 PR other/51165
14099 * trans-mem.c (requires_barrier): Call may_be_aliased.
14100
14101 2012-01-17 Jakub Jelinek <jakub@redhat.com>
14102
14103 PR tree-optimization/51877
14104 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
14105 call arguments and fndecls compare equal, instead return false if they
14106 don't. Return true only if lhs1 and lhs2 are either both NULL, or
14107 both SSA_NAMEs that are valueized the same, or they satisfy
14108 operand_equal_p.
14109
14110 2012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14111
14112 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
14113 Solaris 11+.
14114 * configure: Regenerate.
14115
14116 2012-01-16 Jan Hubicka <jh@suse.cz>
14117
14118 PR c/12245
14119 PR c++/14179
14120 * convert.c (convert_to_integer): Use fold_convert for
14121 converting an INTEGER_CST to integer type.
14122
14123 2012-01-16 Jason Merrill <jason@redhat.com>
14124
14125 PR c++/14179
14126 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
14127
14128 2012-01-16 Jakub Jelinek <jakub@redhat.com>
14129
14130 PR bootstrap/51860
14131 * config/s390/s390.c (s390_chunkify_start): Don't skip
14132 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
14133 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
14134 If insn is followed by NOTE_INSN_VAR_LOCATION or
14135 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
14136 Don't use location of note insns.
14137
14138 PR tree-optimization/51865
14139 * tree-inline.c (tree_function_versioning): Call remap_decl
14140 on DECL_RESULT whenever it has VOID_TYPE_P type.
14141
14142 2012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14143
14144 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
14145 for calls to locally-binding MIPS16 functions if only the return
14146 type uses float regs.
14147
14148 2012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
14149 Richard Sandiford <rdsandiford@googlemail.com>
14150
14151 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
14152 (SYMBOL_32_HIGH): Likewise.
14153 (mips_output_tls_reloc_directive): Declare.
14154 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
14155 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
14156 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
14157 (mips_lo_relocs, mips_hi_relocs): Make extern.
14158 (mips16_stub_function): Move up file.
14159 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
14160 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
14161 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
14162 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
14163 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
14164 (mips_get_tp): Add MIPS16 support.
14165 (mips_legitimize_tls_address): Remove MIPS16 sorry().
14166 Generalize DTPREL and TPREL handling.
14167 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
14168 Add MIPS16 TLS support.
14169 (mips_output_tls_reloc_directive): New function.
14170 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
14171 * config/mips/predicates.md (symbolic_operand_with_high)
14172 (tls_reloc_operand): New predicates.
14173 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
14174 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
14175 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
14176 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
14177 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
14178 (*tls_get_tp_mips16_call_<mode>): Likewise.
14179
14180 2012-01-15 Uros Bizjak <ubizjak@gmail.com>
14181
14182 PR rtl-optimization/51821
14183 * recog.c (peep2_find_free_register): Determine clobbered registers
14184 from insn pattern.
14185
14186 2012-01-14 Denis Chertykov <chertykov@gmail.com>
14187
14188 PR target/50925
14189 * config/avr/avr-protos.h: Revert change of 2012-01-09.
14190 * config/avr/avr.c: Likewise.
14191 * config/avr/avr.h: Likewise.
14192
14193 2012-01-13 Ian Lance Taylor <iant@google.com>
14194
14195 PR c++/50012
14196 * tree.h (TYPE_QUALS): Add cast to int.
14197 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
14198
14199 2012-01-13 Ian Lance Taylor <iant@google.com>
14200
14201 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
14202 comparing param_index to VEC_length result.
14203
14204 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
14205
14206 * c-decl.c: Do not include tree-mudflap.h
14207 * tree-optimize.c: Likewise.
14208 * Makefile.in: Update dependencies.
14209
14210 2012-01-13 Richard Guenther <rguenther@suse.de>
14211
14212 PR middle-end/8081
14213 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
14214 variable-sized result always use RSO.
14215
14216 2012-01-12 DJ Delorie <dj@redhat.com>
14217
14218 * cfgexpand.c (convert_debug_memory_address): Allow any valid
14219 pointer type, not just the default pointer type.
14220
14221 2012-01-09 Richard Henderson <rth@redhat.com>
14222 Denis Chertykov <chertykov@gmail.com>
14223
14224 PR target/50925
14225 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
14226 * config/avr/avr.c (avr_can_eliminate): Simplify.
14227 (avr_initial_elimination_offset): Likewise.
14228 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
14229 (expand_epilogue): Likewise.
14230 (avr_legitimize_address): Gut.
14231 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
14232 (avr_hard_regno_nregs): New.
14233 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
14234 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
14235 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
14236 add soft frame pointer.
14237 (CALL_USED_REGISTERS): Likewise.
14238 (REG_CLASS_CONTENTS): Likewise.
14239 (REGISTER_NAMES): Likewise.
14240 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
14241 (HARD_FRAME_POINTER_REGNUM): New.
14242 (FRAME_POINTER_REGNUM): Use soft frame pointer.
14243 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
14244 remove the HARD_FRAME_POINTER self-elimination.
14245
14246 2012-01-12 Georg-Johann Lay <avr@gjlay.de>
14247
14248 PR target/51756
14249 * config/avr/avr.c (avr_encode_section_info): Test for absence of
14250 DECL_EXTERNAL when checking for initializers of progmem variables.
14251
14252 2012-01-12 Ira Rosen <irar@il.ibm.com>
14253
14254 PR tree-optimization/51799
14255 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
14256 that the last operation is a type demotion.
14257
14258 2012-01-12 Uros Bizjak <ubizjak@gmail.com>
14259
14260 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
14261 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
14262
14263 2012-01-11 Jakub Jelinek <jakub@redhat.com>
14264
14265 PR bootstrap/51796
14266 * combine.c (distribute_notes): If i3 is a noreturn call,
14267 allow old_size to be equal to args_size and make sure the
14268 noreturn call gets REG_ARGS_SIZE note.
14269 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
14270 on noreturn calls even when the delta is 0.
14271
14272 2012-01-11 Nathan Sidwell <nathan@acm.org>
14273
14274 * gcov.c (STRING_SIZE): Remove.
14275 (generate_results): Erase annotations for source files with no
14276 coverage information.
14277 (read_line): New.
14278 (output_lines): Use it.
14279
14280 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
14281
14282 * gimple.h (gimplify_body): Remove first argument.
14283 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
14284 pointer set here, instead just pass DATA to walk_tree.
14285 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
14286 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
14287 (unvisit_body): Likewise, but with unmark_visited.
14288 (gimplify_body): Remove BODY_P argument and adjust.
14289 (gimplify_function_tree): Adjust call to gimplify_body.
14290 * omp-low.c (finalize_task_copyfn): Likewise.
14291
14292 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
14293
14294 * tree.h (build_function_decl_skip_args): Add boolean parameter.
14295 (build_function_type_skip_args): Delete.
14296 * tree.c (build_function_type_skip_args): Make static and add
14297 SKIP_RETURN parameter. Fix thinko in the handling of variants.
14298 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
14299 pass it to build_function_type_skip_args.
14300 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
14301 (tree_function_versioning): Likewise.
14302 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
14303 build_function_decl_skip_args.
14304 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
14305 and pass it to build_function_decl_skip_args/tree_function_versioning.
14306 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
14307 * ipa-inline-transform.c (save_inline_function_body): Likewise.
14308 * trans-mem.c (ipa_tm_create_version): Likewise.
14309 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
14310 * tree-inline.c (declare_return_variable): Remove always-true test.
14311 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
14312 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
14313 * ipa-split.c (split_function): Skip the return value for the split
14314 part if it doesn't return.
14315
14316 2012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14317
14318 PR tree-optimization/49642
14319 * ipa-split.c (forbidden_dominators): New variable.
14320 (check_forbidden_calls): New function.
14321 (dominated_by_forbidden): Likewise.
14322 (consider_split): Check for forbidden dominators.
14323 (execute_split_functions): Initialize and free forbidden
14324 dominators info; call check_forbidden_calls.
14325
14326 2012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
14327
14328 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
14329
14330 2012-01-11 Nick Clifton <nickc@redhat.com>
14331
14332 * config/rx/rx.md (return): Define pattern.
14333
14334 2012-01-11 Richard Guenther <rguenther@suse.de>
14335
14336 * doc/extend.texi (malloc attribute): Adjust according to
14337 implementation.
14338
14339 2012-01-10 Aldy Hernandez <aldyh@redhat.com>
14340 Patrick Marlier <patrick.marlier@gmail.com>
14341
14342 PR middle-end/51516
14343 * trans-mem.c (get_cg_data): Traverse aliases if requested.
14344 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
14345 (ipa_tm_note_irrevocable): Same.
14346 (ipa_tm_scan_irr_block): Same.
14347 (ipa_tm_decrement_clone_counts): Same.
14348 (ipa_tm_scan_irr_function): Same.
14349 (ipa_tm_create_version_alias): Same.
14350 (ipa_tm_create_version): Same.
14351 (ipa_tm_transform_calls_redirect): Same.
14352 (ipa_tm_transform_calls): Same.
14353 (ipa_tm_transform_transaction): Same.
14354 (ipa_tm_execute): Same.
14355
14356 2012-01-10 Richard Guenther <rguenther@suse.de>
14357
14358 PR middle-end/51806
14359 * opts.c (common_handle_option): Handle -Werror.
14360
14361 2012-01-10 Andreas Schwab <schwab@linux-m68k.org>
14362
14363 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
14364 operand number.
14365
14366 2012-01-10 Jason Merrill <jason@redhat.com>
14367
14368 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
14369 information.
14370
14371 2012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14372
14373 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
14374 supports R_386_TLS_GD_PLT reloc.
14375 (gcc_cv_as_ix86_tlsldmplt): Check if linker
14376 supports R_386_TLS_LDM_PLT reloc.
14377 * configure: Regenerate.
14378 * config.in: Regenerate.
14379
14380 2012-01-10 Georg-Johann Lay <avr@gjlay.de>
14381
14382 PR target/49868
14383 Extend __pgmx semantics to linearize memory.
14384 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
14385 determine if code comes inline or from libgcc.
14386 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
14387 (movmem_qi, movmem_qi): Set constraint #2 to "n".
14388 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
14389 (movmemx_qi, movmemx_hi): New insns.
14390 (xload_<mode>_libgcc): Rewrite to new insn condition.
14391 (xload_<mode>): Remove insns.
14392 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
14393 cases that don't satisfy avr_xload_libgcc_p().
14394 (avr_addr_space_convert): Allow converting in any direction.
14395 (avr_addr_space_subset_p): Return always true.
14396 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
14397 (avr_emit_movmemhi): Ditto.
14398 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
14399 (avr_out_movmem): Ditto.
14400 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
14401 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
14402 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
14403 (avr_encode_section_info): Encode 'progmem' in symbol flags.
14404 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
14405
14406 2012-01-10 Richard Guenther <rguenther@suse.de>
14407
14408 PR tree-optimization/50913
14409 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
14410 Require data-refs to be representable by Graphite with respect
14411 to any loop nest.
14412
14413 2012-01-10 Uros Bizjak <ubizjak@gmail.com>
14414
14415 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
14416 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
14417
14418 2012-01-10 Tom de Vries <tom@codesourcery.com>
14419
14420 PR rtl-optimization/51271
14421 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
14422 handling annulled branch.
14423
14424 2012-01-10 Richard Henderson <rth@redhat.com>
14425
14426 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
14427 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
14428 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
14429 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
14430 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
14431 arm_expand_vec_perm_const): New.
14432 * config/arm/arm-protos.h: Update.
14433 * config/arm/neon.md (UNSPEC_VCONCAT): New.
14434 (*neon_vswp<VDQX>): New.
14435 (neon_vcombine<VDX>): Use neon_split_vcombine.
14436 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
14437 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
14438 (vec_perm<VE>): New.
14439
14440 2012-01-10 Richard Henderson <rth@redhat.com>
14441
14442 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
14443 use it if reload_completed.
14444 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
14445 arm_output_asm_insn, arm_process_output_memory_barrier,
14446 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
14447 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
14448 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
14449 arm_process_output_sync_insn, arm_output_sync_insn,
14450 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
14451 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
14452 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
14453 (emit_unlikely_jump): New.
14454 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
14455 (arm_split_atomic_op): New.
14456 * config/arm/arm-protos.h: Update.
14457 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
14458 (struct arm_sync_generator): Remove.
14459 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
14460 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
14461 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
14462 (VUNSPEC_LL, VUNSPEC_SC): New.
14463 (sync_result, sync_memory, sync_required_value, sync_new_value,
14464 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
14465 (attr length): Don't use arm_sync_loop_insns.
14466 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
14467 (movsfcc, movdfcc): Likewise.
14468 * config/arm/constraints.md (Ua): New.
14469 * config/arm/prediates.md (mem_noofs_operand): New.
14470 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
14471 (sync_clobber, sync_t2_reqd): Remove.
14472 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
14473 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
14474 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
14475 (arm_sync_compare_and_swap<SIDI>): Remove.
14476 (arm_sync_compare_and_swap<NARROW>): Remove.
14477 (arm_sync_lock_test_and_set<SIDI>): Remove.
14478 (arm_sync_lock_test_and_set<NARROW>): Remove.
14479 (arm_sync_new_<syncop><SIDI>): Remove.
14480 (arm_sync_new_<syncop><NARROW>): Remove.
14481 (arm_sync_new_nand<SIDI>): Remove.
14482 (arm_sync_new_nand<NARROW>): Remove.
14483 (arm_sync_old_<syncop><SIDI>): Remove.
14484 (arm_sync_old_<syncop><NARROW>): Remove.
14485 (arm_sync_old_nand<SIDI>): Remove.
14486 (arm_sync_old_nand<NARROW>): Remove.
14487 (*memory_barrier): Merge arm_output_memory_barrier.
14488 (atomic_compare_and_swap<QHSD>): New.
14489 (atomic_compare_and_swap<NARROW>_1): New.
14490 (atomic_compare_and_swap<SIDI>_1): New.
14491 (atomic_exchange<QHSD>): New.
14492 (cas_cmp_operand, cas_cmp_str): New.
14493 (atomic_op_operand, atomic_op_str): New.
14494 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
14495 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
14496 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
14497 (arm_load_exclusive<NARROW>): New.
14498 (arm_load_exclusivesi, arm_load_exclusivedi): New.
14499 (arm_store_exclusive<QHSD>): New.
14500
14501 2012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
14502
14503 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
14504 reload patterns if -mvsx-scalar-memory.
14505
14506 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
14507 generated, even -mno-vsx-scalar-double was used.
14508 (vsx_xscvdpsp_scalar): Likewise.
14509 (vsx_xscvspdp_scalar2): Likewise.
14510
14511 2012-01-09 Tom de Vries <tom@codesourcery.com>
14512 Andrew Pinski <apinski@cavium.com>
14513
14514 PR debug/51471
14515 * reorg.c (fill_slots_from_thread): Don't speculate
14516 frame-related insns.
14517
14518 2012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
14519
14520 * sched-int.h (bb_note): Move to...
14521 * basic-block.h: ...here.
14522 * haifa-sched.c (bb_note): Move to...
14523 * cfgrtl.c: ...here.
14524 * function.c (next_block_for_reg): New function.
14525 (move_insn_for_shrink_wrap): Likewise.
14526 (prepare_shrink_wrap): Rewrite to use the above.
14527
14528 2012-01-09 Aldy Hernandez <aldyh@redhat.com>
14529
14530 * gimple.c (is_gimple_non_addressable): Remove.
14531 * gimple.h: Remove is_gimple_non_addressable.
14532 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
14533 is_gimple_non_addressable.
14534 * trans-mem.c (expand_assign_tm): Same.
14535
14536 2012-01-09 Richard Guenther <rguenther@suse.de>
14537
14538 PR tree-optimization/51775
14539 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
14540 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
14541
14542 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
14543
14544 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
14545 tuning parameters.
14546 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
14547
14548 2012-01-09 Richard Guenther <rguenther@suse.de>
14549
14550 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
14551
14552 2012-01-08 Jan Hubicka <jh@suse.cz>
14553
14554 PR tree-optimize/51680
14555 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
14556 on when known_vals needs to be computed; cleanup.
14557
14558 2012-01-08 Jan Hubicka <jh@suse.cz>
14559
14560 PR tree-optimize/51694
14561 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
14562
14563 2012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
14564
14565 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
14566 for -std=c++98 and -std=c++11 too.
14567
14568 2012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
14569
14570 * cfgloop.c (cancel_loop): Add free() of bbs array.
14571
14572 2012-01-07 Jan Hubicka <jh@suse.cz>
14573
14574 PR tree-optimization/51600
14575 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
14576 that benefits small functions.
14577
14578 2012-01-07 Jan Hubicka <jh@suse.cz>
14579
14580 * ipa-inline.c (want_inline_small_function_p): Fix formating.
14581
14582 2012-01-07 Jan Hubicka <jh@suse.cz>
14583
14584 PR tree-optimization/51680
14585 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
14586 whose inlining reduce unit size.
14587
14588 2012-01-07 Alexandre Oliva <aoliva@redhat.com>
14589
14590 PR bootstrap/51725
14591 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
14592 Add canonical node to containing_mem chain after the non-canonical
14593 one, even if there weren't any locs to propagate.
14594 (remove_useless_values): Keep only canonical values.
14595 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
14596 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
14597 canonicalize mem_chain elements that are not discarded.
14598
14599 2012-01-06 Jakub Jelinek <jakub@redhat.com>
14600
14601 PR target/47333
14602 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
14603 before emitting functions.
14604
14605 PR gcov-profile/50127
14606 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
14607 clear_aux_for_blocks.
14608
14609 2012-01-06 Alexandre Oliva <aoliva@redhat.com>
14610
14611 PR debug/51746
14612 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
14613
14614 2012-01-06 Arnaud Charlet <charlet@adacore.com>
14615
14616 * c-decl.c (ext_block): Moved up.
14617 (collect_all_refs, for_each_global_decl): Take ext_block into account.
14618
14619 2012-01-06 Han Shen <shenhan@google.com>
14620
14621 Translate built-in include paths for sysroot.
14622 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
14623 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
14624
14625 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
14626 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
14627
14628 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
14629 control whether sysroot should be prepended to gxx include dir.
14630
14631 * configure: Regenerate.
14632
14633 2012-01-06 Torvald Riegel <triegel@redhat.com>
14634
14635 PR rtl-optimization/51771
14636 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
14637 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
14638
14639 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
14640
14641 PR tree-optimization/51315
14642 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
14643 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
14644
14645 2012-01-05 Uros Bizjak <ubizjak@gmail.com>
14646
14647 PR target/51681
14648 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
14649 for shrp pattern. Correctly handle and fixup shift variable.
14650 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
14651
14652 2012-01-05 Jakub Jelinek <jakub@redhat.com>
14653
14654 PR debug/51762
14655 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
14656 note when !ACCUMULATE_OUTGOING_ARGS.
14657
14658 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
14659
14660 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
14661 condition.
14662 (extract_range_from_unary_expr_1): Avoid useless computations.
14663
14664 2012-01-05 Jakub Jelinek <jakub@redhat.com>
14665
14666 PR rtl-optimization/51767
14667 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
14668 of jump_block and add an extra edge for degenerated asm gotos.
14669
14670 PR middle-end/51768
14671 * stmt.c (check_unique_operand_names): Don't ICE during error
14672 reporting if i is from labels chain.
14673
14674 PR middle-end/44777
14675 * profile.c (branch_prob): Split bbs that have exit edge
14676 and need a fake entry edge too.
14677
14678 2012-01-05 Jan Hubicka <jh@suse.cz>
14679
14680 PR middle-end/49710
14681 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
14682 unlooping loops.
14683
14684 2012-01-05 Richard Guenther <rguenther@suse.de>
14685
14686 PR lto/50490
14687 * tree-streamer-out.c (write_ts_optimization): New function.
14688 (streamer_write_tree_body): Call it.
14689 * tree-streamer-in.c (lto_input_ts_optimization): New function.
14690 (streamer_read_tree_body): Call it.
14691 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
14692
14693 2012-01-05 Jakub Jelinek <jakub@redhat.com>
14694
14695 PR middle-end/51761
14696 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
14697 * gimplify.c (gimplify_cleanup_point_expr): Save and set
14698 in_cleanup_point_expr before gimplify_stmt call and restore it
14699 afterwards.
14700 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
14701 in_cleanup_point_expr is false.
14702
14703 2012-01-05 Richard Guenther <rguenther@suse.de>
14704
14705 PR middle-end/51764
14706 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
14707 to c.opt.
14708 * toplev.c (process_options): Reject combining mudflap and LTO.
14709 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
14710
14711 2012-01-05 Richard Guenther <rguenther@suse.de>
14712
14713 PR tree-optimization/51760
14714 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
14715 not VARYING.
14716 (bit_value_unop): Handle UNDEFINED operands.
14717 (bit_value_binop): Likewise.
14718
14719 2012-01-05 Georg-Johann Lay <avr@gjlay.de>
14720
14721 * config/avr/avr.c (avr_replace_prefix): Remove.
14722 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
14723 (avr_asm_function_rodata_section): Ditto.
14724 (avr_asm_select_section): Ditto.
14725
14726 2012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
14727
14728 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
14729 insertion.
14730
14731 2012-01-05 Jakub Jelinek <jakub@redhat.com>
14732
14733 PR bootstrap/51648
14734 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
14735 calls that have any non-fake successor edges.
14736
14737 PR debug/51746
14738 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
14739
14740 2012-01-04 Eric Botcazou <ebotcazou@adacore.com>
14741
14742 PR tree-optimization/51624
14743 * tree-sra.c (build_ref_for_model): When replicating a chain of
14744 COMPONENT_REFs, stop as soon as the offset would become negative.
14745
14746 2012-01-04 Jakub Jelinek <jakub@redhat.com>
14747
14748 PR debug/51695
14749 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
14750 in .debug_loc on the floor.
14751
14752 2012-01-04 Andrew Pinski <apinski@cavium.com>
14753
14754 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
14755
14756 2012-01-04 Andrew Pinski <apinski@cavium.com>
14757 Adam Nemet <anemet@caviumnetworks.com>
14758
14759 * config/mips/mips.md (size): Add SI and DI.
14760 (SIZE): New mode attribute.
14761 (U): New code attribute.
14762 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
14763 (mips_lbux_<mode>): Delete.
14764 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
14765 (mips_lhx): Use gen_mips_lhx_extsi.
14766 (mips_lhx_<mode>): Delete.
14767 (mips_lwx): Delete.
14768 (mips_l<size>x): New expand.
14769 (mips_lwx_<mode>): Delete.
14770 (mips_l<GPR:size>x_<P:mode>): New pattern.
14771 (*mips_lw<u>x_<P:mode>_ext): Likewise.
14772 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
14773 * config/mips/mips.c (mips_lx_address_p): New function.
14774 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
14775 (dsp64): New availability predicate.
14776 (mips_builtins): Add an entry for __builtin_mips_ldx.
14777 * config/mips/mips.h (ISA_HAS_LBX): New define.
14778 (ISA_HAS_LBUX): Likewise.
14779 (ISA_HAS_LHX): Likewise.
14780 (ISA_HAS_LHUX): Likewise.
14781 (ISA_HAS_LWX): Likewise.
14782 (ISA_HAS_LWUX): Likewise.
14783 (ISA_HAS_LDX): Likewise.
14784 * doc/extend.texi (__builtin_mips_ldx): Document.
14785
14786 2012-01-04 Tristan Gingold <gingold@adacore.com>
14787
14788 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
14789 when long pointers are used.
14790 * config.build (*-*-*vms*): Handle all OpenVMS targets.
14791 (alpha64-dec-*vms*, alpha*-dec-*vms*)
14792 (ia64-hp-*vms*): Remove.
14793 * config/vms/xm-vms64.h: Delete.
14794
14795 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
14796
14797 PR middle-end/51472
14798 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
14799
14800 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
14801
14802 * opts.c (finish_options): Remove duplicate sorry.
14803
14804 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
14805
14806 PR middle-end/51696
14807 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
14808 correctly.
14809
14810 2012-01-04 Richard Guenther <rguenther@suse.de>
14811
14812 PR middle-end/51750
14813 * tree.c (size_low_cst): New function.
14814 * tree.h (size_low_cst): Declare.
14815 * fold-const.c (fold_comparison): Use it to extract the low
14816 part of the POINTER_PLUS_EXPR offset.
14817
14818 2012-01-04 Georg-Johann Lay <avr@gjlay.de>
14819
14820 Fix clearing ZERO_REG
14821 * config/avr/avr.md (cc): Add alternative "ldi".
14822 (movqi_insn): Use it in cc attribute.
14823 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
14824 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
14825 (output_reload_insisf): Use ZERO_REG to pre-clear register.
14826
14827 2012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14828
14829 * configure: Regenerate.
14830
14831 2012-01-04 Richard Guenther <rguenther@suse.de>
14832
14833 PR tree-optimization/49651
14834 * tree-ssa-structalias.c (type_can_have_subvars): New function.
14835 (var_can_have_subvars): Use it.
14836 (get_constraint_for_1): Only consider subfields if there can be any.
14837
14838 2012-01-03 Jakub Jelinek <jakub@redhat.com>
14839
14840 PR bootstrap/51725
14841 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
14842 to its new canonical_cselib_val and the cselib_val was in
14843 first_containing_mem chain, but the canonical_cselib_val was not,
14844 add the latter into the chain.
14845 (cselib_invalidate_mem): Compare canonical_cselib_val of
14846 addr_list chain elt with v.
14847
14848 PR pch/51722
14849 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
14850 dwarf2out_undef): Allocate e.info using ggc_strdup instead
14851 of xstrdup.
14852 (output_macinfo_op): Don't ggc_strdup fd->filename.
14853 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
14854 then ggc_strdup it. Don't free inc->info or cur->info.
14855 (output_macinfo): Don't free ref->info or file->info.
14856
14857 2012-01-03 Ira Rosen <irar@il.ibm.com>
14858
14859 PR tree-optimization/51269
14860 * tree-vect-loop-manip.c (set_prologue_iterations): Make
14861 first_niters a pointer.
14862 (slpeel_tree_peel_loop_to_edge): Likewise.
14863 (vect_do_peeling_for_loop_bound): Update call to
14864 slpeel_tree_peel_loop_to_edge.
14865 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
14866 here. Remove it from the parameters list.
14867 (vect_do_peeling_for_alignment): Update calls and compute
14868 wide_prolog_niters.
14869
14870 2012-01-03 Richard Guenther <rguenther@suse.de>
14871
14872 PR tree-optimization/51070
14873 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
14874 Properly handle calls.
14875
14876 2012-01-03 Richard Guenther <rguenther@suse.de>
14877
14878 PR tree-optimization/51692
14879 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
14880 the LHS of allocation stmts.
14881
14882 2012-01-03 Olivier Hainque <hainque@adacore.com>
14883
14884 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
14885
14886 2012-01-03 Olivier Hainque <hainque@adacore.com>
14887
14888 * collect2.c (main): In AIX specific computations for vector
14889 insertions, use CONST_CAST2 to cast from char ** to const char **.
14890
14891 2012-01-03 Richard Guenther <rguenther@suse.de>
14892
14893 PR debug/51650
14894 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
14895 the context of a limbo DIE when it does not already exist.
14896
14897 2012-01-03 Jakub Jelinek <jakub@redhat.com>
14898
14899 PR tree-optimization/51719
14900 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
14901 but direct call is, clear direct call's lhs and don't add fallthrough
14902 edge from dcall_bb to join_bb and PHIs.
14903
14904 2012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14905
14906 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
14907 the instructions emitted by the pattern.
14908 ("*TDC_insn_<mode>"): Add comment.
14909
14910 2012-01-03 Richard Guenther <rguenther@suse.de>
14911
14912 PR middle-end/51730
14913 * fold-const.c (fold_comparison): Properly canonicalize
14914 tree offset and HOST_WIDE_INT bit position.
14915
14916 2012-01-02 Uros Bizjak <ubizjak@gmail.com>
14917
14918 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
14919 operands for extzv pattern.
14920
14921 2012-01-02 Jakub Jelinek <jakub@redhat.com>
14922
14923 PR bootstrap/51725
14924 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
14925 on mem_elt first.
14926
14927 2012-01-02 Sandra Loosemore <sandra@codesourcery.com>
14928
14929 * doc/invoke.texi (-flto and related options): Copy-edit.
14930
14931 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14932
14933 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
14934
14935 2012-01-02 Jakub Jelinek <jakub@redhat.com>
14936
14937 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
14938 New patterns.
14939
14940 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14941
14942 * expr.h (move_by_pieces_ninsns): Declare.
14943 * expr.c (move_by_pieces_ninsns): Make external.
14944 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
14945 (mips_store_by_pieces_p): Likewise.
14946 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
14947 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
14948 * config/mips/mips.c (mips_move_by_pieces_p): New function.
14949 (mips_store_by_pieces_p): Likewise.
14950
14951 2012-01-02 Jakub Jelinek <jakub@redhat.com>
14952
14953 * passes.c (register_one_dump_file): Free full_name.
14954
14955 * reload1.c (reload): Don't allocate reg_max_ref_width here.
14956 (calculate_elim_costs_all_insns): Free offsets_at and
14957 offsets_known_at at the end and clear the pointers.
14958
14959 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
14960
14961 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
14962 this option introduced in r180739.
14963
14964 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
14965
14966 PR target/51345
14967 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
14968 (tmake_file target=avr): Add avr/t-multilib.
14969
14970 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
14971 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
14972 * config/avr/genmultilib.awk: New file.
14973 * config/avr/t-multilib: New auto-generated file.
14974 * config/avr/multilib.h: New auto-generated file.
14975 * config/avr/t-avr (AVR_MCUS): New variable.
14976 (genopt.sh): Use it.
14977 (s-mlib): Depend on t-multilib.
14978 (t-multilib, multilib.h): New dependencies.
14979 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
14980 (MULTILIB_OPTIONS): Remove.
14981 (MULTILIB_MATCHES): Remove.
14982 (MULTILIB_DIRNAMES): Remove.
14983 (MULTILIB_EXCEPTIONS): Remove:
14984 * config/avr/genopt.sh: Don't use hard coded file name;
14985 pass AVR_MCUS from t-avr instead.
14986
14987 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
14988
14989 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
14990
14991 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
14992
14993 Implement light-weight DImode support.
14994 * config/avr/avr-dimode.md: New file.
14995 * config/avr/avr.md: Include it.
14996 (adjust_len): Add plus64, compare64.
14997 (HIDI): Remove code iterator.
14998 (code_stdname): New code attribute.
14999 (rotx, rotsmode): Remove DI.
15000 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
15001 as code iterator.
15002 * config/avr/avr-protos.h (avr_have_dimode): New.
15003 (avr_out_plus64, avr_out_compare64): New.
15004 * config/avr/avr.c (avr_out_compare): Handle DImode.
15005 (avr_have_dimode): New variable definition and initialization.
15006 (avr_out_compare64, avr_out_plus64): New functions.
15007 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
15008 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
15009 (avr_compare_pattern): Skip DImode comparisons.
15010
15011 2012-01-02 Revital Eres <revital.eres@linaro.org>
15012
15013 * ddg.c (def_has_ccmode_p): New function.
15014 (add_cross_iteration_register_deps,
15015 create_ddg_dep_from_intra_loop_link): Call it.
15016
15017 2012-01-02 Richard Guenther <rguenther@suse.de>
15018
15019 PR other/51679
15020 * invoke.texi (fassociative-math): Remove spurious paranthesis.
15021
15022 2012-01-01 Jakub Jelinek <jakub@redhat.com>
15023
15024 * gcc.c (process_command): Update copyright notice dates.
15025 * gcov.c (print_version): Likewise.
15026 * gcov-dump.c (print_version): Likewise.
15027 * mips-tfile.c (main): Likewise.
15028 * mips-tdump.c (main): Likewise.
15029
15030 2012-01-01 Ira Rosen <irar@il.ibm.com>
15031
15032 PR tree-optimization/51704
15033 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
15034 a use is inside the basic block or loop before accessing its vect info.
15035
15036 2012-01-01 Jan Hubicka <jhjh@suse.cz>
15037
15038 PR rtl-optimization/51069
15039 * cfgloopmanip.c (remove_path): Removing path making irreducible
15040 region unconditional makes BB part of the region.
15041
15042 2012-01-01 Jakub Jelinek <jakub@redhat.com>
15043
15044 PR tree-optimization/51683
15045 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
15046 calls with side-effects.
15047 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
15048 \f
15049 Copyright (C) 2012 Free Software Foundation, Inc.
15050
15051 Copying and distribution of this file, with or without modification,
15052 are permitted in any medium without royalty provided the copyright
15053 notice and this notice are preserved.