OSDN Git Service

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