expr.c (optimize_bitfield_assignment_op): Use str_mode and str_bitsize instead of...
[gcc.git] / gcc / ChangeLog
1 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
2
3 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
4 and str_bitsize instead of more convoluted expressions.
5
6 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
7
8 PR target/52610
9 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
10
11 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
12
13 PR target/52656
14 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
15
16 2012-03-23 Martin Jambor <mjambor@suse.cz>
17
18 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
19
20 2012-03-23 Richard Guenther <rguenther@suse.de>
21
22 PR tree-optimization/52678
23 * tree-vectorizer.h (struct _stmt_vec_info): Add
24 loop_phi_evolution_part member.
25 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
26 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
27 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
28 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
29 Use the cached evolution part and the PHI nodes value from
30 the loop preheader edge instead of re-analyzing the evolution.
31
32 2012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
33
34 * config/mips/mips-tables.opt: Update.
35 * config/mips/mips.md (processor): Add xlp.
36 * config/mips/mips-cpus.def: Add xlp.
37 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
38 5KF for now.
39 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
40 * doc/invoke.texi: Mention XLP.
41
42 2012-03-22 Jakub Jelinek <jakub@redhat.com>
43
44 PR middle-end/52547
45 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
46 on any new_local_var_chain vars declared during recursing on
47 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
48
49 2012-03-22 Uros Bizjak <ubizjak@gmail.com>
50
51 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
52 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
53 (ASM_OUTPUT_LOCAL): Ditto.
54 (ASM_OUTPUT_COMMON): Remove.
55 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
56 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
57
58 2012-03-22 Jan Hubicka <jh@suse.cz>
59
60 PR middle-end/51737
61 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
62 parameter.
63 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
64 * ipa-inline-transform.c (save_inline_function_body): Remove
65 copied clone if needed.
66 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
67
68 2012-03-22 Richard Guenther <rguenther@suse.de>
69
70 PR middle-end/52666
71 * fold-const.c (fold_ternary_loc): Fix typo.
72
73 2012-03-22 Georg-Johann Lay <avr@gjlay.de>
74
75 PR target/52496
76 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
77 (unspecv): Add UNSPECV_MEMORY_BARRIER.
78 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
79 (delay_cycles_1, delay_cycles_2): Ditto.
80 (delay_cycles_3, delay_cycles_4): Ditto.
81 (nopv, *nopv): Ditto.
82 (sleep, *sleep): Ditto.
83 (wdr, *wdr): Ditto.
84
85 2012-03-22 Richard Guenther <rguenther@suse.de>
86
87 PR tree-optimization/52548
88 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
89 because of clobbers.
90 (prune_clobbered_mems): New function.
91 (compute_antic_aux): Use it to prune ANTIC_OUT.
92 (compute_partial_antic_aux): Use it to prune PA_IN.
93 (compute_avail): Only insert expressions into EXP_GEN that are not
94 invalidated when translated up to the beginning of the block.
95
96 2012-03-22 Richard Guenther <rguenther@suse.de>
97
98 PR tree-optimization/52638
99 * tree-vect-stmts.c (vect_init_vector_1): New function, split
100 out from ...
101 (vect_init_vector): ... here. Handle scalar vector inits.
102 (vect_get_vec_def_for_operand): Adjust.
103 (vectorizable_load): Likewise.
104
105 2012-03-22 Uros Bizjak <ubizjak@gmail.com>
106
107 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
108 (alpha*-*-freebsd*): Ditto.
109 (alpha*-*-netbsd*): Ditto.
110 (alpha*-*-openbsd*): Ditto.
111 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
112 (DWARF2_DEBUGGING_INFO): Remove.
113 (PREFERRED_DEBUGGING_TYPE): Remove.
114 (ASM_FINAL_SPEC): Remove.
115 (IDENT_ASM_OP): Remove.
116 (ASM_OUTPUT_IDENT): Remove.
117 (SKIP_ASM_OP): Remove.
118 (ASM_OUTPUT_SKIP): Remove.
119 (ALIGN_ASM_OP): Remove.
120 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
121 (ASM_OUTPUT_CASE_LABEL): Remove.
122 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
123 (COMMON_ASM_OP): Remove.
124 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
125 (ASCII_DATA_ASM_OP): Remove.
126 (READONLY_DATA_SECTION_ASM_OP): Remove.
127 (INIT_SECTION_ASM_OP): Remove.
128 (FINI_SECTION_ASM_OP): Remove.
129 (ASM_SECTION_START_OP): Remove.
130 (ASM_OUTPUT_SECTION_START_FILE): Remove.
131 (TARGET_ASM_NAMED_SECTION): Remove.
132 (TARGET_ASM_SELECT_SECTION): Remove.
133 (MAKE_DECL_ONE_ONLY): Remove.
134 (TYPE_ASM_OP): Remove.
135 (SIZE_ASM_OP): Remove.
136 (ASM_WEAKEN_LABEL): Remove.
137 (TYPE_OPERAND_FMT): Remove.
138 (ASM_DECLARE_RESULT): Remove.
139 (ASM_DECLARE_OBJECT_NAME): Remove.
140 (ASM_FINISH_DECLARE_OBJECT): Remove.
141 (ELF_ASCII_ESCAPES): Remove.
142 (ELF_STRING_LIMIT): Remove.
143 (STRING_ASM_OP): Remove.
144 (ASM_OUTPUT_EXTERNAL): Remove.
145 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
146 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
147 before define.
148 (ASM_DECLARE_FUNCTION_NAME): Ditto.
149 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
150 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
151 (ASM_OUTPUT_SKIP): Ditto.
152 (READONLY_DATA_SECTION_ASM_OP): Remove.
153 (USER_LABEL_PREFIX): Remove.
154 (ASM_OUTPUT_ASCII): Remove.
155 (ASM_OUTPUT_CASE_LABEL): Remove.
156 (NO_DOLLAR_IN_LABEL): Undefine.
157
158 2012-03-22 Richard Guenther <rguenther@suse.de>
159
160 PR tree-optimization/52459
161 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
162 PHI insertion for calls.
163
164 2012-03-21 Steven Bosscher <steven@gcc.gnu.org>
165
166 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
167 find_sets_in_insn, canonicalize_insn): Split out from ...
168 (cse_insn): ... here.
169 (invalidate_from_clobbers): Take an insn instead of the pattern.
170
171 2012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
172
173 PR target/52479
174 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
175 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
176 * config/sh/sh.md (sindf2, cosdf2): Remove.
177
178 2012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
179
180 PR target/52642
181 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
182 prologue for unwinder and profiler.
183
184 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
185
186 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
187 Introduce emul_name to select the right linker emulation for
188 powerpc64-*-freebsd*.
189 * configure: Regenerate.
190 * config.gcc: Add bits to support powerpc64-*-freebsd*.
191 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
192 * config/rs6000/freebsd64.h: New file.
193 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
194 POWERPC_FREEBSD.
195 (rs6000_savres_strategy): Likewise.
196 (rs6000_savres_routine_name): Likewise.
197 (rs6000_elf_file_end): Likewise.
198 * config/rs6000/t-freebsd64: New file.
199 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
200 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
201
202 * config/rs6000/freebsd64.h: Remove duplicated entries from last
203 commit.
204 * config/rs6000/t-freebsd64: Likewise.
205
206 2012-03-21 Georg-Johann Lay <avr@gjlay.de>
207
208 PR rtl-optimization/52543
209 PR target/52461
210 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
211 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
212 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
213 (avr_load_libgcc_p): Restrict to __flash loads.
214 (avr_out_lpm): Only handle 1-byte loads from __flash.
215 (avr_load_lpm): New function.
216 (avr_find_unused_d_reg): Remove.
217 (avr_out_lpm_no_lpmx): Remove.
218 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
219 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
220 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
221 (load_<mode>, load_<mode>_clobber): New insns.
222 (mov<mode>): For multi-byte move from non-generic
223 16-bit address spaces: Expand to load_<mode> resp.
224 load_<mode>_clobber.
225 (load<mode>_libgcc): Remove expander.
226 (split-lpmx): Remove split.
227
228 2012-03-21 Richard Earnshaw <rearnsha@arm.com>
229
230 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
231 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
232 All callers changed.
233 (Fixed_core_reg): New feature.
234 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
235 disassembly.
236 * neon-testgen.ml: Handle Fixed_core_reg.
237
238 2012-03-21 Andrew Stubbs <ams@codesourcery.com>
239
240 * config/arm/arm.c (thumb2_reorg): Add complete support
241 for 16-bit instructions.
242 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
243
244 2012-03-21 Richard Guenther <rguenther@suse.de>
245
246 PR tree-optimizer/52636
247 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
248 to the appropriate type.
249
250 2012-03-21 Richard Guenther <rguenther@suse.de>
251
252 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
253 dependencies.
254 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
255 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
256 * passes.c (init_optimization_passes): Remove pass_init_function,
257 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
258 * tree-pass.h (pass_init_function): Remove.
259 (pass_jump): Remove.
260 (pass_initial_value_sets): Remove.
261 (pass_unshare_all_rtl): Remove.
262 * integrate.c (pass_initial_value_sets): Remove.
263 * emit-rtl.c (pass_unshare_all_rtl): Remove.
264 * tree.h (init_function_for_compilation): Remove.
265 * function.c (init_function_for_compilation): Remove.
266 (pass_init_function): Remove.
267 * cfgcleanup.c (rest_of_handle_jump): Remove.
268 (pass_jump): Remove.
269
270 2012-03-20 Jason Merrill <jason@redhat.com>
271
272 * tree-streamer-in.c (streamer_alloc_tree): Call
273 ggc_alloc_zone_cleared_tree_node instead of
274 ggc_alloc_zone_cleared_tree_node_stat.
275
276 2012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
277
278 * doc/extend.texi (Template Instantiation): Remove anachronisms.
279
280 2012-03-20 Jakub Jelinek <jakub@redhat.com>
281
282 PR target/52607
283 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
284 (ix86_expand_vec_perm_const_1): Call it.
285
286 * config/i386/i386.c (vselect_insn): New variable.
287 (init_vselect_insn): New function.
288 (expand_vselect, expand_vselect_insn): Add testing_p argument.
289 Call init_vselect_insn if vselect_insn is NULL. Adjust
290 PATTERN (vselect_insn), instead of creating a new insn each time,
291 only emit a copy of it if not testing and recog has been successful.
292 (expand_vec_perm_pshufb, expand_vec_perm_1,
293 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
294 callers.
295
296 PR target/52607
297 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
298 ("enabled" attribute): Handle avx2 and noavx2 isas.
299 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
300 New insns.
301 (vec_dup<mode>): Add avx2 =x,x alternative.
302 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
303 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
304 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
305 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
306 for V8SFmode.
307 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
308 if possible, handle also V8SFmode.
309
310 2012-03-20 Richard Earnshaw <rearnsha@arm.com>
311
312 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
313 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
314 reg_or_zero_operand predicate.
315 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
316
317 2012-03-20 Jakub Jelinek <jakub@redhat.com>
318
319 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
320 If operand isn't UNSPEC, return 0.
321
322 2012-03-20 Richard Guenther <rguenther@suse.de>
323
324 * tree-pass.h (pass_rtl_eh): Remove.
325 * except.c (gate_handle_eh): Likewise.
326 (rest_of_handle_eh): Likewise.
327 (pass_rtl_eh): Likewise.
328 (finish_eh_generation): Export.
329 * except.h (finish_eh_generation): Declare.
330 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
331 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
332 after expanding stack alignment. Instead of compacting blocks
333 call cleanup_cfg.
334
335 2012-03-20 Richard Guenther <rguenther@suse.de>
336
337 * stor-layout.c (finish_bitfield_representative): Fallback
338 to conservative maximum size if the padding up to the next
339 field cannot be computed as a constant.
340 (finish_bitfield_layout): If we cannot compute the distance
341 between the start of the bitfield representative and the
342 bitfield member start a new representative.
343 * expr.c (get_bit_range): The distance between the start of
344 the bitfield representative and the bitfield member is zero
345 if the field offsets are not constants.
346
347 2012-03-20 Tristan Gingold <gingold@adacore.com>
348
349 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
350 convert in lowercase.
351 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
352 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
353 * stor-layout.c (sizetype_tab): Adjust.
354 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
355 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
356 instead of type_kind_last.
357 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
358 instead of size_int_kind.
359 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
360 * doc/tm.texi: Regenerate.
361 * defaults.h (SIZETYPE): Provide a default value.
362 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
363 (SIZETYPE): Define.
364
365 2012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
366
367 * config/sh/sh.md: Use braced string notation where applicable.
368
369 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
370
371 * config/i386/i386.md (allocate_stack): Simplify.
372
373 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
374
375 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
376 copy_to_mode_reg (Pmode, ...).
377 (expand_builtin_frame_address): Ditto.
378 * expr.c (emit_block_move_via_libcall): Ditto.
379 (set_storage_via_libcall): Ditto.
380
381 * config/i386/i386.c (ix86_expand_movmem): Ditto.
382 (ix86_expand_setmem): Ditto.
383 (ix86_trampoline_init): DItto.
384 * config/i386/i386.md (cmpstrnsi): Ditto.
385
386 2012-03-19 Sandra Loosemore <sandra@codesourcery.com>
387
388 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
389 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
390 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
391 (SH Options): Likewise.
392
393 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
394
395 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
396 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
397 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
398 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
399 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
400
401 Revert:
402 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
403
404 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
405 * config/i386/i386.c (ix86_decompose_address): Use
406 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
407 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
408 thread pointer to a register.
409
410 Revert:
411 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
412
413 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
414 if Pmode != word_mode.
415 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
416 Pmode == SImode for TARGET_X32.
417
418 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
419 (tls_initial_exec_x32): Likewise.
420
421 2012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
422
423 PR target/50751
424 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
425 DISP_ADDR_OFFSET): New macros.
426 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
427 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
428 (sh_legitimize_address): Add QImode displacement handling.
429 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
430 vector subregs.
431 (sh_secondary_reload): Add QImode displacement handling.
432 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
433 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
434 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
435 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
436 to register operands only.
437 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
438 (extendqihi2): Change insn to expander.
439 (*extendqihi2_compact_reg): New insn.
440 (movqi_i, movqi): Replace with ...
441 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
442 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
443 Add new peepholes for QImode displacement addressing.
444
445 2012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
446
447 PR c++/14710
448 * doc/invoke.texi: Document -Wuseless-cast.
449
450 2012-03-19 Eric Botcazou <ebotcazou@adacore.com>
451
452 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
453 * tree.h (handled_component_p): Reorder cases.
454 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
455 not initialize unsignedp.
456 (loc_list_from_tree): Likewise.
457 (fortran_common): Likewise.
458 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
459
460 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
461
462 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
463 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
464 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
465 (ix86_split_long_move): Ditto.
466 (legitimize_tls_address): Use ix86_gen_sub3.
467 (construct_plt_address): Assert that Pmode == DImode.
468
469 2012-03-18 Uros Bizjak <ubizjak@gmail.com>
470
471 * config/i386/i386.md: Remove empty predicates and/or constraints.
472 * config/i386/sync.md: Ditto.
473 * config/i386/sse.md: Ditto.
474 * config/i386/mmx.md: Ditto.
475 * config/i386/pentium.md: Ditto.
476 * config/i386/athlon.md: Ditto.
477
478 2012-03-16 Richard Guenther <rguenther@suse.de>
479
480 PR tree-optimization/52603
481 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
482 comment.
483
484 Revert
485 2012-03-14 Richard Guenther <rguenther@suse.de>
486
487 PR tree-optimization/52571
488 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
489 flag_section_anchors check ...
490 (vect_can_force_dr_alignment_p): ... here.
491
492 2012-03-16 Martin Jambor <mjambor@suse.cz>
493
494 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
495 memory through MEM_REFs by calling extract_bit_field.
496
497 2012-03-16 Richard Guenther <rguenther@suse.de>
498
499 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
500 and REFERENCE_TYPE interpretations.
501 (can_native_interpret_type_p): New function.
502 (fold_ternary_loc): Use native encode/interpret to fold
503 BIT_FIELD_REFs of constants.
504
505 2012-03-16 Richard Guenther <rguenther@suse.de>
506
507 PR middle-end/52584
508 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
509 of vector constants and constructors.
510
511 2012-03-16 Richard Guenther <rguenther@suse.de>
512
513 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
514 VIEW_CONVERT_EXPR to convert constants.
515 (vect_is_simple_use): Treat all constants as vec_constant_def.
516
517 2012-03-16 Richard Guenther <rguenther@suse.de>
518 Kai Tietz <ktietz@redhat.com>
519
520 PR middle-end/48814
521 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
522 side-effects completely in the pre-queue and use a temporary
523 for the result.
524
525 2012-03-16 Richard Guenther <rguenther@suse.de>
526
527 * stor-layout.c (finish_bitfield_representative): Fall back
528 to the conservative maximum size if we cannot compute the
529 size of the tail padding.
530
531 2012-03-16 Tristan Gingold <gingold@adacore.com>
532
533 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
534 __CRTL_VER and __VMS_VER.
535 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
536 and vms_c_get_vms_ver.
537 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
538 functions.
539 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
540 (VMS_DEFAULT_VMS_VER): Define.
541 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
542 (VMS_DEFAULT_VMS_VER): Define.
543
544 2012-03-16 Richard Guenther <rguenther@suse.de>
545
546 * tree-vect-loop.c (get_initial_def_for_induction): Use
547 build_constructor directly.
548 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
549 build_vector_from_val.
550 * tree.c (build_vector_from_val): Avoid creating a constructor
551 first when we want a constant vector.
552
553 2012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
554
555 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
556
557 2012-03-16 Richard Guenther <rguenther@suse.de>
558
559 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
560 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
561 (struct tree_vector): Remove elements member, add variable size
562 elts array member.
563 (build_vector_stat): Declare.
564 (build_vector): Define in terms of build_vector_stat.
565 * tree.c (build_vector): Rename to ...
566 (build_vector_stat): ... this. Take array of trees as parameter.
567 (build_vector_from_ctor): Adjust.
568 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
569 initializer_zerop): Adjust.
570 * cfgexpand.c (expand_debug_expr): Likewise.
571 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
572 const_vector_from_tree): Likewise.
573 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
574 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
575 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
576 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
577 (lto_input_ts_vector_tree_pointers): Adjust.
578 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
579 (write_ts_vector_tree_pointers): Adjust.
580 * varasm.c (const_hash_1, compare_constant, copy_constant,
581 output_constant): Adjust.
582 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
583 * print-tree.c (print_node): Adjust.
584 * tree-pretty-print.c (dump_generic_node): Adjust.
585 * tree-vect-generic.c (uniform_vector_p, vector_element,
586 lower_vec_perm): Adjust.
587 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
588 * tree-vect-slp.c (vect_get_constant_vectors,
589 vect_transform_slp_perm_load): Adjust.
590 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
591 * expmed.c (make_tree): Adjust.
592 * config/i386/i386.c (ix86_expand_builtin): Adjust.
593 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
594 and implementation.
595 (sparc_fold_builtin): Adjust.
596
597 2012-03-16 Tristan Gingold <gingold@adacore.com>
598
599 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
600 * config/vms/vms-stdint.h: New file.
601
602 2012-03-16 Tristan Gingold <gingold@adacore.com>
603
604 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
605 (ia64-hp-*vms*): Replaced by ...
606 (*-*-*vms*): ... This new entry.
607
608 2012-03-15 Jakub Jelinek <jakub@redhat.com>
609
610 PR target/52568
611 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
612 (ix86_expand_vec_perm_const_1): Use it.
613
614 PR target/52568
615 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
616 (avx2_permv4df): Remove.
617 (avx2_permv4di): Macroize into...
618 (avx2_perm<mode>): ... this using VI8F_256 iterator.
619 (avx2_permv4di_1): Macroize into...
620 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
621
622 2012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
623
624 * combine.c (apply_distributive_law): Do not distribute SUBREG.
625
626 2012-03-15 Ira Rosen <irar@il.ibm.com>
627 Ulrich Weigand <ulrich.weigand@linaro.org>
628
629 * tree-vect-patterns.c (widened_name_p): Rename to ...
630 (type_conversion_p): ... this. Add new argument to determine
631 if it's a promotion or demotion operation. Check for
632 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
633 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
634 widened_name_p.
635 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
636 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
637 Likewise.
638 (vect_recog_mixed_size_cond_pattern): Likewise and allow
639 non-constant then and else clauses.
640
641 2012-03-15 Ira Rosen <irar@il.ibm.com>
642 Ulrich Weigand <ulrich.weigand@linaro.org>
643
644 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
645 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
646 vect_pattern_recog.
647 * tree-vect-patterns.c (widened_name_p): Pass basic block
648 info to vect_is_simple_use.
649 (vect_recog_dot_prod_pattern): Fail for basic blocks.
650 (vect_recog_widen_sum_pattern): Likewise.
651 (vect_handle_widen_op_by_const): Support basic blocks.
652 (vect_operation_fits_smaller_type,
653 vect_recog_over_widening_pattern): Likewise.
654 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
655 Update call to vect_is_simple_use.
656 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
657 Add printing.
658 (check_bool_pattern): Add an argument, update call to
659 vect_is_simple_use and the recursive calls.
660 (vect_recog_bool_pattern): Update relevant function calls.
661 Add printing.
662 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
663 (vect_pattern_recog_1): Check for reduction only in loops.
664 (vect_pattern_recog): Add new argument. Support basic blocks.
665 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
666 info to vect_is_simple_use_1.
667 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
668 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
669
670 2012-03-15 Jakub Jelinek <jakub@redhat.com>
671 Andrew Pinski <apinski@cavium.com>
672
673 PR middle-end/52592
674 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
675 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
676 calls instead of __builtin_ir{int,ound}*.
677
678 2012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
679
680 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
681 documentation.
682
683 2012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
684
685 * config.gcc (target_type_format_char): New. Document it. Set it for
686 arm*-*-* .
687 * configure.ac (gnu_unique_option): Use target_type_format_char
688 in test. Comment rationale.
689 * configure: Regenerate .
690
691 2012-03-15 Jakub Jelinek <jakub@redhat.com>
692
693 PR tree-optimization/52267
694 * tree-vrp.c (masked_increment): New function.
695 (register_edge_assert_for_2): Derive ASSERT_EXPRs
696 from (X & CST1) cmp CST2 tests.
697
698 2012-03-15 Richard Guenther <rguenther@suse.de>
699
700 PR middle-end/52580
701 * tree-data-ref.c (subscript_dependence_tester_1): Check
702 all dimensions for non-conflicting access functions.
703
704 2012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
705
706 PR c++/44783
707 * doc/invoke.texi [C++ Language Options]: Document
708 -ftemplate-backtrace-limit.
709
710 2012-03-15 Tristan Gingold <gingold@adacore.com>
711
712 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
713 before a parameter.
714
715 2012-03-15 Tristan Gingold <gingold@adacore.com>
716
717 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
718 use DW_OP_call_frame_cfa.
719
720 2012-03-14 H.J. Lu <hongjiu.lu@intel.com>
721
722 PR target/50797
723 * config/i386/i386-opts.h (pmode): New.
724
725 * config/i386/i386.c (ix86_option_override_internal): Properly
726 check and set ix86_pmode.
727
728 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
729
730 * config/i386/i386.opt (maddress-mode=): New.
731
732 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
733
734 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
735
736 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
737 (dwarf2out_do_cfi_asm): Likewise.
738 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
739 handling.
740 (add_data_member_location_attribute): Likewise.
741 (gen_array_type_die): Likewise.
742 (gen_subprogram_die): Likewise.
743 (gen_producer_string): Likewise.
744 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
745 Remove MIPS_DEBUGGING_INFO handling.
746 (sdb_debug_hooks): Likewise.
747 (sdbout_begin_block): Likewise.
748 (sdbout_end_block): Likewise.
749 (sdbout_begin_prologue): Likewise.
750 (sdbout_start_source_file): Likewise.
751 (sdbout_end_source_file): Likewise.
752 (sdbout_init): Likewise.
753 * system.h (MIPS_DEBUGGING_INFO): Poison.
754
755 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
756
757 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
758 (alpha_file_start) [MS_STAMP]: Remove.
759
760 * config/alpha/elf.h (TARGET_GAS): Remove.
761 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
762 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
763 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
764 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
765 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
766 (alpha*-*-freebsd*): Likewise.
767 (alpha*-*-netbsd*): Likewise.
768 (alpha*-*-openbsd*): Likewise.
769 (alpha*-*-*): Remove target_cpu_default2.
770 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
771 handling.
772 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
773 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
774 * config/alpha/alpha.c (print_operand): Always assume
775 TARGET_AS_SLASH_BEFORE_SUFFIX.
776 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
777 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
778 ("*builtin_setjmp_receiver_er_1"): Remove.
779 * config/alpha/alpha.opt (malpha-as): Remove.
780 (mgas): Ignore.
781 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
782 -malpha-as, -mgas.
783 Remove DEC Unix reference.
784
785 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
786 (EXTENDED_COFF): Remove.
787 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
788 (EXTENDED_COFF): Don't undef.
789 * config/alpha/alpha.c (alpha_file_start): Always assume
790 OBJECT_FORMAT_ELF.
791 Don't set targetm.asm_file_start_file_directive.
792 [!OBJECT_FORMAT_ELF]: Remove.
793 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
794
795 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
796 (DBX_DEBUGGING_INFO): Remove.
797 (MIPS_DEBUGGING_INFO): Remove.
798 (PREFERRED_DEBUGGING_TYPE): Remove.
799 (DBX_OUTPUT_SOURCE_LINE): Remove.
800 (SDB_OUTPUT_SOURCE_LINE): Remove.
801 (DBX_CONTIN_LENGTH): Remove.
802 (NO_DBX_FUNCTION_END): Remove.
803 (ASM_STABS_OP): Remove.
804 (ASM_STABN_OP): Remove.
805 (ASM_STABD_OP): Remove.
806 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
807 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
808 (PUT_SDB_DEF): Remove.
809 (PUT_SDB_PLAIN_DEF): Remove.
810 (PUT_SDB_TYPE): Remove.
811 (sdb_label_count): Remove.
812 (PUT_SDB_BLOCK_START): Remove.
813 (PUT_SDB_BLOCK_END): Remove.
814 (PUT_SDB_FUNCTION_START): Remove.
815 (PUT_SDB_FUNCTION_END): Remove.
816 (PUT_SDB_EPILOGUE_END): Remove.
817 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
818 (MIPS_DEBUGGING_INFO): Don't undef.
819 (DBX_DEBUGGING_INFO): Don't undef.
820 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
821 (MIPS_DEBUGGING_INFO): Don't undef.
822 (DBX_DEBUGGING_INFO): Don't undef.
823 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
824 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
825 handling.
826 (alpha_start_function): Likewise.
827 (sdb_label_count): Remove.
828 (alpha_output_filename): Remove DBX_DEBUG handling.
829 (alpha_file_start): Likewise.
830
831 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
832
833 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
834 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
835 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
836 Solaris 8 support.
837 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
838 (ld_tls_support): Remove Solaris 8 references.
839 (lwp_dir, lwp_spec): Remove support for alternate thread library.
840 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
841 * configure: Regenerate.
842 * config.in: Regenerate.
843
844 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
845 * config/i386/sol2.h: Remove Solaris 8 references.
846
847 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
848 (i?86-*-solaris2.9): ... this.
849 Remove Solaris 8 references.
850 (Specific, *-*-solaris2*): Document Solaris 8 removal.
851 Remove Solaris 8 references.
852
853 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
854
855 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
856 (mips-sgi-irix6.5*): Remove.
857 * config.host (mips-sgi-irix*): Remove.
858 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
859 (set_have_as_tls): Remove *-*-irix6*.
860 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
861 * configure: Regenerate.
862
863 * config/mips/iris6.h: Remove.
864 * config/mips/iris6.opt: Remove.
865 * config/mips/t-irix6: Remove.
866
867 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
868 (TARGET_IRIX6): Remove.
869 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
870 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
871 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
872 handling.
873 (mips_file_start): Likewise.
874 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
875
876 * config/mips/driver-native.c [__sgi__]: Remove.
877 (host_detect_local_cpu) [__sgi__]: Remove.
878
879 * config/mips/gnu-user.h: Remove iris5.h reference.
880
881 * config/mips/mips-modes.def: Remove IRIX 6 reference.
882 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
883 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
884 Remove.
885
886 * gcc.c (main): Move asm_debug initialization ...
887 (asm_debug): ... here.
888
889 * ginclude/stddef.h (__STDDEF_H__): Don't define.
890
891 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
892 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
893 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
894 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
895 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
896 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
897 Remove.
898 * doc/tm.texi: Regenerate.
899
900 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
901 IRIX 6 reference.
902 (MIPS Options, -march): Remove IRIX reference.
903 * doc/install.texi (Binaries, SGI IRIX): Remove.
904 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
905 of section.
906 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
907
908 2012-03-14 Martin Jambor <mjambor@suse.cz>
909
910 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
911 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
912 (expand_expr_real_1): Do not handle misalignment if modifier is
913 EXPAND_WRITE.
914
915 2012-03-14 Richard Guenther <rguenther@suse.de>
916
917 PR middle-end/52584
918 * tree-vect-generic.c (type_for_widest_vector_mode): Take
919 element type instead of mode, use build_vector_type_for_mode
920 instead of the langhook, build a vector of proper signedness.
921 (expand_vector_operations_1): Adjust.
922
923 2012-03-14 Richard Guenther <rguenther@suse.de>
924
925 PR middle-end/52582
926 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
927 a cgraph node for a FUNCTION_DECL that comes from a constructor.
928 (gimple_get_virt_method_for_binfo): Likewise.
929
930 2012-03-14 Richard Guenther <rguenther@suse.de>
931
932 PR tree-optimization/52571
933 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
934 flag_section_anchors check ...
935 (vect_can_force_dr_alignment_p): ... here. Do not re-align
936 DECL_COMMON variables.
937
938 2012-03-14 Richard Guenther <rguenther@suse.de>
939
940 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
941 * stor-layout.c (start_bitfield_representative): New function.
942 (finish_bitfield_representative): Likewise.
943 (finish_bitfield_layout): Likewise.
944 (finish_record_layout): Call finish_bitfield_layout.
945 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
946 for QUAL_UNION_TYPE fields.
947 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
948 Stream DECL_BIT_FIELD_REPRESENTATIVE.
949 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
950
951 PR middle-end/52080
952 PR middle-end/52097
953 PR middle-end/48124
954 * expr.c (get_bit_range): Unconditionally extract bitrange
955 from DECL_BIT_FIELD_REPRESENTATIVE.
956 (expand_assignment): Adjust call to get_bit_range.
957
958 2012-03-14 Richard Guenther <rguenther@suse.de>
959
960 PR middle-end/52578
961 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
962 the outermost conversion is a sign-change only.
963 (fold_binary_loc): Disregard widening and sign-changing
964 conversions when we determine if two variables are equal
965 for reassociation.
966 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
967 (T1)x if the outermost conversion is a sign-change only.
968
969 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
970
971 Revert:
972 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
973
974 * config/i386/predicates.md (constant_call_address_operand): Declare
975 as special predicate. Update all uses.
976
977 2012-03-13 Jakub Jelinek <jakub@redhat.com>
978
979 PR c/52577
980 * c-parser.c (c_parser_postfix_expression)
981 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
982
983 * config/i386/smmintrin.h: Avoid /* within a comment.
984 * config/i386/nmmintrin.h: Likewise.
985
986 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
987
988 * config/i386/i386.md (xbegin): Remove constraint from expander.
989
990 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
991
992 * config/i386/predicates.md (constant_call_address_operand): Declare
993 as special predicate. Update all uses.
994 * config/i386/i386.md: Remove mode from constant_call_address_operand
995 predicates.
996 * config/i386/i386.c (ix86_output_call_insn): Call
997 constant_call_address_operand with VOIDmode.
998
999 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
1000
1001 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
1002 AND zero extended address correctly.
1003
1004 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
1005
1006 * config/i386/predicates.md (tls_symbolic_operand): Declare as
1007 special predicate.
1008 (tls_modbase_operand): Ditto.
1009 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
1010 tls_modbase_operand predicates.
1011
1012 2012-03-13 Martin Jambor <mjambor@suse.cz>
1013
1014 * expr.c (expand_assignment): Handle misaligned scalar writes to
1015 memory through top-level MEM_REFs by calling store_bit_field.
1016
1017 2012-03-13 Richard Guenther <rguenther@suse.de>
1018
1019 PR middle-end/52134
1020 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
1021 if Y is a constant multiple of 1 << CST.
1022
1023 2012-03-13 Georg-Johann Lay <avr@gjlay.de>
1024
1025 PR target/52488
1026 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
1027 offset (size) to a value the insns can deal with.
1028 (expand_epilogue): Ditto.
1029
1030 2012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1031
1032 * config/arm/neon.ml (ops): Fixup expected instructions for
1033 unsigned vector compares.
1034
1035 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
1036
1037 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
1038 addresses only when %reg is not in word mode.
1039
1040 2012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1041
1042 * config/microblaze/microblaze.md: Fix typo.
1043 * tree-if-conv.c: Likewise.
1044 * tree-vect-patterns.c: Likewise.
1045
1046 2012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1047
1048 * config.gcc (extra_passes): Remove.
1049 * configure.ac (extra_passes): Don't substitute.
1050 * configure: Regenerate.
1051 * Makefile.in (EXTRA_PASSES): Remove.
1052 (GCC_PASSES): Remove $(EXTRA_PASSES).
1053 (MOSTLYCLEANFILES): Likewise.
1054 (native): Likewise.
1055 (install-common): Likewise.
1056
1057 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
1058
1059 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
1060 * config/i386/i386.c (ix86_decompose_address): Use
1061 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
1062 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
1063 thread pointer to a register.
1064
1065 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
1066
1067 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
1068 on tls_symbolic_operand.
1069 (tls_global_dynamic_64_<mode>): Likewise.
1070
1071 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
1072
1073 PR other/52545
1074 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
1075 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
1076
1077 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
1078
1079 PR target/52499
1080 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
1081 type from reg_class_t to enum reg_class.
1082 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
1083
1084 2012-03-12 Andrew Pinski <apinski@cavium.com>
1085
1086 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
1087 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
1088 (value_replacement): Likewise.
1089 (empty_block_p): Check also if the PHIs for the block are empty.
1090
1091 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
1092
1093 PR target/52148
1094 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
1095 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
1096 r184615 from 2012-02-28.
1097
1098 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
1099
1100 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
1101 (ix86_gen_tls_local_dynamic_base_64): Likewise.
1102 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
1103 and ix86_gen_tls_local_dynamic_base_64.
1104 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
1105 ix86_gen_tls_local_dynamic_base_64.
1106
1107 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
1108 (*tls_global_dynamic_64_<mode>): This.
1109 (tls_global_dynamic_64): Renamed to ...
1110 (tls_global_dynamic_64_<mode>): This.
1111 (*tls_local_dynamic_base_64): Renamed to ...
1112 (*tls_local_dynamic_base_64_<mode>): This.
1113 (tls_local_dynamic_base_64): Renamed to ...
1114 (tls_local_dynamic_base_64_<mode>): This.
1115
1116 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
1117
1118 * config/i386/i386.c (ix86_option_override_internal): Properly
1119 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
1120 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
1121 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
1122 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
1123
1124 * config/i386/sse.md (sse3_monitor64): Renamed to ...
1125 (sse3_monitor64_<mode>): This.
1126
1127 2012-03-12 Tristan Gingold <gingold@adacore.com>
1128
1129 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
1130 (ia64_function_arg_advance): Ditto.
1131
1132 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1133
1134 * config.gcc (mips*-*-openbsd*): Remove.
1135 * config/mips/openbsd.h: Remove.
1136 * config/mips/sdb.h: Remove.
1137
1138 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
1139 * config/mips/mips.c (sdb_label_count): Remove.
1140 (mips_debugger_offset): Remove #if 0 code.
1141 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
1142 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
1143
1144 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1145
1146 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
1147 binutils reference.
1148 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
1149 Update binutils references.
1150 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
1151 Update binutils reference.
1152 Update Sun as/GNU ld caveat.
1153 Document binutils largefile requirement for LTO plugin.
1154 Remove reference to alternate libpthread.
1155
1156 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1157
1158 * config.gcc (alpha*-dec-osf5.1*): Remove.
1159 * config.host (alpha*-dec-osf*): Remove.
1160 * configure.ac (*-*-osf*): Remove.
1161 (alpha*-dec-osf*): Remove.
1162 * configure: Regenerate.
1163
1164 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
1165 config/alpha/va_list.h, config/alpha/x-osf: Remove.
1166
1167 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
1168 * config/alpha/alpha.c (struct machine_function): Update comment.
1169 (alpha_start_function): Remove Tru64 UNIX as handling for
1170 max_frame_size.
1171 * config/alpha/alpha.md ("exception_receiver"): Remove
1172 TARGET_LD_BUGGY_LDGP.
1173 ("*exception_receiver_2"): Likewise.
1174 * except.c (finish_eh_generation): Remove Tru64 reference.
1175 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
1176 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
1177 * target.def (handle_pragma_extern_prefix): Remove.
1178
1179 * Makefile.in (mips-tfile.o-warn): Remove.
1180 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
1181 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
1182 * mips-tdump.c, mips-tfile.c: Remove.
1183
1184 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
1185 extern_prefix.
1186 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
1187 (Specific, alpha*-dec-osf5.1): Note removal.
1188 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
1189 Remove.
1190 * doc/tm.texi: Regenerate.
1191 * doc/trouble.texi (Cross-Compiler Problems): Remove.
1192
1193 2012-03-12 Richard Guenther <rguenther@suse.de>
1194
1195 * config/arm/arm.c (neon_dereference_pointer): Do not call
1196 covert during RTL expansion.
1197
1198 2012-03-12 Tristan Gingold <gingold@adacore.com>
1199
1200 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
1201 Options. Mention -mpointer-size.
1202
1203 2012-03-12 Richard Guenther <rguenther@suse.de>
1204
1205 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
1206 build_nonstandard_integer_type.
1207
1208 2012-03-12 Richard Guenther <rguenther@suse.de>
1209
1210 * tree.c (signed_or_unsigned_type_for): Use
1211 build_nonstandard_integer_type.
1212 (signed_type_for): Adjust documentation.
1213 (unsigned_type_for): Likewise.
1214 * tree-pretty-print.c (dump_generic_node): Use standard names
1215 for non-standard integer types if available.
1216
1217 2012-03-12 Tristan Gingold <gingold@adacore.com>
1218
1219 * config/vms/vms.opt: Add vms-opts.h header.
1220 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
1221 target mask.
1222 (-mvms-return-codes): Document.
1223 (-mpointer-size): New option.
1224 (vms_pointer_size): Add enumeration.
1225 * config/vms/vms-opts.h: New file.
1226 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
1227 __INITIAL_POINTER_SIZE.
1228 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
1229 (C_COMMON_OVERRIDE_OPTIONS): Define.
1230 (DWARF2_ADDR_SIZE): Define.
1231 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
1232 * config/vms/vms-protos.h (vms_c_common_override_options):
1233 New prototype.
1234 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
1235 if -mno-pointer-size.
1236 (vms_c_common_override_options): New function.
1237 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
1238 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
1239 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
1240 and flag_vms_pointer_size.
1241 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
1242 * config.gcc (*-*-*vms*): Define xm_file.
1243 (alpha*-dec-*vms*): Do not define xm_file.
1244 (alpha64-dec-*vms*): Remove.
1245 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
1246 and tmake_file.
1247
1248 2012-03-12 Jakub Jelinek <jakub@redhat.com>
1249
1250 PR tree-optimization/51721
1251 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
1252 if (int) unsvar cmp CST.
1253
1254 2012-03-12 Richard Guenther <rguenther@suse.de>
1255
1256 * tree-sra.c (create_access_replacement): Only rename the replacement
1257 if we can rewrite it into SSA form. Properly mark register typed
1258 replacements that we cannot rewrite with TREE_ADDRESSABLE.
1259 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
1260 for aggregate or BLKmode results.
1261
1262 2012-03-12 Jakub Jelinek <jakub@redhat.com>
1263
1264 PR tree-optimization/52533
1265 * tree-vrp.c (register_edge_assert_for_2): Use double_int
1266 type for mask, only handle shifts by non-zero in-range
1267 shift count, for LE_EXPR and GT_EXPR if new_val is
1268 maximum, don't add the assertion.
1269
1270 2012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
1271
1272 * doc/invoke.texi: Document -mrtm option.
1273 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
1274 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
1275 (ix86_handle_option): Handle OPT_mrtm.
1276 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
1277 xtestintrin.h.
1278 (x86_64-*-*): Ditto.
1279 * i386-builtin-types.def (INT_FTYPE_VOID): New.
1280 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1281 __RTM__ if needed.
1282 (ix86_target_string): Define -mrtm option.
1283 (PTA_RTM): New.
1284 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
1285 Handle new option.
1286 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
1287 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
1288 IX86_BUILTIN_XTEST.
1289 (bdesc_special_args): Ditto.
1290 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
1291 (ix86_expand_special_args_builtin): Handle new built-in type.
1292 (ix86_expand_builtin): Handle XABORT instruction.
1293 * config/i386/i386.h (TARGET_RTM): New.
1294 * config/i386/i386.md (UNSPECV_XBEGIN): New.
1295 (UNSPECV_XEND): Ditto.
1296 (UNSPECV_XABORT): Ditto.
1297 (UNSPECV_XTEST): Ditto.
1298 (xbegin): Ditto.
1299 (xbegin_1): Ditto.
1300 (xend): Ditto.
1301 (xabort): Ditto
1302 (xtest): Ditto.
1303 (xtest_1): Ditto.
1304 * config/i386/i386.opt (mrtm): New.
1305 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
1306 * config/i386/rtmintrin.h: New header.
1307 * config/i386/xtestintrin.h: Ditto.
1308
1309 2012-03-12 Tristan Gingold <gingold@adacore.com>
1310
1311 * ginclude/stddef.h: Adjust previous patch.
1312 Use __VMS__ instead of VMS.
1313
1314 2012-03-12 Uros Bizjak <ubizjak@gmail.com>
1315
1316 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
1317 Also convert sequences with CC setting arithmetic instruction.
1318
1319 2012-03-11 Sandra Loosemore <sandra@codesourcery.com>
1320
1321 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
1322 from C Language Options to Preprocessor Options.
1323 (C Dialect Options): Move -no-integrated-cpp documentation
1324 from here...
1325 (Preprocessor Options): ...to here. Rewrite the description
1326 so it makes more sense, and remove discussion of merging front ends.
1327
1328 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
1329
1330 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
1331 needed for loop.
1332 (ix86_expand_setmem): Likewise.
1333
1334 2012-03-11 Uros Bizjak <ubizjak@gmail.com>
1335
1336 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
1337 convert_to_mode.
1338
1339 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
1340
1341 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
1342 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
1343
1344 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
1345
1346 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
1347
1348 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
1349
1350 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
1351 TARGET_64BIT.
1352
1353 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
1354 Uros Bizjak <ubizjak@gmail.com>
1355
1356 * config/i386/predicates.md (call_insn_operand): Allow
1357 constant_call_address_operand in Pmode only.
1358 (sibcall_insn_operand): Ditto.
1359 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
1360 (*call_vzeroupper): Ditto.
1361 (*sibcall): Ditto.
1362 (*sibcall_vzeroupper): Ditto.
1363 (*call_value): Ditto.
1364 (*call_value_vzeroupper): Ditto.
1365 (*sibcall_value): Ditto.
1366 (*sibcall_value_vzeroupper): Ditto.
1367 (*indirect_jump): Ditto.
1368 (*tablejump_1): Ditto.
1369 (indirect_jump): Convert memory address to word mode for TARGET_X32.
1370 (tablejump): Ditto.
1371 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
1372 to word mode.
1373
1374 2012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
1375
1376 PR target/51244
1377 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
1378 Use movrt_negc instead of negc pattern for non-SH2A.
1379 (*movnegt): Remove.
1380 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
1381
1382 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
1383
1384 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
1385 if Pmode != word_mode.
1386 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
1387 Pmode == SImode for TARGET_X32.
1388
1389 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
1390 (tls_initial_exec_x32): Likewise.
1391
1392 2012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
1393
1394 PR rtl-optimization/52528
1395 * combine.c (can_combine_p): Add setting of subst_low_luid
1396 before call to expand_field_assignment().
1397
1398 2012-03-09 Sandra Loosemore <sandra@codesourcery.com>
1399
1400 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
1401 and related program names.
1402
1403 2012-03-09 Sandra Loosemore <sandra@codesourcery.com>
1404
1405 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
1406
1407 2012-03-09 Uros Bizjak <ubizjak@gmail.com>
1408
1409 PR target/52530
1410 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
1411 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
1412 to set code to 'q'.
1413 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
1414 (*movdi_internal_rex64): Use %E operand modifier for lea.
1415 (*movsi_internal): Ditto.
1416 (*lea_1): Ditto.
1417 (*lea<mode>_2): Ditto.
1418 (*lea_{3,4,5,6}_zext): Ditto.
1419 (*tls_global_dynamic_32_gnu): Ditto.
1420 (*tls_global_dynamic_64): Ditto.
1421 (*tls_dynamic_gnu2_lea_32): Ditto.
1422 (*tls_dynamic_gnu2_lea_64): Ditto.
1423 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
1424
1425 2012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
1426
1427 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
1428 redefine to be NULL if the current bit-size is different from the
1429 configured bit-size.
1430
1431 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
1432 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
1433 set the default tuning. Add asserts to make sure the cpu and tune
1434 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
1435 test whether the index is set, instead of > 0.
1436 (rs6000_file_start): Do not reset the default cpu if the current
1437 bit-size is different from the configured bit-size.
1438
1439 2012-03-09 Tristan Gingold <gingold@adacore.com>
1440
1441 * config/vms/vms-crtlmap.map: Add comments.
1442 Add entries needed to build Ada RTS.
1443
1444 2012-03-09 Tristan Gingold <gingold@adacore.com>
1445
1446 * ginclude/stddef.h: Do not define __size_t on VMS.
1447
1448 2012-03-09 Tristan Gingold <gingold@adacore.com>
1449
1450 * c-tree.h (c_default_pointer_mode): New variable.
1451 * c-decl.c (c_default_pointer_mode): New variable.
1452 (c_build_pointer_type): New function.
1453 (grokdeclarator): Call c_build_pointer_type instead
1454 of build_pointer_type.
1455
1456 * config/vms/vms-c.c: Include c-tree.h
1457 (saved_pointer_mode): New variable.
1458 (handle_pragma_pointer_size): New function.
1459 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
1460 (vms_c_register_pragma): Register __pointer_size and
1461 __required_pointer_size pragmas.
1462
1463 2012-03-09 Tristan Gingold <gingold@adacore.com>
1464
1465 * config/vms/vms-c.c (vms_construct_include_filename): New function.
1466 (vms_c_register_includes): Reference it.
1467
1468 2012-03-09 Andrew Pinski <apinski@cavium.com>
1469
1470 PR middle-end/51988
1471 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
1472 print_generic_expr.
1473 (tree_ssa_phiopt_worker): Go through all the PHIs for
1474 value_replacement instead of just the singleton one.
1475 (value_replacement): Change return type to int. Return 0 instead of
1476 false.
1477 Allow the middle basic block to contain more than just the defining
1478 statement.
1479 Handle non empty middle basic blocks.
1480 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
1481
1482 2012-03-09 Jiangning Liu <jiangning.liu@arm.com>
1483
1484 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
1485 array reference and component reference.
1486 (analyze_scalar_evolution_for_address_of): New.
1487
1488 2012-03-08 Jie Zhang <jzhang918@gmail.com>
1489
1490 PR target/49862
1491 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
1492 (hwloop_pattern_reg): Fix set but not used warning.
1493 (bfin_reorg_loops): Remove unused parameter.
1494 (bfin_reorg): Update use of bfin_reorg_loops.
1495
1496 2012-03-08 H.J. Lu <hongjiu.lu@intel.com>
1497
1498 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
1499 with integer parameters in registers.
1500 (gen_push): Push register in word_mode instead of Pmode.
1501 (ix86_emit_save_regs): Likewise.
1502 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
1503 (gen_pop): Pop register in word_mode instead of Pmode.
1504 (ix86_emit_restore_regs_using_pop): Likewise.
1505 (ix86_expand_prologue): Replace Pmode with word_mode for push
1506 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
1507 restore RAX and R10 in word_mode.
1508 (ix86_emit_restore_regs_using_mov): Restore integer registers
1509 in word_mode.
1510 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
1511 word_mode.
1512 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
1513 (ix86_split_long_move): Likewise.
1514
1515 * config/i386/i386.md (W): New.
1516 (*push<mode>2_prologue): Replace :P with :W.
1517 (*pop<mode>1): Likewise.
1518 (*pop<mode>1_epilogue): Likewise.
1519 (push/pop peephole2): Use word_mode scratch registers.
1520
1521 2012-03-08 Uros Bizjak <ubizjak@gmail.com>
1522
1523 * config/i386/predicates.md (indirect_branch_operand): Simplify.
1524
1525 2012-03-08 Georg-Johann Lay <avr@gjlay.de>
1526
1527 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
1528 for constants in [-63,63].
1529
1530 2012-03-08 Uros Bizjak <ubizjak@gmail.com>
1531
1532 PR target/52530
1533 Revert:
1534 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
1535
1536 * config/i386/i386.c (ix86_print_operand_address): Only handle
1537 zero-extended DImode addresses.
1538
1539 2012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1540
1541 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
1542 * configure: Regenerate.
1543
1544 2012-03-08 Georg-Johann Lay <avr@gjlay.de>
1545
1546 PR target/52496
1547 * config/avr/avr.c (avr_mem_clobber): New static function.
1548 (avr_expand_delay_cycles): Add memory clobber operand to
1549 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
1550 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
1551 (enable_interrupt, disable_interrupt): New expander.
1552 (nopv, sleep, wdr): New expanders.
1553 (delay_cycles_1): Add memory clobber.
1554 (delay_cycles_2): Add memory clobber.
1555 (delay_cycles_3): Add memory clobber.
1556 (delay_cycles_4): Add memory clobber.
1557 (cli_sei): New insn from former "enable_interrupt",
1558 "disable_interrupt" with memory clobber.
1559 (*wdt): New insn from former "wdt" with memory clobber.
1560 (*nopv): Similar, but for "nopv".
1561 (*sleep): Similar, but for "sleep".
1562
1563 2012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
1564 Kaz Kojima <kkojima@gcc.gnu.org>
1565
1566 PR target/52503
1567 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
1568 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
1569 (SUBTARGET_OVERRIDE_OPTIONS): Define.
1570
1571 2012-03-07 Uros Bizjak <ubizjak@gmail.com>
1572
1573 * config/i386/predicates.md (x86_64_zext_general_operand): New.
1574 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
1575 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
1576
1577 2012-03-07 Walter Lee <walt@tilera.com>
1578
1579 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
1580 REG_CFA_* notes for the stack pointer.
1581 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
1582 EH_RETURN_STACKADJ_RTX.
1583 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
1584 generate REG_CFA_* notes for the stack pointer.
1585 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
1586 by EH_RETURN_STACKADJ_RTX.
1587
1588 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
1589
1590 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
1591 when __AVR_3_BYTE_PC__ is defined.
1592
1593 2012-03-07 Uros Bizjak <ubizjak@gmail.com>
1594
1595 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
1596 (ix86_print_operand): Handle '^'.
1597 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
1598 using P mode iterator. Add %^ to asm template to conditionally emit
1599 addr32 prefix.
1600 (*rep_movdi_rex64): Ditto.
1601 (*strsetdi_rex_1): Ditto.
1602 (*rep_stosdi_rex64): Ditto.
1603 (*strmov{si,hi,qi}_1): Add %^ to asm template to
1604 conditionally emit addr32 prefix.
1605 (*rep_mov{si,qi}): Ditto.
1606 (*strset{si,hi,qi}): Ditto.
1607 (*rep_stos{si,qi}): Ditto.
1608 (*cmpstrnqi_nz_1): Ditto.
1609 (*cmpstrnqi_1): Ditto.
1610 (*strlenqi_1): Ditto.
1611
1612 2012-03-07 H.J. Lu <hongjiu.lu@intel.com>
1613
1614 * config/i386/i386.c (function_value_64): Return pointers in
1615 word_mode instead of Pmode.
1616 (ix86_promote_function_mode): Likewise.
1617
1618 2012-03-07 Richard Guenther <rguenther@suse.de>
1619
1620 * coverage.c (get_gcov_type): Use type_for_mode.
1621 (get_gcov_unsigned_t): Likewise.
1622 * expr.c (store_constructor): Use type_for_mode.
1623 (try_casesi): Likewise.
1624 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
1625 (add_standard_iv_candidates): Use standard type trees.
1626 * dojump.c (do_jump): Remove dead code.
1627
1628 2012-03-07 Richard Guenther <rguenther@suse.de>
1629
1630 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
1631
1632 2012-03-07 Richard Guenther <rguenther@suse.de>
1633
1634 * convert.c (strip_float_extensions): Move ...
1635 * tree.c (strip_float_extensions): ... here.
1636
1637 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
1638
1639 PR target/52484
1640 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
1641
1642 2012-03-07 Richard Guenther <rguenther@suse.de>
1643
1644 * omp-low.c (extract_omp_for_data): Use signed_type_for.
1645 (expand_omp_for_generic): Likewise.
1646 (expand_omp_for_static_nochunk): Likewise.
1647 (expand_omp_for_static_chunk): Likewise.
1648 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
1649 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
1650 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
1651 Use unsigned_type_for.
1652 (vect_create_cond_for_align_checks): Use signed_type_for.
1653
1654 2012-03-07 Andrey Belevantsev <abel@ispras.ru>
1655
1656 PR rtl-optimization/52203
1657 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
1658 all callers to pass NULL except ...
1659 (reset_sched_cycles_in_current_ebb): ... here, save the value
1660 in new variable 'empty'. Increase issue_rate only for
1661 non-empty insns.
1662
1663 2012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
1664
1665 PR target/51417
1666 * Makefile.in: Let install-gcc-ar depend on installdirs,
1667 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
1668 Don't double canonicalize if cross-compiling.
1669
1670 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
1671
1672 PR target/52506
1673 * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
1674 to: RAMPZ, RAMPY, RAMPX, RAMPD.
1675 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
1676
1677 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
1678
1679 PR target/52505
1680 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
1681 from RAM.
1682 * config/avr/avr.md (xload_8): Adjust insn length.
1683
1684 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
1685
1686 PR target/52461
1687 * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
1688 if RAMPZ affects reading from RAM.
1689
1690 2012-03-07 Richard Guenther <rguenther@suse.de>
1691
1692 PR pch/52518
1693 PR pch/38987
1694 * doc/invoke.texi (Precompiled Headers): Remove sentence that
1695 suggests you can include PCHs from inside another header.
1696
1697 2012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
1698
1699 PR middle-end/52515
1700 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
1701
1702 2012-03-07 Kai Tietz <ktietz@redhat.com>
1703
1704 * doc/invoke.texi (fwritable-relocated-rdata): Document
1705 new Cygwin/MinGW target option.
1706 * config/i386/winnt.c (i386_pe_unique_section): Ignore
1707 reloc if flag -fwritable-relocated-rdata is not set.
1708 (i386_pe_section_type_flags): Likewise.
1709 * config/i386/cygming.opt (fwritable-relocated-rdata):
1710 Add new flag variable flag_writable_rel_rdata.
1711
1712 2012-03-07 Richard Guenther <rguenther@suse.de>
1713
1714 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
1715 precision against gimple constraints.
1716
1717 2012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
1718
1719 PR middle-end/52372
1720 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
1721 variables.
1722 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
1723 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
1724 variables.
1725 (init_emit_regs): Move associated initialization to...
1726 (init_emit_once): ...here.
1727
1728 2012-03-06 Richard Henderson <rth@redhat.com>
1729
1730 * config/m68k/m68k.h (ISA_HAS_TAS): New.
1731 * config/m68k/sync.md (atomic_test_and_set): Use it.
1732 (atomic_test_and_set_1): Likewise.
1733
1734 2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1735
1736 PR target/50310
1737 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
1738 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
1739 (vector_ltgt<mode>): Likewise.
1740 (vector_ordered<mode>): Likewise.
1741 (vector_unordered<mode>): Likewise.
1742 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
1743
1744 2012-03-06 Aldy Hernandez <aldyh@redhat.com>
1745
1746 * trans-mem.c: New typedef for tm_region_p.
1747 Define vector types for tm_region_p.
1748 (tm_region_init): Replace region_worklist to a vector called
1749 bb_regions.
1750
1751 2012-03-06 Richard Guenther <rguenther@suse.de>
1752
1753 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
1754 MEM_REF with constant pointer operand.
1755
1756 2012-03-06 Richard Guenther <rguenther@suse.de>
1757
1758 PR middle-end/52493
1759 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
1760
1761 2012-03-06 Tristan Gingold <gingold@adacore.com>
1762
1763 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
1764 (external_model_kind): Improve documentation.
1765 (vms_pragma_extern_model): Handle relaxed_redef.
1766 (vms_c_register_pragma): Allow expansion for nomember_alignment.
1767
1768 2012-03-06 Georg-Johann Lay <avr@gjlay.de>
1769
1770 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
1771 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
1772 Some more notes on EIND usage and reorder EIND subsection.
1773
1774 2012-03-06 Tristan Gingold <gingold@adacore.com>
1775
1776 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
1777 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
1778
1779 2012-03-06 Tristan Gingold <gingold@adacore.com>
1780
1781 * config/vms/t-vmsnative (version): Define.
1782 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
1783
1784 2012-03-06 Andrey Belevantsev <abel@ispras.ru>
1785
1786 PR rtl-optimization/52250
1787 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
1788 to put note list into. Unconditionally call move_bb_info.
1789 (move_bb_info): Do not assert the blocks being in the same region,
1790 just drop the note list if they are not.
1791
1792 2012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
1793
1794 PR target/51244
1795 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
1796 and use unified expansion logic.
1797 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
1798 closer to the existing movt insn.
1799 (negc): Rename insn to *negc. Add new expander.
1800 (movnegt): Use xor pattern for T bit negation. Reserve helper
1801 constant for negc pattern.
1802 (*movnegt): New insn and splitter.
1803
1804 2012-03-05 Bernd Schmidt <bernds@codesourcery.com>
1805
1806 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
1807 PLUS_EXPR.
1808
1809 2012-03-05 Richard Henderson <rth@redhat.com>
1810
1811 * genemit.c (main): Include "target.h" in insn-emit.c.
1812 * Makefile.in (insn-emit.o): Depend on TARGET_H.
1813 * config/sh/sync.md (atomic_test_and_set): Reference
1814 targetm.atomic_test_and_set_trueval instead of
1815 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
1816
1817 2012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
1818
1819 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
1820 Make static.
1821
1822 2012-03-05 Steven Bosscher <steven@gcc.gnu.org>
1823
1824 * langhooks.c (add_builtin_type): New function.
1825 * langhooks.h (add_builtin_type): Export it.
1826 * config/mep/mep.c (mep_init_builtins): Use it.
1827 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
1828
1829 2012-03-05 Jakub Jelinek <jakub@redhat.com>
1830
1831 PR debug/51902
1832 * tree.h (BLOCK_SAME_RANGE): Define.
1833 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
1834 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
1835 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
1836 isn't equal to supercontext fragment's fragment chain.
1837 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
1838 fragment origin.
1839 (blocks_nreverse_all): Likewise.
1840 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
1841 BLOCK_SUPERCONTEXT to supercontext fragment instead of
1842 supercontext fragment's fragment origin.
1843 * dwarf2out.c (add_high_low_attributes): If stmt has the same
1844 range as its parent (or parents thereof etc.), use the parent's
1845 DW_AT_ranges value instead of creating a new .debug_ranges range.
1846
1847 2012-03-05 Richard Henderson <rth@redhat.com>
1848
1849 PR tree-opt/52242
1850 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
1851 * omp-low.c (expand_omp_atomic): Assume anything aligned to
1852 BIGGEST_ALIGNMENT is aligned.
1853
1854 2012-03-05 Richard Henderson <rth@redhat.com>
1855
1856 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
1857 * config/sh/sh.c: ... here.
1858
1859 2012-03-05 Richard Henderson <rth@redhat.com>
1860
1861 PR target/52481
1862 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
1863 instead of calling negqi2 directly.
1864
1865 2012-03-05 Aldy Hernandez <aldyh@redhat.com>
1866
1867 PR middle-end/52463
1868 * trans-mem.c (tm_region_init): Use last_basic_block.
1869
1870 2012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
1871
1872 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
1873 * config/sh/sync.md (atomic_test_and_set): New expander.
1874 (tasb, atomic_test_and_set_soft): New insns.
1875 * config/sh/sh.opt (menable-tas): New option.
1876 * doc/invoke.texi (SH Options): Document it.
1877
1878 2012-03-05 Richard Guenther <rguenther@suse.de>
1879
1880 * cfgloop.c (verify_loop_structure): Verify dominators before
1881 using them.
1882 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
1883 dominators from here.
1884 * graphite-scop-detection.c (create_sese_edges): Likewise.
1885 * loop-doloop.c (doloop_optimize_loops): Likewise.
1886 * loop-init.c (loop_optimizer_init): Likewise.
1887 * loop-unroll.c (unroll_and_peel_loops): Likewise.
1888 * loop-unswitch.c (unswitch_loops): Likewise.
1889 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
1890 * tree-parloops.c (parallelize_loops): Likewise. Verify
1891 only when checking is enabled.
1892 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
1893
1894 2012-03-05 Bernd Schmidt <bernds@codesourcery.com>
1895
1896 * genautomata.c (parse_automata_opt): New static function.
1897 (initiate_automaton_gen): Remove all option handling code. Remove
1898 argc argument. All callers changed.
1899 (main): Call init_rtx_reader_args_cb with the new function as argument.
1900
1901 2012-03-05 Richard Guenther <rguenther@suse.de>
1902
1903 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
1904 * tree-if-conv.c (combine_blocks): Free post-dominator info
1905 after breaking it.
1906 * tree-parloops.c (create_parallel_loop): Free and re-compute
1907 dominator info after breaking it.
1908
1909 2012-03-05 Richard Guenther <rguenther@suse.de>
1910
1911 PR middle-end/52353
1912 * optabs.h (trapv_unoptab_p): New function.
1913 (trapv_binoptab_p): Likewise.
1914 * optabs.c (expand_binop): Use emit_libcall_block_1 with
1915 a proper equiv_may_trap argument.
1916 (expand_unop): Likewise.
1917 (emit_libcall_block_1): Take extra argument whether the
1918 instruction may trap. Renamed from ...
1919 (emit_libcall_block): ... this. New wrapper.
1920
1921 2012-03-05 Jakub Jelinek <jakub@redhat.com>
1922
1923 PR tree-optimization/51721
1924 * tree-vrp.c (register_edge_assert_for_2): If comparing
1925 lhs of right shift by constant with an integer constant,
1926 add ASSERT_EXPRs for the rhs1 of the right shift.
1927
1928 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
1929
1930 2012-03-05 Richard Guenther <rguenther@suse.de>
1931
1932 * tree.c (integer_zerop): Handle VECTOR_CSTs.
1933 (integer_onep): Likewise.
1934 (integer_all_onesp): Likewise.
1935
1936 2012-03-05 Georg-Johann Lay <avr@gjlay.de>
1937
1938 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
1939
1940 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
1941
1942 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
1943 instead of TARGET_64BIT.
1944
1945 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
1946
1947 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
1948 adjust_stack_insn.
1949
1950 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
1951
1952 * config/i386/i386.c (ix86_print_operand_address): Only handle
1953 zero-extended DImode addresses.
1954
1955 2012-03-04 Uros Bizjak <ubizjak@gmail.com>
1956
1957 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
1958 taken and cputaken as bool.
1959
1960 2012-03-04 Uros Bizjak <ubizjak@gmail.com>
1961
1962 * config/i386/constraints.md (Ya): New internal constraint.
1963 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
1964 (*zero_extendsidi2_rex64): Add x,x alternative.
1965 (*zero_extendsidi2): Ditto. Add o,0 alternative.
1966 Remove flags reg clobber. Adjust corresponding splits.
1967 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
1968 zero_extendqisi2 expanders using SWI12 mode iterator.
1969 (zero_extend<mode>si2_and): Macroize insn from
1970 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
1971 splitters.
1972 (*zero_extend<mode>si2): Macroize insn from
1973 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
1974 (*zero_extend*2_movzbl_and): Remove insn patterns.
1975 (zero_extendqihi2_and): Merge corresponding splitter.
1976 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
1977 (*zero_extend*2_movzbl_and): Remove insn patterns.
1978 (*anddi_1): Split TYPE_IMOVX instructions.
1979 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
1980 (*andhi_1): Ditto.
1981 (and->zext splitter): Add splitter pattern.
1982 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
1983
1984 2012-03-04 Sandra Loosemore <sandra@codesourcery.com>
1985
1986 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
1987 x86-specific text.
1988 (Debugging Options): Likewise.
1989 (Optimize Options): Likewise.
1990 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
1991 with other architectures. Use official processor names with correct
1992 spelling/capitalization. Fix formatting and grammar issues.
1993 (i386 and x86-64 Windows Options): Similar cleanup here.
1994
1995 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
1996
1997 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
1998
1999 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
2000
2001 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
2002 DBX_REGISTER_NUMBER.
2003
2004 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
2005
2006 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
2007 operand is CONST_INT. Take COSTS_N_INSNS into account.
2008 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
2009 of shiftcosts.
2010
2011 2012-03-02 Richard Henderson <rth@redhat.com>
2012
2013 * optabs.c (expand_atomic_test_and_set): Honor
2014 atomic_test_and_set_trueval even when atomic_test_and_set
2015 optab is not in use.
2016
2017 2012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
2018
2019 PR target/48596
2020 PR target/48806
2021 * config/sh/sh.c (sh_register_move_cost): Increase cost between
2022 GENERAL_REGS and FP_REGS for SImode.
2023
2024 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
2025
2026 PR target/49486
2027 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
2028 (absdi2): New expander.
2029 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
2030
2031 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
2032
2033 * config/sh/sync.md (atomic_exchange<mode>): New expander.
2034 (atomic_exchange<mode>_soft): New insn.
2035
2036 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
2037
2038 * config/sh/sync.md: Update copyright notice dates.
2039 (atomic_compare_and_swap<mode>): Use SImode for return value instead
2040 of QImode.
2041 (atomic_compare_and_swap<mode>_soft): Likewise.
2042
2043 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
2044
2045 PR target/31640
2046 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
2047 * config/sh/sh.c: Update copyright notice dates.
2048 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
2049 alignment for TARGET_HARD_SH4.
2050 (sh_option_override): Reduce default function alignment. Set
2051 loop alignment to 4 bytes when not optimizing for size.
2052
2053 2012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
2054
2055 PR middle-end/50335
2056 * doc/invoke.texi (floop-flatten): Remove.
2057 * toplev.c (process_options): Remove references to flag_loop_flatten.
2058 * tree-ssa-loop.c (gate_graphite_transform): Same.
2059 * common.opt (floop-flatten): Obsolete.
2060 * graphite-poly.c (apply_poly_transforms): Remove reference to
2061 flag_loop_flatten.
2062 * Makefile.in (graphite-flattening.o): Remove.
2063 * graphite-flattening.c: Remove.
2064
2065 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
2066
2067 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
2068 having mode compatible with the mode of previous compare. Substitute
2069 compare mode of previous compare with the mode, compatible
2070 with eliminated and previous compare.
2071
2072 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
2073
2074 * config/rs6000/dfp.md (floatdidd2): New define_insn.
2075
2076 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
2077
2078 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
2079 compatible with CCGOCmode and CCGCmode.
2080
2081 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
2082
2083 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
2084
2085 2012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
2086
2087 * config/arm/arm.c (arm_sat_operator_match): New function.
2088 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
2089 * config/arm/arm.md ("insn" attribute): Add "sat" value.
2090 ("SAT", "SATrev"): New code iterators.
2091 ("SATlo", "SAThi"): New code iterator attributes.
2092 ("*satsi_<SAT:code>"): New pattern.
2093 ("*satsi_<SAT:code>_shift"): Likewise.
2094 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
2095 and "shift" attributes.
2096 ("arm_usatsihi"): Add "insn" attribute.
2097 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
2098 by powers of two. Do not allow shift by 32.
2099
2100 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
2101
2102 PR target/46716
2103 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
2104 to pass the argument in the register of "natural" mode.
2105
2106 2012-03-02 Richard Guenther <rguenther@suse.de>
2107
2108 PR tree-optimization/52406
2109 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
2110 (struct indices): Add unconstrained_base member.
2111 (struct dr_alias): Remove unused vops member.
2112 (DR_UNCONSTRAINED_BASE): New define.
2113 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
2114 add indices to allow their disambiguation. Make DR_BASE_OBJECT
2115 be an artificial access that covers the whole indexed object,
2116 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
2117 plain decl base-objects to their MEM_REF variant.
2118 (dr_may_alias_p): When the base-object of either data reference
2119 has unknown size use only points-to information.
2120 (compute_affine_dependence): Make dumps easier to read and
2121 more verbose.
2122 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
2123 DR_REF when looking for packed references.
2124 (vect_supportable_dr_alignment): Likewise.
2125
2126 2012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
2127
2128 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
2129 Improve conditions for peepholes of loads followed by commutative
2130 operators.
2131 * config/arm/ldmstm.md: Regenerated.
2132
2133 2012-03-02 Richard Guenther <rguenther@suse.de>
2134
2135 * BASE-VER: Set to 4.8.0.
2136
2137 2012-03-01 Richard Earnshaw <rearnsha@arm.com>
2138
2139 * config.gcc (obsolete): Add all ARM targets using the FPA.
2140 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
2141 * doc/install.texi: Avoid references to obsolete ARM ports.
2142
2143 2012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
2144
2145 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
2146
2147 2012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
2148 Joern Rennecke <joern.rennecke@embecosm.com>
2149
2150 * doc/extend.texi: Expand and update information on interrupt
2151 attribute for Epiphany.
2152
2153 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
2154
2155 * config/sh/sh-protos.h: Update copyright notice dates.
2156 * config/sh/sh.h: Likewise.
2157 * config/sh/sh.md: Likewise.
2158 * config/sh/constraints.md: Likewise.
2159 * config/sh/predicates.md: Likewise.
2160
2161 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
2162
2163 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
2164 * config/sh/sh.c (tertiary_reload_operand): Likewise.
2165
2166 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
2167
2168 * config/sh/constraints.md: Fix comment typo.
2169
2170 2012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2171
2172 PR target/52408
2173 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
2174 unsigned HOST_WIDE_INT.
2175 (zvdep_imm64): Likewise.
2176 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
2177 (vdepi_and): Likewise.
2178 Likewise for unamed 64-bit patterns.
2179 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
2180
2181 2012-03-01 Alexandre Oliva <aoliva@redhat.com>
2182
2183 PR debug/52001
2184 PR rtl-optimization/52417
2185 * cselib.c (cselib_any_perm_equivs): New variable.
2186 (cselib_reset_table): Check that it's not set when not
2187 preserving constants.
2188 (cselib_add_permanent_equiv): Set it.
2189 (cselib_have_permanent_equivalences): New.
2190 (cselib_init, cselib_finish): Reset it.
2191 * cselib.h (cselib_have_permanent_equivalences): Declare.
2192 * alias.c (get_addr): Restore earlier behavior when there
2193 aren't permanent equivalences.
2194
2195 2012-03-01 Steven Bosscher <steven@gcc.gnu.org>
2196
2197 * config/mn10300/mn10300-modes.def: Fix copyright notice.
2198 * config/v850/v850-modes.def: Fix copyright notice.
2199
2200 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
2201
2202 * doc/extend.texi (AVR Built-in Functions): Document
2203 __builtin_avr_flash_segment.
2204
2205 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
2206 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
2207 (*split.flash_segment): New insn-and-split.
2208 * config/avr/avr.c (avr_init_builtins): Add local variables:
2209 const_memx_void_node, const_memx_ptr_type_node,
2210 char_ftype_const_memx_ptr.
2211
2212 2012-03-01 Jakub Jelinek <jakub@redhat.com>
2213
2214 PR tree-optimization/52445
2215 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
2216 add ssa_name_ver, offset and size fields and change store field
2217 to bool.
2218 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
2219 (add_or_mark_expr): Likewise. Only consider previous stores
2220 with the same size and offset.
2221 (nt_init_block): Only look at gimple_assign_single_p stmts,
2222 doesn't look at rhs2.
2223
2224 2012-03-01 Richard Guenther <rguenther@suse.de>
2225
2226 PR middle-end/52443
2227 * tree-cfg.c (verify_gimple_assign_unary): Allow any
2228 conversions from integral types to pointer types.
2229
2230 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
2231
2232 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
2233 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
2234 unintentionally removed in r184616.
2235
2236 2012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
2237
2238 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
2239 3DNow from bdver1.
2240
2241 2012-02-29 Jakub Jelinek <jakub@redhat.com>
2242 Uros Bizjak <ubizjak@gmail.com>
2243
2244 PR target/52437
2245 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
2246 alternatives, add "e" constraint to the new last alternative
2247 and ! to last 3 alternatives.
2248
2249 2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
2250
2251 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
2252 DW_AT_artificial attributes at the end of the processing.
2253 (gen_array_type_die): Likewise.
2254 (gen_enumeration_type_die): Likewise.
2255 (gen_struct_or_union_type_die): Likewise.
2256 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
2257 the parent type.
2258
2259 2012-02-29 Jakub Jelinek <jakub@redhat.com>
2260
2261 PR middle-end/52419
2262 * expr.c (expand_assignment): If doing misaligned store that doesn't
2263 cover all mode bits, perform a RMW cycle.
2264
2265 PR tree-optimization/52429
2266 * tree-parloops.c (separate_decls_in_region_debug): Return early
2267 if var is LABEL_DECL.
2268
2269 2012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2270
2271 PR tree-optimization/52424
2272 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
2273 calling dom_thread_across_edge.
2274
2275 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
2276
2277 * config/avr/avr.c: Move definition of TARGET macros to end of file.
2278
2279 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
2280
2281 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
2282 * config/avr/avr.c (avr_output_bld): Remove unused function.
2283 (avr_out_sbxx_branch): Use "%T" to print bit position.
2284
2285 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
2286
2287 * config/avr/avr.md: Untabify.
2288
2289 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
2290
2291 * config/avr/avr.md (eqne): New code iterator.
2292 (*dec-and-branchsi): Use it in text peephole's condition.
2293 (*dec-and-branchhi): Ditto.
2294 (*dec-and-branchqi): Ditto.
2295
2296 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
2297
2298 PR target/49939
2299 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
2300 the device does not have the skip-bug.
2301
2302 2012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
2303
2304 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
2305 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
2306 -mpretend-cmove): New.
2307
2308 2012-02-29 Jakub Jelinek <jakub@redhat.com>
2309
2310 PR bootstrap/52397
2311 * df.h (struct df_d): Adjust comment that hard_regs_live_count
2312 doesn't count DEBUG_INSN refs.
2313 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
2314 for DEBUG_INSN refs.
2315
2316 2012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2317
2318 Partially revert:
2319
2320 2012-02-20 Richard Guenther <rguenther@suse.de>
2321 PR tree-optimization/52298
2322 * tree-vect-stmts.c (vectorizable_load): Properly use
2323 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
2324 outer loops.
2325
2326 2012-02-28 Aldy Hernandez <aldyh@redhat.com>
2327
2328 PR middle-end/51752
2329 * gimple.h (gimple_in_transaction): New.
2330 (gimple_set_in_transaction): New.
2331 (struct gimple_statement_base): Add in_transaction field.
2332 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
2333 transaction loads.
2334 (tree_ssa_lim_initialize): Compute transaction bits.
2335 * tree.h (compute_transaction_bits): Protoize.
2336 * trans-mem.c (tm_region_init): Use the heap to store BB
2337 auxilliary data.
2338 (compute_transaction_bits): New.
2339
2340 2012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2341
2342 * gcc.c (display_help): Document --help=common and sort entries
2343 alphabetically.
2344
2345 2012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2346
2347 * doc/install.texi: Document check-$LANG specific shortcuts
2348
2349 2012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2350
2351 PR target/51534
2352 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
2353 and vcgtu.
2354 * config/arm/arm_neon.h: Regenerate.
2355 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
2356 (neon_vcgeu): New insn.
2357 (neon_vcgtu): Likewise.
2358 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
2359 (ops): Unsigned comparison intrinsics call a different builtin.
2360
2361 2012-02-28 Richard Guenther <rguenther@suse.de>
2362
2363 PR target/52407
2364 * config/i386/i386.c (ix86_expand_vector_set): Fix element
2365 ordering for the VEC_CONCAT for two element vectors for
2366 V2SFmode, V2SImode and V2DImode.
2367
2368 2012-02-28 Richard Earnshaw <rearnsha@arm.com>
2369
2370 PR target/49448
2371 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
2372 detecting big-endian triplets.
2373
2374 2012-02-28 Richard Earnshaw <rearnsha@arm.com>
2375
2376 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
2377 mode if there is no type information available.
2378
2379 2012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
2380
2381 PR tree-optimization/53207
2382 * doc/invoke.texi: Document as experimental and relying on graphite.
2383
2384 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
2385
2386 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
2387 of initializer to changes from r184614.
2388
2389 2012-02-28 Richard Guenther <rguenther@suse.de>
2390
2391 PR tree-optimization/52395
2392 * tree-sra.c (build_ref_for_offset): Also look at the base
2393 TYPE_ALIGN when figuring out the alignment of the replacement.
2394
2395 2012-02-28 Richard Guenther <rguenther@suse.de>
2396
2397 PR tree-optimization/52402
2398 * ipa-prop.c (ipa_modify_call_arguments): Properly use
2399 mis-aligned types when creating the accesses at the call site.
2400
2401 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
2402
2403 * config/avr/builtins.def: New file.
2404 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
2405 * config/avr/avr.c (enum avr_builtin_id): Use it.
2406 (avr_init_builtins): Use it. And use avr_bdesc.
2407 (bdesc_1arg): Remove.
2408 (bdesc_2arg): Remove.
2409 (bdesc_3arg): Remove.
2410 (struct avr_builtin_description): Add field n_args.
2411 (avr_bdesc): New static variable using builtins.def.
2412 (avr_expand_builtin): Use it.
2413 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
2414 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
2415 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
2416
2417 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
2418
2419 PR target/52148
2420 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
2421 match only one single hard register with respective hard reg rtx.
2422 (movmemx_<mode>): Ditto.
2423 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
2424 insn anatomy of movmem[x]_<mode>.
2425 (avr_out_movmem): Same for printing assembler and operand usage.
2426
2427 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
2428
2429 PR target/49868
2430 PR target/52261
2431 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
2432 address spaces located outside of device flash.
2433
2434 * config/avr/avr.h (base_arch_s): Remove field n_segments.
2435 (mcu_type_s): Add field n_flash.
2436 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
2437 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
2438 (AVR_MCU): Add N_FLASH argument.
2439 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
2440 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
2441 macro __FLASH<n> if that address space makes sense for the device.
2442 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
2443 outside of target flash.
2444 (avr_asm_named_section): Ditto.
2445 (avr_asm_select_section): Ditto.
2446 (avr_addr_space_convert): Ditto.
2447 (avr_emit_movmemhi): Ditto.
2448 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
2449 address space is outside of device flash.
2450 (avr_insert_attributes): Ditto.
2451 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
2452 avr_current_arch->n_segments.
2453
2454 2012-02-27 H.J. Lu <hongjiu.lu@intel.com>
2455
2456 PR target/52352
2457 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
2458 (*movabs<mode>_2): Likewise.
2459
2460 2012-02-27 Jakub Jelinek <jakub@redhat.com>
2461
2462 PR target/52375
2463 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
2464 s_register_operand in the test instead of REG_P. Don't call
2465 gen_reg_rtx if it won't be used.
2466
2467 PR tree-optimization/52376
2468 * ipa-split.c (split_function): Ignore CLOBBER stmts.
2469
2470 2012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
2471
2472 * ifcvt.c (noce_get_condition): Check condition variable is not
2473 small_register_classes_for_mode_p before accepting.
2474
2475 2012-02-27 Uros Bizjak <ubizjak@gmail.com>
2476
2477 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
2478
2479 2012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2480
2481 Revert:
2482 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2483 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
2484 tuning parameters.
2485 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
2486
2487 2012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
2488
2489 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
2490
2491 2012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
2492
2493 * config/sh/predicates.md: Remove blank lines.
2494 * config/sh/sh.c: Fix typos in comments.
2495 * config/sh/constraints.md: Likewise.
2496 * config/sh/sh.md: Remove blank lines.
2497 Fix typos in comments. Use ;; as comment characters.
2498
2499 2012-02-26 Walter Lee <walt@tilera.com>
2500
2501 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
2502 (replace_mov_pcrel_step2): Ditto.
2503
2504 2012-02-25 Alexandre Oliva <aoliva@redhat.com>
2505
2506 PR debug/52001
2507 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
2508 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
2509 and locs that reference values newer than the non-canonical value
2510 at hand. Return the canonical value as a worst case.
2511 (memrefs_conflict_p): Walk canonical value's locs.
2512
2513 PR debug/52001
2514 * cselib.c (preserve_only_constants): Rename to...
2515 (preserve_constants_and_equivs): ... this. Split out...
2516 (invariant_or_equiv_p): ... this. Preserve plus expressions
2517 of other preserved expressions too.
2518 (cselib_reset_table): Adjust.
2519 * var-tracking.c (reverse_op): Use canonical value to build
2520 reverse operation.
2521
2522 2012-02-23 Kai Tietz <ktietz@redhat.com>
2523
2524 * config/i386/i386.c (ix86_delegitimize_address): Handle
2525 UNSPEC_PCREL plus displacement.
2526
2527 2012-02-24 Georg-Johann Lay <avr@gjlay.de>
2528
2529 PR target/52261
2530 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
2531 to test for unusedness in st X addressing.
2532
2533 2012-02-24 Richard Guenther <rguenther@suse.de>
2534
2535 PR middle-end/52361
2536 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
2537 (is_gimple_reg_type): Move inline ...
2538 * gimple.h (is_gimple_reg_type): ... here.
2539
2540 2012-02-24 Richard Guenther <rguenther@suse.de>
2541
2542 PR middle-end/52361
2543 * passes.c (execute_function_todo): When verifying SSA form
2544 verify gimple form first.
2545 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
2546
2547 2012-02-24 Richard Guenther <rguenther@suse.de>
2548
2549 PR middle-end/52355
2550 * fold-const.c (fold_addr_of_array_ref_difference): New function.
2551 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
2552
2553 2012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2554
2555 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
2556
2557 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2558
2559 * tree-phinodes.c (make_phi_node): Mark static.
2560 * tree-flow.h (make_phi_node): Remove extern decl.
2561 * doc/gimple.texi (make_phi_node): Remove documentation.
2562
2563 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2564
2565 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
2566 * tree-ssa-sccvn.c (print_scc): Ditto.
2567
2568 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2569
2570 * doc/passes.texi (Full redundancy elimination): Fix typo.
2571
2572 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2573
2574 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
2575
2576 2012-02-23 Eric Botcazou <ebotcazou@adacore.com>
2577
2578 PR bootstrap/52287
2579 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
2580
2581 2012-02-23 Uros Bizjak <ubizjak@gmail.com>
2582
2583 PR c/52290
2584 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
2585
2586 2012-02-23 Georg-Johann Lay <avr@gjlay.de>
2587
2588 * config/avr/avr.md (code_stdname): Add ior, xor.
2589 (xior): New code iterator.
2590 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
2591 (*<code_stdname><mode>qi.byte1-3): Ditto.
2592
2593 2012-02-23 Jakub Jelinek <jakub@redhat.com>
2594
2595 PR tree-optimization/52019
2596 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
2597 CLOBBER stmts.
2598
2599 2012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2600
2601 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
2602 HAVE_INITFINI_ARRAY to work around namespace pollution in
2603 certain versions of newlib system headers.
2604 * config.in: Regenerate.
2605 * configure: Regenerate.
2606 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
2607 instead of HAVE_INITFINI_ARRAY.
2608
2609 2012-02-22 Uros Bizjak <ubizjak@gmail.com>
2610
2611 PR target/52330
2612 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
2613 is not offsettable memory reference.
2614
2615 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
2616
2617 PR target/18145
2618 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
2619 setting avr_need_clear_bss_p for __gnu_lto* symbols.
2620
2621 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
2622
2623 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
2624 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
2625
2626 2012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2627
2628 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
2629 library on Solaris 8 even without TLS support.
2630 * configure: Regenerate.
2631
2632 2012-02-22 Richard Guenther <rguenther@suse.de>
2633
2634 PR middle-end/52329
2635 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
2636 for GIMPLE_DEBUG stmts.
2637
2638 2012-02-22 Martin Jambor <mjambor@suse.cz>
2639
2640 PR middle-end/51782
2641 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
2642 according to the base object.
2643
2644 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
2645
2646 PR rtl-optimization/50063
2647 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
2648 and 2 (8-bit SP) in operand 2.
2649 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
2650 setup to use movhi_sp_r instead of vanilla move to write SP.
2651 Adjust REG_CFA notes to superseed unspec.
2652 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
2653 of vanilla move.
2654 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
2655 known to be off) only with TARGET_NO_INTERRUPTS. Never use
2656 irq_state 1 (IRQ known to be on) here.
2657
2658 2012-02-21 Bernd Schmidt <bernds@codesourcery.com>
2659
2660 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
2661 WORDS_BIG_ENDIAN.
2662 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
2663 assign_hard_reg): Likewise.
2664
2665 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
2666
2667 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
2668
2669 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
2670
2671 * config/avr/avr.md
2672 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
2673 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
2674
2675 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
2676
2677 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
2678 prototype from here to...
2679 * config/avr/avr.h: ...here.
2680
2681 2012-02-21 Richard Earnshaw <rearnsha@arm.com>
2682
2683 PR target/52294
2684 * thumb2.md (thumb2_shiftsi3_short): Split register and
2685 immediate shifts. For register shifts tie operands 0 and 1.
2686 (peephole2 for above): Check that register-controlled shifts
2687 have suitably tied operands.
2688
2689 2012-02-21 Quentin Neill <quentin.neill@amd.com>
2690
2691 PR target/52137
2692 * config/i386/bdver1.md (bdver1_call, bdver1_push,
2693 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
2694 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
2695 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
2696 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
2697 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
2698 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
2699 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
2700 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
2701 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
2702 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
2703 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
2704 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
2705 bdver1_ssevector_avx256_unaligned_load,
2706 bdver1_ssevector_sse128_unaligned_load,
2707 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
2708 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
2709 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
2710 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
2711 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
2712 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
2713 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
2714 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
2715 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
2716 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
2717 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
2718 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
2719 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
2720 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
2721 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
2722 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
2723 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
2724 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
2725 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
2726 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
2727 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
2728 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
2729 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
2730 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
2731 bdver1_ssediv_double_load, bdver1_ssediv_double,
2732 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
2733 Add "bdver2" attribute.
2734
2735 2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2736
2737 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
2738 default if possible and not specified otherwise.
2739
2740 2012-02-21 Richard Guenther <rguenther@suse.de>
2741
2742 PR middle-end/52314
2743 * gimplify.c (create_tmp_from_val): Use the main variant type
2744 for the type of the temporary we create.
2745
2746 2012-02-21 Richard Guenther <rguenther@suse.de>
2747
2748 PR tree-optimization/52324
2749 * gimplify.c (gimplify_expr): When re-gimplifying expressions
2750 do not gimplify a MEM_REF address operand if it is already
2751 in suitable form.
2752
2753 2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2754
2755 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
2756 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
2757
2758 2012-02-21 Richard Guenther <rguenther@suse.de>
2759
2760 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
2761 nested_in_vect_loop.
2762
2763 2012-02-21 Jakub Jelinek <jakub@redhat.com>
2764
2765 PR tree-optimization/52318
2766 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
2767 vdef also to non-pure/const call stmts in the sequence.
2768
2769 2012-02-21 Tristan Gingold <gingold@adacore.com>
2770
2771 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
2772
2773 2012-02-20 David S. Miller <davem@davemloft.net>
2774
2775 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
2776 don't use the "rd %pc" instruction on v9 for PIC register loads.
2777
2778 2012-02-20 Aldy Hernandez <aldyh@redhat.com>
2779
2780 PR middle-end/52141
2781 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
2782 in a transaction safe function.
2783
2784 2012-02-20 Kai Tietz <ktietz@redhat.com>
2785
2786 PR target/52238
2787 * stor-layout.c (place_field): Handle desired_align for
2788 ms-bitfields, too.
2789
2790 2012-02-20 Richard Guenther <rguenther@suse.de>
2791
2792 PR tree-optimization/52298
2793 * tree-vect-stmts.c (vectorizable_store): Properly use
2794 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
2795 outer loops.
2796 (vectorizable_load): Likewise.
2797 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
2798 Access DR_STEP after ensuring it is not NULL.
2799
2800 2012-02-20 Jakub Jelinek <jakub@redhat.com>
2801
2802 PR tree-optimization/52286
2803 * fold-const.c (fold_binary_loc): For (X & C1) | C2
2804 optimization use double_int_to_tree instead of build_int_cst_wide,
2805 rewrite to use double_int vars.
2806
2807 2012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2808
2809 PR target/50166
2810 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
2811 Define _start.
2812 Remove -e 0 from $gcc_cv_ld invocation.
2813 Only use __GLIBC_PREREQ if defined.
2814 Enable on Solaris since Solaris 8 patch.
2815 (gcc_SUN_LD_VERSION): New macro.
2816 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
2817 gcc_SUN_LD_VERSION for version number format.
2818 * configure: Regenerate.
2819 * varasm.c (get_elf_initfini_array_priority_section): Set
2820 SECTION_NOTYPE for non-default priority.
2821 Use get_section instead of get_unnamed_section to emit
2822 .init_array/.fini_array with default priority.
2823
2824 2012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
2825
2826 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
2827 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
2828 (mips_start_unique_function, mips_output_mips16_rdhwr)
2829 (mips_code_end): New functions.
2830 (TARGET_ASM_CODE_END): Define.
2831
2832 2012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
2833
2834 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
2835 to stubs with non-sibling calls.
2836
2837 2012-02-18 Sandra Loosemore <sandra@codesourcery.com>
2838
2839 * doc/invoke.texi (-fira-* options): Copy-edit.
2840 (ira-* parameters): Copy-edit.
2841
2842 2012-02-17 Sandra Loosemore <sandra@codesourcery.com>
2843
2844 * doc/invoke.texi: Minor copy-edits to bring into conformance with
2845 GCC coding conventions.
2846
2847 2012-02-17 Sandra Loosemore <sandra@codesourcery.com>
2848
2849 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
2850 when used as adjectives.
2851
2852 2012-02-16 Sandra Loosemore <sandra@codesourcery.com>
2853
2854 * doc/invoke.texi: Clean up "that"/"which" confusion.
2855
2856 2012-02-17 Steven Bosscher <steven@gcc.gnu.org>
2857
2858 * system.h: Poison SMALL_REGISTER_CLASSES
2859 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
2860 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
2861
2862 2012-02-16 Jakub Jelinek <jakub@redhat.com>
2863
2864 PR tree-optimization/52285
2865 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
2866 when deciding if a call is a tail call or tail recursion.
2867
2868 2012-02-16 Kai Tietz <ktietz@redhat.com>
2869
2870 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
2871 interger-constant displacement for UNSPEC_PCREL.
2872
2873 2012-02-16 Jakub Jelinek <jakub@redhat.com>
2874
2875 PR rtl-optimization/52208
2876 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
2877 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
2878
2879 PR tree-optimization/52255
2880 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
2881 loop->header has virtual PHI, but exit_e->dest doesn't, add
2882 virtual PHI to exit_e->dest and adjust all uses after the loop.
2883
2884 PR debug/52260
2885 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
2886 children with clone_tree_hash, not after it.
2887
2888 2012-02-16 Iain Sandoe <iains@gcc.gnu.org>
2889
2890 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
2891 extended identifiers.
2892
2893 2012-02-16 Jakub Jelinek <jakub@redhat.com>
2894
2895 PR middle-end/51929
2896 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
2897 a same_body_alias, also test whether e->callee isn't a former
2898 or current clone of the decl this is a same body alias of.
2899
2900 PR translation/52264
2901 * cgraphunit.c (verify_cgraph_node): Fix a typo.
2902
2903 2012-02-15 Sandra Loosemore <sandra@codesourcery.com>
2904
2905 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
2906
2907 2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
2908
2909 PR target/52199
2910 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
2911 force_reg instead of copy_to_reg for better optimization. Force
2912 non-register or memory operands into a register.
2913
2914 2012-02-15 Andrew MacLeod <amacleod@redhat.com>
2915
2916 * extend.texi: Reserve upper bits of memory model for future use.
2917
2918 2012-01-15 Georg-Johann Lay <avr@gjlay.de>
2919 Anatoly Sokolov <aesok@post.ru>
2920 Eric Weddington <eric.weddington@atmel.com>
2921
2922 PR target/52261
2923 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
2924 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
2925 Rewrite initializers for .macro.
2926 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
2927 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
2928 atxmega32d4, atxmega32x1.
2929 avrxmega4: atxmega64a3, atxmega64d3.
2930 avrxmega5: atxmega64a1, atxmega64a1u.
2931 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
2932 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
2933 avrxmega7: atxmega128a1, atxmega128a1u.
2934 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
2935 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
2936 (struct base_arch_s): Rename reserved to xmega_p.
2937 Rename reserved2 to have_rampd.
2938 (AVR_XMEGA): New define.
2939 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
2940 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
2941 * config/avr/predicates.md (io_address_operand): Take into
2942 account SFR offset.
2943 (low_io_address_operand): Ditto.
2944 (high_io_address_operand): Ditto.
2945 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
2946 (enabled, movhi_sp_r): Use them.
2947 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
2948 cpp_define_formatted to built-in define __AVR_ARCH__.
2949 (__AVR_XMEGA__): New built-in define.
2950 (__AVR_HAVE_RAMPD__): New built-in define.
2951 (__AVR_HAVE_RAMPX__): New built-in define.
2952 (__AVR_HAVE_RAMPY__): New built-in define.
2953 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
2954
2955 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
2956 (avr_option_override): Initialize them.
2957 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
2958 (avr_init_expanders): Initialize them. No more block several calls.
2959 (emit_push_sfr): New static function.
2960 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
2961 Handle AVR_XMEGA.
2962 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
2963 (avr_print_operand): Print addreeses as symbols for
2964 RAMPX, RAMPY, RAMPD, CCP.
2965 (output_movhi): Handle AVR_XMEGA when writing to SP.
2966 (avr_out_movhi_mr_r_xmega): New static function.
2967 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
2968 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
2969 __RAMPD__, __CCP__ as needed.
2970
2971 * config/avr/multilib.h: Regenerate.
2972 * config/avr/t-multilib: Regenerate.
2973 * config/avr/avr-tables.opt: Regenerate.
2974
2975 2012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
2976
2977 PR tree-optimization/50561
2978 * graphite-flattening.c (lst_project_loop): Do not
2979 remove old scattering dimensions after flattening.
2980 (lst_do_flatten): Likewise.
2981
2982 2012-02-15 Georg-Johann Lay <avr@gjlay.de>
2983
2984 * doc/extend.texi (AVR Built-in Functions): Remove doc for
2985 __builtin_avr_map8, __builtin_avr_map16.
2986 Document __builtin_avr_insert_bits.
2987
2988 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
2989 (insert_bits): New insn.
2990 (adjust_len.map_bits): Rename to insert_bits.
2991 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
2992 * avr-protos.h (avr_out_map_bits): Remove.
2993 (avr_out_insert_bits, avr_has_nibble_0xf): New.
2994 * config/avr/constraints.md (Cxf,C0f): New.
2995 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
2996 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
2997 New built-in define __BUILTIN_AVR_INSERT_BITS.
2998 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
2999 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
3000 (avr_move_bits): Rewrite.
3001 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
3002 functions.
3003 (avr_map_op_t): New typedef.
3004 (avr_map_op): New static variable.
3005 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
3006 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
3007 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
3008 (bdesc_3arg, avr_expand_triop_builtin): New.
3009 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
3010 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
3011 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
3012 (avr_map_equal_p, avr_map_sig_p): Remove.
3013 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
3014 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
3015 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
3016 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
3017 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
3018 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
3019
3020 2012-02-14 Bernd Schmidt <bernds@codesourcery.com>
3021
3022 * config/c6x/c6x.md (reserve_cycles): New attribute.
3023 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
3024 don't reserve functional units after the branch occurs.
3025
3026 2012-02-14 Aldy Hernandez <aldyh@redhat.com>
3027
3028 PR middle-end/52142
3029 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
3030 functions into non-tm_pure functions.
3031
3032 2012-02-14 Eric Botcazou <ebotcazou@adacore.com>
3033
3034 PR lto/52178
3035 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
3036 (iterative_hash_canonical_type): Likewise.
3037 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
3038 the dead edges.
3039
3040 2012-02-14 Bernd Schmidt <bernds@codesourcery.com>
3041
3042 * haifa-sched.c (prune_ready_list): Ensure that if there is a
3043 sched-group insn, it either remains alone or the entire list is pruned.
3044
3045 2012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
3046
3047 * doc/install.texi (Prerequisites): Fix grammar.
3048 (Configuration): Likewise.
3049
3050 2012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
3051
3052 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
3053 MPC as part of GCC before describing configuring with --with-gmp etc.
3054 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
3055 sources are present.
3056
3057 2012-02-14 Jakub Jelinek <jakub@redhat.com>
3058
3059 PR debug/51950
3060 * dwarf2out.c (clone_tree_hash): New function.
3061 (copy_decls_walk): Use it instead of clone_tree.
3062
3063 2012-02-14 Richard Guenther <rguenther@suse.de>
3064
3065 PR tree-optimization/52244
3066 PR tree-optimization/51528
3067 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
3068 replacements for integral types.
3069
3070 2012-02-14 Walter Lee <walt@tilera.com>
3071
3072 * config.gcc: Handle tilegx and tilepro.
3073 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
3074 tilegx and tilepro.
3075 Add HAVE_AS_TLS check for tilegx and tilepro.
3076 * configure: Regenerate.
3077 * doc/contrib.texi: Add Mat Hostetter and self.
3078 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
3079 Document instruction intrinsics and network accessing intrinsics.
3080 (TILEPro Built-in Functions): New node. Document instruction
3081 intrinsics and network accessing intrinsics.
3082 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
3083 (Specific, tilepro-*-linux*): Likewise.
3084 * doc/invoke.texi (TILE-Gx Options): New section.
3085 (TILEPro Options): New section.
3086 * doc/md.texi (TILE-Gx): New section.
3087 (TILEPro): New section.
3088 * common/config/tilegx/tilegx-common.c: New file.
3089 * common/config/tilepro/tilepro-common.c: New file.
3090 * config/tilegx/constraints.md: New file.
3091 * config/tilegx/linux.h: New file.
3092 * config/tilegx/mul-tables.c: New file.
3093 * config/tilegx/predicates.md: New file.
3094 * config/tilegx/sync.md: New file.
3095 * config/tilegx/t-tilegx: New file.
3096 * config/tilegx/tilegx-builtins.h: New file.
3097 * config/tilegx/tilegx-c.c: New file.
3098 * config/tilegx/tilegx-generic.md: New file.
3099 * config/tilegx/tilegx-modes.def: New file.
3100 * config/tilegx/tilegx-multiply.h: New file.
3101 * config/tilegx/tilegx-protos.h: New file.
3102 * config/tilegx/tilegx.c: New file.
3103 * config/tilegx/tilegx.h: New file.
3104 * config/tilegx/tilegx.md: New file.
3105 * config/tilegx/tilegx.opt: New file.
3106 * config/tilepro/constraints.md: New file.
3107 * config/tilepro/gen-mul-tables.cc: New file.
3108 * config/tilepro/linux.h: New file.
3109 * config/tilepro/mul-tables.c: New file.
3110 * config/tilepro/predicates.md: New file.
3111 * config/tilepro/t-tilepro: New file.
3112 * config/tilepro/tilepro-builtins.h: New file.
3113 * config/tilepro/tilepro-c.c: New file.
3114 * config/tilepro/tilepro-generic.md: New file.
3115 * config/tilepro/tilepro-modes.def: New file.
3116 * config/tilepro/tilepro-multiply.h: New file.
3117 * config/tilepro/tilepro-protos.h: New file.
3118 * config/tilepro/tilepro.c: New file.
3119 * config/tilepro/tilepro.h: New file.
3120 * config/tilepro/tilepro.md: New file.
3121 * config/tilepro/tilepro.opt: New file.
3122
3123 2012-02-14 Jakub Jelinek <jakub@redhat.com>
3124
3125 PR tree-optimization/52210
3126 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
3127 vect_model_simple_cost with two entry vect_def_type array instead
3128 of an address of dt.
3129
3130 2012-02-14 Richard Guenther <rguenther@suse.de>
3131
3132 PR lto/52178
3133 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
3134 Do not stream DECL_QUALIFIER.
3135 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
3136 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
3137 (find_decls_types_r): Do not walk DECL_QUALIFIER.
3138
3139 2012-02-14 Jakub Jelinek <jakub@redhat.com>
3140
3141 PR c/52181
3142 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
3143 newdecl.
3144
3145 2012-02-13 Jakub Jelinek <jakub@redhat.com>
3146
3147 PR bootstrap/52172
3148 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
3149 * cselib.c (cselib_subst_to_values_from_insn): New function.
3150 * sched-deps.c (add_insn_mem_dependence,
3151 sched_analyze_1, sched_analyze_2): Use it.
3152
3153 2012-02-13 Jan Hubicka <jh@suse.cz>
3154
3155 PR middle-end/52214
3156 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
3157
3158 2012-02-13 Eric Botcazou <ebotcazou@adacore.com>
3159
3160 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
3161 (GTM_SELF_SPECS): Define if not already defined.
3162 (driver_self_specs): Add GTM_SELF_SPECS.
3163 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
3164 (GTM_SELF_SPECS): Define.
3165 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
3166 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
3167
3168 2012-02-13 Jakub Jelinek <jakub@redhat.com>
3169
3170 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
3171 away if seen.
3172
3173 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
3174
3175 PR middle-end/52230
3176 * omp-low.c (expand_omp_for): If a static schedule without chunk size
3177 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
3178
3179 2012-02-13 Andrew MacLeod <amacleod@redhat.com>
3180
3181 PR c/52190
3182 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
3183
3184 2012-02-13 Richard Guenther <rguenther@suse.de>
3185
3186 PR translation/52211
3187 * passes.c (enable_disable_pass): Fix typo.
3188
3189 2012-02-13 Jakub Jelinek <jakub@redhat.com>
3190
3191 PR middle-end/52209
3192 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
3193 XOR for reduce_bit_field if type is unsigned.
3194
3195 2012-02-12 Eric Botcazou <ebotcazou@adacore.com>
3196
3197 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
3198 disallow changes from SFmode to mode with different size in FP regs.
3199
3200 2012-02-12 Robert Millan <rmh@gnu.org>
3201 Gerald Pfeifer <gerald@pfeifer.com>
3202
3203 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
3204 Tweak comment.
3205
3206 2012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
3207
3208 PR rtl-optimization/52175
3209 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
3210 to frame-related instructions.
3211
3212 2012-02-10 Jason Merrill <jason@redhat.com>
3213
3214 PR c++/51910
3215 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
3216 (demangle_new_symbols): Fill it.
3217 (scan_linker_output): Walk it.
3218 (start_tweaking): Split out from scan_linker_output.
3219 (maybe_tweak): Update sym->chosen.
3220 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
3221
3222 2012-02-11 Jakub Jelinek <jakub@redhat.com>
3223
3224 PR debug/52132
3225 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
3226
3227 2012-02-11 Uros Bizjak <ubizjak@gmail.com>
3228
3229 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
3230 having the same mode as previous compare.
3231
3232 2012-02-10 Eric Botcazou <ebotcazou@adacore.com>
3233
3234 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
3235 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
3236 (nonlocal_goto_internal): Likewise.
3237 (nonlocal_goto): Emit a use and an indirect jump directly.
3238
3239 2012-02-10 Andrew MacLeod <amacleod@redhat.com>
3240
3241 PR c/52190
3242 * doc/extend.texi : Update comments for __atomic_compare_exchange and
3243 __atomic_{is,always}_lock_free.
3244
3245 2012-02-10 Uros Bizjak <ubizjak@gmail.com>
3246
3247 PR target/52146
3248 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
3249 negative constant address for TARGET_X32.
3250
3251 2012-02-10 Richard Henderson <rth@redhat.com>
3252
3253 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
3254 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
3255 for GIMPLE_TRANSACTION. Tidy if's into a switch.
3256
3257 2012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3258 Ira Rosen <irar@il.ibm.com>
3259
3260 PR tree-optimization/50031
3261 * targhooks.c (default_builtin_vectorization_cost): Handle
3262 vec_promote_demote.
3263 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
3264 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
3265 all types of reduction and pattern statements.
3266 (vect_estimate_min_profitable_iters): Likewise.
3267 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
3268 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
3269 for explicit realigns.
3270 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
3271 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
3272 vec_promote_demote.
3273 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
3274 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
3275 vec_perm for VSX and handle vec_promote_demote.
3276
3277 2012-02-10 Jakub Jelinek <jakub@redhat.com>
3278
3279 PR middle-end/52177
3280 * builtins.c (fold_builtin_atomic_always_lock_free,
3281 expand_builtin_atomic_always_lock_free,
3282 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
3283 Return and/or test boolean_true_node/boolean_false_node instead of
3284 integer_one_node/integer_zero_node.
3285
3286 2012-02-10 Jan Hubicka <jh@suse.cz>
3287
3288 PR middle-end/48600
3289 * predict.c (predict_paths_for_bb): Prevent looping.
3290 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
3291
3292 2012-02-10 Roman Zhuykov <zhroma@ispras.ru>
3293
3294 * config/arm/arm.c (output_move_double): In one case properly
3295 count number of instructions that will be emitted.
3296
3297 2012-02-10 Richard Guenther <rguenther@suse.de>
3298
3299 PR translation/52193
3300 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
3301
3302 2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
3303
3304 PR middle-end/52140
3305 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
3306
3307 2012-02-09 Jakub Jelinek <jakub@redhat.com>
3308
3309 PR debug/52165
3310 * var-tracking.c (emit_note_insn_var_location): If
3311 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
3312 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
3313 non-NOTE_DURING_CALL_P insn.
3314
3315 2012-02-09 Bin Cheng <bin.cheng@arm.com>
3316
3317 PR middle-end/51867
3318 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
3319
3320 2012-02-08 Magnus Granberg <zorry@gentoo.org>
3321
3322 PR driver/48524
3323 * gcc.c (switch_matches) Support switches with separated form,
3324 -D and -U.
3325
3326 2012-02-08 Georg-Johann Lay <avr@gjlay.de>
3327
3328 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
3329 (SP_ADDR): Ditto.
3330 (RAMPZ_ADDR): Ditto.
3331 * config/avr/avr.c (avr_addr_t): New typedef.
3332 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
3333 (avr_init_expanders): Initialize it.
3334 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
3335 SREG_ADDR.
3336 (expand_epilogue): Ditto.
3337 (avr_print_operand): Ditto.
3338 (avr_file_start): Ditto.
3339 (avr_emit_movmemhi): Ditto.
3340
3341 2012-02-08 Richard Guenther <rguenther@suse.de>
3342
3343 PR tree-optimization/46886
3344 * tree-flow.h (do_while_loop_p): Declare.
3345 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
3346 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
3347
3348 2012-02-08 Andrew MacLeod <amacleod@redhat.com>
3349
3350 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
3351 always succeed for integers larger than a native word.
3352
3353 2012-02-08 Richard Guenther <rguenther@suse.de>
3354
3355 PR rtl-optimization/52170
3356 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
3357 properly handle integer vector modes.
3358
3359 2012-02-08 Jakub Jelinek <jakub@redhat.com>
3360
3361 PR gcov-profile/52150
3362 * coverage.c: Include target.h.
3363 (build_var): Call targetm.strip_name_encoding on the assembler name.
3364 Change one _ into . or $ if the target allows it.
3365 * Makefile.in (coverage.o): Depend on $(TARGET_H).
3366
3367 PR rtl-optimization/52139
3368 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
3369 is a BARRIER after emit_insn_after_noloc, move BB_END
3370 to the last non-BARRIER insn before it.
3371
3372 2012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
3373
3374 PR middle-end/24306
3375 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
3376 (mips_gimplify_va_arg_expr): Call it instead of
3377 std_gimplify_va_arg_expr.
3378
3379 2012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
3380
3381 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
3382 message for -mno-pointers-to-nested-function.
3383
3384 2012-02-07 Eric Botcazou <ebotcazou@adacore.com>
3385
3386 PR middle-end/51994
3387 * expr.c (get_inner_reference): If there is an offset, add a negative
3388 bit position to it (if any).
3389
3390 2012-02-07 Jakub Jelinek <jakub@redhat.com>
3391
3392 PR rtl-optimization/52060
3393 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
3394 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
3395 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
3396 and/or i0src_copy2 when needed.
3397
3398 2012-02-07 Jakub Jelinek <jakub@redhat.com>
3399
3400 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
3401 or LTOPLUGINSONAME if have_c.
3402
3403 * config/freebsd-spec.h: Add comment about what macros can be defined
3404 in this header.
3405 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
3406 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
3407 here instead.
3408
3409 2012-02-07 Richard Guenther <rguenther@suse.de>
3410
3411 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
3412 newline in -alias dumps.
3413
3414 2012-02-07 Kai Tietz <ktietz@redhat.com>
3415 Dave Korn <dave.korn.cygwin@gmail.com>
3416
3417 PR target/40068
3418 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
3419 Take care that typinfo gets dllexport-attribute.
3420
3421 2012-02-07 Jakub Jelinek <jakub@redhat.com>
3422
3423 PR middle-end/52074
3424 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
3425 if modifier < EXPAND_SUM call force_operand on the result.
3426
3427 2012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
3428
3429 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
3430 adding __forwarder_dst__ prefix if a forwarder_section attribute is
3431 present.
3432 (epiphany_function_type): Replace types for specific interrupts with
3433 EPIPHANY_FUNCTION_INTERRUPT.
3434 (EPIPHANY_INTERRUPT_P): Update.
3435 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
3436 New static function.
3437 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
3438 <disinterrupt>: Affects type identity.
3439 (epiphany_handle_interrupt_attribute): Handle variable number of
3440 arguments.
3441 (epiphany_compute_function_type): Update for new
3442 epiphany_function_type definition.
3443 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
3444 handlers with a longcall forwarder.
3445 (epiphany_start_function): Handle multiple interrupt arguments and/or
3446 forwarder_section attribute.
3447
3448 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
3449 libgloss.
3450
3451 2012-02-07 Alan Modra <amodra@gmail.com>
3452
3453 PR target/52107
3454 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
3455 subregs of TFmode.
3456
3457 2012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3458
3459 PR tree-optimization/50969
3460 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
3461 use vec_perm rather than vector_stmt.
3462 (vect_model_load_cost): Likewise.
3463 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
3464 vec_perm to be the same as other vector statements.
3465 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
3466 cost of vec_perm for TARGET_VSX.
3467
3468 2012-02-06 Richard Guenther <rguenther@suse.de>
3469
3470 PR tree-optimization/52115
3471 * tree-sra.c (access_has_replacements_p): New function.
3472 (sra_modify_assign): Use it to decide whether a use is uninitialized.
3473
3474 2012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
3475
3476 PR middle-end/52047
3477 * trans-mem.c (expand_call_tm): Add an assertion.
3478 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
3479 functions.
3480
3481 2012-02-06 Richard Guenther <rguenther@suse.de>
3482
3483 PR tree-optimization/50955
3484 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
3485 raise cost of expressions that replace an address with an
3486 expression based on a different pointer.
3487
3488 2012-02-06 Jakub Jelinek <jakub@redhat.com>
3489
3490 PR target/52129
3491 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
3492 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
3493
3494 2012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
3495
3496 PR c++/48680
3497 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
3498 -Weffc++ and specify guidelines come from second edition.
3499
3500 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
3501
3502 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
3503 (sibcall_value_multiple_internal, call_split, call_internal_direct)
3504 (call_direct_split, call_value_split, call_value_internal_direct)
3505 (call_value_direct_split, call_value_multiple_split): Use jal and
3506 jal_macro attributes.
3507
3508 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
3509
3510 * reload1.c (reload_regs_reach_end_p): Replace with...
3511 (reload_reg_rtx_reaches_end_p): ...this function.
3512 (new_spill_reg_store): Update commentary.
3513 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
3514 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
3515 before setting new_spill_reg_store.
3516 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
3517 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
3518 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
3519 for non-spill reload registers.
3520
3521 2012-02-05 Ira Rosen <irar@il.ibm.com>
3522
3523 PR tree-optimization/52091
3524 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
3525 (vect_is_simple_use_1): Likewise.
3526 * tree-vect-loop.c (vectorizable_reduction): Update calls
3527 to vect_is_simple_use_1 and vect_is_simple_use.
3528 (vectorizable_live_operation): Likewise.
3529 * tree-vect-patterns.c (widened_name_p,
3530 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
3531 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
3532 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
3533 vectorizable_shift,vectorizable_operation, vectorizable_store,
3534 vectorizable_load): Likewise.
3535 (vect_is_simple_cond): Add an argument, pass it to
3536 vect_is_simple_use_1.
3537 (vectorizable_condition): Update calls to vect_is_simple_cond,
3538 vect_is_simple_use.
3539 (vect_is_simple_use): Add an argument, the statement in which
3540 OPERAND is used. Check that if OPERAND's def stmt is a double
3541 reduction phi node, the use is a phi node too.
3542 (vect_is_simple_use_1): Add an argument, pass it to
3543 vect_is_simple_use.
3544 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
3545 to vect_is_simple_use.
3546
3547 2012-02-04 Jakub Jelinek <jakub@redhat.com>
3548
3549 PR rtl-optimization/52095
3550 * modulo-sched.c (dump_insn_locator): New function.
3551 (loop_canon_p, sms_schedule): Use it.
3552
3553 PR rtl-optimization/52113
3554 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
3555 even for decomposable shift/zext insns.
3556
3557 2012-02-03 Jakub Jelinek <jakub@redhat.com>
3558 Zdenek Dvorak <ook@ucw.cz>
3559
3560 PR rtl-optimization/52092
3561 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
3562 on get_iv_value result.
3563
3564 2012-02-02 Andrew Pinski <apinski@cavium.com>
3565
3566 PR middle-end/47982
3567 PR middle-end/43967
3568 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
3569
3570 2012-02-02 Jakub Jelinek <jakub@redhat.com>
3571
3572 PR middle-end/48071
3573 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
3574
3575 2012-02-02 Vladimir Makarov <vmakarov@redhat.com>
3576
3577 PR rtl-optimization/49800
3578 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
3579 (sched_finish): Call regstat_free_n_sets_and_refs.
3580
3581 2012-02-02 Jia Liu <proljc@gmail.com>
3582
3583 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
3584 than operand 2.
3585
3586 2012-02-02 Jan Hubicka <jh@suse.cz>
3587 Tom de Vries <tom@codesourcery.com>
3588
3589 PR middle-end/51998
3590 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
3591 * varpool.c (varpool_analyze_pending_decls): Likewise.
3592
3593 2012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
3594 Jayant R Sonar <jayant.sonar@kpitcummins.com>
3595
3596 * config.gcc: Add cr16-* support.
3597
3598 * doc/extend.texi: Document cr16 extensions.
3599 * doc/install.texi: Document cr16 install.
3600 * doc/invoke.texi: Document cr16 options.
3601 * doc/md.texi: Document cr16 constraints.
3602
3603 * common/config/cr16/cr16-common.c: New file.
3604 * config/cr16/cr16.c: New file.
3605 * config/cr16/cr16.h: New file.
3606 * config/cr16/cr16.md: New file.
3607 * config/cr16/cr16.opt: New file.
3608 * config/cr16/cr16-protos.h: New file.
3609 * config/cr16/predicates.md: New file.
3610 * config/cr16/constraints.md: New file.
3611 * config/cr16/t-cr16: New file.
3612
3613 2012-02-02 Jakub Jelinek <jakub@redhat.com>
3614
3615 PR target/52086
3616 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
3617 that operands[2] is either immediate, or q_regs_operand.
3618
3619 PR tree-optimization/52073
3620 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
3621 a pattern stmt for pattern uses, ignore uses outside of the loop.
3622
3623 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
3624
3625 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
3626 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
3627 (OUT_AS1, OUT_AS2): Remove.
3628
3629 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
3630
3631 PR rtl-optimization/51374
3632 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
3633 to cross other volatile_refs_p insns.
3634
3635 2012-02-01 Richard Guenther <rguenther@suse.de>
3636
3637 * doc/invoke.texi (fno-inline): Clarify documentation.
3638 (finline-small-functions): Likewise.
3639 (finline-functions): Likewise.
3640 * common.opt (finline): Adjust comment and documentation.
3641 (finline-small-functions): Clarify documentation.
3642 (finline-functions): Likewise.
3643 (finline-functions-called-once): Likewise.
3644
3645 2012-02-01 Tristan Gingold <gingold@adacore.com>
3646
3647 * c-typeck.c (composite_type): Keep mode for pointers.
3648
3649 2012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
3650
3651 * function.h (regno_reg_rtx): Adjust comment.
3652 * reginfo.c (init_reg_modes_target): Only use the previous mode
3653 if it fits within one register. Remove MIPS comment.
3654
3655 2012-01-31 Jakub Jelinek <jakub@redhat.com>
3656
3657 PR bootstrap/52058
3658 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
3659
3660 2012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3661
3662 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
3663 to srak instruction.
3664
3665 2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
3666
3667 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
3668
3669 2012-01-31 Jakub Jelinek <jakub@redhat.com>
3670
3671 PR bootstrap/52041
3672 PR bootstrap/52039
3673 PR target/51974
3674 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
3675
3676 2012-01-31 Richard Guenther <rguenther@suse.de>
3677
3678 PR tree-optimization/51528
3679 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
3680 assigns.
3681
3682 2012-01-31 Jakub Jelinek <jakub@redhat.com>
3683
3684 PR bootstrap/52041
3685 PR bootstrap/52039
3686 PR target/51974
3687 * ree.c (add_removable_extension): Change def_map argument
3688 to unsigned *, store in def_map 1 + offset into *insn_list vector
3689 instead of pointers into the vector.
3690 (find_removable_extensions): Adjust caller.
3691
3692 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
3693
3694 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
3695 Transform all "* quoted-c-code" to { c-code }.
3696 Remove redundant test for "optimize" in combine patterns.
3697 Move (include "avr-dimode.md") to end of file.
3698
3699 2012-01-30 Bin Cheng <bin.cheng@arm.com>
3700
3701 PR target/51835
3702 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
3703 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
3704
3705 2012-01-30 Richard Guenther <rguenther@suse.de>
3706
3707 PR tree-optimization/52028
3708 * tree-loop-distribution.c (ldist_gen): Properly update
3709 virtual SSA form.
3710
3711 2012-01-30 Jakub Jelinek <jakub@redhat.com>
3712
3713 PR debug/52027
3714 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
3715 set_cur_line_info_table if not emitting debug info.
3716
3717 PR tree-optimization/52046
3718 * tree-vect-patterns.c (check_bool_pattern): Give up if
3719 a comparison could throw.
3720
3721 PR debug/52048
3722 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
3723
3724 2012-01-30 Richard Guenther <rguenther@suse.de>
3725
3726 PR tree-optimization/52045
3727 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
3728 SSA form if cfgcleanup did anything.
3729
3730 2012-01-30 Richard Guenther <rguenther@suse.de>
3731
3732 PR tree-optimization/52045
3733 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
3734 before computing final todo.
3735
3736 2012-01-30 Richard Guenther <rguenther@suse.de>
3737
3738 PR tree-optimization/51528
3739 * tree-sra.c (sra_modify_assign): Re-factor in preparation
3740 for PR51528 fix.
3741
3742 2012-01-30 Paolo Bonzini <bonzini@gnu.org>
3743
3744 * df-problems.c (df_kill_notes): Check that the use refers
3745 to the note under examination.
3746
3747 2012-01-30 Eric Botcazou <ebotcazou@adacore.com>
3748
3749 PR target/51920
3750 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
3751 parameter and use short-lived pseudos.
3752 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
3753 (sparc_expand_vector_init): Const-ify local variables and adjust
3754 calls to above functions.
3755
3756 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
3757
3758 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
3759
3760 2012-01-29 Sandra Loosemore <sandra@codesourcery.com>
3761
3762 * doc/invoke.texi: Make usage of "compile time" and
3763 "run time"/"runtime" consistent throughout the file.
3764
3765 2012-01-29 Uros Bizjak <ubizjak@gmail.com>
3766
3767 * config/alpha/alpha.c (alpha_option_override): Default to
3768 full IEEE compliance mode for Go language.
3769
3770 2011-01-29 Tijl Coosemans <tijl@coosemans.org>
3771
3772 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
3773 (LINK_SSP_SPEC): Define.
3774
3775 2012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3776
3777 PR target/51871
3778 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
3779 stubs.
3780
3781 2012-01-28 Sandra Loosemore <sandra@codesourcery.com>
3782
3783 * doc/invoke.texi: Correct hyphenation of "floating point",
3784 "double precision", and related terminology throughout the file.
3785
3786 2012-01-28 Jakub Jelinek <jakub@redhat.com>
3787
3788 PR target/52006
3789 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
3790 arm_general_register_operand predicate for operand 2 instead of
3791 register_operand.
3792
3793 2012-01-27 Ian Lance Taylor <iant@google.com>
3794
3795 PR go/47656
3796 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
3797 * builtins.c (expand_builtin_init_trampoline): Add onstack
3798 parameter. Change caller.
3799 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
3800 * tree.c (build_common_builtin_nodes): Declare
3801 __builtin_init_heap_trampoline.
3802
3803 2012-01-27 Georg-Johann Lay <avr@gjlay.de>
3804
3805 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
3806 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
3807 * config/avr/avr.c: Ditto.
3808 (avr_regnames): Remove because unused.
3809 * config/avr/avr.md (*cpse.ne): New peephole.
3810 (*cpse.eq): New peephole from former cpse peepholes.
3811
3812 2012-01-27 Michael Eager <eager@eagercon.com>
3813
3814 * config/microblaze.c (microblaze_emit_compare): Correct
3815 test after pcmp instruction.
3816
3817 2012-01-27 Richard Guenther <rguenther@suse.de>
3818
3819 PR tree-optimization/52020
3820 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
3821
3822 2012-01-27 Richard Guenther <rguenther@suse.de>
3823
3824 * ipa-pure-const.c (check_stmt): Clobbers do not make a
3825 function non-const/pure.
3826
3827 2012-01-27 Richard Guenther <rguenther@suse.de>
3828
3829 PR tree-optimization/50444
3830 * tree-sra.c (build_ref_for_offset): Properly adjust the
3831 MEM_REF type for unaligned accesses.
3832
3833 2012-01-27 Richard Guenther <rguenther@suse.de>
3834
3835 PR tree-optimization/50444
3836 * expr.c (mem_ref_refers_to_non_mem_p): New function.
3837 (expand_assignment): Use it. Properly handle misaligned
3838 bases when expanding stores to component references.
3839 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
3840 refactor that case.
3841
3842 2012-01-27 Andrey Belevantsev <abel@ispras.ru>
3843
3844 PR middle-end/51389
3845 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
3846 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
3847 * tree-data-ref.c (find_data_references_in_loop): Make static.
3848 (compute_all_dependences): Change return type to bool. Bail out
3849 for too many datarefs in a loop. Move the hunk resetting the data
3850 dependences vector from ...
3851 (compute_data_dependences_for_loop): ... here. Account for
3852 compute_all_dependences returning false.
3853 (compute_data_dependences_for_bb): Likewise.
3854 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
3855 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
3856
3857 2012-01-27 Richard Guenther <rguenther@suse.de>
3858
3859 PR middle-end/51959
3860 * expr.c (store_field): Use the alias-set of the scratch memory
3861 for storing to it.
3862
3863 2012-01-27 Tom de Vries <tom@codesourcery.com>
3864
3865 PR tree-optimization/51990
3866 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3867 WITH_SIZE_EXPR.
3868 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
3869
3870 2012-01-27 Jakub Jelinek <jakub@redhat.com>
3871
3872 PR debug/52001
3873 * var-tracking.c (reverse_op): Don't add any reverse operation
3874 if V already has any constant locations.
3875
3876 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
3877
3878 * doc/invoke.texi: Correct usage of "command line" (noun)
3879 vs "command-line" (adjective) throughout.
3880
3881 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
3882
3883 * doc/invoke.texi (Language Independent Options): Move
3884 -Wcoverage-mismatch blurb from here....
3885 (Warning Options): ...to here.
3886
3887 2012-01-27 Peter Bergner <bergner@vnet.ibm.com>
3888
3889 * config/rs6000/rs6000.c (rs6000_option_override_internal):
3890 Set rs6000_always_hint to false for 476.
3891
3892 2012-01-27 Matthias Klose <doko@ubuntu.com>
3893
3894 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
3895 system root.
3896 * incpath.c (add_standard_paths): Likewise.
3897
3898 2012-01-27 Richard Henderson <rth@redhat.com>
3899
3900 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
3901 * config/m68k/sync.md (atomic_test_and_set): Rename from
3902 sync_test_and_setqi and adjust the operands.
3903 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
3904 and unconditionally enable.
3905
3906 2012-01-27 Richard Henderson <rth@redhat.com>
3907
3908 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
3909 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
3910 (ldstub): Rename from ldstubqi.
3911 (ldstub<I24MODE>): Remove.
3912
3913 2012-01-27 Richard Henderson <rth@redhat.com>
3914
3915 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
3916 * c-cppbuiltin.c (cpp_atomic_builtins): Define
3917 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
3918 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
3919 * doc/tm.texi: Rebuild.
3920
3921 2012-01-27 Richard Henderson <rth@redhat.com>
3922
3923 * optabs.c (gen_atomic_test_and_set): Remove default.
3924 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
3925
3926 2012-01-26 Jakub Jelinek <jakub@redhat.com>
3927
3928 PR rtl-optimization/51978
3929 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
3930 (combine_reaching_defs): Likewise.
3931 (struct re_info): Remove.
3932 (add_removable_extension): Remove x and data arguments,
3933 add insn, insn_list and def_map. Use the arguments directly
3934 instead of using struct re_info.
3935 (find_removable_extensions): Don't call add_removable_extension
3936 through note_stores, instead just call it with single_set
3937 result if non-NULL.
3938 (find_and_remove_re): Pass curr_cand->expr instead of
3939 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
3940
3941 2012-01-26 Michael Matz <matz@suse.de>
3942
3943 PR tree-optimization/46590
3944 * cfgexpand.c: Revert last change (r183305).
3945 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
3946 regs.
3947 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
3948 checking for emptiness.
3949
3950 2012-01-26 Jakub Jelinek <jakub@redhat.com>
3951
3952 PR middle-end/51895
3953 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
3954 non-addressable non-BLKmode base correctly.
3955
3956 2012-01-26 Michael Matz <matz@suse.de>
3957
3958 PR tree-optimization/48794
3959 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
3960 regions referenced from RESX/EH_DISPATCH.
3961
3962 2012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3963
3964 * config/s390/s390.h: Make BRANCH_COST an option.
3965 * config/s390/s390.opt: New option -mbranch-cost.
3966
3967 2012-01-26 Richard Henderson <rth@redhat.com>
3968
3969 Revert 2012-01-24 change:
3970 * trans-mem.c (requires_barrier): Do not instrument thread local
3971 variables and emit save/restore for them.
3972
3973 2012-01-25 Jakub Jelinek <jakub@redhat.com>
3974
3975 PR middle-end/51986
3976 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
3977 for pat == 0.
3978
3979 2012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
3980
3981 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
3982 ASM_OPERANDS.
3983
3984 2012-01-25 Georg-Johann Lay <avr@gjlay.de>
3985
3986 PR target/49868
3987 Rename __pgm to __flash.
3988 Rename __pgm1 to __flash1.
3989 Rename __pgm2 to __flash2.
3990 Rename __pgm3 to __flash3.
3991 Rename __pgm4 to __flash4.
3992 Rename __pgm5 to __flash5.
3993 Rename __pgmx to __memx.
3994 * doc/extend.texi (AVR Named Address Spaces)
3995 Rename address space names as indicated above.
3996 * config/avr/avr.c (avr_addrspace): Ditto.
3997
3998 * config/avr/avr-protos.h
3999 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
4000 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
4001 * config/avr/predicates.md: Ditto.
4002 * config/avr/avr.c Ditto, and
4003 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
4004 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
4005
4006 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
4007 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
4008 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
4009 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
4010 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
4011 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
4012 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
4013 * config/avr/avr.c: Ditto.
4014 * config/avr/avr.md: Ditto.
4015
4016 2012-01-25 Jason Merrill <jason@redhat.com>
4017
4018 PR c++/51992
4019 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
4020
4021 2012-01-25 Jakub Jelinek <jakub@redhat.com>
4022
4023 PR tree-optimization/51987
4024 * tree-data-ref.c (get_references_in_stmt): Handle references in
4025 non-volatile GIMPLE_ASM.
4026
4027 2012-01-25 Richard Guenther <rguenther@suse.de>
4028
4029 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
4030 bases are dereferenced.
4031
4032 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
4033
4034 PR rtl-optimization/48374
4035 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
4036
4037 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
4038
4039 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
4040 compute_data_dependences_for_loop returns false.
4041 * tree-parloops.c (loop_parallel_p): Likewise.
4042
4043 2012-01-25 Richard Guenther <rguenther@suse.de>
4044
4045 * tree.h (get_pointer_alignment_1): Declare.
4046 * builtins.c (get_pointer_alignment_1): New function.
4047 (get_pointer_alignment): Use it.
4048
4049 2012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4050
4051 PR rtl-optimization/48308
4052 * combine.c (enum undo_kind): Add UNDO_LINKS.
4053 (struct undo): Add member l to other_contents and where.
4054 (do_SUBST_LINK): New.
4055 (SUBST_LINK): New.
4056 (try_combine): Handle LOG_LINKS for the dummy i1 case.
4057 (undo_all): Handle UNDO_LINKS.
4058
4059 2012-01-25 Richard Henderson <rth@redhat.com>
4060
4061 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
4062 mem inputs.
4063
4064 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
4065
4066 * optabs.c (gen_atomic_test_and_set): Use each argument.
4067
4068 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
4069
4070 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
4071 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
4072 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
4073 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
4074 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
4075 TARGET_PAIRED_SINGLE_FLOAT.
4076
4077 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
4078
4079 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
4080 (in_struct, return_val): Remove MEM documentation.
4081 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
4082 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
4083 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
4084 and MEM_SCALAR.
4085 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4086 * cfgexpand.c (add_alias_set_conflicts): Likewise.
4087 * expr.c (store_field): Likewise.
4088 * function.c (assign_stack_temp_for_type): Likewise.
4089 * ifcvt.c (noce_try_cmove_arith): Likewise.
4090 * reload1.c (reload): Likewise.
4091 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
4092 (alpha_set_memflags): Likewise.
4093 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
4094
4095 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
4096
4097 * rtl.h (true_dependence, canon_true_dependence): Remove varies
4098 parameter.
4099 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
4100 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
4101 (true_dependence_1, true_dependence, canon_true_dependence): Remove
4102 varies parameter.
4103 * cselib.c (cselib_rtx_varies_p): Delete.
4104 (cselib_invalidate_mem): Update call to canon_true_dependence.
4105 * dse.c (record_store, check_mem_read_rtx): Likewise.
4106 (scan_reads_nospill): Likewise.
4107 * cse.c (check_dependence): Likewise.
4108 (cse_rtx_varies_p): Delete.
4109 * expr.c (safe_from_p): Update call to true_dependence.
4110 * ira.c (validate_equiv_mem_from_store): Likewise.
4111 (memref_referenced_p): Likewise.
4112 * postreload-gcse.c (find_mem_conflicts): Likewise.
4113 * sched-deps.c (sched_analyze_2): Likewise.
4114 * store-motion.c (load_kills_store): Likewise.
4115 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
4116 * gcse.c (mems_conflict_for_gcse_p): Likewise.
4117 (compute_transp): Update call to canon_true_dependence.
4118
4119 2012-01-25 Richard Henderson <rth@redhat.com>
4120
4121 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
4122 (maybe_emit_atomic_test_and_set): New.
4123 (expand_sync_lock_test_and_set): Use it.
4124 (expand_atomic_test_and_set): Likewise.
4125 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
4126 the implementation; clarify implementation defined details.
4127 * doc/md.texi (atomic_test_and_set): Document.
4128
4129 2012-01-25 Richard Henderson <rth@redhat.com>
4130
4131 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
4132
4133 2012-01-25 Richard Henderson <rth@redhat.com>
4134
4135 PR target/51968
4136 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
4137 to effect no-op split.
4138
4139 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
4140
4141 PR lto/51698
4142 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
4143 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
4144 (BT_FN_VOID_PTR_INT_SIZE): New.
4145 (BT_FN_UINT_UINT_VAR): Remove.
4146 (BT_FN_UINT32_UINT32_VAR): New.
4147 (BT_FN_DOUBLE_VPTR): Remove.
4148 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
4149
4150 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
4151 (_ITM_changeTransactionMode): Same.
4152 (_ITM_memmoveRtWt): Change return type to void.
4153 (_ITM_memcpyRtWt): Same.
4154 (_ITM_memsetW): Same.
4155 (_ITM_RaRD): Change types to double.
4156 (_ITM_RD): Same.
4157 (_ITM_RaWD): Same.
4158 (_ITM_RfWD): Same.
4159
4160 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
4161
4162 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
4163 Patrick Marlier <patrick.marlier@gmail.com>
4164
4165 * trans-mem.c (requires_barrier): Do not instrument thread local
4166 variables and emit save/restore for them.
4167
4168 2012-01-24 Jason Merrill <jason@redhat.com>
4169
4170 PR c++/51812
4171 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
4172 output static aliases.
4173
4174 2012-01-24 Jakub Jelinek <jakub@redhat.com>
4175
4176 PR driver/47249
4177 * common.opt (-pie, -shared, pie, shared): Change from Common to
4178 Driver.
4179 * gcc.c (display_help): Display help for -pie and -shared.
4180
4181 2012-01-24 Georg-Johann Lay <avr@gjlay.de>
4182
4183 PR target/49868
4184 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
4185 Remove note on size/offset limitation.
4186 (AVR Variable Attributes): Add example how to read data located
4187 with progmem. Refer to named address spaces.
4188 * doc/invoke.texi (AVR Options): Fix typo.
4189
4190 2012-01-24 Richard Guenther <rguenther@suse.de>
4191
4192 Forward-port to trunk
4193 2010-09-21 Jakub Jelinek <jakub@redhat.com>
4194
4195 PR middle-end/45678
4196 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
4197 op0 isn't sufficiently aligned and there is movmisalignM
4198 insn for mode, use it to load op0 into a temporary register.
4199
4200 2012-01-24 Jakub Jelinek <jakub@redhat.com>
4201
4202 PR target/51957
4203 * target.def (const_not_ok_for_debug_p): New hook.
4204 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
4205 documentation.
4206 * doc/tm.texi: Regenerated.
4207 * dwarf2out.c (const_ok_for_output_1): If
4208 targetm.const_not_ok_for_debug_p returns true, fail.
4209 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
4210 function.
4211 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
4212
4213 2012-01-23 Kai Tietz <ktietz@redhat.com>
4214
4215 PR target/51900
4216 * config/i386/predicates.md (symbolic_operand): Allow
4217 UNSPEC_PCREL as PIC expression for lea.
4218 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
4219 * config/i386/i386.c (ix86_delegitimize_address): Handle
4220 UNSPEC_PCREL for none-MEM, too.
4221
4222 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
4223
4224 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
4225 (ipa_tm_create_version_alias): Same.
4226
4227 2012-01-23 Uros Bizjak <ubizjak@gmail.com>
4228
4229 PR libitm/51830
4230 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
4231 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
4232
4233 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
4234 Patrick Marlier <patrick.marlier@gmail.com>
4235 Iain Sandoe <developer@sandoe-acoustics.co.uk>
4236
4237 PR lto/51916
4238 * lto-wrapper.c (run_gcc): Pass the LTO section name to
4239 simple_object_start_read.
4240
4241 2012-01-23 Richard Guenther <rguenther@suse.de>
4242
4243
4244 PR tree-optimization/51895
4245 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
4246 parameter decomposition into BLKmode components.
4247
4248 2012-01-23 Eric Botcazou <ebotcazou@adacore.com>
4249
4250 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
4251 fake variables for restrict-qualified pointers whose pointed-to type
4252 contains a placeholder.
4253
4254 2012-01-23 Richard Guenther <rguenther@suse.de>
4255
4256 PR tree-optimization/51949
4257 * ipa-split.c (execute_split_functions): Do not split malloc functions.
4258
4259 2012-01-23 Jakub Jelinek <jakub@redhat.com>
4260
4261 PR rtl-optimization/51933
4262 * ree.c (transform_ifelse): Return true right away if dstreg is
4263 already wider or equal to cand->mode.
4264 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
4265 (make_defs_and_copies_lists): Remove defs_list and copies_list
4266 arguments, add state argument, just truncate state->work_list
4267 instead of always allocating and freeing the vector. Assert that
4268 get_defs succeeds instead of returning 2. Changed return type to bool.
4269 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
4270 have ext_src_mode, see if it has been modified already with the
4271 right kind of extension and has been extended before from the
4272 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
4273 just return true. Remember the original mode in state->modified array.
4274 (combine_reaching_defs): Add state argument. Don't allocate and
4275 free here def_list, copied_list and vec vectors, instead just
4276 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
4277 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
4278 Add state variable, clear vectors in it, initialize state.modified
4279 if needed. Free all the vectors at the end and state.modified too.
4280 Don't skip a candidate if the extension expression has been modified.
4281
4282 2012-01-22 Douglas B Rupp <rupp@gnat.com>
4283
4284 PR target/47096
4285 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
4286 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
4287 (extra_options) interix.opt -> i386/interix.opt"
4288 (extra_objs):Add winnt-stubs.o
4289 * configure.ac: Add interix to target_os .comm on PE check.
4290 * configure: Regenerate.
4291 * config/interix3.h: Delete and move bits to..
4292 * config/interix.h: Delete and move bits to..
4293 * config/i386/i386-interix3.h: Delete and move bits to..
4294 * config/i386/i386-interix.h: ..here.
4295 (TARGET_CPU_DEFAULT): Remove redefinition.
4296 (TARGET_ASM_CONSTRUCTOR): Undefine.
4297 (SUBTARGET_SWITCHES): Define for ms-bitfields.
4298 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
4299 (PTRDIFF_TYPE): Define.
4300 (LONG_DOUBLE_TYPE_SIZE): Define.
4301 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
4302 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4303 (TARGET_SECTION_TYPE_FLAGS): Define.
4304 (ASM_DECLARE_FUNCTION_NAME): Define.
4305 (ASM_OUTPUT_EXTERNAL): Define.
4306 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
4307 (ASM_OUTPUT_ALIGNED_BSS): Define.
4308 (PCC_BITFIELD_TYPE_MATTERS): Define.
4309 (USE_CONST_SECTION): Define.
4310 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
4311 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
4312 (SUPPORTS_ONE_ONLY): Remove.
4313 (I386_PE_STRIP_ENCODING): Define.
4314 * config/interix.opt: Delete and move bits to..
4315 * config/i386/interix.opt: ..here. New.
4316 (mpe-aligned-commons): Add.
4317 * config/i386/t-interix: Add copyright header.
4318 (winnt-stubs.o): Add rule.
4319
4320 2012-01-22 Jason Merrill <jason@redhat.com>
4321
4322 PR c++/51832
4323 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
4324 for extra name aliases.
4325
4326 2012-01-22 Eric Botcazou <ebotcazou@adacore.com>
4327
4328 PR rtl-optimization/51924
4329 * ree.c (combine_set_extension): Improve debugging message.
4330 (combine_reaching_defs): Likewise.
4331 (get_defs): Rename confusingly named variable.
4332 (find_and_remove_re): Skip a candidate if the extension expression has
4333 been modified.
4334
4335 2012-01-21 Robert Millan <rmh@gnu.org>
4336 Gerald Pfeifer <gerald@pfeifer.com>
4337
4338 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
4339 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
4340
4341 2012-01-20 Jakub Jelinek <jakub@redhat.com>
4342
4343 PR tree-optimization/51914
4344 * tree-vect-stmts.c (vectorizable_conversion): For
4345 cvt_type && modifier == WIDEN, put temporary with cvt_type
4346 at the beginning of vec_dsts and set vec_dest to temporary
4347 with vectype_out.
4348
4349 2012-01-20 Eric Botcazou <ebotcazou@adacore.com>
4350
4351 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
4352
4353 2011-01-20 Tijl Coosemans <tijl@coosemans.org>
4354
4355 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
4356 * config/rs6000/rs6000.c: Likewise.
4357
4358 2012-01-20 Jakub Jelinek <jakub@redhat.com>
4359
4360 PR target/51915
4361 * config/arm/arm.c (arm_count_output_move_double_insns): Call
4362 output_move_double on a copy of operands array.
4363
4364 2012-01-20 Cary Coutant <ccoutant@google.com>
4365 Dodji Seketeli <dodji@redhat.com>
4366
4367 PR debug/45682
4368 * dwarf2out.c (copy_declaration_context): Return ref to parent
4369 of declaration DIE, if necessary.
4370 (remove_child_or_replace_with_skeleton): Add new parameter; update
4371 caller. Place skeleton DIE under parent DIE of original declaration.
4372 Move call to copy_declaration_context to here ...
4373 (break_out_comdat_types): ... from here.
4374
4375 2012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4376
4377 PR rtl-optimization/51856
4378 * reload.c (find_reloads_subreg_address): Set the address_reloaded
4379 flag to reloaded.
4380
4381 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4382
4383 PR target/51819
4384 * config/arm/arm.c (arm_print_operand): Correct output of alignment
4385 hints for neon loads and stores.
4386
4387 2012-01-20 Georg-Johann Lay <avr@gjlay.de>
4388
4389 PR target/49868
4390 PR target/50887
4391 * doc/extend.texi (Named Address Spaces): Split into subsections.
4392 (AVR Named Address Spaces): New subsection.
4393 (M32C Named Address Spaces): New subsection.
4394 (RL78 Named Address Spaces): New subsection.
4395 (SPU Named Address Spaces): New subsection.
4396 (Variable Attributes): New anchor "AVR Variable Attributes".
4397 (AVR Variable Attributes): Rewrite and avoid wording
4398 "address space" in this context.
4399 * doc/invoke.texi (AVR Options): Rewrite and add documentation
4400 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
4401 (AVR Built-in Macros): New subsubsection therein.
4402 * doc/md.texi (AVR constraints): Remove "C04", "R".
4403
4404 2012-01-20 Richard Guenther <rguenther@suse.de>
4405
4406 PR tree-optimization/51903
4407 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
4408 when removing stmts.
4409
4410 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4411
4412 PR target/50313
4413 * config/arm/arm.c (arm_load_pic_register): Use
4414 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
4415 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
4416 (arm_pic_static_addr): Likewise.
4417 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
4418 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
4419 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
4420 (pic_load_addr_unified): New.
4421
4422 2012-01-20 Andrey Belevantsev <abel@ispras.ru>
4423
4424 PR target/51106
4425 * function.c (instantiate_virtual_regs_in_insn): Use
4426 delete_insn_and_edges when removing a wrong asm insn.
4427
4428 2012-01-19 Vladimir Makarov <vmakarov@redhat.com>
4429
4430 PR rtl-optimization/40761
4431 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
4432 Add new member loop_num.
4433 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
4434 (ira_build): Remove the parameter.
4435
4436 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
4437 (ira.c): Do not build CFG loops for one region allocation. Remove
4438 argument from ira_build call.
4439
4440 * ira-build.c (init_loop_tree_node): New function.
4441 (create_loop_tree_nodes): Use it. Separate the case when CFG
4442 loops are not built.
4443 (more_one_region_p): Check current_loops.
4444 (finish_loop_tree_nodes): Separate the case when CFG loops are not
4445 built.
4446 (add_loop_to_tree): Process loop equal to NULL too.
4447 (form_loop_tree): Separate the case when CFG loops are not built.
4448 Use explicitly number for the root.
4449 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
4450 an assertion.
4451 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
4452 instead of loop->num.
4453 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
4454 (mark_all_loops_for_removal): Ditto.
4455 (remove_unnecessary_regions): Separate the case when CFG loops
4456 are not built.
4457 (ira_build): Remove the parameter. Use explicit number of regions
4458 when CFG loops are not built.
4459
4460 * ira-color.c (print_loop_title): Separate the case for the root node.
4461 Use loop_num instead of loop->num.
4462 (move_spill_restore): Use loop_num instead of loop->num.
4463
4464 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
4465 (change_loop): Ditto.
4466 (change_loop): Use loop_num instead of loop->num.
4467
4468 * ira-lives.c (process_bb_node_lives): Ditto.
4469
4470 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
4471
4472 * ira-conflicts.c (print_allocno_conflicts): Ditto.
4473
4474 2012-01-19 Jakub Jelinek <jakub@redhat.com>
4475
4476 PR libmudflap/40778
4477 * tree-mudflap.c (mf_artificial): New function.
4478 (execute_mudflap_function_ops, execute_mudflap_function_decls,
4479 mx_register_decls, mudflap_enqueue_decl): Use it.
4480
4481 PR target/51876
4482 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
4483 numbers in the insn pattern.
4484
4485 2012-01-19 Michael Matz <matz@suse.de>
4486
4487 PR tree-optimization/46590
4488 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
4489 use it in remembering which conflicts we already created.
4490 (add_scope_conflicts): Adjust call to above, (de)allocate helper
4491 bitmap.
4492
4493 2012-01-19 Aldy Hernandez <aldyh@redhat.com>
4494
4495 PR lto/51280
4496 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
4497 (merge_and_complain): Same.
4498
4499 2012-01-19 Jakub Jelinek <jakub@redhat.com>
4500
4501 PR bootstrap/50237
4502 * config/initfini-array.h: Guard content of the header
4503 with #ifdef HAVE_INITFINI_ARRAY.
4504 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
4505 Add initfini-array.h to tm_file here.
4506 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
4507 * config.gcc: Don't add initfini-array.h to tm_file here.
4508 * configure: Regenerated.
4509
4510 2012-01-19 Andrey Belevantsev <abel@ispras.ru>
4511
4512 PR rtl-optimization/51505
4513 * df-problems.c (df_kill_notes): New parameter live. Update comment.
4514 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
4515 (df_note_bb_compute): Update the call to df_kill_notes.
4516
4517 2012-01-18 Aldy Hernandez <aldyh@redhat.com>
4518
4519 * trans-mem.c (requires_barrier): Remove call to is_global_var.
4520
4521 2012-01-18 Richard Guenther <rguenther@suse.de>
4522
4523 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
4524 of conversions to void *.
4525
4526 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4527 Richard Sandiford <rdsandiford@googlemail.com>
4528
4529 PR middle-end/50325
4530 PR middle-end/51192
4531 * optabs.h (simplify_expand_binop): Declare.
4532 * optabs.c (simplify_expand_binop): Make global.
4533 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
4534 endian targets if the source cannot be exactly covered by word
4535 mode chunks.
4536
4537 2012-01-17 Jakub Jelinek <jakub@redhat.com>
4538
4539 PR bootstrap/51872
4540 * hard-reg-set.h (struct hard_reg_set_container): New type.
4541 * target.h (struct hard_reg_set_container): Forward declare.
4542 * target.def (set_up_by_prologue): New target hook.
4543 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
4544 * doc/tm.texi: Regenerated.
4545 * function.c (thread_prologue_and_epilogue_insns): Change
4546 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
4547 Call targetm.set_up_by_prologue on it.
4548 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
4549 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
4550
4551 2012-01-17 Nick Clifton <nickc@redhat.com>
4552
4553 * config/rx/rx.c (rx_can_use_simple_return): New function.
4554 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
4555 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
4556
4557 2012-01-17 Richard Guenther <rguenther@suse.de>
4558
4559 PR middle-end/51782
4560 * expr.c (expand_assignment): Take address-space information
4561 from the address operand of MEM_REF and TARGET_MEM_REF.
4562 (expand_expr_real_1): Likewise.
4563
4564 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4565
4566 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
4567 reload dump is requested.
4568
4569 2012-01-17 Aldy Hernandez <aldyh@redhat.com>
4570
4571 PR other/51165
4572 * trans-mem.c (requires_barrier): Call may_be_aliased.
4573
4574 2012-01-17 Jakub Jelinek <jakub@redhat.com>
4575
4576 PR tree-optimization/51877
4577 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
4578 call arguments and fndecls compare equal, instead return false if they
4579 don't. Return true only if lhs1 and lhs2 are either both NULL, or
4580 both SSA_NAMEs that are valueized the same, or they satisfy
4581 operand_equal_p.
4582
4583 2012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4584
4585 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
4586 Solaris 11+.
4587 * configure: Regenerate.
4588
4589 2012-01-16 Jan Hubicka <jh@suse.cz>
4590
4591 PR c/12245
4592 PR c++/14179
4593 * convert.c (convert_to_integer): Use fold_convert for
4594 converting an INTEGER_CST to integer type.
4595
4596 2012-01-16 Jason Merrill <jason@redhat.com>
4597
4598 PR c++/14179
4599 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
4600
4601 2012-01-16 Jakub Jelinek <jakub@redhat.com>
4602
4603 PR bootstrap/51860
4604 * config/s390/s390.c (s390_chunkify_start): Don't skip
4605 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
4606 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
4607 If insn is followed by NOTE_INSN_VAR_LOCATION or
4608 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
4609 Don't use location of note insns.
4610
4611 PR tree-optimization/51865
4612 * tree-inline.c (tree_function_versioning): Call remap_decl
4613 on DECL_RESULT whenever it has VOID_TYPE_P type.
4614
4615 2012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
4616
4617 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
4618 for calls to locally-binding MIPS16 functions if only the return
4619 type uses float regs.
4620
4621 2012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
4622 Richard Sandiford <rdsandiford@googlemail.com>
4623
4624 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
4625 (SYMBOL_32_HIGH): Likewise.
4626 (mips_output_tls_reloc_directive): Declare.
4627 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
4628 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
4629 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
4630 (mips_lo_relocs, mips_hi_relocs): Make extern.
4631 (mips16_stub_function): Move up file.
4632 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
4633 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
4634 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
4635 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
4636 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
4637 (mips_get_tp): Add MIPS16 support.
4638 (mips_legitimize_tls_address): Remove MIPS16 sorry().
4639 Generalize DTPREL and TPREL handling.
4640 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
4641 Add MIPS16 TLS support.
4642 (mips_output_tls_reloc_directive): New function.
4643 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
4644 * config/mips/predicates.md (symbolic_operand_with_high)
4645 (tls_reloc_operand): New predicates.
4646 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
4647 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
4648 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
4649 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
4650 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
4651 (*tls_get_tp_mips16_call_<mode>): Likewise.
4652
4653 2012-01-15 Uros Bizjak <ubizjak@gmail.com>
4654
4655 PR rtl-optimization/51821
4656 * recog.c (peep2_find_free_register): Determine clobbered registers
4657 from insn pattern.
4658
4659 2012-01-14 Denis Chertykov <chertykov@gmail.com>
4660
4661 PR target/50925
4662 * config/avr/avr-protos.h: Revert change of 2012-01-09.
4663 * config/avr/avr.c: Likewise.
4664 * config/avr/avr.h: Likewise.
4665
4666 2012-01-13 Ian Lance Taylor <iant@google.com>
4667
4668 PR c++/50012
4669 * tree.h (TYPE_QUALS): Add cast to int.
4670 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
4671
4672 2012-01-13 Ian Lance Taylor <iant@google.com>
4673
4674 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
4675 comparing param_index to VEC_length result.
4676
4677 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
4678
4679 * c-decl.c: Do not include tree-mudflap.h
4680 * tree-optimize.c: Likewise.
4681 * Makefile.in: Update dependencies.
4682
4683 2012-01-13 Richard Guenther <rguenther@suse.de>
4684
4685 PR middle-end/8081
4686 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
4687 variable-sized result always use RSO.
4688
4689 2012-01-12 DJ Delorie <dj@redhat.com>
4690
4691 * cfgexpand.c (convert_debug_memory_address): Allow any valid
4692 pointer type, not just the default pointer type.
4693
4694 2012-01-09 Richard Henderson <rth@redhat.com>
4695 Denis Chertykov <chertykov@gmail.com>
4696
4697 PR target/50925
4698 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
4699 * config/avr/avr.c (avr_can_eliminate): Simplify.
4700 (avr_initial_elimination_offset): Likewise.
4701 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
4702 (expand_epilogue): Likewise.
4703 (avr_legitimize_address): Gut.
4704 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
4705 (avr_hard_regno_nregs): New.
4706 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
4707 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
4708 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
4709 add soft frame pointer.
4710 (CALL_USED_REGISTERS): Likewise.
4711 (REG_CLASS_CONTENTS): Likewise.
4712 (REGISTER_NAMES): Likewise.
4713 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
4714 (HARD_FRAME_POINTER_REGNUM): New.
4715 (FRAME_POINTER_REGNUM): Use soft frame pointer.
4716 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
4717 remove the HARD_FRAME_POINTER self-elimination.
4718
4719 2012-01-12 Georg-Johann Lay <avr@gjlay.de>
4720
4721 PR target/51756
4722 * config/avr/avr.c (avr_encode_section_info): Test for absence of
4723 DECL_EXTERNAL when checking for initializers of progmem variables.
4724
4725 2012-01-12 Ira Rosen <irar@il.ibm.com>
4726
4727 PR tree-optimization/51799
4728 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
4729 that the last operation is a type demotion.
4730
4731 2012-01-12 Uros Bizjak <ubizjak@gmail.com>
4732
4733 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
4734 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
4735
4736 2012-01-11 Jakub Jelinek <jakub@redhat.com>
4737
4738 PR bootstrap/51796
4739 * combine.c (distribute_notes): If i3 is a noreturn call,
4740 allow old_size to be equal to args_size and make sure the
4741 noreturn call gets REG_ARGS_SIZE note.
4742 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
4743 on noreturn calls even when the delta is 0.
4744
4745 2012-01-11 Nathan Sidwell <nathan@acm.org>
4746
4747 * gcov.c (STRING_SIZE): Remove.
4748 (generate_results): Erase annotations for source files with no
4749 coverage information.
4750 (read_line): New.
4751 (output_lines): Use it.
4752
4753 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
4754
4755 * gimple.h (gimplify_body): Remove first argument.
4756 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
4757 pointer set here, instead just pass DATA to walk_tree.
4758 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
4759 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
4760 (unvisit_body): Likewise, but with unmark_visited.
4761 (gimplify_body): Remove BODY_P argument and adjust.
4762 (gimplify_function_tree): Adjust call to gimplify_body.
4763 * omp-low.c (finalize_task_copyfn): Likewise.
4764
4765 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
4766
4767 * tree.h (build_function_decl_skip_args): Add boolean parameter.
4768 (build_function_type_skip_args): Delete.
4769 * tree.c (build_function_type_skip_args): Make static and add
4770 SKIP_RETURN parameter. Fix thinko in the handling of variants.
4771 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
4772 pass it to build_function_type_skip_args.
4773 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
4774 (tree_function_versioning): Likewise.
4775 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
4776 build_function_decl_skip_args.
4777 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
4778 and pass it to build_function_decl_skip_args/tree_function_versioning.
4779 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
4780 * ipa-inline-transform.c (save_inline_function_body): Likewise.
4781 * trans-mem.c (ipa_tm_create_version): Likewise.
4782 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
4783 * tree-inline.c (declare_return_variable): Remove always-true test.
4784 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
4785 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
4786 * ipa-split.c (split_function): Skip the return value for the split
4787 part if it doesn't return.
4788
4789 2012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4790
4791 PR tree-optimization/49642
4792 * ipa-split.c (forbidden_dominators): New variable.
4793 (check_forbidden_calls): New function.
4794 (dominated_by_forbidden): Likewise.
4795 (consider_split): Check for forbidden dominators.
4796 (execute_split_functions): Initialize and free forbidden
4797 dominators info; call check_forbidden_calls.
4798
4799 2012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
4800
4801 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
4802
4803 2012-01-11 Nick Clifton <nickc@redhat.com>
4804
4805 * config/rx/rx.md (return): Define pattern.
4806
4807 2012-01-11 Richard Guenther <rguenther@suse.de>
4808
4809 * doc/extend.texi (malloc attribute): Adjust according to
4810 implementation.
4811
4812 2012-01-10 Aldy Hernandez <aldyh@redhat.com>
4813 Patrick Marlier <patrick.marlier@gmail.com>
4814
4815 PR middle-end/51516
4816 * trans-mem.c (get_cg_data): Traverse aliases if requested.
4817 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
4818 (ipa_tm_note_irrevocable): Same.
4819 (ipa_tm_scan_irr_block): Same.
4820 (ipa_tm_decrement_clone_counts): Same.
4821 (ipa_tm_scan_irr_function): Same.
4822 (ipa_tm_create_version_alias): Same.
4823 (ipa_tm_create_version): Same.
4824 (ipa_tm_transform_calls_redirect): Same.
4825 (ipa_tm_transform_calls): Same.
4826 (ipa_tm_transform_transaction): Same.
4827 (ipa_tm_execute): Same.
4828
4829 2012-01-10 Richard Guenther <rguenther@suse.de>
4830
4831 PR middle-end/51806
4832 * opts.c (common_handle_option): Handle -Werror.
4833
4834 2012-01-10 Andreas Schwab <schwab@linux-m68k.org>
4835
4836 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
4837 operand number.
4838
4839 2012-01-10 Jason Merrill <jason@redhat.com>
4840
4841 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
4842 information.
4843
4844 2012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4845
4846 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
4847 supports R_386_TLS_GD_PLT reloc.
4848 (gcc_cv_as_ix86_tlsldmplt): Check if linker
4849 supports R_386_TLS_LDM_PLT reloc.
4850 * configure: Regenerate.
4851 * config.in: Regenerate.
4852
4853 2012-01-10 Georg-Johann Lay <avr@gjlay.de>
4854
4855 PR target/49868
4856 Extend __pgmx semantics to linearize memory.
4857 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
4858 determine if code comes inline or from libgcc.
4859 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
4860 (movmem_qi, movmem_qi): Set constraint #2 to "n".
4861 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
4862 (movmemx_qi, movmemx_hi): New insns.
4863 (xload_<mode>_libgcc): Rewrite to new insn condition.
4864 (xload_<mode>): Remove insns.
4865 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
4866 cases that don't satisfy avr_xload_libgcc_p().
4867 (avr_addr_space_convert): Allow converting in any direction.
4868 (avr_addr_space_subset_p): Return always true.
4869 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
4870 (avr_emit_movmemhi): Ditto.
4871 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
4872 (avr_out_movmem): Ditto.
4873 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
4874 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
4875 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
4876 (avr_encode_section_info): Encode 'progmem' in symbol flags.
4877 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
4878
4879 2012-01-10 Richard Guenther <rguenther@suse.de>
4880
4881 PR tree-optimization/50913
4882 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
4883 Require data-refs to be representable by Graphite with respect
4884 to any loop nest.
4885
4886 2012-01-10 Uros Bizjak <ubizjak@gmail.com>
4887
4888 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
4889 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
4890
4891 2012-01-10 Tom de Vries <tom@codesourcery.com>
4892
4893 PR rtl-optimization/51271
4894 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
4895 handling annulled branch.
4896
4897 2012-01-10 Richard Henderson <rth@redhat.com>
4898
4899 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
4900 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
4901 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
4902 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
4903 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
4904 arm_expand_vec_perm_const): New.
4905 * config/arm/arm-protos.h: Update.
4906 * config/arm/neon.md (UNSPEC_VCONCAT): New.
4907 (*neon_vswp<VDQX>): New.
4908 (neon_vcombine<VDX>): Use neon_split_vcombine.
4909 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
4910 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
4911 (vec_perm<VE>): New.
4912
4913 2012-01-10 Richard Henderson <rth@redhat.com>
4914
4915 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
4916 use it if reload_completed.
4917 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
4918 arm_output_asm_insn, arm_process_output_memory_barrier,
4919 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
4920 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
4921 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
4922 arm_process_output_sync_insn, arm_output_sync_insn,
4923 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
4924 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
4925 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
4926 (emit_unlikely_jump): New.
4927 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
4928 (arm_split_atomic_op): New.
4929 * config/arm/arm-protos.h: Update.
4930 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
4931 (struct arm_sync_generator): Remove.
4932 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
4933 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
4934 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
4935 (VUNSPEC_LL, VUNSPEC_SC): New.
4936 (sync_result, sync_memory, sync_required_value, sync_new_value,
4937 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
4938 (attr length): Don't use arm_sync_loop_insns.
4939 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
4940 (movsfcc, movdfcc): Likewise.
4941 * config/arm/constraints.md (Ua): New.
4942 * config/arm/prediates.md (mem_noofs_operand): New.
4943 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
4944 (sync_clobber, sync_t2_reqd): Remove.
4945 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
4946 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
4947 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
4948 (arm_sync_compare_and_swap<SIDI>): Remove.
4949 (arm_sync_compare_and_swap<NARROW>): Remove.
4950 (arm_sync_lock_test_and_set<SIDI>): Remove.
4951 (arm_sync_lock_test_and_set<NARROW>): Remove.
4952 (arm_sync_new_<syncop><SIDI>): Remove.
4953 (arm_sync_new_<syncop><NARROW>): Remove.
4954 (arm_sync_new_nand<SIDI>): Remove.
4955 (arm_sync_new_nand<NARROW>): Remove.
4956 (arm_sync_old_<syncop><SIDI>): Remove.
4957 (arm_sync_old_<syncop><NARROW>): Remove.
4958 (arm_sync_old_nand<SIDI>): Remove.
4959 (arm_sync_old_nand<NARROW>): Remove.
4960 (*memory_barrier): Merge arm_output_memory_barrier.
4961 (atomic_compare_and_swap<QHSD>): New.
4962 (atomic_compare_and_swap<NARROW>_1): New.
4963 (atomic_compare_and_swap<SIDI>_1): New.
4964 (atomic_exchange<QHSD>): New.
4965 (cas_cmp_operand, cas_cmp_str): New.
4966 (atomic_op_operand, atomic_op_str): New.
4967 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
4968 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
4969 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
4970 (arm_load_exclusive<NARROW>): New.
4971 (arm_load_exclusivesi, arm_load_exclusivedi): New.
4972 (arm_store_exclusive<QHSD>): New.
4973
4974 2012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
4975
4976 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
4977 reload patterns if -mvsx-scalar-memory.
4978
4979 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
4980 generated, even -mno-vsx-scalar-double was used.
4981 (vsx_xscvdpsp_scalar): Likewise.
4982 (vsx_xscvspdp_scalar2): Likewise.
4983
4984 2012-01-09 Tom de Vries <tom@codesourcery.com>
4985 Andrew Pinski <apinski@cavium.com>
4986
4987 PR debug/51471
4988 * reorg.c (fill_slots_from_thread): Don't speculate
4989 frame-related insns.
4990
4991 2012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
4992
4993 * sched-int.h (bb_note): Move to...
4994 * basic-block.h: ...here.
4995 * haifa-sched.c (bb_note): Move to...
4996 * cfgrtl.c: ...here.
4997 * function.c (next_block_for_reg): New function.
4998 (move_insn_for_shrink_wrap): Likewise.
4999 (prepare_shrink_wrap): Rewrite to use the above.
5000
5001 2012-01-09 Aldy Hernandez <aldyh@redhat.com>
5002
5003 * gimple.c (is_gimple_non_addressable): Remove.
5004 * gimple.h: Remove is_gimple_non_addressable.
5005 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
5006 is_gimple_non_addressable.
5007 * trans-mem.c (expand_assign_tm): Same.
5008
5009 2012-01-09 Richard Guenther <rguenther@suse.de>
5010
5011 PR tree-optimization/51775
5012 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
5013 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
5014
5015 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
5016
5017 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
5018 tuning parameters.
5019 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
5020
5021 2012-01-09 Richard Guenther <rguenther@suse.de>
5022
5023 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
5024
5025 2012-01-08 Jan Hubicka <jh@suse.cz>
5026
5027 PR tree-optimize/51680
5028 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
5029 on when known_vals needs to be computed; cleanup.
5030
5031 2012-01-08 Jan Hubicka <jh@suse.cz>
5032
5033 PR tree-optimize/51694
5034 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
5035
5036 2012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
5037
5038 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
5039 for -std=c++98 and -std=c++11 too.
5040
5041 2012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
5042
5043 * cfgloop.c (cancel_loop): Add free() of bbs array.
5044
5045 2012-01-07 Jan Hubicka <jh@suse.cz>
5046
5047 PR tree-optimization/51600
5048 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
5049 that benefits small functions.
5050
5051 2012-01-07 Jan Hubicka <jh@suse.cz>
5052
5053 * ipa-inline.c (want_inline_small_function_p): Fix formating.
5054
5055 2012-01-07 Jan Hubicka <jh@suse.cz>
5056
5057 PR tree-optimization/51680
5058 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
5059 whose inlining reduce unit size.
5060
5061 2012-01-07 Alexandre Oliva <aoliva@redhat.com>
5062
5063 PR bootstrap/51725
5064 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
5065 Add canonical node to containing_mem chain after the non-canonical
5066 one, even if there weren't any locs to propagate.
5067 (remove_useless_values): Keep only canonical values.
5068 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
5069 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
5070 canonicalize mem_chain elements that are not discarded.
5071
5072 2012-01-06 Jakub Jelinek <jakub@redhat.com>
5073
5074 PR target/47333
5075 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
5076 before emitting functions.
5077
5078 PR gcov-profile/50127
5079 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
5080 clear_aux_for_blocks.
5081
5082 2012-01-06 Alexandre Oliva <aoliva@redhat.com>
5083
5084 PR debug/51746
5085 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
5086
5087 2012-01-06 Arnaud Charlet <charlet@adacore.com>
5088
5089 * c-decl.c (ext_block): Moved up.
5090 (collect_all_refs, for_each_global_decl): Take ext_block into account.
5091
5092 2012-01-06 Han Shen <shenhan@google.com>
5093
5094 Translate built-in include paths for sysroot.
5095 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
5096 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
5097
5098 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
5099 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
5100
5101 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
5102 control whether sysroot should be prepended to gxx include dir.
5103
5104 * configure: Regenerate.
5105
5106 2012-01-06 Torvald Riegel <triegel@redhat.com>
5107
5108 PR rtl-optimization/51771
5109 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
5110 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
5111
5112 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
5113
5114 PR tree-optimization/51315
5115 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
5116 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
5117
5118 2012-01-05 Uros Bizjak <ubizjak@gmail.com>
5119
5120 PR target/51681
5121 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
5122 for shrp pattern. Correctly handle and fixup shift variable.
5123 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
5124
5125 2012-01-05 Jakub Jelinek <jakub@redhat.com>
5126
5127 PR debug/51762
5128 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
5129 note when !ACCUMULATE_OUTGOING_ARGS.
5130
5131 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
5132
5133 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
5134 condition.
5135 (extract_range_from_unary_expr_1): Avoid useless computations.
5136
5137 2012-01-05 Jakub Jelinek <jakub@redhat.com>
5138
5139 PR rtl-optimization/51767
5140 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
5141 of jump_block and add an extra edge for degenerated asm gotos.
5142
5143 PR middle-end/51768
5144 * stmt.c (check_unique_operand_names): Don't ICE during error
5145 reporting if i is from labels chain.
5146
5147 PR middle-end/44777
5148 * profile.c (branch_prob): Split bbs that have exit edge
5149 and need a fake entry edge too.
5150
5151 2012-01-05 Jan Hubicka <jh@suse.cz>
5152
5153 PR middle-end/49710
5154 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
5155 unlooping loops.
5156
5157 2012-01-05 Richard Guenther <rguenther@suse.de>
5158
5159 PR lto/50490
5160 * tree-streamer-out.c (write_ts_optimization): New function.
5161 (streamer_write_tree_body): Call it.
5162 * tree-streamer-in.c (lto_input_ts_optimization): New function.
5163 (streamer_read_tree_body): Call it.
5164 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
5165
5166 2012-01-05 Jakub Jelinek <jakub@redhat.com>
5167
5168 PR middle-end/51761
5169 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
5170 * gimplify.c (gimplify_cleanup_point_expr): Save and set
5171 in_cleanup_point_expr before gimplify_stmt call and restore it
5172 afterwards.
5173 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
5174 in_cleanup_point_expr is false.
5175
5176 2012-01-05 Richard Guenther <rguenther@suse.de>
5177
5178 PR middle-end/51764
5179 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
5180 to c.opt.
5181 * toplev.c (process_options): Reject combining mudflap and LTO.
5182 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
5183
5184 2012-01-05 Richard Guenther <rguenther@suse.de>
5185
5186 PR tree-optimization/51760
5187 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
5188 not VARYING.
5189 (bit_value_unop): Handle UNDEFINED operands.
5190 (bit_value_binop): Likewise.
5191
5192 2012-01-05 Georg-Johann Lay <avr@gjlay.de>
5193
5194 * config/avr/avr.c (avr_replace_prefix): Remove.
5195 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
5196 (avr_asm_function_rodata_section): Ditto.
5197 (avr_asm_select_section): Ditto.
5198
5199 2012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
5200
5201 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
5202 insertion.
5203
5204 2012-01-05 Jakub Jelinek <jakub@redhat.com>
5205
5206 PR bootstrap/51648
5207 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
5208 calls that have any non-fake successor edges.
5209
5210 PR debug/51746
5211 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
5212
5213 2012-01-04 Eric Botcazou <ebotcazou@adacore.com>
5214
5215 PR tree-optimization/51624
5216 * tree-sra.c (build_ref_for_model): When replicating a chain of
5217 COMPONENT_REFs, stop as soon as the offset would become negative.
5218
5219 2012-01-04 Jakub Jelinek <jakub@redhat.com>
5220
5221 PR debug/51695
5222 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
5223 in .debug_loc on the floor.
5224
5225 2012-01-04 Andrew Pinski <apinski@cavium.com>
5226
5227 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
5228
5229 2012-01-04 Andrew Pinski <apinski@cavium.com>
5230 Adam Nemet <anemet@caviumnetworks.com>
5231
5232 * config/mips/mips.md (size): Add SI and DI.
5233 (SIZE): New mode attribute.
5234 (U): New code attribute.
5235 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
5236 (mips_lbux_<mode>): Delete.
5237 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
5238 (mips_lhx): Use gen_mips_lhx_extsi.
5239 (mips_lhx_<mode>): Delete.
5240 (mips_lwx): Delete.
5241 (mips_l<size>x): New expand.
5242 (mips_lwx_<mode>): Delete.
5243 (mips_l<GPR:size>x_<P:mode>): New pattern.
5244 (*mips_lw<u>x_<P:mode>_ext): Likewise.
5245 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
5246 * config/mips/mips.c (mips_lx_address_p): New function.
5247 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
5248 (dsp64): New availability predicate.
5249 (mips_builtins): Add an entry for __builtin_mips_ldx.
5250 * config/mips/mips.h (ISA_HAS_LBX): New define.
5251 (ISA_HAS_LBUX): Likewise.
5252 (ISA_HAS_LHX): Likewise.
5253 (ISA_HAS_LHUX): Likewise.
5254 (ISA_HAS_LWX): Likewise.
5255 (ISA_HAS_LWUX): Likewise.
5256 (ISA_HAS_LDX): Likewise.
5257 * doc/extend.texi (__builtin_mips_ldx): Document.
5258
5259 2012-01-04 Tristan Gingold <gingold@adacore.com>
5260
5261 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
5262 when long pointers are used.
5263 * config.build (*-*-*vms*): Handle all OpenVMS targets.
5264 (alpha64-dec-*vms*, alpha*-dec-*vms*)
5265 (ia64-hp-*vms*): Remove.
5266 * config/vms/xm-vms64.h: Delete.
5267
5268 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
5269
5270 PR middle-end/51472
5271 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
5272
5273 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
5274
5275 * opts.c (finish_options): Remove duplicate sorry.
5276
5277 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
5278
5279 PR middle-end/51696
5280 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
5281 correctly.
5282
5283 2012-01-04 Richard Guenther <rguenther@suse.de>
5284
5285 PR middle-end/51750
5286 * tree.c (size_low_cst): New function.
5287 * tree.h (size_low_cst): Declare.
5288 * fold-const.c (fold_comparison): Use it to extract the low
5289 part of the POINTER_PLUS_EXPR offset.
5290
5291 2012-01-04 Georg-Johann Lay <avr@gjlay.de>
5292
5293 Fix clearing ZERO_REG
5294 * config/avr/avr.md (cc): Add alternative "ldi".
5295 (movqi_insn): Use it in cc attribute.
5296 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
5297 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
5298 (output_reload_insisf): Use ZERO_REG to pre-clear register.
5299
5300 2012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5301
5302 * configure: Regenerate.
5303
5304 2012-01-04 Richard Guenther <rguenther@suse.de>
5305
5306 PR tree-optimization/49651
5307 * tree-ssa-structalias.c (type_can_have_subvars): New function.
5308 (var_can_have_subvars): Use it.
5309 (get_constraint_for_1): Only consider subfields if there can be any.
5310
5311 2012-01-03 Jakub Jelinek <jakub@redhat.com>
5312
5313 PR bootstrap/51725
5314 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
5315 to its new canonical_cselib_val and the cselib_val was in
5316 first_containing_mem chain, but the canonical_cselib_val was not,
5317 add the latter into the chain.
5318 (cselib_invalidate_mem): Compare canonical_cselib_val of
5319 addr_list chain elt with v.
5320
5321 PR pch/51722
5322 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
5323 dwarf2out_undef): Allocate e.info using ggc_strdup instead
5324 of xstrdup.
5325 (output_macinfo_op): Don't ggc_strdup fd->filename.
5326 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
5327 then ggc_strdup it. Don't free inc->info or cur->info.
5328 (output_macinfo): Don't free ref->info or file->info.
5329
5330 2012-01-03 Ira Rosen <irar@il.ibm.com>
5331
5332 PR tree-optimization/51269
5333 * tree-vect-loop-manip.c (set_prologue_iterations): Make
5334 first_niters a pointer.
5335 (slpeel_tree_peel_loop_to_edge): Likewise.
5336 (vect_do_peeling_for_loop_bound): Update call to
5337 slpeel_tree_peel_loop_to_edge.
5338 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
5339 here. Remove it from the parameters list.
5340 (vect_do_peeling_for_alignment): Update calls and compute
5341 wide_prolog_niters.
5342
5343 2012-01-03 Richard Guenther <rguenther@suse.de>
5344
5345 PR tree-optimization/51070
5346 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
5347 Properly handle calls.
5348
5349 2012-01-03 Richard Guenther <rguenther@suse.de>
5350
5351 PR tree-optimization/51692
5352 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
5353 the LHS of allocation stmts.
5354
5355 2012-01-03 Olivier Hainque <hainque@adacore.com>
5356
5357 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
5358
5359 2012-01-03 Olivier Hainque <hainque@adacore.com>
5360
5361 * collect2.c (main): In AIX specific computations for vector
5362 insertions, use CONST_CAST2 to cast from char ** to const char **.
5363
5364 2012-01-03 Richard Guenther <rguenther@suse.de>
5365
5366 PR debug/51650
5367 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
5368 the context of a limbo DIE when it does not already exist.
5369
5370 2012-01-03 Jakub Jelinek <jakub@redhat.com>
5371
5372 PR tree-optimization/51719
5373 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
5374 but direct call is, clear direct call's lhs and don't add fallthrough
5375 edge from dcall_bb to join_bb and PHIs.
5376
5377 2012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5378
5379 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
5380 the instructions emitted by the pattern.
5381 ("*TDC_insn_<mode>"): Add comment.
5382
5383 2012-01-03 Richard Guenther <rguenther@suse.de>
5384
5385 PR middle-end/51730
5386 * fold-const.c (fold_comparison): Properly canonicalize
5387 tree offset and HOST_WIDE_INT bit position.
5388
5389 2012-01-02 Uros Bizjak <ubizjak@gmail.com>
5390
5391 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
5392 operands for extzv pattern.
5393
5394 2012-01-02 Jakub Jelinek <jakub@redhat.com>
5395
5396 PR bootstrap/51725
5397 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
5398 on mem_elt first.
5399
5400 2012-01-02 Sandra Loosemore <sandra@codesourcery.com>
5401
5402 * doc/invoke.texi (-flto and related options): Copy-edit.
5403
5404 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
5405
5406 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
5407
5408 2012-01-02 Jakub Jelinek <jakub@redhat.com>
5409
5410 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
5411 New patterns.
5412
5413 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
5414
5415 * expr.h (move_by_pieces_ninsns): Declare.
5416 * expr.c (move_by_pieces_ninsns): Make external.
5417 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
5418 (mips_store_by_pieces_p): Likewise.
5419 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
5420 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
5421 * config/mips/mips.c (mips_move_by_pieces_p): New function.
5422 (mips_store_by_pieces_p): Likewise.
5423
5424 2012-01-02 Jakub Jelinek <jakub@redhat.com>
5425
5426 * passes.c (register_one_dump_file): Free full_name.
5427
5428 * reload1.c (reload): Don't allocate reg_max_ref_width here.
5429 (calculate_elim_costs_all_insns): Free offsets_at and
5430 offsets_known_at at the end and clear the pointers.
5431
5432 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
5433
5434 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
5435 this option introduced in r180739.
5436
5437 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
5438
5439 PR target/51345
5440 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
5441 (tmake_file target=avr): Add avr/t-multilib.
5442
5443 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
5444 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
5445 * config/avr/genmultilib.awk: New file.
5446 * config/avr/t-multilib: New auto-generated file.
5447 * config/avr/multilib.h: New auto-generated file.
5448 * config/avr/t-avr (AVR_MCUS): New variable.
5449 (genopt.sh): Use it.
5450 (s-mlib): Depend on t-multilib.
5451 (t-multilib, multilib.h): New dependencies.
5452 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
5453 (MULTILIB_OPTIONS): Remove.
5454 (MULTILIB_MATCHES): Remove.
5455 (MULTILIB_DIRNAMES): Remove.
5456 (MULTILIB_EXCEPTIONS): Remove:
5457 * config/avr/genopt.sh: Don't use hard coded file name;
5458 pass AVR_MCUS from t-avr instead.
5459
5460 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
5461
5462 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
5463
5464 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
5465
5466 Implement light-weight DImode support.
5467 * config/avr/avr-dimode.md: New file.
5468 * config/avr/avr.md: Include it.
5469 (adjust_len): Add plus64, compare64.
5470 (HIDI): Remove code iterator.
5471 (code_stdname): New code attribute.
5472 (rotx, rotsmode): Remove DI.
5473 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
5474 as code iterator.
5475 * config/avr/avr-protos.h (avr_have_dimode): New.
5476 (avr_out_plus64, avr_out_compare64): New.
5477 * config/avr/avr.c (avr_out_compare): Handle DImode.
5478 (avr_have_dimode): New variable definition and initialization.
5479 (avr_out_compare64, avr_out_plus64): New functions.
5480 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
5481 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
5482 (avr_compare_pattern): Skip DImode comparisons.
5483
5484 2012-01-02 Revital Eres <revital.eres@linaro.org>
5485
5486 * ddg.c (def_has_ccmode_p): New function.
5487 (add_cross_iteration_register_deps,
5488 create_ddg_dep_from_intra_loop_link): Call it.
5489
5490 2012-01-02 Richard Guenther <rguenther@suse.de>
5491
5492 PR other/51679
5493 * invoke.texi (fassociative-math): Remove spurious paranthesis.
5494
5495 2012-01-01 Jakub Jelinek <jakub@redhat.com>
5496
5497 * gcc.c (process_command): Update copyright notice dates.
5498 * gcov.c (print_version): Likewise.
5499 * gcov-dump.c (print_version): Likewise.
5500 * mips-tfile.c (main): Likewise.
5501 * mips-tdump.c (main): Likewise.
5502
5503 2012-01-01 Ira Rosen <irar@il.ibm.com>
5504
5505 PR tree-optimization/51704
5506 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
5507 a use is inside the basic block or loop before accessing its vect info.
5508
5509 2012-01-01 Jan Hubicka <jhjh@suse.cz>
5510
5511 PR rtl-optimization/51069
5512 * cfgloopmanip.c (remove_path): Removing path making irreducible
5513 region unconditional makes BB part of the region.
5514
5515 2012-01-01 Jakub Jelinek <jakub@redhat.com>
5516
5517 PR tree-optimization/51683
5518 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
5519 calls with side-effects.
5520 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5521 \f
5522 Copyright (C) 2012 Free Software Foundation, Inc.
5523
5524 Copying and distribution of this file, with or without modification,
5525 are permitted in any medium without royalty provided the copyright
5526 notice and this notice are preserved.