OSDN Git Service

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