OSDN Git Service

* ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2012-02-21  Bernd Schmidt  <bernds@codesourcery.com>
2
3         * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
4         WORDS_BIG_ENDIAN.
5         * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
6         assign_hard_reg): Likewise.
7
8 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
9
10         * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
11
12 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
13
14         * config/avr/avr.md
15         (*dec-and-branchhi!=-1.d.clobber): New text peephole.
16         (*dec-and-branchhi!=-1.l.clobber): New text peephole.
17
18 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
19
20         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
21         prototype from here to...
22         * config/avr/avr.h: ...here.
23
24 2012-02-21  Richard Earnshaw  <rearnsha@arm.com>
25
26         PR target/52294
27         * thumb2.md (thumb2_shiftsi3_short): Split register and
28         immediate shifts.  For register shifts tie operands 0 and 1.
29         (peephole2 for above): Check that register-controlled shifts
30         have suitably tied operands.
31
32 2012-02-21  Quentin Neill  <quentin.neill@amd.com>
33
34         PR target/52137
35         * config/i386/bdver1.md (bdver1_call, bdver1_push,
36         bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
37         bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
38         bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
39         bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
40         bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
41         bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
42         bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
43         bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
44         bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
45         bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
46         bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
47         bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
48         bdver1_ssevector_avx256_unaligned_load,
49         bdver1_ssevector_sse128_unaligned_load,
50         bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
51         bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
52         bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
53         bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
54         bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
55         bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
56         bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
57         bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
58         bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
59         bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
60         bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
61         bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
62         bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
63         bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
64         bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
65         bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
66         bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
67         bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
68         bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
69         bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
70         bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
71         bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
72         bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
73         bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
74         bdver1_ssediv_double_load, bdver1_ssediv_double,
75         bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
76         Add "bdver2" attribute.
77
78 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
79
80         * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
81         default if possible and not specified otherwise.
82
83 2012-02-21  Richard Guenther  <rguenther@suse.de>
84
85         PR middle-end/52314
86         * gimplify.c (create_tmp_from_val): Use the main variant type
87         for the type of the temporary we create.
88
89 2012-02-21  Richard Guenther  <rguenther@suse.de>
90
91         PR tree-optimization/52324
92         * gimplify.c (gimplify_expr): When re-gimplifying expressions
93         do not gimplify a MEM_REF address operand if it is already
94         in suitable form.
95
96 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
97
98         * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
99         TARGET_HARD_FLOAT with TARGET_HARD_DFP.
100
101 2012-02-21  Richard Guenther  <rguenther@suse.de>
102
103         * tree-vect-stmts.c (vectorizable_load): Use pre-computed
104         nested_in_vect_loop.
105
106 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
107
108         PR tree-optimization/52318
109         * gimple-fold.c (gimplify_and_update_call_from_tree): Add
110         vdef also to non-pure/const call stmts in the sequence.
111
112 2012-02-20  David S. Miller  <davem@davemloft.net>
113
114         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
115         don't use the "rd %pc" instruction on v9 for PIC register loads.
116
117 2012-02-20  Aldy Hernandez  <aldyh@redhat.com>
118
119         PR middle-end/52141
120         * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
121         in a transaction safe function.
122
123 2012-02-20  Kai Tietz  <ktietz@redhat.com>
124
125         PR target/52238
126         * stor-layout.c (place_field): Handle desired_align for
127         ms-bitfields, too.
128
129 2012-02-20  Richard Guenther  <rguenther@suse.de>
130
131         PR tree-optimization/52298
132         * tree-vect-stmts.c (vectorizable_store): Properly use
133         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
134         outer loops.
135         (vectorizable_load): Likewise.
136         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
137         Access DR_STEP after ensuring it is not NULL.
138
139 2012-02-20  Jakub Jelinek  <jakub@redhat.com>
140
141         PR tree-optimization/52286
142         * fold-const.c (fold_binary_loc): For (X & C1) | C2
143         optimization use double_int_to_tree instead of build_int_cst_wide,
144         rewrite to use double_int vars.
145
146 2012-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
147
148         PR target/50166
149         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
150         Define _start.
151         Remove -e 0 from $gcc_cv_ld invocation.
152         Only use __GLIBC_PREREQ if defined.
153         Enable on Solaris since Solaris 8 patch.
154         (gcc_SUN_LD_VERSION): New macro.
155         * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
156         gcc_SUN_LD_VERSION for version number format.
157         * configure: Regenerate.
158         * varasm.c (get_elf_initfini_array_priority_section): Set
159         SECTION_NOTYPE for non-default priority.
160         Use get_section instead of get_unnamed_section to emit
161         .init_array/.fini_array with default priority.
162
163 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
164
165         * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
166         (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
167         (mips_start_unique_function, mips_output_mips16_rdhwr)
168         (mips_code_end): New functions.
169         (TARGET_ASM_CODE_END): Define.
170
171 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
172
173         * config/mips/mips.c (mips16_build_call_stub): Add CFI information
174         to stubs with non-sibling calls.
175
176 2012-02-18  Sandra Loosemore  <sandra@codesourcery.com>
177
178         * doc/invoke.texi (-fira-* options): Copy-edit.
179         (ira-* parameters): Copy-edit.
180
181 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
182
183         * doc/invoke.texi: Minor copy-edits to bring into conformance with
184         GCC coding conventions.
185
186 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
187
188         * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
189         when used as adjectives.
190
191 2012-02-16  Sandra Loosemore  <sandra@codesourcery.com>
192
193         * doc/invoke.texi: Clean up "that"/"which" confusion.
194
195 2012-02-17  Steven Bosscher  <steven@gcc.gnu.org>
196
197         * system.h: Poison SMALL_REGISTER_CLASSES
198         * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
199         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
200
201 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
202
203         PR tree-optimization/52285
204         * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
205         when deciding if a call is a tail call or tail recursion.
206
207 2012-02-16  Kai Tietz  <ktietz@redhat.com>
208
209         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
210         interger-constant displacement for UNSPEC_PCREL.
211
212 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
213
214         PR rtl-optimization/52208
215         * ira-costs.c (scan_one_insn): Don't decrease mem_cost
216         for MEMs with REG_EQUIV, if the MEM isn't general_operand.
217
218         PR tree-optimization/52255
219         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
220         loop->header has virtual PHI, but exit_e->dest doesn't, add
221         virtual PHI to exit_e->dest and adjust all uses after the loop.
222
223         PR debug/52260
224         * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
225         children with clone_tree_hash, not after it.
226
227 2012-02-16  Iain Sandoe  <iains@gcc.gnu.org>
228
229         * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
230         extended identifiers.
231
232 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
233
234         PR middle-end/51929
235         * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
236         a same_body_alias, also test whether e->callee isn't a former
237         or current clone of the decl this is a same body alias of.
238
239         PR translation/52264
240         * cgraphunit.c (verify_cgraph_node): Fix a typo.
241
242 2012-02-15  Sandra Loosemore  <sandra@codesourcery.com>
243
244         * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
245
246 2012-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
247
248         PR target/52199
249         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
250         force_reg instead of copy_to_reg for better optimization.  Force
251         non-register or memory operands into a register.
252
253 2012-02-15  Andrew MacLeod  <amacleod@redhat.com>
254
255         * extend.texi: Reserve upper bits of memory model for future use.
256
257 2012-01-15  Georg-Johann Lay  <avr@gjlay.de>
258             Anatoly Sokolov <aesok@post.ru>
259             Eric Weddington <eric.weddington@atmel.com>
260
261         PR target/52261
262         * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
263         avrxmega4, avrxmega5, avrxmega6, avrxmega7.
264         Rewrite initializers for .macro.
265         * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
266         avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
267         atxmega32d4, atxmega32x1.
268         avrxmega4: atxmega64a3, atxmega64d3.
269         avrxmega5: atxmega64a1, atxmega64a1u.
270         avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
271         atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
272         avrxmega7: atxmega128a1, atxmega128a1u.
273         * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
274         ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
275         (struct base_arch_s): Rename reserved to xmega_p.
276         Rename reserved2 to have_rampd.
277         (AVR_XMEGA): New define.
278         (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
279         (AVR_HAVE_RAMPZ): Change definition to fit xmega.
280         * config/avr/predicates.md (io_address_operand): Take into
281         account SFR offset.
282         (low_io_address_operand): Ditto.
283         (high_io_address_operand): Ditto.
284         * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
285         (enabled, movhi_sp_r): Use them.
286         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
287         cpp_define_formatted to built-in define __AVR_ARCH__.
288         (__AVR_XMEGA__): New built-in define.
289         (__AVR_HAVE_RAMPD__): New built-in define.
290         (__AVR_HAVE_RAMPX__): New built-in define.
291         (__AVR_HAVE_RAMPY__): New built-in define.
292         (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
293
294         * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
295         (avr_option_override): Initialize them.
296         (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
297         (avr_init_expanders): Initialize them. No more block several calls.
298         (emit_push_sfr): New static function.
299         (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
300         Handle AVR_XMEGA.
301         (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
302         (avr_print_operand): Print addreeses as symbols for
303         RAMPX, RAMPY, RAMPD, CCP.
304         (output_movhi): Handle AVR_XMEGA when writing to SP.
305         (avr_out_movhi_mr_r_xmega): New static function.
306         (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
307         (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
308         __RAMPD__,  __CCP__ as needed.
309
310         * config/avr/multilib.h: Regenerate.
311         * config/avr/t-multilib: Regenerate.
312         * config/avr/avr-tables.opt: Regenerate.
313
314 2012-02-15  Tobias Grosser <grosser@fim.uni-passau.de>
315
316         PR tree-optimization/50561
317         * graphite-flattening.c (lst_project_loop): Do not
318         remove old scattering dimensions after flattening.
319         (lst_do_flatten): Likewise.
320
321 2012-02-15  Georg-Johann Lay  <avr@gjlay.de>
322
323         * doc/extend.texi (AVR Built-in Functions): Remove doc for
324         __builtin_avr_map8, __builtin_avr_map16.
325         Document __builtin_avr_insert_bits.
326
327         * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
328         (insert_bits): New insn.
329         (adjust_len.map_bits): Rename to insert_bits.
330         (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
331         * avr-protos.h (avr_out_map_bits): Remove.
332         (avr_out_insert_bits, avr_has_nibble_0xf): New.
333         * config/avr/constraints.md (Cxf,C0f): New.
334         * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
335         defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
336         New built-in define __BUILTIN_AVR_INSERT_BITS.
337         * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
338         (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
339         (avr_move_bits): Rewrite.
340         (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
341         functions.
342         (avr_map_op_t): New typedef.
343         (avr_map_op): New static variable.
344         (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
345         (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
346         (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
347         (bdesc_3arg, avr_expand_triop_builtin): New.
348         (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
349         (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
350         (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
351         (avr_map_equal_p, avr_map_sig_p): Remove.
352         (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
353         (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
354         (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
355         (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
356         (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
357         (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
358
359 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
360
361         * config/c6x/c6x.md (reserve_cycles): New attribute.
362         * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
363         don't reserve functional units after the branch occurs.
364
365 2012-02-14  Aldy Hernandez  <aldyh@redhat.com>
366
367         PR middle-end/52142
368         * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
369         functions into non-tm_pure functions.
370
371 2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>
372
373         PR lto/52178
374         * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
375         (iterative_hash_canonical_type): Likewise.
376         * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
377         the dead edges.
378
379 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
380
381         * haifa-sched.c (prune_ready_list): Ensure that if there is a
382         sched-group insn, it either remains alone or the entire list is
383         pruned.
384
385 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
386
387         * doc/install.texi (Prerequisites): Fix grammar.
388         (Configuration): Likewise.
389
390 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
391
392         * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
393         MPC as part of GCC before describing configuring with --with-gmp etc.
394         (Installing GCC: Configuration): --with-gmp etc. aren't needed if
395         sources are present.
396
397 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
398
399         PR debug/51950
400         * dwarf2out.c (clone_tree_hash): New function.
401         (copy_decls_walk): Use it instead of clone_tree.
402
403 2012-02-14  Richard Guenther  <rguenther@suse.de>
404
405         PR tree-optimization/52244
406         PR tree-optimization/51528
407         * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
408         replacements for integral types.
409
410 2012-02-14  Walter Lee  <walt@tilera.com>
411
412         * config.gcc: Handle tilegx and tilepro.
413         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
414         tilegx and tilepro.
415         Add HAVE_AS_TLS check for tilegx and tilepro.
416         * configure: Regenerate.
417         * doc/contrib.texi: Add Mat Hostetter and self.
418         * doc/extend.texi (TILE-Gx Built-in Functions): New node.
419         Document instruction intrinsics and network accessing intrinsics.
420         (TILEPro Built-in Functions): New node.  Document instruction
421         intrinsics and network accessing intrinsics.
422         * doc/install.texi (Specific, tilegx-*-linux*): Document it.
423         (Specific, tilepro-*-linux*): Likewise.
424         * doc/invoke.texi (TILE-Gx Options): New section.
425         (TILEPro Options): New section.
426         * doc/md.texi (TILE-Gx): New section.
427         (TILEPro): New section.
428         * common/config/tilegx/tilegx-common.c: New file.
429         * common/config/tilepro/tilepro-common.c: New file.
430         * config/tilegx/constraints.md: New file.
431         * config/tilegx/linux.h: New file.
432         * config/tilegx/mul-tables.c: New file.
433         * config/tilegx/predicates.md: New file.
434         * config/tilegx/sync.md: New file.
435         * config/tilegx/t-tilegx: New file.
436         * config/tilegx/tilegx-builtins.h: New file.
437         * config/tilegx/tilegx-c.c: New file.
438         * config/tilegx/tilegx-generic.md: New file.
439         * config/tilegx/tilegx-modes.def: New file.
440         * config/tilegx/tilegx-multiply.h: New file.
441         * config/tilegx/tilegx-protos.h: New file.
442         * config/tilegx/tilegx.c: New file.
443         * config/tilegx/tilegx.h: New file.
444         * config/tilegx/tilegx.md: New file.
445         * config/tilegx/tilegx.opt: New file.
446         * config/tilepro/constraints.md: New file.
447         * config/tilepro/gen-mul-tables.cc: New file.
448         * config/tilepro/linux.h: New file.
449         * config/tilepro/mul-tables.c: New file.
450         * config/tilepro/predicates.md: New file.
451         * config/tilepro/t-tilepro: New file.
452         * config/tilepro/tilepro-builtins.h: New file.
453         * config/tilepro/tilepro-c.c: New file.
454         * config/tilepro/tilepro-generic.md: New file.
455         * config/tilepro/tilepro-modes.def: New file.
456         * config/tilepro/tilepro-multiply.h: New file.
457         * config/tilepro/tilepro-protos.h: New file.
458         * config/tilepro/tilepro.c: New file.
459         * config/tilepro/tilepro.h: New file.
460         * config/tilepro/tilepro.md: New file.
461         * config/tilepro/tilepro.opt: New file.
462
463 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
464
465         PR tree-optimization/52210
466         * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
467         vect_model_simple_cost with two entry vect_def_type array instead
468         of an address of dt.
469
470 2012-02-14  Richard Guenther  <rguenther@suse.de>
471
472         PR lto/52178
473         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
474         Do not stream DECL_QUALIFIER.
475         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
476         * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
477         (find_decls_types_r): Do not walk DECL_QUALIFIER.
478
479 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
480
481         PR c/52181
482         * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
483         newdecl.
484
485 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
486
487         PR bootstrap/52172
488         * cselib.h (cselib_subst_to_values_from_insn): New prototype.
489         * cselib.c (cselib_subst_to_values_from_insn): New function.
490         * sched-deps.c (add_insn_mem_dependence,
491         sched_analyze_1, sched_analyze_2): Use it.
492
493 2012-02-13  Jan Hubicka  <jh@suse.cz>
494
495         PR middle-end/52214
496         * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
497
498 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
499
500         * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
501         (GTM_SELF_SPECS): Define if not already defined.
502         (driver_self_specs): Add GTM_SELF_SPECS.
503         * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
504         (GTM_SELF_SPECS): Define.
505         * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
506         * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
507
508 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
509
510         * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
511         away if seen.
512
513         * cselib.c (dump_cselib_val): Don't assume l->setting_insn is
514         non-NULL.
515
516         PR middle-end/52230
517         * omp-low.c (expand_omp_for): If a static schedule without
518         chunk size has NULL region->cont, force fd.chunk_size to be
519         integer_zero_node.
520
521 2012-02-13  Andrew MacLeod  <amacleod@redhat.com>
522
523         PR c/52190
524         * doc/extend.texi : Fix another __atomic_compare_exchange typo.
525
526 2012-02-13  Richard Guenther  <rguenther@suse.de>
527
528         PR translation/52211
529         * passes.c (enable_disable_pass): Fix typo.
530
531 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
532
533         PR middle-end/52209
534         * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
535         XOR for reduce_bit_field if type is unsigned.
536
537 2012-02-12  Eric Botcazou  <ebotcazou@adacore.com>
538
539         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
540         disallow changes from SFmode to mode with different size in FP regs.
541
542 2012-02-12  Robert Millan  <rmh@gnu.org>
543             Gerald Pfeifer <gerald@pfeifer.com>
544
545         * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
546         Tweak comment.
547
548 2012-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
549
550         PR rtl-optimization/52175
551         * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
552         to frame-related instructions.
553
554 2012-02-10  Jason Merrill  <jason@redhat.com>
555
556         PR c++/51910
557         * tlink.c (demangled_hash_entry): Change mangled to a VEC.
558         (demangle_new_symbols): Fill it.
559         (scan_linker_output): Walk it.
560         (start_tweaking): Split out from scan_linker_output.
561         (maybe_tweak): Update sym->chosen.
562         * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
563
564 2012-02-11  Jakub Jelinek  <jakub@redhat.com>
565
566         PR debug/52132
567         * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use
568         get_true_reg.
569
570 2012-02-11  Uros Bizjak  <ubizjak@gmail.com>
571
572         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
573         having the same mode as previous compare.
574
575 2012-02-10  Eric Botcazou  <ebotcazou@adacore.com>
576
577         * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
578         * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
579         (nonlocal_goto_internal): Likewise.
580         (nonlocal_goto): Emit a use and an indirect jump directly.
581
582 2012-02-10  Andrew MacLeod  <amacleod@redhat.com>
583
584         PR c/52190
585         * doc/extend.texi : Update comments for __atomic_compare_exchange and
586         __atomic_{is,always}_lock_free.
587
588 2012-02-10  Uros Bizjak  <ubizjak@gmail.com>
589
590         PR target/52146
591         * config/i386/i386.c (ix86_legitimate_address_p): Disallow
592         negative constant address for x32.
593
594 2012-02-10  Richard Henderson  <rth@redhat.com>
595
596         * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
597         * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
598         for GIMPLE_TRANSACTION.  Tidy if's into a switch.
599
600 2012-02-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
601             Ira Rosen  <irar@il.ibm.com>
602
603         PR tree-optimization/50031
604         * targhooks.c (default_builtin_vectorization_cost): Handle
605         vec_promote_demote.
606         * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
607         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
608         all types of reduction and pattern statements.
609         (vect_estimate_min_profitable_iters): Likewise.
610         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
611         (vect_get_load_cost): Use vec_perm for permutations; add dump logic
612         for explicit realigns.
613         (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
614         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
615         vec_promote_demote.
616         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
617         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
618         vec_perm for VSX and handle vec_promote_demote.
619
620 2012-02-10  Jakub Jelinek  <jakub@redhat.com>
621
622         PR middle-end/52177
623         * builtins.c (fold_builtin_atomic_always_lock_free,
624         expand_builtin_atomic_always_lock_free,
625         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
626         Return and/or test boolean_true_node/boolean_false_node instead of
627         integer_one_node/integer_zero_node.
628
629 2012-02-10  Jan Hubicka  <jh@suse.cz>
630
631         PR middle-end/48600
632         * predict.c (predict_paths_for_bb): Prevent looping.
633         (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
634
635 2012-02-10  Roman Zhuykov  <zhroma@ispras.ru>
636
637         * config/arm/arm.c (output_move_double): In one case properly
638         count number of instructions that will be emitted.
639
640 2012-02-10  Richard Guenther  <rguenther@suse.de>
641
642         PR translation/52193
643         * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
644
645 2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
646
647         PR middle-end/52140
648         * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
649
650 2012-02-09  Jakub Jelinek  <jakub@redhat.com>
651
652         PR debug/52165
653         * var-tracking.c (emit_note_insn_var_location): If
654         EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
655         emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
656         non-NOTE_DURING_CALL_P insn.
657
658 2012-02-09  Bin Cheng  <bin.cheng@arm.com>
659
660         PR middle-end/51867
661         * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
662
663 2012-02-08  Magnus Granberg  <zorry@gentoo.org>
664
665         PR driver/48524
666         * gcc.c (switch_matches) Support switches with separated form,
667         -D and -U.
668
669 2012-02-08  Georg-Johann Lay  <avr@gjlay.de>
670
671         * config/avr/avr.md (SREG_ADDR): Remove constant definition.
672         (SP_ADDR): Ditto.
673         (RAMPZ_ADDR): Ditto.
674         * config/avr/avr.c (avr_addr_t): New typedef.
675         (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
676         (avr_init_expanders): Initialize it.
677         (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
678         SREG_ADDR.
679         (expand_epilogue): Ditto.
680         (avr_print_operand): Ditto.
681         (avr_file_start): Ditto.
682         (avr_emit_movmemhi): Ditto.
683
684 2012-02-08  Richard Guenther  <rguenther@suse.de>
685
686         PR tree-optimization/46886
687         * tree-flow.h (do_while_loop_p): Declare.
688         * tree-ssa-loop-ch.c (do_while_loop_p): Export.
689         * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
690
691 2012-02-08  Andrew MacLeod  <amacleod@redhat.com>
692
693         * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
694         always succeed for integers larger than a native word.
695
696 2012-02-08  Richard Guenther  <rguenther@suse.de>
697
698         PR rtl-optimization/52170
699         * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
700         properly handle integer vector modes.
701
702 2012-02-08  Jakub Jelinek  <jakub@redhat.com>
703
704         PR gcov-profile/52150
705         * coverage.c: Include target.h.
706         (build_var): Call targetm.strip_name_encoding on the assembler name.
707         Change one _ into . or $ if the target allows it.
708         * Makefile.in (coverage.o): Depend on $(TARGET_H).
709
710         PR rtl-optimization/52139
711         * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
712         is a BARRIER after emit_insn_after_noloc, move BB_END
713         to the last non-BARRIER insn before it.
714
715 2012-02-07  Richard Sandiford  <rdsandiford@googlemail.com>
716
717         PR middle-end/24306
718         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
719         (mips_gimplify_va_arg_expr): Call it instead of
720         std_gimplify_va_arg_expr.
721
722 2012-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
723
724         * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
725         message for -mno-pointers-to-nested-function.
726
727 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
728
729         PR middle-end/51994
730         * expr.c (get_inner_reference): If there is an offset, add a negative
731         bit position to it (if any).
732
733 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
734
735         PR rtl-optimization/52060
736         * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
737         copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
738         before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
739         and/or i0src_copy2 when needed.
740
741 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
742
743         * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
744         or LTOPLUGINSONAME if have_c.
745
746         * config/freebsd-spec.h: Add comment about what macros can be defined
747         in this header.
748         (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
749         * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
750         here instead.
751
752 2012-02-07  Richard Guenther  <rguenther@suse.de>
753
754         * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
755         newline in -alias dumps.
756
757 2012-02-07  Kai Tietz  <ktietz@redhat.com>
758             Dave Korn  <dave.korn.cygwin@gmail.com>
759
760         PR target/40068
761         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
762         Take care that typinfo gets dllexport-attribute.
763
764 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
765
766         PR middle-end/52074
767         * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
768         if modifier < EXPAND_SUM call force_operand on the result.
769
770 2012-02-07  Joern Rennecke  <joern.rennecke@embecosm.com>
771
772         * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
773         adding __forwarder_dst__ prefix if a forwarder_section attribute is
774         present.
775         (epiphany_function_type): Replace types for specific interrupts with
776         EPIPHANY_FUNCTION_INTERRUPT.
777         (EPIPHANY_INTERRUPT_P): Update.
778         * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
779         New static function.
780         (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
781         <disinterrupt>: Affects type identity.
782         (epiphany_handle_interrupt_attribute): Handle variable number of
783         arguments.
784         (epiphany_compute_function_type): Update for new
785         epiphany_function_type definition.
786         (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
787         handlers with a longcall forwarder.
788         (epiphany_start_function): Handle multiple interrupt arguments and/or
789         forwarder_section attribute.
790
791         * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
792         libgloss.
793
794 2012-02-07  Alan Modra  <amodra@gmail.com>
795
796         PR target/52107
797         * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
798         subregs of TFmode.
799
800 2012-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
801
802         PR tree-optimization/50969
803         * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
804         use vec_perm rather than vector_stmt.
805         (vect_model_load_cost): Likewise.
806         * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
807         vec_perm to be the same as other vector statements.
808         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
809         cost of vec_perm for TARGET_VSX.
810
811 2012-02-06  Richard Guenther  <rguenther@suse.de>
812
813         PR tree-optimization/52115
814         * tree-sra.c (access_has_replacements_p): New function.
815         (sra_modify_assign): Use it to decide whether a use is uninitialized.
816
817 2012-02-06  Patrick Marlier  <patrick.marlier@gmail.com>
818
819         PR middle-end/52047
820         * trans-mem.c (expand_call_tm): Add an assertion.
821         * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
822         functions.
823
824 2012-02-06  Richard Guenther  <rguenther@suse.de>
825
826         PR tree-optimization/50955
827         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
828         raise cost of expressions that replace an address with an
829         expression based on a different pointer.
830
831 2012-02-06  Jakub Jelinek  <jakub@redhat.com>
832
833         PR target/52129
834         * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
835         CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
836
837 2012-02-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
838
839         PR c++/48680
840         * doc/invoke.texi (C++ Dialect Options): Use @option markup for
841         -Weffc++ and specify guidelines come from second edition.
842
843 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
844
845         * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
846         (sibcall_value_multiple_internal, call_split, call_internal_direct)
847         (call_direct_split, call_value_split, call_value_internal_direct)
848         (call_value_direct_split, call_value_multiple_split): Use jal and
849         jal_macro attributes.
850
851 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
852
853         * reload1.c (reload_regs_reach_end_p): Replace with...
854         (reload_reg_rtx_reaches_end_p): ...this function.
855         (new_spill_reg_store): Update commentary.
856         (emit_input_reload_insns): Don't clear new_spill_reg_store here.
857         (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
858         before setting new_spill_reg_store.
859         (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
860         Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
861         Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
862         for non-spill reload registers.
863
864 2012-02-05  Ira Rosen  <irar@il.ibm.com>
865
866         PR tree-optimization/52091
867         * tree-vectorizer.h (vect_is_simple_use): Add an argument.
868         (vect_is_simple_use_1): Likewise.
869         * tree-vect-loop.c (vectorizable_reduction): Update calls
870         to vect_is_simple_use_1 and vect_is_simple_use.
871         (vectorizable_live_operation): Likewise.
872         * tree-vect-patterns.c (widened_name_p,
873         vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
874         * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
875         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
876         vectorizable_shift,vectorizable_operation, vectorizable_store,
877         vectorizable_load): Likewise.
878         (vect_is_simple_cond): Add an argument, pass it to
879         vect_is_simple_use_1.
880         (vectorizable_condition): Update calls to vect_is_simple_cond,
881         vect_is_simple_use.
882         (vect_is_simple_use): Add an argument, the statement in which
883         OPERAND is used.  Check that if OPERAND's def stmt is a double
884         reduction phi node, the use is a phi node too.
885         (vect_is_simple_use_1): Add an argument, pass it to
886         vect_is_simple_use.
887         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
888         to vect_is_simple_use.
889
890 2012-02-04  Jakub Jelinek  <jakub@redhat.com>
891
892         PR rtl-optimization/52095
893         * modulo-sched.c (dump_insn_locator): New function.
894         (loop_canon_p, sms_schedule): Use it.
895
896         PR rtl-optimization/52113
897         * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
898         even for decomposable shift/zext insns.
899
900 2012-02-03  Jakub Jelinek  <jakub@redhat.com>
901             Zdenek Dvorak  <ook@ucw.cz>
902
903         PR rtl-optimization/52092
904         * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
905         on get_iv_value result.
906
907 2012-02-02  Andrew Pinski  <apinski@cavium.com>
908
909         PR middle-end/47982
910         PR middle-end/43967
911         * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
912
913 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
914
915         PR middle-end/48071
916         * diagnostic.c (diagnostic_finish): Remove trailing newlines.
917
918 2012-02-02  Vladimir Makarov  <vmakarov@redhat.com>
919
920         PR rtl-optimization/49800
921         * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
922         (sched_finish): Call regstat_free_n_sets_and_refs.
923
924 2012-02-02  Jia Liu  <proljc@gmail.com>
925
926         * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
927         than operand 2.
928
929 2012-02-02 Jan Hubicka  <jh@suse.cz>
930            Tom de Vries  <tom@codesourcery.com>
931
932         PR middle-end/51998
933         * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
934         * varpool.c (varpool_analyze_pending_decls): Likewise.
935
936 2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
937             Jayant R Sonar <jayant.sonar@kpitcummins.com>
938
939         * config.gcc: Add cr16-* support.
940
941         * doc/extend.texi: Document cr16 extensions.
942         * doc/install.texi: Document cr16 install.
943         * doc/invoke.texi: Document cr16 options.
944         * doc/md.texi: Document cr16 constraints.
945
946         * common/config/cr16/cr16-common.c: New file.
947         * config/cr16/cr16.c: New file.
948         * config/cr16/cr16.h: New file.
949         * config/cr16/cr16.md: New file.
950         * config/cr16/cr16.opt: New file.
951         * config/cr16/cr16-protos.h: New file.
952         * config/cr16/predicates.md: New file.
953         * config/cr16/constraints.md: New file.
954         * config/cr16/t-cr16: New file.
955
956 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
957
958         PR target/52086
959         * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
960         that operands[2] is either immediate, or q_regs_operand.
961
962         PR tree-optimization/52073
963         * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
964         a pattern stmt for pattern uses, ignore uses outside of the loop.
965
966 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
967
968         * config/avr/avr.c: Resolve all AS1 and AS2 macros.
969         * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
970         (OUT_AS1, OUT_AS2): Remove.
971
972 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
973
974         PR rtl-optimization/51374
975         * combine.c (can_combine_p): Don't allow volatile_refs_p insns
976         to cross other volatile_refs_p insns.
977
978 2012-02-01  Richard Guenther  <rguenther@suse.de>
979
980         * doc/invoke.texi (fno-inline): Clarify documentation.
981         (finline-small-functions): Likewise.
982         (finline-functions): Likewise.
983         * common.opt (finline): Adjust comment and documentation.
984         (finline-small-functions): Clarify documentation.
985         (finline-functions): Likewise.
986         (finline-functions-called-once): Likewise.
987
988 2012-02-01  Tristan Gingold  <gingold@adacore.com>
989
990         * c-typeck.c (composite_type): Keep mode for pointers.
991
992 2012-01-31  Richard Sandiford  <rdsandiford@googlemail.com>
993
994         * function.h (regno_reg_rtx): Adjust comment.
995         * reginfo.c (init_reg_modes_target): Only use the previous mode
996         if it fits within one register.  Remove MIPS comment.
997
998 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
999
1000         PR bootstrap/52058
1001         * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
1002
1003 2012-01-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1004
1005         * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
1006         to srak instruction.
1007
1008 2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1009
1010         * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
1011
1012 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
1013
1014         PR bootstrap/52041
1015         PR bootstrap/52039
1016         PR target/51974
1017         * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
1018
1019 2012-01-31  Richard Guenther  <rguenther@suse.de>
1020
1021         PR tree-optimization/51528
1022         * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
1023         assigns.
1024
1025 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
1026
1027         PR bootstrap/52041
1028         PR bootstrap/52039
1029         PR target/51974
1030         * ree.c (add_removable_extension): Change def_map argument
1031         to unsigned *, store in def_map 1 + offset into *insn_list vector
1032         instead of pointers into the vector.
1033         (find_removable_extensions): Adjust caller.
1034
1035 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
1036
1037         * config/avr/avr.md: Resolve all AS1 and AS2 macros.
1038         Transform all "* quoted-c-code" to { c-code }.
1039         Remove redundant test for "optimize" in combine patterns.
1040         Move (include "avr-dimode.md") to end of file.
1041
1042 2012-01-30  Bin Cheng  <bin.cheng@arm.com>
1043
1044         PR target/51835
1045         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
1046         for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
1047
1048 2012-01-30  Richard Guenther  <rguenther@suse.de>
1049
1050         PR tree-optimization/52028
1051         * tree-loop-distribution.c (ldist_gen): Properly update
1052         virtual SSA form.
1053
1054 2012-01-30  Jakub Jelinek  <jakub@redhat.com>
1055
1056         PR debug/52027
1057         * dwarf2out.c (dwarf2out_switch_text_section): Don't call
1058         set_cur_line_info_table if not emitting debug info.
1059
1060         PR tree-optimization/52046
1061         * tree-vect-patterns.c (check_bool_pattern): Give up if
1062         a comparison could throw.
1063
1064         PR debug/52048
1065         * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
1066
1067 2012-01-30  Richard Guenther  <rguenther@suse.de>
1068
1069         PR tree-optimization/52045
1070         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
1071         SSA form if cfgcleanup did anything.
1072
1073 2012-01-30  Richard Guenther  <rguenther@suse.de>
1074
1075         PR tree-optimization/52045
1076         * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
1077         before computing final todo.
1078
1079 2012-01-30  Richard Guenther  <rguenther@suse.de>
1080
1081         PR tree-optimization/51528
1082         * tree-sra.c (sra_modify_assign): Re-factor in preparation
1083         for PR51528 fix.
1084
1085 2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
1086
1087         * df-problems.c (df_kill_notes): Check that the use refers
1088         to the note under examination.
1089
1090 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
1091
1092         PR target/51920
1093         * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
1094         parameter and use short-lived pseudos.
1095         (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
1096         (sparc_expand_vector_init): Const-ify local variables and adjust
1097         calls to above functions.
1098
1099 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
1100
1101         * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
1102
1103 2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>
1104
1105         * doc/invoke.texi: Make usage of "compile time" and
1106         "run time"/"runtime" consistent throughout the file.
1107
1108 2012-01-29  Uros Bizjak  <ubizjak@gmail.com>
1109
1110         * config/alpha/alpha.c (alpha_option_override): Default to
1111         full IEEE compliance mode for Go language.
1112
1113 2011-01-29  Tijl Coosemans  <tijl@coosemans.org>
1114
1115         * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
1116         (LINK_SSP_SPEC): Define.
1117
1118 2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1119
1120         PR target/51871
1121         * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
1122         stubs.
1123
1124 2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>
1125
1126         * doc/invoke.texi: Correct hyphenation of "floating point",
1127         "double precision", and related terminology throughout the file.
1128
1129 2012-01-28  Jakub Jelinek  <jakub@redhat.com>
1130
1131         PR target/52006
1132         * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
1133         arm_general_register_operand predicate for operand 2 instead of
1134         register_operand.
1135
1136 2012-01-27  Ian Lance Taylor  <iant@google.com>
1137
1138         PR go/47656
1139         * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
1140         * builtins.c (expand_builtin_init_trampoline): Add onstack
1141         parameter.  Change caller.
1142         (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
1143         * tree.c (build_common_builtin_nodes): Declare
1144         __builtin_init_heap_trampoline.
1145
1146 2012-01-27  Georg-Johann Lay  <avr@gjlay.de>
1147
1148         * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
1149         tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
1150         * config/avr/avr.c: Ditto.
1151         (avr_regnames): Remove because unused.
1152         * config/avr/avr.md (*cpse.ne): New peephole.
1153         (*cpse.eq): New peephole from former cpse peepholes.
1154
1155 2012-01-27  Michael Eager  <eager@eagercon.com>
1156
1157         * config/microblaze.c (microblaze_emit_compare): Correct
1158         test after pcmp instruction.
1159
1160 2012-01-27  Richard Guenther  <rguenther@suse.de>
1161
1162         PR tree-optimization/52020
1163         * tree-sra.c (sra_modify_assign): Do not transform clobbers.
1164
1165 2012-01-27  Richard Guenther  <rguenther@suse.de>
1166
1167         * ipa-pure-const.c (check_stmt): Clobbers do not make a
1168         function non-const/pure.
1169
1170 2012-01-27  Richard Guenther  <rguenther@suse.de>
1171
1172         PR tree-optimization/50444
1173         * tree-sra.c (build_ref_for_offset): Properly adjust the
1174         MEM_REF type for unaligned accesses.
1175
1176 2012-01-27  Richard Guenther  <rguenther@suse.de>
1177
1178         PR tree-optimization/50444
1179         * expr.c (mem_ref_refers_to_non_mem_p): New function.
1180         (expand_assignment): Use it.  Properly handle misaligned
1181         bases when expanding stores to component references.
1182         (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
1183         refactor that case.
1184
1185 2012-01-27  Andrey Belevantsev  <abel@ispras.ru>
1186
1187         PR middle-end/51389
1188         * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
1189         * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
1190         * tree-data-ref.c (find_data_references_in_loop): Make static.
1191         (compute_all_dependences): Change return type to bool.  Bail out
1192         for too many datarefs in a loop.  Move the hunk resetting the data
1193         dependences vector from ...
1194         (compute_data_dependences_for_loop): ... here.  Account for
1195         compute_all_dependences returning false.
1196         (compute_data_dependences_for_bb): Likewise.
1197         * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
1198         * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
1199
1200 2012-01-27  Richard Guenther  <rguenther@suse.de>
1201
1202         PR middle-end/51959
1203         * expr.c (store_field): Use the alias-set of the scratch memory
1204         for storing to it.
1205
1206 2012-01-27  Tom de Vries  <tom@codesourcery.com>
1207
1208         PR tree-optimization/51990
1209         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1210         WITH_SIZE_EXPR.
1211         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
1212
1213 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
1214
1215         PR debug/52001
1216         * var-tracking.c (reverse_op): Don't add any reverse operation
1217         if V already has any constant locations.
1218
1219 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
1220
1221         * doc/invoke.texi: Correct usage of "command line" (noun)
1222         vs "command-line" (adjective) throughout.
1223
1224 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
1225
1226         * doc/invoke.texi (Language Independent Options): Move
1227         -Wcoverage-mismatch blurb from here....
1228         (Warning Options): ...to here.
1229
1230 2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>
1231
1232         * config/rs6000/rs6000.c (rs6000_option_override_internal):
1233         Set rs6000_always_hint to false for 476.
1234
1235 2012-01-27  Matthias Klose  <doko@ubuntu.com>
1236
1237         * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
1238           system root.
1239         * incpath.c (add_standard_paths): Likewise.
1240
1241 2012-01-27  Richard Henderson  <rth@redhat.com>
1242
1243         * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
1244         * config/m68k/sync.md (atomic_test_and_set): Rename from
1245         sync_test_and_setqi and adjust the operands.
1246         (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
1247         and unconditionally enable.
1248
1249 2012-01-27  Richard Henderson  <rth@redhat.com>
1250
1251         * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
1252         * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
1253         (ldstub): Rename from ldstubqi.
1254         (ldstub<I24MODE>): Remove.
1255
1256 2012-01-27  Richard Henderson  <rth@redhat.com>
1257
1258         * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
1259         * c-cppbuiltin.c (cpp_atomic_builtins): Define
1260         __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
1261         * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
1262         * doc/tm.texi: Rebuild.
1263
1264 2012-01-27  Richard Henderson  <rth@redhat.com>
1265
1266         * optabs.c (gen_atomic_test_and_set): Remove default.
1267         (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
1268
1269 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
1270
1271         PR rtl-optimization/51978
1272         * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
1273         (combine_reaching_defs): Likewise.
1274         (struct re_info): Remove.
1275         (add_removable_extension): Remove x and data arguments,
1276         add insn, insn_list and def_map.  Use the arguments directly
1277         instead of using struct re_info.
1278         (find_removable_extensions): Don't call add_removable_extension
1279         through note_stores, instead just call it with single_set
1280         result if non-NULL.
1281         (find_and_remove_re): Pass curr_cand->expr instead of
1282         PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
1283
1284 2012-01-26  Michael Matz  <matz@suse.de>
1285
1286         PR tree-optimization/46590
1287         * cfgexpand.c: Revert last change (r183305).
1288         * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
1289         regs.
1290         * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
1291         checking for emptiness.
1292
1293 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
1294
1295         PR middle-end/51895
1296         * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
1297         non-addressable non-BLKmode base correctly.
1298
1299 2012-01-26  Michael Matz  <matz@suse.de>
1300
1301         PR tree-optimization/48794
1302         * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
1303         regions referenced from RESX/EH_DISPATCH.
1304
1305 2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1306
1307         * config/s390/s390.h: Make BRANCH_COST an option.
1308         * config/s390/s390.opt: New option -mbranch-cost.
1309
1310 2012-01-26  Richard Henderson  <rth@redhat.com>
1311
1312         Revert 2012-01-24 change:
1313         * trans-mem.c (requires_barrier): Do not instrument thread local
1314         variables and emit save/restore for them.
1315
1316 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
1317
1318         PR middle-end/51986
1319         * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
1320         for pat == 0.
1321
1322 2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
1323
1324         * config/mips/mips.c (mips_small_data_pattern_1): Don't process
1325         ASM_OPERANDS.
1326
1327 2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
1328
1329         PR target/49868
1330         Rename __pgm to __flash.
1331         Rename __pgm1 to __flash1.
1332         Rename __pgm2 to __flash2.
1333         Rename __pgm3 to __flash3.
1334         Rename __pgm4 to __flash4.
1335         Rename __pgm5 to __flash5.
1336         Rename __pgmx to __memx.
1337         * doc/extend.texi (AVR Named Address Spaces)
1338         Rename address space names as indicated above.
1339         * config/avr/avr.c (avr_addrspace): Ditto.
1340
1341         * config/avr/avr-protos.h
1342         (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
1343         (avr_mem_pgm_p): Rename to avr_mem_flash_p.
1344         * config/avr/predicates.md: Ditto.
1345         * config/avr/avr.c Ditto, and
1346         (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
1347         (avr_decl_pgm_p): Rename to avr_decl_flash_p.
1348
1349         * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
1350         (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
1351         (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
1352         (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
1353         (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
1354         (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
1355         (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
1356         * config/avr/avr.c: Ditto.
1357         * config/avr/avr.md: Ditto.
1358
1359 2012-01-25  Jason Merrill  <jason@redhat.com>
1360
1361         PR c++/51992
1362         * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
1363
1364 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
1365
1366         PR tree-optimization/51987
1367         * tree-data-ref.c (get_references_in_stmt): Handle references in
1368         non-volatile GIMPLE_ASM.
1369
1370 2012-01-25  Richard Guenther  <rguenther@suse.de>
1371
1372         * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
1373         bases are dereferenced.
1374
1375 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
1376
1377         PR rtl-optimization/48374
1378         * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
1379
1380 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
1381
1382         * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
1383         compute_data_dependences_for_loop returns false.
1384         * tree-parloops.c (loop_parallel_p): Likewise.
1385
1386 2012-01-25  Richard Guenther  <rguenther@suse.de>
1387
1388         * tree.h (get_pointer_alignment_1): Declare.
1389         * builtins.c (get_pointer_alignment_1): New function.
1390         (get_pointer_alignment): Use it.
1391
1392 2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1393
1394         PR rtl-optimization/48308
1395         * combine.c (enum undo_kind): Add UNDO_LINKS.
1396         (struct undo): Add member l to other_contents and where.
1397         (do_SUBST_LINK): New.
1398         (SUBST_LINK): New.
1399         (try_combine): Handle LOG_LINKS for the dummy i1 case.
1400         (undo_all): Handle UNDO_LINKS.
1401
1402 2012-01-25  Richard Henderson  <rth@redhat.com>
1403
1404         * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
1405         mem inputs.
1406
1407 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
1408
1409         * optabs.c (gen_atomic_test_and_set): Use each argument.
1410
1411 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
1412
1413         * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
1414         (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
1415         (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
1416         (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
1417         (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
1418         TARGET_PAIRED_SINGLE_FLOAT.
1419
1420 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
1421
1422         * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
1423         (in_struct, return_val): Remove MEM documentation.
1424         * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
1425         (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
1426         (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
1427         and MEM_SCALAR.
1428         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1429         * cfgexpand.c (add_alias_set_conflicts): Likewise.
1430         * expr.c (store_field): Likewise.
1431         * function.c (assign_stack_temp_for_type): Likewise.
1432         * ifcvt.c (noce_try_cmove_arith): Likewise.
1433         * reload1.c (reload): Likewise.
1434         * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
1435         (alpha_set_memflags): Likewise.
1436         * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
1437
1438 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
1439
1440         * rtl.h (true_dependence, canon_true_dependence): Remove varies
1441         parameter.
1442         * alias.c (fixed_scalar_and_varying_struct_p): Delete.
1443         (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
1444         (true_dependence_1, true_dependence, canon_true_dependence): Remove
1445         varies parameter.
1446         * cselib.c (cselib_rtx_varies_p): Delete.
1447         (cselib_invalidate_mem): Update call to canon_true_dependence.
1448         * dse.c (record_store, check_mem_read_rtx): Likewise.
1449         (scan_reads_nospill): Likewise.
1450         * cse.c (check_dependence): Likewise.
1451         (cse_rtx_varies_p): Delete.
1452         * expr.c (safe_from_p): Update call to true_dependence.
1453         * ira.c (validate_equiv_mem_from_store): Likewise.
1454         (memref_referenced_p): Likewise.
1455         * postreload-gcse.c (find_mem_conflicts): Likewise.
1456         * sched-deps.c (sched_analyze_2): Likewise.
1457         * store-motion.c (load_kills_store): Likewise.
1458         * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
1459         * gcse.c (mems_conflict_for_gcse_p): Likewise.
1460         (compute_transp): Update call to canon_true_dependence.
1461
1462 2012-01-25  Richard Henderson  <rth@redhat.com>
1463
1464         * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
1465         (maybe_emit_atomic_test_and_set): New.
1466         (expand_sync_lock_test_and_set): Use it.
1467         (expand_atomic_test_and_set): Likewise.
1468         * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
1469         the implementation; clarify implementation defined details.
1470         * doc/md.texi (atomic_test_and_set): Document.
1471
1472 2012-01-25  Richard Henderson  <rth@redhat.com>
1473
1474         * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
1475
1476 2012-01-25  Richard Henderson  <rth@redhat.com>
1477
1478         PR target/51968
1479         * config/arm/arm.c (neon_split_vcombine): Emit deleted note
1480         to effect no-op split.
1481
1482 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
1483
1484         PR lto/51698
1485         * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
1486         (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
1487         (BT_FN_VOID_PTR_INT_SIZE): New.
1488         (BT_FN_UINT_UINT_VAR): Remove.
1489         (BT_FN_UINT32_UINT32_VAR): New.
1490         (BT_FN_DOUBLE_VPTR): Remove.
1491         (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
1492
1493         * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
1494         (_ITM_changeTransactionMode): Same.
1495         (_ITM_memmoveRtWt): Change return type to void.
1496         (_ITM_memcpyRtWt): Same.
1497         (_ITM_memsetW): Same.
1498         (_ITM_RaRD): Change types to double.
1499         (_ITM_RD): Same.
1500         (_ITM_RaWD): Same.
1501         (_ITM_RfWD): Same.
1502
1503         * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
1504
1505 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
1506             Patrick Marlier  <patrick.marlier@gmail.com>
1507
1508         * trans-mem.c (requires_barrier): Do not instrument thread local
1509         variables and emit save/restore for them.
1510
1511 2012-01-24  Jason Merrill  <jason@redhat.com>
1512
1513         PR c++/51812
1514         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
1515         output static aliases.
1516
1517 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
1518
1519         PR driver/47249
1520         * common.opt (-pie, -shared, pie, shared): Change from Common to
1521         Driver.
1522         * gcc.c (display_help): Display help for -pie and -shared.
1523
1524 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
1525
1526         PR target/49868
1527         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
1528         Remove note on size/offset limitation.
1529         (AVR Variable Attributes): Add example how to read data located
1530         with progmem.  Refer to named address spaces.
1531         * doc/invoke.texi (AVR Options): Fix typo.
1532
1533 2012-01-24  Richard Guenther  <rguenther@suse.de>
1534
1535         Forward-port to trunk
1536         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
1537
1538         PR middle-end/45678
1539         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
1540         op0 isn't sufficiently aligned and there is movmisalignM
1541         insn for mode, use it to load op0 into a temporary register.
1542
1543 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
1544
1545         PR target/51957
1546         * target.def (const_not_ok_for_debug_p): New hook.
1547         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
1548         documentation.
1549         * doc/tm.texi: Regenerated.
1550         * dwarf2out.c (const_ok_for_output_1): If
1551         targetm.const_not_ok_for_debug_p returns true, fail.
1552         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
1553         function.
1554         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
1555
1556 2012-01-23  Kai Tietz  <ktietz@redhat.com>
1557
1558         PR target/51900
1559         * config/i386/predicates.md (symbolic_operand): Allow
1560         UNSPEC_PCREL as PIC expression for lea.
1561         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
1562         * config/i386/i386.c (ix86_delegitimize_address): Handle
1563         UNSPEC_PCREL for none-MEM, too.
1564
1565 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
1566
1567         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
1568         (ipa_tm_create_version_alias): Same.
1569
1570 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
1571
1572         PR libitm/51830
1573         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
1574         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
1575
1576 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
1577             Patrick Marlier  <patrick.marlier@gmail.com>
1578             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
1579
1580         PR lto/51916
1581         * lto-wrapper.c (run_gcc): Pass the LTO section name to
1582         simple_object_start_read.
1583
1584 2012-01-23  Richard Guenther  <rguenther@suse.de>
1585
1586
1587         PR tree-optimization/51895
1588         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
1589         parameter decomposition into BLKmode components.
1590
1591 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
1592
1593         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
1594         fake variables for restrict-qualified pointers whose pointed-to type
1595         contains a placeholder.
1596
1597 2012-01-23  Richard Guenther  <rguenther@suse.de>
1598
1599         PR tree-optimization/51949
1600         * ipa-split.c (execute_split_functions): Do not split malloc functions.
1601
1602 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
1603
1604         PR rtl-optimization/51933
1605         * ree.c (transform_ifelse): Return true right away if dstreg is
1606         already wider or equal to cand->mode.
1607         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
1608         (make_defs_and_copies_lists): Remove defs_list and copies_list
1609         arguments, add state argument, just truncate state->work_list
1610         instead of always allocating and freeing the vector.  Assert that
1611         get_defs succeeds instead of returning 2.  Changed return type to bool.
1612         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
1613         have ext_src_mode, see if it has been modified already with the
1614         right kind of extension and has been extended before from the
1615         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
1616         just return true.  Remember the original mode in state->modified array.
1617         (combine_reaching_defs): Add state argument.  Don't allocate and
1618         free here def_list, copied_list and vec vectors, instead just
1619         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
1620         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
1621         Add state variable, clear vectors in it, initialize state.modified
1622         if needed.  Free all the vectors at the end and state.modified too.
1623         Don't skip a candidate if the extension expression has been modified.
1624
1625 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
1626
1627         PR target/47096
1628         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
1629          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
1630         (extra_options) interix.opt -> i386/interix.opt"
1631         (extra_objs):Add winnt-stubs.o
1632         * configure.ac: Add interix to target_os .comm on PE check.
1633         * configure: Regenerate.
1634         * config/interix3.h: Delete and move bits to..
1635         * config/interix.h: Delete and move bits to..
1636         * config/i386/i386-interix3.h: Delete and move bits to..
1637         * config/i386/i386-interix.h: ..here.
1638         (TARGET_CPU_DEFAULT): Remove redefinition.
1639         (TARGET_ASM_CONSTRUCTOR): Undefine.
1640         (SUBTARGET_SWITCHES): Define for ms-bitfields.
1641         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
1642         (PTRDIFF_TYPE): Define.
1643         (LONG_DOUBLE_TYPE_SIZE): Define.
1644         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
1645         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1646         (TARGET_SECTION_TYPE_FLAGS): Define.
1647         (ASM_DECLARE_FUNCTION_NAME): Define.
1648         (ASM_OUTPUT_EXTERNAL): Define.
1649         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
1650         (ASM_OUTPUT_ALIGNED_BSS): Define.
1651         (PCC_BITFIELD_TYPE_MATTERS): Define.
1652         (USE_CONST_SECTION): Define.
1653         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
1654         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
1655         (SUPPORTS_ONE_ONLY): Remove.
1656         (I386_PE_STRIP_ENCODING): Define.
1657         * config/interix.opt: Delete and move bits to..
1658         * config/i386/interix.opt: ..here. New.
1659         (mpe-aligned-commons): Add.
1660         * config/i386/t-interix: Add copyright header.
1661         (winnt-stubs.o): Add rule.
1662
1663 2012-01-22  Jason Merrill  <jason@redhat.com>
1664
1665         PR c++/51832
1666         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
1667         for extra name aliases.
1668
1669 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
1670
1671         PR rtl-optimization/51924
1672         * ree.c (combine_set_extension): Improve debugging message.
1673         (combine_reaching_defs): Likewise.
1674         (get_defs): Rename confusingly named variable.
1675         (find_and_remove_re): Skip a candidate if the extension expression has
1676         been modified.
1677
1678 2012-01-21  Robert Millan  <rmh@gnu.org>
1679             Gerald Pfeifer  <gerald@pfeifer.com>
1680
1681         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
1682         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
1683
1684 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
1685
1686         PR tree-optimization/51914
1687         * tree-vect-stmts.c (vectorizable_conversion): For
1688         cvt_type && modifier == WIDEN, put temporary with cvt_type
1689         at the beginning of vec_dsts and set vec_dest to temporary
1690         with vectype_out.
1691
1692 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
1693
1694         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
1695
1696 2011-01-20  Tijl Coosemans  <tijl@coosemans.org>
1697
1698         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
1699         * config/rs6000/rs6000.c: Likewise.
1700
1701 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
1702
1703         PR target/51915
1704         * config/arm/arm.c (arm_count_output_move_double_insns): Call
1705         output_move_double on a copy of operands array.
1706
1707 2012-01-20  Cary Coutant  <ccoutant@google.com>
1708             Dodji Seketeli  <dodji@redhat.com>
1709
1710         PR debug/45682
1711         * dwarf2out.c (copy_declaration_context): Return ref to parent
1712         of declaration DIE, if necessary.
1713         (remove_child_or_replace_with_skeleton): Add new parameter; update
1714         caller.  Place skeleton DIE under parent DIE of original declaration.
1715         Move call to copy_declaration_context to here ...
1716         (break_out_comdat_types): ... from here.
1717
1718 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1719
1720         PR rtl-optimization/51856
1721         * reload.c (find_reloads_subreg_address): Set the address_reloaded
1722         flag to reloaded.
1723
1724 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1725
1726         PR target/51819
1727         * config/arm/arm.c (arm_print_operand): Correct output of alignment
1728         hints for neon loads and stores.
1729
1730 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
1731
1732         PR target/49868
1733         PR target/50887
1734         * doc/extend.texi (Named Address Spaces): Split into subsections.
1735         (AVR Named Address Spaces): New subsection.
1736         (M32C Named Address Spaces): New subsection.
1737         (RL78 Named Address Spaces): New subsection.
1738         (SPU Named Address Spaces): New subsection.
1739         (Variable Attributes): New anchor "AVR Variable Attributes".
1740         (AVR Variable Attributes): Rewrite and avoid wording
1741         "address space" in this context.
1742         * doc/invoke.texi (AVR Options): Rewrite and add documentation
1743         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
1744         (AVR Built-in Macros): New subsubsection therein.
1745         * doc/md.texi (AVR constraints): Remove "C04", "R".
1746
1747 2012-01-20  Richard Guenther  <rguenther@suse.de>
1748
1749         PR tree-optimization/51903
1750         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
1751         when removing stmts.
1752
1753 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1754
1755         PR target/50313
1756         * config/arm/arm.c (arm_load_pic_register): Use
1757         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
1758         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
1759         (arm_pic_static_addr): Likewise.
1760         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
1761         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
1762         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
1763         (pic_load_addr_unified): New.
1764
1765 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
1766
1767         PR target/51106
1768         * function.c (instantiate_virtual_regs_in_insn): Use
1769         delete_insn_and_edges when removing a wrong asm insn.
1770
1771 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
1772
1773         PR rtl-optimization/40761
1774         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
1775         Add new member loop_num.
1776         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
1777         (ira_build): Remove the parameter.
1778
1779         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
1780         (ira.c): Do not build CFG loops for one region allocation.  Remove
1781         argument from ira_build call.
1782
1783         * ira-build.c (init_loop_tree_node): New function.
1784         (create_loop_tree_nodes): Use it.  Separate the case when CFG
1785         loops are not built.
1786         (more_one_region_p): Check current_loops.
1787         (finish_loop_tree_nodes): Separate the case when CFG loops are not
1788         built.
1789         (add_loop_to_tree): Process loop equal to NULL too.
1790         (form_loop_tree): Separate the case when CFG loops are not built.
1791         Use explicitly number for the root.
1792         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
1793         an assertion.
1794         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
1795         instead of loop->num.
1796         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
1797         (mark_all_loops_for_removal): Ditto.
1798         (remove_unnecessary_regions): Separate the case when CFG loops
1799         are not built.
1800         (ira_build): Remove the parameter.  Use explicit number of regions
1801         when CFG loops are not built.
1802
1803         * ira-color.c (print_loop_title): Separate the case for the root node.
1804         Use loop_num instead of loop->num.
1805         (move_spill_restore): Use loop_num instead of loop->num.
1806
1807         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
1808         (change_loop): Ditto.
1809         (change_loop): Use loop_num instead of loop->num.
1810
1811         * ira-lives.c (process_bb_node_lives): Ditto.
1812
1813         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
1814
1815         * ira-conflicts.c (print_allocno_conflicts): Ditto.
1816
1817 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
1818
1819         PR libmudflap/40778
1820         * tree-mudflap.c (mf_artificial): New function.
1821         (execute_mudflap_function_ops, execute_mudflap_function_decls,
1822         mx_register_decls, mudflap_enqueue_decl): Use it.
1823
1824         PR target/51876
1825         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
1826         numbers in the insn pattern.
1827
1828 2012-01-19  Michael Matz  <matz@suse.de>
1829
1830         PR tree-optimization/46590
1831         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
1832         use it in remembering which conflicts we already created.
1833         (add_scope_conflicts): Adjust call to above, (de)allocate helper
1834         bitmap.
1835
1836 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
1837
1838         PR lto/51280
1839         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
1840         (merge_and_complain): Same.
1841
1842 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
1843
1844         PR bootstrap/50237
1845         * config/initfini-array.h: Guard content of the header
1846         with #ifdef HAVE_INITFINI_ARRAY.
1847         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
1848         Add initfini-array.h to tm_file here.
1849         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
1850         * config.gcc: Don't add initfini-array.h to tm_file here.
1851         * configure: Regenerated.
1852
1853 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
1854
1855         PR rtl-optimization/51505
1856         * df-problems.c (df_kill_notes): New parameter live. Update comment.
1857         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
1858         (df_note_bb_compute): Update the call to df_kill_notes.
1859
1860 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
1861
1862         * trans-mem.c (requires_barrier): Remove call to is_global_var.
1863
1864 2012-01-18  Richard Guenther  <rguenther@suse.de>
1865
1866         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
1867         of conversions to void *.
1868
1869 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1870             Richard Sandiford  <rdsandiford@googlemail.com>
1871
1872         PR middle-end/50325
1873         PR middle-end/51192
1874         * optabs.h (simplify_expand_binop): Declare.
1875         * optabs.c (simplify_expand_binop): Make global.
1876         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
1877         endian targets if the source cannot be exactly covered by word
1878         mode chunks.
1879
1880 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
1881
1882         PR bootstrap/51872
1883         * hard-reg-set.h (struct hard_reg_set_container): New type.
1884         * target.h (struct hard_reg_set_container): Forward declare.
1885         * target.def (set_up_by_prologue): New target hook.
1886         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
1887         * doc/tm.texi: Regenerated.
1888         * function.c (thread_prologue_and_epilogue_insns): Change
1889         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
1890         Call targetm.set_up_by_prologue on it.
1891         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
1892         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
1893
1894 2012-01-17  Nick Clifton  <nickc@redhat.com>
1895
1896         * config/rx/rx.c (rx_can_use_simple_return): New function.
1897         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
1898         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
1899
1900 2012-01-17  Richard Guenther  <rguenther@suse.de>
1901
1902         PR middle-end/51782
1903         * expr.c (expand_assignment): Take address-space information
1904         from the address operand of MEM_REF and TARGET_MEM_REF.
1905         (expand_expr_real_1): Likewise.
1906
1907 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1908
1909         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
1910         reload dump is requested.
1911
1912 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
1913
1914         PR other/51165
1915         * trans-mem.c (requires_barrier): Call may_be_aliased.
1916
1917 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
1918
1919         PR tree-optimization/51877
1920         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
1921         call arguments and fndecls compare equal, instead return false if they
1922         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
1923         both SSA_NAMEs that are valueized the same, or they satisfy
1924         operand_equal_p.
1925
1926 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1927
1928         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
1929         Solaris 11+.
1930         * configure: Regenerate.
1931
1932 2012-01-16  Jan Hubicka  <jh@suse.cz>
1933
1934         PR c/12245
1935         PR c++/14179
1936         * convert.c (convert_to_integer): Use fold_convert for
1937         converting an INTEGER_CST to integer type.
1938
1939 2012-01-16  Jason Merrill  <jason@redhat.com>
1940
1941         PR c++/14179
1942         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
1943
1944 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
1945
1946         PR bootstrap/51860
1947         * config/s390/s390.c (s390_chunkify_start): Don't skip
1948         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
1949         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
1950         If insn is followed by NOTE_INSN_VAR_LOCATION or
1951         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
1952         Don't use location of note insns.
1953
1954         PR tree-optimization/51865
1955         * tree-inline.c (tree_function_versioning): Call remap_decl
1956         on DECL_RESULT whenever it has VOID_TYPE_P type.
1957
1958 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
1959
1960         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
1961         for calls to locally-binding MIPS16 functions if only the return
1962         type uses float regs.
1963
1964 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
1965             Richard Sandiford  <rdsandiford@googlemail.com>
1966
1967         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
1968         (SYMBOL_32_HIGH): Likewise.
1969         (mips_output_tls_reloc_directive): Declare.
1970         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
1971         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
1972         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
1973         (mips_lo_relocs, mips_hi_relocs): Make extern.
1974         (mips16_stub_function): Move up file.
1975         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
1976         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
1977         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
1978         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
1979         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
1980         (mips_get_tp): Add MIPS16 support.
1981         (mips_legitimize_tls_address): Remove MIPS16 sorry().
1982         Generalize DTPREL and TPREL handling.
1983         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
1984         Add MIPS16 TLS support.
1985         (mips_output_tls_reloc_directive): New function.
1986         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
1987         * config/mips/predicates.md (symbolic_operand_with_high)
1988         (tls_reloc_operand): New predicates.
1989         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
1990         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
1991         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
1992         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
1993         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
1994         (*tls_get_tp_mips16_call_<mode>): Likewise.
1995
1996 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
1997
1998         PR rtl-optimization/51821
1999         * recog.c (peep2_find_free_register): Determine clobbered registers
2000         from insn pattern.
2001
2002 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
2003
2004         PR target/50925
2005         * config/avr/avr-protos.h: Revert change of 2012-01-09.
2006         * config/avr/avr.c: Likewise.
2007         * config/avr/avr.h: Likewise.
2008
2009 2012-01-13  Ian Lance Taylor  <iant@google.com>
2010
2011         PR c++/50012
2012         * tree.h (TYPE_QUALS): Add cast to int.
2013         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
2014
2015 2012-01-13  Ian Lance Taylor  <iant@google.com>
2016
2017         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
2018         comparing param_index to VEC_length result.
2019
2020 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
2021
2022         * c-decl.c: Do not include tree-mudflap.h
2023         * tree-optimize.c: Likewise.
2024         * Makefile.in: Update dependencies.
2025
2026 2012-01-13  Richard Guenther  <rguenther@suse.de>
2027
2028         PR middle-end/8081
2029         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
2030         variable-sized result always use RSO.
2031
2032 2012-01-12  DJ Delorie  <dj@redhat.com>
2033
2034         * cfgexpand.c (convert_debug_memory_address): Allow any valid
2035         pointer type, not just the default pointer type.
2036
2037 2012-01-09  Richard Henderson  <rth@redhat.com>
2038             Denis Chertykov  <chertykov@gmail.com>
2039
2040         PR target/50925
2041         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
2042         * config/avr/avr.c (avr_can_eliminate): Simplify.
2043         (avr_initial_elimination_offset): Likewise.
2044         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
2045         (expand_epilogue): Likewise.
2046         (avr_legitimize_address): Gut.
2047         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
2048         (avr_hard_regno_nregs): New.
2049         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
2050         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
2051         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
2052         add soft frame pointer.
2053         (CALL_USED_REGISTERS): Likewise.
2054         (REG_CLASS_CONTENTS): Likewise.
2055         (REGISTER_NAMES): Likewise.
2056         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
2057         (HARD_FRAME_POINTER_REGNUM): New.
2058         (FRAME_POINTER_REGNUM): Use soft frame pointer.
2059         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
2060         remove the HARD_FRAME_POINTER self-elimination.
2061
2062 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
2063
2064         PR target/51756
2065         * config/avr/avr.c (avr_encode_section_info): Test for absence of
2066         DECL_EXTERNAL when checking for initializers of progmem variables.
2067
2068 2012-01-12  Ira Rosen  <irar@il.ibm.com>
2069
2070         PR tree-optimization/51799
2071         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
2072         that the last operation is a type demotion.
2073
2074 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
2075
2076         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
2077         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
2078
2079 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
2080
2081         PR bootstrap/51796
2082         * combine.c (distribute_notes): If i3 is a noreturn call,
2083         allow old_size to be equal to args_size and make sure the
2084         noreturn call gets REG_ARGS_SIZE note.
2085         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
2086         on noreturn calls even when the delta is 0.
2087
2088 2012-01-11  Nathan Sidwell  <nathan@acm.org>
2089
2090         * gcov.c (STRING_SIZE): Remove.
2091         (generate_results): Erase annotations for source files with no
2092         coverage information.
2093         (read_line): New.
2094         (output_lines): Use it.
2095
2096 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
2097
2098         * gimple.h (gimplify_body): Remove first argument.
2099         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
2100         pointer set here, instead just pass DATA to walk_tree.
2101         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
2102         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
2103         (unvisit_body): Likewise, but with unmark_visited.
2104         (gimplify_body): Remove BODY_P argument and adjust.
2105         (gimplify_function_tree): Adjust call to gimplify_body.
2106         * omp-low.c (finalize_task_copyfn): Likewise.
2107
2108 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
2109
2110         * tree.h (build_function_decl_skip_args): Add boolean parameter.
2111         (build_function_type_skip_args): Delete.
2112         * tree.c (build_function_type_skip_args): Make static and add
2113         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
2114         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
2115         pass it to build_function_type_skip_args.
2116         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
2117         (tree_function_versioning): Likewise.
2118         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
2119         build_function_decl_skip_args.
2120         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
2121         and pass it to build_function_decl_skip_args/tree_function_versioning.
2122         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
2123         * ipa-inline-transform.c (save_inline_function_body): Likewise.
2124         * trans-mem.c (ipa_tm_create_version): Likewise.
2125         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
2126         * tree-inline.c (declare_return_variable): Remove always-true test.
2127         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
2128         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
2129         * ipa-split.c (split_function): Skip the return value for the split
2130         part if it doesn't return.
2131
2132 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2133
2134         PR tree-optimization/49642
2135         * ipa-split.c (forbidden_dominators): New variable.
2136         (check_forbidden_calls): New function.
2137         (dominated_by_forbidden): Likewise.
2138         (consider_split): Check for forbidden dominators.
2139         (execute_split_functions): Initialize and free forbidden
2140         dominators info; call check_forbidden_calls.
2141
2142 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2143
2144         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
2145
2146 2012-01-11  Nick Clifton  <nickc@redhat.com>
2147
2148         * config/rx/rx.md (return): Define pattern.
2149
2150 2012-01-11  Richard Guenther  <rguenther@suse.de>
2151
2152         * doc/extend.texi (malloc attribute): Adjust according to
2153         implementation.
2154
2155 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
2156             Patrick Marlier  <patrick.marlier@gmail.com>
2157
2158         PR middle-end/51516
2159         * trans-mem.c (get_cg_data): Traverse aliases if requested.
2160         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
2161         (ipa_tm_note_irrevocable): Same.
2162         (ipa_tm_scan_irr_block): Same.
2163         (ipa_tm_decrement_clone_counts): Same.
2164         (ipa_tm_scan_irr_function): Same.
2165         (ipa_tm_create_version_alias): Same.
2166         (ipa_tm_create_version): Same.
2167         (ipa_tm_transform_calls_redirect): Same.
2168         (ipa_tm_transform_calls): Same.
2169         (ipa_tm_transform_transaction): Same.
2170         (ipa_tm_execute): Same.
2171
2172 2012-01-10  Richard Guenther  <rguenther@suse.de>
2173
2174         PR middle-end/51806
2175         * opts.c (common_handle_option): Handle -Werror.
2176
2177 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
2178
2179         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
2180         operand number.
2181
2182 2012-01-10  Jason Merrill  <jason@redhat.com>
2183
2184         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
2185         information.
2186
2187 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2188
2189         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
2190         supports R_386_TLS_GD_PLT reloc.
2191         (gcc_cv_as_ix86_tlsldmplt): Check if linker
2192         supports R_386_TLS_LDM_PLT reloc.
2193         * configure: Regenerate.
2194         * config.in: Regenerate.
2195
2196 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
2197
2198         PR target/49868
2199         Extend __pgmx semantics to linearize memory.
2200         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
2201         determine if code comes inline or from libgcc.
2202         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
2203         (movmem_qi, movmem_qi): Set constraint #2 to "n".
2204         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
2205         (movmemx_qi, movmemx_hi): New insns.
2206         (xload_<mode>_libgcc): Rewrite to new insn condition.
2207         (xload_<mode>): Remove insns.
2208         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
2209         cases that don't satisfy avr_xload_libgcc_p().
2210         (avr_addr_space_convert): Allow converting in any direction.
2211         (avr_addr_space_subset_p): Return always true.
2212         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
2213         (avr_emit_movmemhi): Ditto.
2214         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
2215         (avr_out_movmem): Ditto.
2216         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
2217         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
2218         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
2219         (avr_encode_section_info): Encode 'progmem' in symbol flags.
2220         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
2221
2222 2012-01-10  Richard Guenther  <rguenther@suse.de>
2223
2224         PR tree-optimization/50913
2225         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
2226         Require data-refs to be representable by Graphite with respect
2227         to any loop nest.
2228
2229 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
2230
2231         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
2232         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
2233
2234 2012-01-10  Tom de Vries  <tom@codesourcery.com>
2235
2236         PR rtl-optimization/51271
2237         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
2238         handling annulled branch.
2239
2240 2012-01-10  Richard Henderson  <rth@redhat.com>
2241
2242         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
2243         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
2244         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
2245         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
2246         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
2247         arm_expand_vec_perm_const): New.
2248         * config/arm/arm-protos.h: Update.
2249         * config/arm/neon.md (UNSPEC_VCONCAT): New.
2250         (*neon_vswp<VDQX>): New.
2251         (neon_vcombine<VDX>): Use neon_split_vcombine.
2252         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
2253         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
2254         (vec_perm<VE>): New.
2255
2256 2012-01-10  Richard Henderson  <rth@redhat.com>
2257
2258         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
2259         use it if reload_completed.
2260         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
2261         arm_output_asm_insn, arm_process_output_memory_barrier,
2262         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
2263         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
2264         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
2265         arm_process_output_sync_insn, arm_output_sync_insn,
2266         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
2267         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
2268         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
2269         (emit_unlikely_jump): New.
2270         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
2271         (arm_split_atomic_op): New.
2272         * config/arm/arm-protos.h: Update.
2273         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
2274         (struct arm_sync_generator): Remove.
2275         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
2276         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
2277         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
2278         (VUNSPEC_LL, VUNSPEC_SC): New.
2279         (sync_result, sync_memory, sync_required_value, sync_new_value,
2280         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
2281         (attr length): Don't use arm_sync_loop_insns.
2282         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
2283         (movsfcc, movdfcc): Likewise.
2284         * config/arm/constraints.md (Ua): New.
2285         * config/arm/prediates.md (mem_noofs_operand): New.
2286         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
2287         (sync_clobber, sync_t2_reqd): Remove.
2288         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
2289         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
2290         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
2291         (arm_sync_compare_and_swap<SIDI>): Remove.
2292         (arm_sync_compare_and_swap<NARROW>): Remove.
2293         (arm_sync_lock_test_and_set<SIDI>): Remove.
2294         (arm_sync_lock_test_and_set<NARROW>): Remove.
2295         (arm_sync_new_<syncop><SIDI>): Remove.
2296         (arm_sync_new_<syncop><NARROW>): Remove.
2297         (arm_sync_new_nand<SIDI>): Remove.
2298         (arm_sync_new_nand<NARROW>): Remove.
2299         (arm_sync_old_<syncop><SIDI>): Remove.
2300         (arm_sync_old_<syncop><NARROW>): Remove.
2301         (arm_sync_old_nand<SIDI>): Remove.
2302         (arm_sync_old_nand<NARROW>): Remove.
2303         (*memory_barrier): Merge arm_output_memory_barrier.
2304         (atomic_compare_and_swap<QHSD>): New.
2305         (atomic_compare_and_swap<NARROW>_1): New.
2306         (atomic_compare_and_swap<SIDI>_1): New.
2307         (atomic_exchange<QHSD>): New.
2308         (cas_cmp_operand, cas_cmp_str): New.
2309         (atomic_op_operand, atomic_op_str): New.
2310         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
2311         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
2312         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
2313         (arm_load_exclusive<NARROW>): New.
2314         (arm_load_exclusivesi, arm_load_exclusivedi): New.
2315         (arm_store_exclusive<QHSD>): New.
2316
2317 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2318
2319         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
2320         reload patterns if -mvsx-scalar-memory.
2321
2322         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
2323         generated, even -mno-vsx-scalar-double was used.
2324         (vsx_xscvdpsp_scalar): Likewise.
2325         (vsx_xscvspdp_scalar2): Likewise.
2326
2327 2012-01-09  Tom de Vries  <tom@codesourcery.com>
2328             Andrew Pinski  <apinski@cavium.com>
2329
2330         PR debug/51471
2331         * reorg.c (fill_slots_from_thread): Don't speculate
2332         frame-related insns.
2333
2334 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
2335
2336         * sched-int.h (bb_note): Move to...
2337         * basic-block.h: ...here.
2338         * haifa-sched.c (bb_note): Move to...
2339         * cfgrtl.c: ...here.
2340         * function.c (next_block_for_reg): New function.
2341         (move_insn_for_shrink_wrap): Likewise.
2342         (prepare_shrink_wrap): Rewrite to use the above.
2343
2344 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
2345
2346         * gimple.c (is_gimple_non_addressable): Remove.
2347         * gimple.h: Remove is_gimple_non_addressable.
2348         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
2349         is_gimple_non_addressable.
2350         * trans-mem.c (expand_assign_tm): Same.
2351
2352 2012-01-09  Richard Guenther  <rguenther@suse.de>
2353
2354         PR tree-optimization/51775
2355         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
2356         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
2357
2358 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2359
2360         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
2361         tuning parameters.
2362         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
2363
2364 2012-01-09  Richard Guenther  <rguenther@suse.de>
2365
2366         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
2367
2368 2012-01-08  Jan Hubicka  <jh@suse.cz>
2369
2370         PR tree-optimize/51680
2371         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
2372         on when known_vals needs to be computed; cleanup.
2373
2374 2012-01-08  Jan Hubicka  <jh@suse.cz>
2375
2376         PR tree-optimize/51694
2377         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
2378
2379 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
2380
2381         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
2382         for -std=c++98 and -std=c++11 too.
2383
2384 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
2385
2386         * cfgloop.c (cancel_loop): Add free() of bbs array.
2387
2388 2012-01-07  Jan Hubicka  <jh@suse.cz>
2389
2390         PR tree-optimization/51600
2391         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
2392         that benefits small functions.
2393
2394 2012-01-07  Jan Hubicka  <jh@suse.cz>
2395
2396         * ipa-inline.c (want_inline_small_function_p): Fix formating.
2397
2398 2012-01-07  Jan Hubicka  <jh@suse.cz>
2399
2400         PR tree-optimization/51680
2401         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
2402         whose inlining reduce unit size.
2403
2404 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
2405
2406         PR bootstrap/51725
2407         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
2408         Add canonical node to containing_mem chain after the non-canonical
2409         one, even if there weren't any locs to propagate.
2410         (remove_useless_values): Keep only canonical values.
2411         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
2412         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
2413         canonicalize mem_chain elements that are not discarded.
2414
2415 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
2416
2417         PR target/47333
2418         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
2419         before emitting functions.
2420
2421         PR gcov-profile/50127
2422         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
2423         clear_aux_for_blocks.
2424
2425 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
2426
2427         PR debug/51746
2428         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
2429
2430 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
2431
2432         * c-decl.c (ext_block): Moved up.
2433         (collect_all_refs, for_each_global_decl): Take ext_block into account.
2434
2435 2012-01-06  Han Shen  <shenhan@google.com>
2436
2437         Translate built-in include paths for sysroot.
2438         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
2439         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
2440
2441         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
2442         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
2443
2444         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
2445         control whether sysroot should be prepended to gxx include dir.
2446
2447         * configure: Regenerate.
2448
2449 2012-01-06  Torvald Riegel  <triegel@redhat.com>
2450
2451         PR rtl-optimization/51771
2452         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
2453         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
2454
2455 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
2456
2457         PR tree-optimization/51315
2458         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
2459         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
2460
2461 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
2462
2463         PR target/51681
2464         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
2465         for shrp pattern.  Correctly handle and fixup shift variable.
2466         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
2467
2468 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
2469
2470         PR debug/51762
2471         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
2472         note when !ACCUMULATE_OUTGOING_ARGS.
2473
2474 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
2475
2476         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
2477         condition.
2478         (extract_range_from_unary_expr_1): Avoid useless computations.
2479
2480 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
2481
2482         PR rtl-optimization/51767
2483         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
2484         of jump_block and add an extra edge for degenerated asm gotos.
2485
2486         PR middle-end/51768
2487         * stmt.c (check_unique_operand_names): Don't ICE during error
2488         reporting if i is from labels chain.
2489
2490         PR middle-end/44777
2491         * profile.c (branch_prob): Split bbs that have exit edge
2492         and need a fake entry edge too.
2493
2494 2012-01-05  Jan Hubicka  <jh@suse.cz>
2495
2496         PR middle-end/49710
2497         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
2498         unlooping loops.
2499
2500 2012-01-05  Richard Guenther  <rguenther@suse.de>
2501
2502         PR lto/50490
2503         * tree-streamer-out.c (write_ts_optimization): New function.
2504         (streamer_write_tree_body): Call it.
2505         * tree-streamer-in.c (lto_input_ts_optimization): New function.
2506         (streamer_read_tree_body): Call it.
2507         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
2508
2509 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
2510
2511         PR middle-end/51761
2512         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
2513         * gimplify.c (gimplify_cleanup_point_expr): Save and set
2514         in_cleanup_point_expr before gimplify_stmt call and restore it
2515         afterwards.
2516         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
2517         in_cleanup_point_expr is false.
2518
2519 2012-01-05  Richard Guenther  <rguenther@suse.de>
2520
2521         PR middle-end/51764
2522         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
2523         to c.opt.
2524         * toplev.c (process_options): Reject combining mudflap and LTO.
2525         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
2526
2527 2012-01-05  Richard Guenther  <rguenther@suse.de>
2528
2529         PR tree-optimization/51760
2530         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
2531         not VARYING.
2532         (bit_value_unop): Handle UNDEFINED operands.
2533         (bit_value_binop): Likewise.
2534
2535 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
2536
2537         * config/avr/avr.c (avr_replace_prefix): Remove.
2538         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
2539         (avr_asm_function_rodata_section): Ditto.
2540         (avr_asm_select_section): Ditto.
2541
2542 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2543
2544         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
2545         insertion.
2546
2547 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
2548
2549         PR bootstrap/51648
2550         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
2551         calls that have any non-fake successor edges.
2552
2553         PR debug/51746
2554         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
2555
2556 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
2557
2558         PR tree-optimization/51624
2559         * tree-sra.c (build_ref_for_model): When replicating a chain of
2560         COMPONENT_REFs, stop as soon as the offset would become negative.
2561
2562 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
2563
2564         PR debug/51695
2565         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
2566         in .debug_loc on the floor.
2567
2568 2012-01-04  Andrew Pinski  <apinski@cavium.com>
2569
2570         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
2571
2572 2012-01-04  Andrew Pinski  <apinski@cavium.com>
2573             Adam Nemet  <anemet@caviumnetworks.com>
2574
2575         * config/mips/mips.md (size): Add SI and DI.
2576         (SIZE): New mode attribute.
2577         (U): New code attribute.
2578         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
2579         (mips_lbux_<mode>): Delete.
2580         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
2581         (mips_lhx): Use gen_mips_lhx_extsi.
2582         (mips_lhx_<mode>): Delete.
2583         (mips_lwx): Delete.
2584         (mips_l<size>x): New expand.
2585         (mips_lwx_<mode>): Delete.
2586         (mips_l<GPR:size>x_<P:mode>): New pattern.
2587         (*mips_lw<u>x_<P:mode>_ext): Likewise.
2588         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
2589         * config/mips/mips.c (mips_lx_address_p): New function.
2590         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
2591         (dsp64): New availability predicate.
2592         (mips_builtins): Add an entry for __builtin_mips_ldx.
2593         * config/mips/mips.h (ISA_HAS_LBX): New define.
2594         (ISA_HAS_LBUX): Likewise.
2595         (ISA_HAS_LHX): Likewise.
2596         (ISA_HAS_LHUX): Likewise.
2597         (ISA_HAS_LWX): Likewise.
2598         (ISA_HAS_LWUX): Likewise.
2599         (ISA_HAS_LDX): Likewise.
2600         * doc/extend.texi (__builtin_mips_ldx): Document.
2601
2602 2012-01-04  Tristan Gingold  <gingold@adacore.com>
2603
2604         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
2605         when long pointers are used.
2606         * config.build (*-*-*vms*): Handle all OpenVMS targets.
2607         (alpha64-dec-*vms*, alpha*-dec-*vms*)
2608         (ia64-hp-*vms*): Remove.
2609         * config/vms/xm-vms64.h: Delete.
2610
2611 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
2612
2613         PR middle-end/51472
2614         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
2615
2616 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
2617
2618         * opts.c (finish_options): Remove duplicate sorry.
2619
2620 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
2621
2622         PR middle-end/51696
2623         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
2624         correctly.
2625
2626 2012-01-04  Richard Guenther  <rguenther@suse.de>
2627
2628         PR middle-end/51750
2629         * tree.c (size_low_cst): New function.
2630         * tree.h (size_low_cst): Declare.
2631         * fold-const.c (fold_comparison): Use it to extract the low
2632         part of the POINTER_PLUS_EXPR offset.
2633
2634 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
2635
2636         Fix clearing ZERO_REG
2637         * config/avr/avr.md (cc): Add alternative "ldi".
2638         (movqi_insn): Use it in cc attribute.
2639         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
2640         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
2641         (output_reload_insisf): Use ZERO_REG to pre-clear register.
2642
2643 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2644
2645         * configure: Regenerate.
2646
2647 2012-01-04  Richard Guenther  <rguenther@suse.de>
2648
2649         PR tree-optimization/49651
2650         * tree-ssa-structalias.c (type_can_have_subvars): New function.
2651         (var_can_have_subvars): Use it.
2652         (get_constraint_for_1): Only consider subfields if there can be any.
2653
2654 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
2655
2656         PR bootstrap/51725
2657         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
2658         to its new canonical_cselib_val and the cselib_val was in
2659         first_containing_mem chain, but the canonical_cselib_val was not,
2660         add the latter into the chain.
2661         (cselib_invalidate_mem): Compare canonical_cselib_val of
2662         addr_list chain elt with v.
2663
2664         PR pch/51722
2665         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
2666         dwarf2out_undef): Allocate e.info using ggc_strdup instead
2667         of xstrdup.
2668         (output_macinfo_op): Don't ggc_strdup fd->filename.
2669         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
2670         then ggc_strdup it.  Don't free inc->info or cur->info.
2671         (output_macinfo): Don't free ref->info or file->info.
2672
2673 2012-01-03  Ira Rosen  <irar@il.ibm.com>
2674
2675         PR tree-optimization/51269
2676         * tree-vect-loop-manip.c (set_prologue_iterations): Make
2677         first_niters a pointer.
2678         (slpeel_tree_peel_loop_to_edge): Likewise.
2679         (vect_do_peeling_for_loop_bound): Update call to
2680         slpeel_tree_peel_loop_to_edge.
2681         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
2682         here.  Remove it from the parameters list.
2683         (vect_do_peeling_for_alignment): Update calls and compute
2684         wide_prolog_niters.
2685
2686 2012-01-03  Richard Guenther  <rguenther@suse.de>
2687
2688         PR tree-optimization/51070
2689         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
2690         Properly handle calls.
2691
2692 2012-01-03  Richard Guenther  <rguenther@suse.de>
2693
2694         PR tree-optimization/51692
2695         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
2696         the LHS of allocation stmts.
2697
2698 2012-01-03  Olivier Hainque  <hainque@adacore.com>
2699
2700         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
2701
2702 2012-01-03  Olivier Hainque  <hainque@adacore.com>
2703
2704         * collect2.c (main): In AIX specific computations for vector
2705         insertions, use CONST_CAST2 to cast from char ** to const char **.
2706
2707 2012-01-03  Richard Guenther  <rguenther@suse.de>
2708
2709         PR debug/51650
2710         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
2711         the context of a limbo DIE when it does not already exist.
2712
2713 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
2714
2715         PR tree-optimization/51719
2716         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
2717         but direct call is, clear direct call's lhs and don't add fallthrough
2718         edge from dcall_bb to join_bb and PHIs.
2719
2720 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2721
2722         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
2723         the instructions emitted by the pattern.
2724         ("*TDC_insn_<mode>"): Add comment.
2725
2726 2012-01-03  Richard Guenther  <rguenther@suse.de>
2727
2728         PR middle-end/51730
2729         * fold-const.c (fold_comparison): Properly canonicalize
2730         tree offset and HOST_WIDE_INT bit position.
2731
2732 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
2733
2734         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
2735         operands for extzv pattern.
2736
2737 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
2738
2739         PR bootstrap/51725
2740         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
2741         on mem_elt first.
2742
2743 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
2744
2745         * doc/invoke.texi (-flto and related options): Copy-edit.
2746
2747 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2748
2749         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
2750
2751 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
2752
2753         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
2754         New patterns.
2755
2756 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2757
2758         * expr.h (move_by_pieces_ninsns): Declare.
2759         * expr.c (move_by_pieces_ninsns): Make external.
2760         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
2761         (mips_store_by_pieces_p): Likewise.
2762         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
2763         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
2764         * config/mips/mips.c (mips_move_by_pieces_p): New function.
2765         (mips_store_by_pieces_p): Likewise.
2766
2767 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
2768
2769         * passes.c (register_one_dump_file): Free full_name.
2770
2771         * reload1.c (reload): Don't allocate reg_max_ref_width here.
2772         (calculate_elim_costs_all_insns): Free offsets_at and
2773         offsets_known_at at the end and clear the pointers.
2774
2775 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
2776
2777         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
2778         this option introduced in r180739.
2779
2780 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
2781
2782         PR target/51345
2783         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
2784         (tmake_file target=avr): Add avr/t-multilib.
2785
2786         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
2787         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
2788         * config/avr/genmultilib.awk: New file.
2789         * config/avr/t-multilib: New auto-generated file.
2790         * config/avr/multilib.h: New auto-generated file.
2791         * config/avr/t-avr (AVR_MCUS): New variable.
2792         (genopt.sh): Use it.
2793         (s-mlib): Depend on t-multilib.
2794         (t-multilib, multilib.h): New dependencies.
2795         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
2796         (MULTILIB_OPTIONS): Remove.
2797         (MULTILIB_MATCHES): Remove.
2798         (MULTILIB_DIRNAMES): Remove.
2799         (MULTILIB_EXCEPTIONS): Remove:
2800         * config/avr/genopt.sh: Don't use hard coded file name;
2801         pass AVR_MCUS from t-avr instead.
2802
2803 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
2804
2805         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
2806
2807 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
2808
2809         Implement light-weight DImode support.
2810         * config/avr/avr-dimode.md: New file.
2811         * config/avr/avr.md: Include it.
2812         (adjust_len): Add plus64, compare64.
2813         (HIDI): Remove code iterator.
2814         (code_stdname): New code attribute.
2815         (rotx, rotsmode): Remove DI.
2816         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
2817         as code iterator.
2818         * config/avr/avr-protos.h (avr_have_dimode): New.
2819         (avr_out_plus64, avr_out_compare64): New.
2820         * config/avr/avr.c (avr_out_compare): Handle DImode.
2821         (avr_have_dimode): New variable definition and initialization.
2822         (avr_out_compare64, avr_out_plus64): New functions.
2823         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
2824         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
2825         (avr_compare_pattern): Skip DImode comparisons.
2826
2827 2012-01-02  Revital Eres  <revital.eres@linaro.org>
2828
2829         * ddg.c (def_has_ccmode_p): New function.
2830         (add_cross_iteration_register_deps,
2831         create_ddg_dep_from_intra_loop_link): Call it.
2832
2833 2012-01-02  Richard Guenther  <rguenther@suse.de>
2834
2835         PR other/51679
2836         * invoke.texi (fassociative-math): Remove spurious paranthesis.
2837
2838 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
2839
2840         * gcc.c (process_command): Update copyright notice dates.
2841         * gcov.c (print_version): Likewise.
2842         * gcov-dump.c (print_version): Likewise.
2843         * mips-tfile.c (main): Likewise.
2844         * mips-tdump.c (main): Likewise.
2845
2846 2012-01-01  Ira Rosen  <irar@il.ibm.com>
2847
2848         PR tree-optimization/51704
2849         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
2850         a use is inside the basic block or loop before accessing its vect info.
2851
2852 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
2853
2854         PR rtl-optimization/51069
2855         * cfgloopmanip.c (remove_path): Removing path making irreducible
2856         region unconditional makes BB part of the region.
2857
2858 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
2859
2860         PR tree-optimization/51683
2861         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
2862         calls with side-effects.
2863         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
2864 \f
2865 Copyright (C) 2012 Free Software Foundation, Inc.
2866
2867 Copying and distribution of this file, with or without modification,
2868 are permitted in any medium without royalty provided the copyright
2869 notice and this notice are preserved.