OSDN Git Service

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