OSDN Git Service

73651dd22dd420fadfdaa862ff759913404d71c4
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2013-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
2
3         Backport from mainline
4         2013-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
5
6         PR target/56529
7         * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
8         instead of TARGET_SH2 for call-table case.  Do not set sh_div_strategy
9         to SH_DIV_CALL_TABLE for TARGET_SH2.
10         * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
11         list.
12         * doc/invoke.texi (SH options): Use table for mdiv= option.  Document
13         mdiv= call-div1, call-fp, call-table options.
14
15 2013-03-06  Sebastian Huber <sebastian.huber@embedded-brains.de>
16
17         * config.gcc (arm*-*-rtemself*): New.
18         (arm*-*-rtems*): Removed.
19         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename
20         "arm*-*-rtemseabi*" to "arm*-*-rtems*".
21
22 2013-03-01  Richard Biener  <rguenther@suse.de>
23
24         Backport from mainline
25         2012-12-12  Zdenek Dvorak  <ook@ucw.cz>
26
27         PR tree-optimization/55481
28         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fall
29         back to general rewriting if we cannot leave an original biv
30         definition alone.
31
32 2013-03-01  Richard Biener  <rguenther@suse.de>
33
34         Backport from mainline
35         2012-04-10  Richard Guenther  <rguenther@suse.de>
36  
37         PR middle-end/52888
38         * gimple-low.c (gimple_check_call_args): Properly account for
39         compatible aggregate types.
40
41 2013-02-26  Nick Clifton  <nickc@redhat.com>
42
43         PR target/56453
44         Import this patch from the mainline:
45
46         2012-08-17  Nick Clifton  <nickc@redhat.com>
47
48         * config/fr30/fr30.md (cbranchsi4): Remove mode from comparison.
49         (branch_true): Likewise.
50         (branch_false): Likewise.
51
52 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
53
54         PR tree-optimization/56443
55         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
56         overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
57         to type_for_mode langhook.
58
59 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
60
61         PR bootstrap/56258
62         * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
63         instead of @itemx.
64
65 2013-02-19  Jakub Jelinek  <jakub@redhat.com>
66
67         Backported from mainline
68         2013-02-19  Jakub Jelinek  <jakub@redhat.com>
69
70         PR tree-optimization/56350
71         * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
72         if haven't found reduction or nested cycle operand, rather than
73         asserting we must find it.
74
75         PR tree-optimization/56381
76         * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
77         to fold_build3.
78
79         2013-02-08  Jakub Jelinek  <jakub@redhat.com>
80
81         PR tree-optimization/56250
82         * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
83         if type is unsigned and code isn't MULT_EXPR.
84
85         2013-02-06  Jakub Jelinek  <jakub@redhat.com>
86
87         PR middle-end/56217
88         * omp-low.c (use_pointer_for_field): Return false if
89         lower_send_shared_vars doesn't generate any copy-out code.
90
91         2012-11-27  Jakub Jelinek  <jakub@redhat.com>
92
93         PR tree-optimization/55110
94         * tree-vect-loop.c (vectorizable_reduction): Don't assert
95         that STMT_VINFO_RELATED_STMT of orig_stmt is stmt.
96
97 2013-02-18  Richard Biener  <rguenther@suse.de>
98
99         Revert
100         2013-02-04  Richard Biener  <rguenther@suse.de>
101
102         Backport from mainline
103         2012-07-04  Richard Guenther  <rguenther@suse.de>
104
105         PR tree-optimization/53844
106         * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
107         the loop virtual PHI.
108
109 2013-02-13  David S. Miller  <davem@davemloft.net>
110
111         * expmed.c (expand_shift_1): Only strip scalar integer subregs.
112
113 2013-02-11  Uros Bizjak  <ubizjak@gmail.com>
114
115         Backport from mainline
116         2013-02-11  Uros Bizjak  <ubizjak@gmail.com>
117
118         PR rtl-optimization/56275
119         * simplify-rtx.c (avoid_constant_pool_reference): Check that
120         offset is non-negative and less than cmode size before
121         calling simplify_subreg.
122
123 2013-02-09  Uros Bizjak  <ubizjak@gmail.com>
124
125         Backport from mainline
126         2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
127
128         * config/i386/sse.md (FMAMODEM): New mode iterator.
129         (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
130         mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
131
132         2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
133
134         * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
135         when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
136         * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
137
138 2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
139
140         Backport from mainline
141         2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
142
143         PR target/56043
144         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
145         If there is no implicit builtin declaration, just return NULL.
146
147 2013-02-08  David Edelsohn  <dje.gcc@gmail.com>
148             Michael Meissner  <meissner@linux.vnet.ibm.com>
149
150         Backport from mainline
151         * config/rs6000/rs6000.c (rs6000_option_override_internal): Clear
152         MASK_VSX from set_masks if OS_MISSING_ALTIVEC.
153
154 2013-02-07  David S. Miller  <davem@davemloft.net>
155
156         * dwarf2out.c (based_loc_descr): Perform leaf register remapping
157         on 'reg'.
158         * var-tracking.c (vt_add_function_parameter): Test the presence of
159         HAVE_window_save properly and do not remap argument registers when
160         we have a leaf function.
161
162 2013-02-07  Uros Bizjak  <ubizjak@gmail.com>
163
164         Backport from mainline
165         2013-02-07  Uros Bizjak  <ubizjak@gmail.com>
166
167         PR bootstrap/56227
168         * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
169         instead of "ll".
170         * config/i386/i386.c (ix86_print_operand): Ditto.
171
172 2013-02-07  Alan Modra  <amodra@gmail.com>
173
174         PR target/53040
175         * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
176         static chain, set REST_INLINE_FPRS too.
177
178 2013-02-06  David Edelsohn  <dje.gcc@gmail.com>
179
180         Backport from mainline
181         2013-01-25  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
182
183         * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
184         * configure: Regenerate.
185
186 2013-02-05  David Edelsohn  <dje.gcc@gmail.com>
187
188         Backport from mainline
189         2013-02-03  David Edelsohn  <dje.gcc@gmail.com>
190                     Andrew Dixie  <andrewd@gentrack.com>
191
192         * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
193         flag set.
194
195 2013-02-05  Richard Biener  <rguenther@suse.de>
196
197         Backport from mainline
198         2012-12-10  Richard Biener  <rguenther@suse.de>
199
200         PR tree-optimization/55107
201         * tree-ssa-pre.c (struct pre_stats): Remove constified field.
202         (bitmap_set_replace_value): Add gcc_unreachable.
203         (do_regular_insertion): Re-write all_same handling.  Insert
204         an assignment instead of a PHI in this case.
205         (execute_pre): Do not record constified events.
206
207 2013-02-05  Richard Biener  <rguenther@suse.de>
208
209         PR tree-optimization/54767
210         * tree-vrp.c (vrp_visit_phi_node): For PHI arguments coming via
211         backedges drop all symbolical range information.
212         (execute_vrp): Compute backedges.
213
214 2013-02-04  Richard Biener  <rguenther@suse.de>
215
216         Backport from mainline
217         2012-01-11  Richard Guenther  <rguenther@suse.de>
218
219         PR tree-optimization/44061
220         * tree-vrp.c (extract_range_basic): Compute zero as
221         value-range for __builtin_constant_p of function parameters.
222
223         2013-01-08  Jakub Jelinek  <jakub@redhat.com>
224
225         PR middle-end/55890
226         * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_class_p.
227
228 2013-02-04  Richard Biener  <rguenther@suse.de>
229
230         Backport from mainline
231         2012-07-04  Richard Guenther  <rguenther@suse.de>
232
233         PR tree-optimization/53844
234         * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
235         the loop virtual PHI.
236
237         2012-12-13  Richard Biener  <rguenther@suse.de>
238
239         PR lto/55660
240         * tree-streamer.c (record_common_node): Check that we are not
241         recursively pre-loading nodes we want to skip.  Handle
242         char_type_node appearing as part of va_list_type_node.
243
244 2013-02-04  Richard Biener  <rguenther@suse.de>
245
246         PR middle-end/55890
247         * gimple.h (gimple_call_builtin_class_p): New function.
248         * gimple.c (validate_call): New function.
249         (gimple_call_builtin_class_p): Likewise.
250         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
251         Use gimple_call_builtin_class_p.
252         (find_func_clobbers): Likewise.
253         * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
254         (strlen_optimize_stmt): Likewise.
255
256 2013-02-01  Jakub Jelinek  <jakub@redhat.com>
257
258         Backported from mainline
259         2013-01-28  Jakub Jelinek  <jakub@redhat.com>
260
261         PR tree-optimization/56125
262         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
263         pow(x,c) into sqrt(x) * powi(x, n/2) or
264         1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
265         optimizing for size.
266         Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
267         1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
268         integer.
269
270         2013-01-25  Jakub Jelinek  <jakub@redhat.com>
271
272         PR tree-optimization/56098
273         * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
274         for stmts with volatile ops.
275         (cond_store_replacement): Don't optimize if assign has volatile ops.
276         (cond_if_else_store_replacement_1): Don't optimize if either
277         then_assign or else_assign have volatile ops.
278
279         2013-01-23  Jakub Jelinek  <jakub@redhat.com>
280
281         PR target/49069
282         * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
283         instead of cmpdi_operand for first comparison operand.
284         Don't assert that comparison operands aren't both constants.
285
286         2013-01-21  Jakub Jelinek  <jakub@redhat.com>
287
288         PR tree-optimization/56051
289         * fold-const.c (fold_binary_loc): Don't fold
290         X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
291         a narrowing conversion, or widening conversion from signed
292         to unsigned.
293
294         2013-01-18  Jakub Jelinek  <jakub@redhat.com>
295
296         PR middle-end/56015
297         * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
298         the case where writing real complex part of target modifies
299         op1.
300
301         2013-01-15  Jakub Jelinek  <jakub@redhat.com>
302
303         PR target/55940
304         * function.c (thread_prologue_and_epilogue_insns): Always
305         add crtl->drap_reg to set_up_by_prologue.set, even if
306         stack_realign_drap is false.
307
308         2013-01-10  Jakub Jelinek  <jakub@redhat.com>
309
310         PR tree-optimization/55921
311         * tree-complex.c (expand_complex_asm): New function.
312         (expand_complex_operations_1): Call it for GIMPLE_ASM.
313
314         2013-01-03  Jakub Jelinek  <jakub@redhat.com>
315
316         PR rtl-optimization/55838
317         * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
318         iv0.step, iv1.step and step.
319
320         2012-11-23  Jakub Jelinek  <jakub@redhat.com>
321
322         PR c++/54046
323         * Makefile.in (gimple-low.o): Depend on langhooks.h.
324         * gimple-low.c: Include langhooks.c.
325         (block_may_fallthru): Handle TARGET_EXPR and ERROR_MARK,
326         by default call lang_hooks.block_may_fallthru.
327         * langhooks.h (struct lang_hooks): Add block_may_fallthru
328         langhook.
329         * langhooks-def.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Define.
330         (LANG_HOOKS_INITIALIZER): Use it.
331
332         2012-11-20  Jakub Jelinek  <jakub@redhat.com>
333
334         PR middle-end/55094
335         * builtins.c (expand_builtin_trap): Add REG_ARGS_SIZE note
336         on the trap insn for !ACCUMULATE_OUTGOING_ARGS.
337         * cfgcleanup.c (outgoing_edges_match): Don't look at debug insns
338         on the first old_insns_match_p call.  For !ACCUMULATE_OUTGOING_ARGS
339         fail if the last real insn doesn't have REG_ARGS_SIZE note.
340
341         2012-11-17  Jakub Jelinek  <jakub@redhat.com>
342
343         PR tree-optimization/55236
344         * fold-const.c (make_range_step) <case NEGATE_EXPR>: For -fwrapv
345         and signed ARG0_TYPE, force low and high to be non-NULL.
346
347         2012-11-13  Jakub Jelinek  <jakub@redhat.com>
348
349         PR rtl-optimization/54127
350         * cfgrtl.c (force_nonfallthru_and_redirect): When redirecting
351         asm goto labels from BB_HEAD (e->dest) to target bb, decrement
352         LABEL_NUSES of BB_HEAD (e->dest) and increment LABEL_NUSES of
353         BB_HEAD (target) appropriately and adjust JUMP_LABEL and/or
354         REG_LABEL_TARGET and REG_LABEL_OPERAND.
355
356 2013-02-01  Eric Botcazou  <ebotcazou@adacore.com>
357
358         * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
359         range isn't testing for zero.
360
361 2013-01-29  Richard Biener  <rguenther@suse.de>
362
363         PR tree-optimization/56113
364         * tree-ssa-structalias.c (equiv_class_lookup): Also return
365         the bitmap leader.
366         (label_visit): Free duplicate bitmaps and record the leader instead.
367         (perform_var_substitution): Adjust.
368
369 2013-01-28  Serowk  <serowk@yandex.ru>
370
371         PR target/35294
372         * config/arm/arm.c (arm_expand_binop_builtin): Add new parameter.
373         Fix mode checks to allow for the passing of constants in the
374         second parameter.
375         (arm_expand_builtin): Adjust calls to arm_expand_binop_builtin.
376         Add entries in the switch statement for builtin iwmmxt vector
377         shift and rotate builtins.
378
379 2013-01-27  Uros Bizjak  <ubizjak@gmail.com>
380
381         Backport from mainline
382         2013-01-27  Uros Bizjak  <ubizjak@gmail.com>
383
384         PR target/56114
385         * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
386         operand 0 in movabs insn template for -masm=intel asm alternative.
387         (*movabs<mode>_2): Ditto for operand 1.
388
389 2013-01-27  Uros Bizjak  <ubizjak@gmail.com>
390
391         Backport from mainline
392         2013-01-22  Uros Bizjak  <ubizjak@gmail.com>
393
394         PR target/56028
395         * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
396         alternative to (o,r).
397         (*movdi_internal_rex64): Remove (!o,n) alternative.
398         (DImode immediate->memory splitter): Remove.
399         (DImode immediate->memory peephole2): Remove.
400         (movtf): Enable for TARGET_64BIT || TARGET_SSE.
401         (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
402         alternative to (!o,*r).
403         (*movtf_internal_sse): New pattern.
404         (*movxf_internal_rex64): New pattern.
405         (*movxf_internal): Disable for TARGET_64BIT.
406         (*movdf_internal_rex64): Remove (!o,F) alternative.
407
408         2013-01-23  Uros Bizjak  <ubizjak@gmail.com>
409
410         * config/i386/i386.md (*movdf_internal_rex64): Disparage alternatives
411         involving stack registers slightly.
412
413         2013-01-24  Uros Bizjak  <ubizjak@gmail.com>
414
415         * config/i386/constraints.md (Yf): New constraint.
416         * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
417         of f constraint to conditionaly disable x87 register preferences.
418         (*movdf_internal): Ditto.
419         (*movsf_internal): Ditto.
420
421         2012-01-24  Uros Bizjak  <ubizjak@gmail.com>
422
423         * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
424         (*movtf_internal_rex64): Add (!o,C) alternative
425         (*movxf_internal_rex64): Ditto.
426         (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
427
428 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
429
430         * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
431
432 2013-01-24  Martin Jambor  <mjambor@suse.cz>
433
434         Backport from mainline
435         2013-01-04  Martin Jambor  <mjambor@suse.cz>
436
437         PR tree-optimization/55755
438         * tree-sra.c (sra_modify_assign): Do not check that an access has no
439         children when trying to avoid producing a VIEW_CONVERT_EXPR.
440
441 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
442
443         Backport from mainline
444         2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
445
446         * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
447
448 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
449
450         PR rtl-optimization/56023
451         * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
452         dependent on debug instruction.
453
454 2013-01-21  Martin Jambor  <mjambor@suse.cz>
455
456         Backport from mainline
457         2013-01-17  Martin Jambor  <mjambor@suse.cz>
458
459         PR tree-optimizations/55264
460         * cgraph.c (cgraph_create_virtual_clone): Mark clones as non-virtual.
461         * cgraph.h (cgraph_only_called_directly_p_or_aliased_p): Return false
462         for virtual functions.
463         * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
464         for virtual methods.
465         * ipa.c (cgraph_remove_unreachable_nodes): Never return true for
466         virtual methods before inlining is over.
467
468 2013-01-17  Uros Bizjak  <ubizjak@gmail.com>
469
470         Backport from mainline
471         2012-01-17  Uros Bizjak  <ubizjak@gmail.com>
472
473         PR target/55981
474         * config/i386/sync.md (atomic_store<mode>): Generate SWImode
475         store through atomic_store<mode>_1.
476         (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
477
478 2013-01-16  Richard Biener  <rguenther@suse.de>
479
480         PR middle-end/55882
481         * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
482         account for bitpos when computing alignment.
483
484 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
485
486         Backport from 2013-01-14 trunk r195169.
487
488         PR target/55974
489         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
490         etc. to 1 and not to __flash.
491         Use LL suffix for __INT24_MAX__ with -mint8.
492         Use ULL suffix for __UINT24_MAX__ with -mint8.
493
494 2013-01-14  Matthias Klose  <doko@ubuntu.com>
495
496         * doc/invoke.texi: Document -print-multiarch.
497         * doc/install.texi: Document --enable-multiarch.
498         * doc/fragments.texi: Document MULTILIB_OSDIRNAMES, MULTIARCH_DIRNAME.
499         * configure.ac: Add --enable-multiarch option.
500         Substitute with_cpu, with_float.
501         * configure: Regenerate.
502         * Makefile.in (s-mlib): Pass MULTIARCH_DIRNAME to genmultilib.
503         enable_multiarch, with_cpu, with_float: New macros.
504         if_multiarch: New macro, define in terms of enable_multiarch.
505         * genmultilib: Add new argument for the multiarch name.
506         * gcc.c (multiarch_dir): Define.
507         (for_each_path): Search for multiarch suffixes.
508         (driver_handle_option): Handle multiarch option.
509         (do_spec_1): Pass -imultiarch if defined.
510         (main): Print multiarch.
511         (set_multilib_dir): Separate multilib and multiarch names
512         from multilib_select.
513         (print_multilib_info): Ignore multiarch names in multilib_select.
514         * incpath.c (add_standard_paths): Search the multiarch include dirs.
515         * cppdefault.h (default_include): Document multiarch in multilib
516         member.
517         * cppdefault.c: [LOCAL_INCLUDE_DIR, STANDARD_INCLUDE_DIR] Add an
518         include directory for multiarch directories.
519         * common.opt: New options --print-multiarch and -imultilib.
520
521         * config.gcc <i[34567]86-*-linux* | x86_64-*-linux*> (tmake_file):
522         Include i386/t-linux.
523         <i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu> (tmake_file):
524         Include i386/t-kfreebsd.
525         <i[34567]86-*-gnu*> (tmake_file): Include i386/t-gnu.
526         * config/i386/t-linux64: Add multiarch names in
527         MULTILIB_OSDIRNAMES, define MULTIARCH_DIRNAME.
528         * config/i386/t-gnu: New file.
529         * config/i386/t-kfreebsd: Likewise.
530         * config/i386/t-linux: Likewise.
531
532         * config/sparc/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
533         * config/sparc/t-linux: New file; define MULTIARCH_DIRNAME.
534         * config.gcc <sparc-*-linux*> (tmake_file): Include sparc/t-linux
535         for 32bit non-biarch configurations.
536
537         * config/pa/t-linux: New file; define MULTIARCH_DIRNAME.
538         * config.gcc <hppa*64*-*-linux*, hppa*-*-linux*> (tmake_file):
539         Include pa/t-linux.
540
541         * config/mips/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
542
543         * config/arm/t-linux-eabi: Define MULTIARCH_DIRNAME for linux target.
544
545         * config/rs6000/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
546         * config/rs6000/t-linux: New file; define MULTIARCH_DIRNAME.
547         * config/rs6000/t-fprules (SOFT_FLOAT_CPUS): New macro. Add e300c2
548         to the list.
549         (MULTILIB_MATCHES_FLOAT): Define in terms of SOFT_FLOAT_CPUS.
550         * config.gcc <powerpc-*-linux* | powerpc64-*-linux*> (tmake_file):
551         Include rs6000/t-linux for 32bit non-biarch configurations.
552
553         * config/s390/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
554
555         * config/m68k/t-linux: Define MULTIARCH_DIRNAME.
556
557         * config/ia64/t-linux: New file; define MULTIARCH_DIRNAME.
558         * config.gcc <ia64*-*-linux*> (tmake_file): Include ia64/t-linux.
559
560         * config/alpha/t-linux: New file; define MULTIARCH_DIRNAME.
561         * config.gcc <alpha*-*-linux*> (tmake_file): Include alpha/t-linux.
562
563 2013-01-14  Eric Botcazou  <ebotcazou@adacore.com>
564
565         * tree-vectorizer.h (vect_get_single_scalar_iteraion_cost): Fix typo.
566         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Likewise.
567         (vect_estimate_min_profitable_iter): Adjust to above fix.
568         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
569
570 2013-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
571
572         Backport from mainline
573         2013-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
574
575         * doc/extend.texi (X86 Built-in Functions): Add whitespace in
576         __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
577         documentation.  Add missing '__' in front of
578         __builtin_ia32_packssdw256.
579
580 2013-01-09  Uros Bizjak  <ubizjak@gmail.com>
581
582         Backport from mainline
583         2013-01-09  Uros Bizjak  <ubizjak@gmail.com>
584
585         * config/i386/sse.md (*vec_interleave_highv2df): Change mode
586         attribute of movddup insn to DF.
587         (*vec_interleave_lowv2df): Ditto.
588         (vec_dupv2df): Ditto.
589
590 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
591
592         Backport from 2013-01-07 trunk r194991, r194992.
593
594         PR target/55897
595         * doc/extend.texi (AVR Named Address Spaces): __memx goes into
596         .progmemx.data now.
597
598         * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
599         (avr_addrspace_t): Add .section_name field.
600         * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
601         array size.
602         (avr_addrspace): Same.  Initialize .section_name.  Remove last
603         NULL entry.  Put __memx into .progmemx.data.
604         (progmem_section_prefix): Remove.
605         (avr_asm_init_sections): No need to initialize progmem_section.
606         (avr_asm_named_section): Use avr_addrspace[].section_name to get
607         section name prefix.
608         (avr_asm_select_section): Ditto.  And use get_unnamed_section to
609         retrieve the progmem section.
610         * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
611         boundary to run over avr_addrspace[].
612         (avr_register_target_pragmas): Ditto.
613
614 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
615
616         Backport from 2013-01-07 trunk r194978.
617
618         PR target/54461
619         * doc/install.texi (Cross-Compiler-Specific Options): Document
620         --with-avrlibc.
621
622 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
623
624         Backport from 2013-01-07 trunk r194968.
625
626         PR other/55243
627         * config/avr/t-avr: Don't automatically rebuild
628         $(srcdir)/config/avr/t-multilib
629         $(srcdir)/config/avr/avr-tables.opt
630         (avr-mcus): New phony target to build them on request.
631         (s-avr-mlib): Remove.
632         * avr/avr-mcus.def: Adjust comments.
633
634 2013-01-07  Terry Guo  <terry.guo@arm.com>
635
636         Backport from mainline
637         2012-12-19  Terry Guo  <terry.guo@arm.com>
638
639         * config/arm/arm.c (thumb_find_work_register): Check argument
640         register number based on current PCS.
641
642 2013-01-06  Uros Bizjak  <ubizjak@gmail.com>
643
644         Backport from mainline
645         2013-01-03  Uros Bizjak  <ubizjak@gmail.com>
646
647         PR target/55712
648         * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
649         selected code model, define __code_mode_small__, __code_model_medium__,
650         __code_model_large__, __code_model_32__ or __code_model_kernel__.
651         * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
652         xchg temporary register with %k.  Declare temporary register as
653         early clobbered.
654         [__x86_64__]: For medium and large code models, preserve %rbx register.
655
656 2013-01-03  Richard Henderson  <rth@redhat.com>
657
658         * config/i386/i386.c (ix86_expand_move): Always assign to op1
659         after eliminating TLS symbols.
660
661 2013-01-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
662
663         PR target/53789
664         * config/pa/pa.md (movsi): Revert previous change.
665         * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
666         references.
667
668 2013-01-02  Rainer Emrich  <rainer@emrich-ebersheim.de>
669
670         PR bootstrap/55707
671         * graphite-dependences.c (hash_poly_ddr_p): Cast from pointer via
672         intptr_t.
673
674 2013-01-02  Jason Merrill  <jason@redhat.com>
675
676         PR c++/55804
677         * tree.c (build_array_type_1): Revert earlier change.
678
679 2012-12-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
680
681         PR target/53789
682         * config/pa/pa.md (movsi): Reject expansion of TLS symbol references
683         after reload starts.
684
685 2012-12-21  Martin Jambor  <mjambor@suse.cz>
686
687         PR tree-optimization/55355
688         * tree-sra.c (type_internals_preclude_sra_p): Also check that
689         bit_position is small enough to fit a single HOST_WIDE_INT.
690
691 2012-12-21  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
692
693         * config.gcc: Match arm*-*-uclinux*eabi* for EABI uCLinux.
694
695 2012-12-18  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
696
697         Backport from mainline
698         2012-10-15  Matthias Klose  <doko@ubuntu.com>
699
700         * config.gcc: Match arm*-*-linux-* for ARM Linux/GNU.
701         * doc/install.texi: Use arm-*-*linux-* instead of arm-*-*linux-gnueabi.
702
703 2012-12-16  Eric Botcazou  <ebotcazou@adacore.com>
704             Tomash Brechko  <tomash.brechko@gmail.com>
705
706         PR target/55673
707         * config/sparc/sparc.c (sparc_emit_membar_for_model): Fix reversed
708         handling of before and after cases.
709         * config/sparc/sync.md (atomic_store): Fix pasto.
710
711 2012-12-14  Yvan Roux  <yvan.roux@linaro.org>
712
713         * optabs.c (expand_atomic_store): Elide redundant model test.
714
715 2012-12-13  Richard Henderson  <rth@redhat.com>
716
717         PR middle-end/55492
718         * optabs.c (expand_atomic_load): Emit acquire barrier after the load.
719
720 2012-12-11  Eric Botcazou  <ebotcazou@adacore.com>
721
722         PR target/54121
723         * config/sparc/sparc.md (tldo_stb_sp32): Fix pasto.
724         (tldo_stb_sp64): Likewise.
725         (tldo_sth_sp32): Likewise.
726         (tldo_sth_sp64): Likewise.
727         (tldo_stw_sp32): Likewise.
728         (tldo_stw_sp64): Likewise.
729         (tldo_stx_sp64): Likewise.
730
731 2012-12-10 Kai Tietz  <ktietz@redhat.com>
732
733         PR target/53912
734         * print-tree.c (print_node): Cast from pointer via uintptr_t.
735
736 2012-12-07  Uros Bizjak  <ubizjak@gmail.com>
737
738         Backport from mainline
739         2012-12-06  Uros Bizjak  <ubizjak@gmail.com>
740                     H.J. Lu  <hongjiu.lu@intel.com>
741
742         PR target/55597
743         * config/i386/i386.c (legitimize_tls_address): Zero-extend x to Pmode,
744         before using it as insn or call equivalent.
745
746 2012-12-06  Jason Merrill  <jason@redhat.com>
747
748         PR c++/55032
749         * tree.c (build_array_type_1): Re-layout if we found it in the
750         hash table.
751
752 2012-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
753
754         * config/pa/pa.md: Use "const_int 0" instead of match_test to simplify
755         opaque cond in all call insns.
756
757 2012-12-03  Eric Botcazou  <ebotcazou@adacore.com>
758
759         * config/ia64/ia64.c (ia64_compute_frame_size): Allocate the scratch
760         area if the function allocates dynamic stack space.
761         (ia64_initial_elimination_offset): Adjust offsets to above change.
762
763 2012-12-03  Richard Biener  <rguenther@suse.de>
764
765         Backport from mainline
766         2012-09-24  Richard Guenther  <rguenther@suse.de>
767
768         PR tree-optimization/53663
769         * tree-ssa-sccvn.c (vn_reference_lookup_3): Conditional
770         native encode/interpret translation on VN_WALKREWRITE.
771
772 2012-12-03 Kai Tietz  <ktietz@redhat.com>
773
774         PR target/53912
775         * ggc-common.c (POINTER_HASH): Cast from pointer via intptr_t.
776
777         PR target/53912
778         * tree-dump.c (dump_pointer): Print pointer via HOST_WIDE_INT_PRINT.
779
780         PR target/53912
781         * pointer-set.c (hash1): Cast from pointer via uintptr_t.
782
783 2012-12-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
784
785         Backport from mainline:
786         2012-11-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
787
788         PR target/55195
789         * config/pa/pa.md (type): Add sibcall and sh_func_adrs insn types.
790         (in_branch_delay): Don't allow sibcall or sh_func_adrs insns.
791         (in_nullified_branch_delay): Likewise.
792         (in_call_delay): Likewise.
793         Define delay for sibcall insns.  Adjust Z3 and Z4 insn reservations for
794         new types.  Add opaque cond to mark all calls, sibcalls, dyncalls and
795         the $$sh_func_adrs call as variable.  Update type of sibcalls and
796         $$sh_func_adrs call.
797         * config/pa/pa.c (pa_adjust_insn_length): Revise to return updated
798         length instead of adjustment.  Handle negative and undefined call
799         adjustments for insn_default_length.  Remove adjustment for millicode
800         insn with unfilled delay slot.
801         (pa_output_millicode_call): Update for revised millicode length.
802         * config/pa/pa.h (ADJUST_INSN_LENGTH): Revise to set LENGTH.
803
804 2012-11-29  Kai Tietz  <ktietz@redhat.com>
805
806         PR target/55171
807         * prefix.c (lookup_key): Replace xmalloc/xrealloc
808         use by XNEWVEC/XRESIZEVEC.
809
810         * i386.c (get_scratch_register_on_entry): Handle
811         thiscall-convention.
812         (split_stack_prologue_scratch_regno): Likewise.
813         (ix86_static_chain): Likewise.
814         (x86_output_mi_thunk): Likewise.
815
816 2012-11-28  H.J. Lu  <hongjiu.lu@intel.com>
817
818         Backported from mainline
819         2012-11-27  H.J. Lu  <hongjiu.lu@intel.com>
820                     Markus Trippelsdorf  <markus@trippelsdorf.de>
821
822         PR lto/54795
823         * lto-opts.c (lto_write_options): Also handle
824         OPT_SPECIAL_unknown, OPT_SPECIAL_ignore and
825         OPT_SPECIAL_program_name.
826
827         PR lto/55474
828         * lto-wrapper.c (merge_and_complain): Handle
829         OPT_SPECIAL_unknown, OPT_SPECIAL_ignore,
830         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
831
832 2012-11-27  Paolo Bonzini  <pbonzini@redhat.com>
833
834         PR rtl-optimization/55489
835         * gcse.c (compute_transp): Precompute a canonical version
836         of XEXP (x, 0), and pass it to canon_true_dependence.
837
838 2012-11-27  Richard Biener  <rguenther@suse.de>
839
840         PR middle-end/55331
841         * gimple-fold.c (gimplify_and_update_call_from_tree): Replace
842         stmt with a NOP instead of removing it.
843
844 2012-11-26  Richard Biener  <rguenther@suse.de>
845
846         Backport from mainline
847         2012-10-19  Richard Biener  <rguenther@suse.de>
848
849         PR tree-optimization/54976
850         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
851         Robustify against odd inner_mode inputs.
852
853         2012-10-12  Richard Biener  <rguenther@suse.de>
854
855         PR tree-optimization/54894
856         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
857         Handle over-aligned scalar types properly.
858
859         2012-10-02  Richard Guenther  <rguenther@suse.de>
860
861         PR middle-end/54735
862         * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before
863         cleaning up the CFG.
864
865 2012-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
866
867         Backport from mainline
868         2012-11-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
869
870         * config/rs6000/rs6000.md (movdf_hardfloat32): Add a comment
871         explaining the register ordering preferences.
872
873         2012-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
874         * config/rs6000/rs6000.md (movdf_hardfloat32): Reorder move
875         constraints so that the traditional floating point loads, stores,
876         and moves are done first, then the VSX loads, stores, and moves,
877         and finally the GPR loads, stores, and moves so that reload
878         chooses FPRs over GPRs, and uses the traditional load/store
879         instructions which provide an offset.
880         (movdf_hardfloat64): Likewise.
881
882 2012-11-19  H.J. Lu  <hongjiu.lu@intel.com>
883
884         Backported from mainline
885         2012-11-13  Eric Botcazou  <ebotcazou@adacore.com>
886                     H.J. Lu  <hongjiu.lu@intel.com>
887
888         PR middle-end/55142
889         * config/i386/i386.c (legitimize_pic_address): Properly handle
890         REG + CONST.
891         (ix86_print_operand_address): Set code to 'k' when forcing
892         addr32 prefix.  For x32, zero-extend negative displacement if
893         it < -16*1024*1024.
894
895 2012-11-12  Eric Botcazou  <ebotcazou@adacore.com>
896
897         * common.opt (fvar-tracking-uninit): Document.
898         * toplev.c (process_options): Fix handling of flag_var_tracking_uninit.
899         * config/darwin.c (darwin_override_options): Likewise.
900
901 2012-11-11  Eric Botcazou  <ebotcazou@adacore.com>
902
903         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): Tweak.
904         * config/sparc/sol2.h (TARGET_CPU_niagara4 support): Fix pasto.
905
906 2012-11-09  Eric Botcazou  <ebotcazou@adacore.com>
907
908         * doc/install.texi (sparc64-x-solaris2): Mention MPC as well.
909
910 2012-11-09  Eric Botcazou  <ebotcazou@adacore.com>
911
912         * config/i386/i386.c (release_scratch_register_on_entry): Also adjust
913         sp_offset manually.
914
915 2012-11-07  Uros Bizjak  <ubizjak@gmail.com>
916
917         Backport from mainline
918         2012-11-06  Uros Bizjak  <ubizjak@gmail.com>
919
920         * config/i386/i386.c (ix86_init_machine_status): Do not
921         explicitly clear tls_descriptor_call_expanded_p again.
922
923         2012-11-06  Uros Bizjak  <ubizjak@gmail.com>
924
925         * config/i386/sse.md
926         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Mark operand 0
927         as read and written by the instruction.
928
929         2012-11-06  Uros Bizjak  <ubizjak@gmail.com>
930
931         * config/i386/i386.c (TARGET_INSTANTIATE_DECLS): New define.
932         (ix86_instantiate_decls): New function.
933         (ix86_expand_builtin) <case IX86_BUILTIN_LDMXCSR>: Use SLOT_TEMP
934         stack slot instead of SLOT_VIRTUAL.
935         <case IX86_BUILTIN_STMXCSR>: Ditto.
936         (assign_386_stack_local): Do not assert when virtual slot is valid.
937         * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_VIRTUAL.
938         * config/i386/i386.md (truncdfsf2): Do not use SLOT_VIRTUAL stack slot.
939         (truncxf<mode>2): Ditto.
940         (floatunssi<mode>2): Ditto.
941         (isinf<mode>2): Ditto.
942         * config/i386/sync.md (atomic_load<mode>): Ditto.
943         (atomic_store<mode>): Ditto.
944
945 2012-11-07  Eric Botcazou  <ebotcazou@adacore.com>
946
947         PR middle-end/55219
948         * fold-const.c (fold_binary_op_with_conditional_arg): Do not fold if
949         the argument is itself a conditional expression.
950
951 2012-11-05  H.J. Lu  <hongjiu.lu@intel.com>
952
953         * config/i386/i386.c (print_reg): Replace REX_INT_REG_P with
954         REX_INT_REGNO_P.
955
956 2012-11-05  Eric Botcazou  <ebotcazou@adacore.com>
957
958         PR tree-optimization/54986
959         * gimple-fold.c (canonicalize_constructor_val): Strip again all no-op
960         conversions on entry but add them back on exit if needed.
961
962 2012-11-05  Richard Sandiford  <rdsandiford@googlemail.com>
963
964         PR target/55204
965         * config/i386/i386.c (ix86_address_subreg_operand): Remove stack
966         pointer check.
967         (print_reg): Use true_regnum rather than REGNO.
968         (ix86_print_operand_address): Remove SUBREG handling.
969
970 2012-11-05  Jakub Jelinek  <jakub@redhat.com>
971
972         Backported from mainline
973         2012-10-24  Jakub Jelinek  <jakub@redhat.com>
974
975         PR debug/54828
976         * gimple.h (is_gimple_sizepos): New inline function.
977         * gimplify.c (gimplify_one_sizepos): Use it.  Remove useless
978         final assignment to expr variable.
979         * tree.c (RETURN_TRUE_IF_VAR): Return true also if
980         !TYPE_SIZES_GIMPLIFIED (type) and _t is going to be gimplified
981         into a local temporary.
982
983         2012-10-10  Jakub Jelinek  <jakub@redhat.com>
984
985         PR tree-optimization/54877
986         * tree-vect-loop.c (vect_is_simple_reduction_1): For MINUS_EXPR
987         use make_ssa_name instead of copy_ssa_name.
988
989 2012-11-03  Peter Bergner  <bergner@vnet.ibm.com>
990
991         Backport from mainline
992         2012-10-31  Jakub Jelinek  <jakub@redhat.com>
993
994         PR tree-optimization/53708
995         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
996         user-supplied alignment when used with an explicit section name.
997
998 2012-11-02  Jeff Law  <law@redhat.com>
999
1000         PR tree-optimization/54985
1001         * tree-ssa-threadedge.c (cond_arg_set_in_bb): New function extracted
1002         from thread_across_edge.
1003         (thread_across_edge): Use it in all cases where we might thread
1004         across a back edge.
1005
1006 2012-10-31  Eric Botcazou  <ebotcazou@adacore.com>
1007
1008         * config/i386/i386.c (ix86_expand_prologue): Emit frame info for the
1009         special register pushes before frame probing and allocation.
1010
1011 2012-10-31  Ralf Corsépius  <ralf.corsepius@rtems.org>,
1012             Joel Sherrill  <joel.sherrill@oarcorp.com>
1013
1014         * config/sparc/t-rtems: New (Custom multilibs).
1015         * config/sparc/t-rtems-64: New (Custom multilibs).
1016         * config.gcc (sparc64-*-rtems*): Add sparc/t-rtems-64.
1017         (sparc-*-rtems*): Add sparc/t-rtems.
1018
1019 2012-10-30  Eric Botcazou  <ebotcazou@adacore.com>
1020
1021         * cse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in
1022         head comment.
1023         (hash_rtx): Likewise.
1024
1025 2012-10-29  Terry Guo  <terry.guo@arm.com>
1026
1027         Backport from mainline
1028         2012-10-11  Terry Guo  <terry.guo@arm.com>
1029
1030         * config/arm/arm.c (arm_arch6m): New variable to denote armv6-m
1031         architecture.
1032         * config/arm/arm.h (TARGET_HAVE_DMB): The armv6-m also has DMB
1033         instruction.
1034
1035 2012-10-26  Gunther Nikl  <gnikl@users.sourceforge.net>
1036
1037         * common/config/m68k/m68k-common.c (m68k_handle_option): Set
1038         gcc_options fields of opts_set for -m68020-40 and -m68020-60.
1039
1040 2012-10-26  Ralf Corsépius  <ralf.corsepius@rtems.org>
1041
1042         * config/avr/t-rtems: Revert previous commit.
1043
1044 2012-10-26  Terry Guo  <terry.guo@arm.com>
1045
1046         Backport from mainline
1047         2012-10-23  Terry Guo  <terry.guo@arm.com>
1048
1049         PR target/55019
1050         * config/arm/arm.c (thumb1_expand_prologue): Don't push high regs with
1051         live argument regs.
1052
1053 2012-10-26  Ralf Corsépius  <ralf.corsepius@rtems.org>
1054
1055         * config/avr/rtems.h (TARGET_OS_CPP_BUILTINS): Remove
1056         __USE_INIT_FINI__.
1057         * config/avr/t-rtems (LIB1ASMFUNCS): Filter out _exit.
1058
1059 2012-10-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
1060
1061         * config.gcc (microblaze*-*-rtems*): New target.
1062         * config/microblaze/rtems.h: New.
1063         * config/microblaze/t-rtems: New.
1064
1065 2012-10-25  Richard Biener  <rguenther@suse.de>
1066
1067         PR tree-optimization/54902
1068         * tree-ssa-pre.c (fini_pre): Return TODO.
1069         (execute_pre): Adjust.
1070         * tree-ssa-tailmerge.c (tail_merge_optimize): Delete unreachable
1071         blocks before computing dominators.
1072
1073 2012-10-24  Uros Bizjak  <ubizjak@gmail.com>
1074
1075         Backport from mainline
1076         2012-10-22  Uros Bizjak  <ubizjak@gmail.com>
1077
1078         * config/i386/i386.c (memory_address_length): Assert that non-null
1079         base or index RTXes are registers.  Do not check for REG RTXes.
1080         Determine addr32 prefix using SImode_address_operand or
1081         from original base and index RTXes.  Simplify code.
1082
1083         2012-10-21  Uros Bizjak  <ubizjak@gmail.com>
1084
1085         * config/i386/i386-protos.h (memory_address_length): Add new bool
1086         argument.  Update all uses.
1087         * config/i386/i386.c (memory_address_length): If not LEA insn, then
1088         add length of addr32 prefix based on mode of base or index register.
1089         (ix86_attr_length_address_default) <TYPE_LEA>: Do not handle SImode
1090         addresses here.  Update call to memory_address_length.
1091         (ix86_print_address_operand): Use SImode_address_operand predicate.
1092         * config/i386/predicates.md (SImode_address_operand): New.
1093         * config/i386/i386.md (lea<mode>): Use SImode_address_operand
1094         to calculate "mode" attribute.  Use SImode_address_operand predicate
1095         instead of open-coding accepted RTX codes.
1096
1097 2012-10-22  Georg-Johann Lay  <avr@gjlay.de>
1098
1099         Backport from 2012-10-22 trunk r192685.
1100         * doc/invoke.texi (AVR Options): Document __AVR_ARCH__.
1101         Note __AVR_<device>__ is not defined for cores.
1102         Don't point to --help=target.
1103         Order --mcu= documentation according to trunk:/gcc/doc/avr-mmcu.texi.
1104
1105 2012-10-19  Marek Polacek  <polacek@redhat.com>
1106
1107         Backported from mainline
1108         2012-10-19  Marek Polacek  <polacek@redhat.com>
1109
1110         PR middle-end/54945
1111         * fold-const.c (fold_sign_changed_comparison):  Punt if folding
1112         pointer/non-pointer comparison.
1113
1114 2012-10-19  Zhenqiang Chen <zhenqiang.chen@linaro.org>
1115
1116         Backported from mainline
1117         2012-10-19  Zhenqiang Chen <zhenqiang.chen@linaro.org>
1118
1119         PR target/54892
1120         * config/arm/arm.c (arm_expand_compare_and_swap): Use SImode to make
1121         sure the mode is correct when falling through from above cases.
1122
1123 2012-10-19  Alan Modra  <amodra@gmail.com>
1124
1125         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
1126         (HAVE_LD_LARGE_TOC): Likewise.
1127         * configure: Regenerate.
1128
1129 2012-10-19  Alan Modra  <amodra@gmail.com>
1130
1131         * config/rs6000/predicates.md (splat_input_operand): Don't call
1132         input_operand for MEMs.  Instead check for volatile and call
1133         memory_address_addr_space_p with modified mode.
1134
1135 2012-10-17  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1136
1137         Backported from mainline
1138         2012-07-23  Ulrich Weigand  <ulrich.weigand@linaro.org>
1139
1140         * config/arm/arm.c (arm_reorg): Ensure all insns are split.
1141
1142 2012-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1143
1144         PR rtl-optimization/54870
1145         * tree.h (TREE_ADDRESSABLE): Document special usage on SSA_NAME.
1146         * cfgexpand.c (update_alias_info_with_stack_vars ): Set it on the
1147         SSA_NAME pointer that points to a partition if there is at least
1148         one variable with it set in the partition.
1149         * dse.c (local_variable_can_escape): New predicate.
1150         (can_escape): Call it.
1151         * gimplify.c (mark_addressable): If this is a partitioned decl, also
1152         mark the SSA_NAME pointer that points to a partition.
1153
1154 2012-10-16  Andrey Belevantsev  <abel@ispras.ru>
1155
1156         Backport from mainline
1157         2012-08-09  Andrey Belevantsev  <abel@ispras.ru>
1158
1159         PR rtl-optimization/53701
1160         * sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment.
1161         rocess not only expr's vinsns but all old vinsns from expr's
1162         istory of changes.
1163
1164 2012-10-16  Andrey Belevantsev  <abel@ispras.ru>
1165
1166         Backport from mainline
1167         2012-07-31  Andrey Belevantsev  <abel@ispras.ru>
1168         PR target/53975
1169
1170         * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
1171         Revert
1172         2011-08-04  Sergey Grechanik  <mouseentity@ispras.ru>
1173         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
1174         only if producer writes to the register given by regno.
1175
1176 2012-09-15  Uros Bizjak  <ubizjak@gmail.com>
1177
1178         Backport from mainline
1179         2012-10-15  Uros Bizjak  <ubizjak@gmail.com>
1180
1181         * config/i386/sse.md (UNSPEC_MOVU): Remove.
1182         (UNSPEC_LOADU): New.
1183         (UNSPEC_STOREU): Ditto.
1184         (<sse>_movu<ssemodesuffix><avxsizesuffix>): Split to ...
1185         (<sse>_loadu<ssemodesuffix><avxsizesuffix>): ... this and ...
1186         (<sse>_storeu<ssemodesuffix><avxsizesuffix>) ... this.
1187         (<sse2>_movdqu<avxsizesuffix>): Split to ...
1188         (<sse2>_loaddqu<avxsizesuffix>): ... this and ...
1189         (<sse2>_storedqu<avxsizesuffix>): ... this.
1190         (*sse4_2_pcmpestr_unaligned): Update.
1191         (*sse4_2_pcmpistr_unaligned): Ditto.
1192
1193         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Use
1194         gen_avx_load{dqu,ups,upd}256 to load from unaligned memory and
1195         gen_avx_store{dqu,ups,upd}256 to store to unaligned memory.
1196         (ix86_expand_vector_move_misalign): Use gen_sse_loadups or
1197         gen_sse2_load{dqu,upd} to load from unaligned memory and
1198         gen_sse_loadups or gen_sse2_store{dqu,upd}256 to store to
1199         unaligned memory.
1200         (struct builtin_description bdesc_spec) <IX86_BUILTIN_LOADUPS>:
1201         Use CODE_FOR_sse_loadups.
1202         <IX86_BUILTIN_LOADUPD>: Use CODE_FOR_sse2_loadupd.
1203         <IX86_BUILTIN_LOADDQU>: Use CODE_FOR_sse2_loaddqu.
1204         <IX86_BUILTIN_STOREUPS>: Use CODE_FOR_sse_storeups.
1205         <IX86_BUILTIN_STOREUPD>: Use CODE_FOR_sse2_storeupd.
1206         <IX86_BUILTIN_STOREDQU>: Use CODE_FOR_sse2_storedqu.
1207         <IX86_BUILTIN_LOADUPS256>: Use CODE_FOR_avx_loadups256.
1208         <IX86_BUILTIN_LOADUPD256>: Use CODE_FOR_avx_loadupd256.
1209         <IX86_BUILTIN_LOADDQU256>: Use CODE_FOR_avx_loaddqu256.
1210         <IX86_BUILTIN_STOREUPS256>: Use CODE_FOR_avx_storeups256.
1211         <IX86_BUILTIN_STOREUPD256>: Use CODE_FOR_avx_storeupd256.
1212         <IX86_BUILTIN_STOREDQU256>: Use CODE_FOR_avx_storedqu256.
1213
1214 2012-10-15  Steven Bosscher  <steven@gcc.gnu.org>
1215
1216         Backport from trunk (r190222):
1217
1218         PR tree-optimization/54146
1219         * ifcvt.c: Include pointer-set.h.
1220         (cond_move_process_if_block): Change type of then_regs and
1221         else_regs from alloca'd array to pointer_sets.
1222         (check_cond_move_block): Update for this change.
1223         (cond_move_convert_if_block): Likewise.
1224         * Makefile.in: Fix dependencies for ifcvt.o.
1225
1226 2012-10-15  Richard Guenther  <rguenther@suse.de>
1227
1228         PR tree-optimization/54920
1229         * tree-ssa-pre.c (create_expression_by_pieces): Properly
1230         allocate temporary storage for all NARY elements.
1231
1232 2012-10-08  Georg-Johann Lay  <avr@gjlay.de>
1233
1234         PR target/54854
1235         * doc/invoke.texi (AVR Options): Deprecate -mshort-calls.
1236
1237 2012-10-05  Mark Kettenis  <kettenis@openbsd.org>
1238
1239         * config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set
1240         default_use_cxa_atexit to yes.
1241
1242 2012-10-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1243
1244         * config/pa/pa.md: Adjust unamed HImode add insn pattern.
1245
1246 2012-10-05  Jan Hubicka  <jh@suse.cz>
1247             Jakub Jelinek  <jakub@redhat.com>
1248
1249         PR tree-optimization/33763
1250         * tree-inline.c (expand_call_inline): Silently ignore always_inline
1251         attribute for redefined extern inline functions.
1252
1253 2012-10-03  H.J. Lu  <hongjiu.lu@intel.com>
1254
1255         Backported from mainline
1256         2012-10-03  Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
1257
1258         * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
1259         in SSE and YMM state support check for -march=native.
1260
1261 2012-10-03  Alexandre Oliva <aoliva@redhat.com>
1262
1263         PR debug/53135
1264         * dwarf2out.c (value_format): Use block4 for dw_val_class_loc
1265         when needed.
1266
1267 2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
1268
1269         Backported from mainline
1270         2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
1271
1272         PR target/54785
1273         * doc/invoke.texi: Document -mprefer-avx128.
1274
1275 2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
1276
1277         Backported from mainline
1278         2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
1279
1280         PR target/54741
1281         *  config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
1282         (XSTATE_FP): Likewise.
1283         (XSTATE_SSE): Likewise.
1284         (XSTATE_YMM): Likewise.
1285         (host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if
1286         SSE and YMM states aren't supported.
1287
1288 2012-10-01  Tom de Vries  <tom@codesourcery.com>
1289
1290         * var-tracking.c (set_dv_changed): Add an 'inline' function specifier to
1291         the prototype.
1292
1293 2012-10-01  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1294
1295         PR target/54746
1296         * config/s390/s390.c (s390_option_override): Add missing break.
1297
1298 2012-09-29  Andreas Tobler  <andreast@fgznet.ch>
1299
1300         Backport from mainline
1301         2012-09-29  Andreas Tobler  <andreast@fgznet.ch>
1302
1303         * config.gcc: Replace 'host' with 'target' when configuring for
1304         powerpc64*-*-freebsd.
1305
1306 2012-09-28  Meador Inge  <meadori@codesourcery.com>
1307
1308         Backport from mainline
1309         2012-09-27  Meador Inge  <meadori@codesourcery.com>
1310
1311         * gcc-ar.c (main): Handle the returning of the sub-process error
1312         code correctly.
1313
1314 2012-09-28  Georg-Johann Lay  <avr@gjlay.de>
1315
1316         Backport from 2012-09-28 trunk r191821.
1317         * config/avr/avr.c (avr_pgm_check_var_decl): Fix non-error diagnostic.
1318
1319 2012-09-27  Jakub Jelinek  <jakub@redhat.com>
1320
1321         PR target/54703
1322         * simplify-rtx.c (simplify_binary_operation_1): Perform
1323         (x - (x & y)) -> (x & ~y) optimization only for integral modes.
1324
1325 2012-09-24  Eric Botcazou  <ebotcazou@adacore.com>
1326
1327         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream in
1328         TYPE_NONALIASED_COMPONENT flag.
1329         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream out
1330         TYPE_NONALIASED_COMPONENT flag.
1331
1332 2012-09-21  Richard Guenther  <rguenther@suse.de>
1333
1334         PR middle-end/54638
1335         Backport from mainline
1336         2012-04-19  Richard Guenther  <rguenther@suse.de>
1337
1338         * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
1339         array access.
1340
1341 2012-09-20  Joseph Myers  <joseph@codesourcery.com>
1342
1343         PR c/54552
1344         * c-typeck.c (c_cast_expr): When casting to a type requiring
1345         C_MAYBE_CONST_EXPR to be created, pass the inner expression to
1346         c_fully_fold first.
1347
1348 2012-09-20  Joseph Myers  <joseph@codesourcery.com>
1349
1350         PR c/54103
1351         * c-typeck.c (build_unary_op): Pass original argument of
1352         TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
1353         any C_MAYBE_CONST_EXPR, if it has integer operands.
1354         (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
1355         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
1356         to c_objc_common_truthvalue_conversion, then remove any
1357         C_MAYBE_CONST_EXPR, if they have integer operands.  Use
1358         c_objc_common_truthvalue_conversion not
1359         c_common_truthvalue_conversion.
1360         (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
1361         call note_integer_operands for arguments with integer operands
1362         that are not integer constants.
1363
1364 2012-09-20  Jakub Jelinek  <jakub@redhat.com>
1365
1366         Backported from mainline
1367         2012-09-17  Jakub Jelinek  <jakub@redhat.com>
1368
1369         PR tree-optimization/54563
1370         * tree-ssa-math-opts.c (execute_cse_sincos): Call
1371         gimple_purge_dead_eh_edges if last call has been changed.
1372
1373         2012-09-14  Jakub Jelinek  <jakub@redhat.com>
1374
1375         PR target/54564
1376         * config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1)
1377         instead of (match_dup 0) as second argument to vec_merge.
1378         (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise.
1379         Remove third alternative.
1380         (*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise.  Negate
1381         operand 2 instead of operand 1, but put it as first argument
1382         of fma.
1383         * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss,
1384         _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead
1385         of the first.
1386
1387 2012-09-20  Jakub Jelinek  <jakub@redhat.com>
1388
1389         * BASE-VER: Set to 4.7.3.
1390         * DEV-PHASE: Set to prerelease.
1391
1392 2012-09-20  Release Manager
1393
1394         * GCC 4.7.2 released.
1395
1396 2012-09-15  Andi Kleen  <ak@linux.intel.com>
1397
1398         Backport from mainline
1399         2012-09-07  Andi Kleen  <ak@linux.intel.com>
1400
1401         * gcc/lto-streamer.h (res_pair): Add.
1402         (lto_file_decl_data): Replace resolutions with respairs.
1403         Add max_index.
1404         * gcc/lto/lto.c (lto_resolution_read): Remove max_index.  Add rp.
1405         Initialize respairs.
1406         (lto_file_finalize): Set up resolutions vector lazily from respairs.
1407
1408 2012-09-14  Walter Lee  <walt@tilera.com>
1409
1410         Backport from mainline.
1411         2012-09-14  Walter Lee  <walt@tilera.com>
1412
1413         * doc/invoke.texi (Option Summary): fix typesetting for -mcpu
1414         option for TILEPro and TILE-Gx.
1415
1416 2012-09-13  Uros Bizjak  <ubizjak@gmail.com>
1417
1418         * config/i386/i386.h (x86_prefetchw): New global variable.
1419         (TARGET_PREFETCHW): New macro.
1420         * config/i386/i386.c (PTA_PREFETCHW): Ditto.
1421         (processor_alias_table): Add PTA_PREFETCHW to
1422         bdver1, bdver2 and btver1.
1423         (ix86_option_override_internal): Set x86_prefetchw for
1424         PTA_PREFETCHW targets.
1425         * config/i386/i386.md (prefetch): Expand to prefetchw
1426         for TARGET_PREFETCHW.
1427         (*prefetch_3dnow_<mode>): Also enable for TARGET_PREFETCHW.
1428
1429         Backport from mainline
1430         2012-08-13  Uros Bizjak  <ubizjak@gmail.com>
1431
1432         * config/i386/i386.md (prefetch): Do not assert mode of operand 0.
1433         (*prefetch_sse_<mode>): Do not set mode of address_operand predicate.
1434         Rename to ...
1435         (*prefetch_sse): ... this.
1436         (*prefetch_3dnow_<mode>): Do not set mode of address_operand predicate.
1437         Rename to ...
1438         (*prefetch_3dnow): ... this.
1439
1440 2012-09-13  Jakub Jelinek  <jakub@redhat.com>
1441
1442         PR c/54559
1443         * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
1444         COMPLEX_TYPE with in_late_binary_op set temporarily to true.
1445
1446 2012-09-12  Teresa Johnson  <tejohnson@google.com>
1447
1448         Backport from mainline.
1449         2012-09-12  Teresa Johnson  <tejohnson@google.com>
1450
1451         PR gcov-profile/54487
1452         * configure.ac (HOST_HAS_F_SETLKW): Set based on compile
1453         test using F_SETLKW with fcntl.
1454         * configure, config.in: Regenerate.
1455
1456 2012-09-12  Uros Bizjak  <ubizjak@gmail.com>
1457
1458         Backport from mainline
1459         2012-09-12  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
1460
1461         * config/i386/i386.md : Comments on fma4 instruction selection
1462         reflect requirement on register pressure based cost model.
1463
1464         * config/i386/driver-i386.c (host_detect_local_cpu): fma4
1465         flag is set-reset as informed by the cpuid flag.
1466
1467         * config/i386/i386.c (processor_alias_table): fma4
1468         flag is enabled for bdver2.
1469
1470 2012-09-12  Christian Bruel  <christian.bruel@st.com>
1471
1472         * config/sh/newlib.h (NO_IMPLICIT_EXTERN_C): Define.
1473
1474 2012-09-12  Jakub Jelinek  <jakub@redhat.com>
1475
1476         * config.gcc: Obsolete picochip-*.
1477
1478 2012-09-11  Richard Guenther  <rguenther@suse.de>
1479
1480         PR debug/54534
1481         * cgraph.h (varpool_can_remove_if_no_refs): Restore dependence
1482         on flag_toplevel_reorder.
1483
1484 2012-09-10  Richard Henderson  <rth@redhat.com>
1485
1486         * config/alpha/predicates.md (small_symbolic_operand): Disallow
1487         large offsets.
1488
1489 2012-09-10  Georg-Johann Lay  <avr@gjlay.de>
1490
1491         Backport from 2012-09-10 mainline r191132.
1492
1493         PR target/54536
1494         * config/avr/avr-mcus.def (at90usb1287): Set LIBRARY_NAME to "usb1287".
1495
1496 2012-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
1497
1498         PR middle-end/54515
1499         * tree-sra.c (disqualify_base_of_expr): Check for possible
1500         NULL_TREE returned by get_base_address()
1501
1502 2012-09-07  Richard Guenther  <rguenther@suse.de>
1503
1504         Backport from mainline
1505         2012-06-26  Jan Hubicka  <jh@suse.cz>
1506
1507         PR lto/53572
1508         * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
1509         used symbols.
1510
1511 2012-09-07  Richard Guenther  <rguenther@suse.de>
1512
1513         Backport from mainline
1514         2012-07-13  Richard Guenther  <rguenther@suse.de>
1515
1516         PR tree-optimization/53922
1517         * tree-vrp.c (value_inside_range): Change prototype to take
1518         min/max instead of value-range.
1519         (range_includes_zero_p): Likewise.  Return the result from
1520         value_inside_range.
1521         (extract_range_from_binary_expr_1): Adjust to handle dont-know
1522         return value from range_includes_zero_p.
1523         (extract_range_from_unary_expr_1): Likewise.
1524         (compare_range_with_value): Likewise.
1525         (vrp_meet_1): Likewise.
1526
1527 2012-09-07  Richard Guenther  <rguenther@suse.de>
1528
1529         PR middle-end/53667
1530         * tree-ssa-structalias.c (handle_rhs_call): Properly clobber
1531         EAF_NOESCAPED arguments.  Transitively close non-EAF_DIRECT
1532         arguments separately.
1533
1534 2012-09-07  Jakub Jelinek  <jakub@redhat.com>
1535
1536         Backported from mainline
1537         2012-09-06  Jakub Jelinek  <jakub@redhat.com>
1538
1539         PR rtl-optimization/54455
1540         * sel-sched-ir.c (maybe_tidy_empty_bb): Give up if previous fallthru
1541         bb ends up with asm goto referencing bb's label.
1542
1543 2012-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1544
1545         Backport from mainline.
1546         2012-08-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1547                     Richard Earnshaw  <richard.earnshaw@arm.com>
1548
1549         PR target/54252
1550         * config/arm/arm.c (neon_dereference_pointer): Adjust nelems by
1551         element size. Use elem_type from the formal parameter. New parameter
1552         fcode.
1553         (neon_expand_args): Adjust call to neon_dereference_pointer.
1554
1555 2012-09-06  Uros Bizjak  <ubizjak@gmail.com>
1556
1557         * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Use
1558         reg_not_xmm0_operand_maybe_avx as operand 0 constraint.
1559
1560 2012-09-06  Uros Bizjak  <ubizjak@gmail.com>
1561
1562         Backport from mainline
1563         2012-08-11  Uros Bizjak  <ubizjak@gmail.com>
1564
1565         * config/i386/i386.md (isa): Add fma and fma4.
1566         (enabled): Handle fma and fma4.
1567         * config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>.
1568         (*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>.
1569         (*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>.
1570         (*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>.
1571         (*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>.
1572         (*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>.
1573
1574         2012-08-10  Uros Bizjak  <ubizjak@gmail.com>
1575
1576         * config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>,
1577         *fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>,
1578         *fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns.
1579
1580 2012-09-06  Richard Guenther  <rguenther@suse.de>
1581
1582         PR tree-optimization/54498
1583         * tree-ssa-alias.h (get_continuation_for_phi): Add flag to
1584         abort when reaching an already visited region.
1585         * tree-ssa-alias.c (maybe_skip_until): Likewise.  And do it.
1586         (get_continuation_for_phi_1): Likewise.
1587         (walk_non_aliased_vuses): When we translated the reference,
1588         abort when we re-visit a region.
1589         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
1590
1591 2012-09-06  Andrew Pinski  <apinski@cavium.com>
1592
1593         PR tree-opt/54494
1594         * tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also.
1595
1596 2012-09-05  Jakub Jelinek  <jakub@redhat.com>
1597
1598         PR middle-end/54486
1599         * builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use
1600         build_int_cst with size_type_node instead of size_int.
1601
1602 2012-09-05  Georg-Johann Lay  <avr@gjlay.de>
1603
1604         Backport from 2012-09-05 mainline r190697.
1605
1606         PR target/54461
1607         * config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if
1608         configured --with-avrlibc.
1609         (tm_defines,target=avr-*-*): Add WITH_AVRLIBC if configured
1610         --with-avrlibc.
1611         * config/avr/avrlibc.h: New file.
1612         * config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if
1613         configured --with-avrlibc.
1614         * doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__
1615
1616 2012-09-05  Bin Cheng  <bin.cheng@arm.com>
1617
1618         Backport from 2012-09-04 mainline r190919
1619
1620         PR target/45070
1621         * config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value
1622         of size less than 4 bytes by using macro ARM_NUM_INTS.
1623         (thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS.
1624
1625 2012-09-04  Richard Henderson  <rth@redhat.com>
1626
1627         * alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.
1628
1629 2012-09-04  Georg-Johann Lay  <avr@gjlay.de>
1630
1631         Backport from 2012-09-04 mainline r190920
1632
1633         PR target/54476
1634         * config/avr/avr.c (avr_expand_delay_cycles): Mask operand with SImode.
1635
1636 2012-09-04  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1637
1638         Backport from 2012-09-04 mainline r190914
1639
1640         PR target/54220
1641         * config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New
1642         define to...
1643         (avr_allocate_stack_slots_for_args): ...this new static function.
1644
1645 2012-09-03  H.J. Lu  <hongjiu.lu@intel.com>
1646
1647         Backported from mainline
1648         2012-08-23  H.J. Lu  <hongjiu.lu@intel.com>
1649
1650         PR driver/54335
1651         * doc/invoke.texi: Add -da and remove -dm.
1652
1653 2012-09-03  Jakub Jelinek  <jakub@redhat.com>
1654
1655         Backported from mainline
1656         2012-09-01  Jakub Jelinek  <jakub@redhat.com>
1657
1658         PR target/54436
1659         * config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If
1660         operands[1] is CONST_INT_P, convert it to QImode before printing.
1661
1662         2012-08-31  Jakub Jelinek  <jakub@redhat.com>
1663
1664         PR c/54428
1665         * c-convert.c (convert): Don't call fold_convert_loc if
1666         TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
1667         is a COMPLEX_EXPR.  Remove TYPE_MAIN_VARIANT check from
1668         COMPLEX_TYPE -> COMPLEX_TYPE conversion.
1669
1670         2012-08-24  Jakub Jelinek  <jakub@redhat.com>
1671
1672         PR c/54363
1673         * gimplify.c (optimize_compound_literals_in_ctor): Only recurse
1674         if init is a CONSTRUCTOR.
1675
1676 2012-09-02  Eric Botcazou  <ebotcazou@adacore.com>
1677
1678         PR rtl-optimization/54369
1679         * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
1680         calling dbr_schedule.
1681         * config/sparc/sparc.c (sparc_reorg): Likewise.
1682
1683 2012-08-31  Kirill Yukhin  <kirill.yukhin@intel.com>
1684
1685         Backport from mainline
1686         2012-08-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
1687
1688         * config/i386/i386.c (ia32_multipass_dfa_lookahead) : Add
1689         case for Atom processor.
1690
1691 2012-08-28  Uros Bizjak  <ubizjak@gmail.com>
1692
1693         Backport from mainline
1694         2012-08-27  Uros Bizjak  <ubizjak@gmail.com>
1695
1696         PR target/46254
1697         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return
1698         true for TARGET_64BIT or !flag_pic.
1699         * config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove.
1700         (atomic_compare_and_swap_double<mode>): Change operand 2 predicate
1701         to cmpxchg8b_pic_memory_operand.  Use DWIH mode iterator.
1702         Add insn constraint.  Conditionally emit xchg asm insns.
1703         (atomic_compare_and_swap<mode>): Update calls.  Check only
1704         cmpxchg8b_pic_memory_operand in memory address fixup.
1705         (DCASMODE): Remove.
1706         (CASHMODE): Rename from DCASHMODE.
1707         (doublemodesuffix): Update modes.
1708         (regprefix): New mode attribute.
1709
1710         (unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove.
1711         <UNSPECV_CMPXCHG>: New constant.
1712         (atomic_compare_and_swap<mode>_1): Rename from
1713         atomic_compare_and_swap_single<mode>.  Update calls and
1714         unspec_volatile constants.
1715         (atomic_compare_and_swap<mode>_doubleword): Rename from
1716         atomic_compare_and_swap_double<mode>.  Update calls and
1717         unspec_volatile constants.
1718
1719 2012-08-28  Walter Lee  <walt@tilera.com>
1720
1721         Backport from mainline
1722         2012-08-28  Walter Lee  <walt@tilera.com>
1723
1724         * confg/tilegx/tilegx.md: Fix code style.
1725         (*zero_extendsidi_truncdisi): Fix typo.
1726         * config/tilegx/tilegx.c: Fix code style.
1727         (tilegx_function_profiler): Fix typo.
1728
1729 2012-08-27  Walter Lee  <walt@tilera.com>
1730
1731         Backport from mainline
1732         2012-08-27  Walter Lee  <walt@tilera.com>
1733
1734         * doc/md.texi (TILE-Gx): Fix typo.
1735
1736 2012-08-27  Walter Lee  <walt@tilera.com>
1737
1738         Backport from mainline
1739         2012-08-27  Walter Lee  <walt@tilera.com>
1740
1741         * config/tilegx/tilegx.c (tilegx_function_profiler): Fix typo.
1742         * config/tilepro/tilepro.c (tilepro_function_profiler): Ditto.
1743
1744 2012-08-27  Walter Lee  <walt@tilera.com>
1745
1746         Backport from mainline
1747         2012-08-27  Walter Lee  <walt@tilera.com>
1748
1749         * config/tilegx/tilegx.md (*bfins): Rename to insn_bfins.
1750         (insn_bfins): Delete.
1751
1752 2012-08-27  Walter Lee  <walt@tilera.com>
1753
1754         Backport from mainline
1755         2012-08-27  Walter Lee  <walt@tilera.com>
1756
1757         * config/tilegx/sync.md (atomic_compare_and_swap_bare<mode>,
1758         atomic_exchange_bare<mode>,
1759         atomic_fetch_<fetchop_name>_bare<mode>): Set type to X1_remote.
1760         * config/tilegx/tilegx-generic.md (X1_remote): New insn_reservation.
1761         * config/tilegx/tilegx.md (type): Add X1_remove.
1762         (insn_cmpexch<four_if_si>, insn_exch<four_if_si>,
1763         insn_fetchadd<four_if_si>, insn_fetchaddgez<four_if_si>,
1764         insn_fetchand<four_if_si>, insn_fetchor<four_if_si>): Set type to
1765         X1_remote.
1766
1767 2012-08-25  Eric Botcazou  <ebotcazou@adacore.com>
1768
1769         PR rtl-optimization/54088
1770         * jump.c (delete_related_insns): Robustify latest change.
1771
1772 2012-08-21  Richard Guenther  <rguenther@suse.de>
1773
1774         Backport from mainline
1775         2012-08-16  Richard Guenther  <rguenther@suse.de>
1776
1777         PR middle-end/54146
1778         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the
1779         exit vector.
1780         * ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK.
1781         * cfgloop.h (FOR_EACH_LOOP_BREAK): Fix.
1782         * tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc.
1783         * tree-ssa-loop-im.c (analyze_memory_references): Adjust.
1784         (tree_ssa_lim_finalize): Free all mem_refs.
1785         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free
1786         scc when bailing out.
1787         * modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK.
1788         * ira-build.c (loop_with_complex_edge_p): Free loop exit vector.
1789         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use
1790         FOR_EACH_LOOP_BREAK.
1791
1792         2012-08-17  Richard Guenther  <rguenther@suse.de>
1793
1794         * tree-sra.c (modify_function): Free redirect_callers vector.
1795         * ipa-split.c (split_function): Free args_to_pass vector.
1796         * tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate
1797         vec_oprnds.
1798         (new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS.
1799         * tree-vect-slp.c (vect_free_slp_instance): Free the instance.
1800         (vect_analyze_slp_instance): Free everything.
1801         (destroy_bb_vec_info): Free the SLP instances.
1802
1803         2012-08-17  Richard Guenther  <rguenther@suse.de>
1804
1805         * params.def (integer-share-limit): Decrease from 256 to 251,
1806         add rationale.
1807
1808         2012-08-21  Richard Guenther  <rguenther@suse.de>
1809
1810         * tree-ssa-loop-im.c (tree_ssa_lim_finalize): Properly free
1811         the affine expansion cache.
1812
1813 2012-08-20  Patrick Marlier  <patrick.marlier@gmail.com>
1814
1815         Backported from trunk
1816         2012-08-20  Patrick Marlier  <patrick.marlier@gmail.com>
1817
1818         PR middle-end/53992
1819         * omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION.
1820
1821 2012-08-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1822
1823         Backport from mainline.
1824         2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1825
1826         PR target/54212
1827         * config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
1828         mark as predicable. Adjust asm template.
1829         (vec_setv2di_internal): Likewise.
1830         (vec_extract<mode> VD, VQ): Likewise.
1831         (vec_extractv2di): Likewise.
1832         (neon_vget_lane<mode>_sext_internal VD, VQ): Likewise.
1833         (neon_vset_lane<mode>_sext_internal VD, VQ): Likewise.
1834         (neon_vdup_n<mode> VX, V32): Likewise.
1835         (neon_vdup_nv2di): Likewise.
1836
1837 2012-08-17  Walter Lee  <walt@tilera.com>
1838
1839         Backport from mainline
1840         2012-08-17  Walter Lee  <walt@tilera.com>
1841
1842         * config/tilegx/feedback.h (FEEDBACK_ENTER_EXPLICIT): Define.
1843         (FEEDBACK_ENTER): Define.
1844         (FEEDBACK_REENTER): Define.
1845         (FEEDBACK_ENTRY): Define.
1846         * config/tilepro/feedback.h: (FEEDBACK_ENTER_EXPLICIT): Define.
1847         (FEEDBACK_ENTER): Define.
1848         (FEEDBACK_REENTER): Define.
1849         (FEEDBACK_ENTRY): Define.
1850
1851 2012-08-16  Walter Lee  <walt@tilera.com>
1852
1853         Backport from mainline
1854         2012-08-16  Walter Lee  <walt@tilera.com>
1855
1856         * config.gcc (tilegx-*-linux*): Add feedback.h.
1857         (tilepro-*-linux*): Likewise.
1858         * config/tilegx/feedback.h: New file.
1859         * config/tilepro/feedback.h: New file.
1860
1861 2012-08-08  Pavel Chupin  <pavel.v.chupin@intel.com>
1862
1863         Backport from mainline r189840 and r187586:
1864         2012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>
1865
1866         * config/i386/i386.md (stack_protect_set): Disable the pattern
1867         for Android since Android libc (bionic) does not provide random
1868         value for stack protection guard at gs:0x14. Guard value
1869         will be provided from external symbol (default implementation).
1870         (stack_protect_set_<mode>): Likewise.
1871         (stack_protect_test): Likewise.
1872         (stack_protect_test_<mode>): Likewise.
1873         * gcc/defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
1874         not have Bionic by default
1875         * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
1876         Macro OPTION_BIONIC is defined in this file and provides Bionic
1877         accessibility status
1878
1879         2012-05-16  Igor Zamyatin  <igor.zamyatin@intel.com>
1880
1881         * configure.ac: Stack protector enabling for Android targets.
1882         * configure: Regenerate.
1883
1884 2012-08-13  Jakub Jelinek  <jakub@redhat.com>
1885
1886         Backported from trunk
1887         2012-07-19  Jakub Jelinek  <jakub@redhat.com>
1888
1889         PR rtl-optimization/53942
1890         * function.c (assign_parm_setup_reg): Avoid zero/sign extension
1891         directly from likely spilled non-fixed hard registers, move them
1892         to pseudo first.
1893
1894 2012-08-11  Uros Bizjak  <ubizjak@gmail.com>
1895
1896         * config/i386/sse.md (xop_phaddbq):  Fix vec_select selectors.
1897         (xop_phaddubq): Ditto.
1898
1899 2012-08-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
1900
1901         Backport from mainline
1902         2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>
1903                     Richard Earnshaw  <rearnsha@arm.com>
1904
1905         * target.def (vector_alignment): New target hook.
1906         * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
1907         * doc/tm.texi: Regenerate.
1908         * targhooks.c (default_vector_alignment): New function.
1909         * targhooks.h (default_vector_alignment): Add prototype.
1910         * stor-layout.c (layout_type): Use targetm.vector_alignment.
1911         * config/arm/arm.c (arm_vector_alignment): New function.
1912         (TARGET_VECTOR_ALIGNMENT): Define.
1913
1914         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
1915         vector type alignment instead of size.
1916         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
1917         element type size directly instead of computing it from alignment.
1918         Fix variable naming and comment.
1919
1920 2012-08-09  Uros Bizjak  <ubizjak@gmail.com>
1921
1922         Backport from mainline
1923         2012-08-09  Uros Bizjak  <ubizjak@gmail.com>
1924
1925         * config/alpha/alpha.c (alpha_pad_noreturn): Rename to ...
1926         (alpha_pad_function_end): ... this.  Also insert NOP between
1927         sibling call and GP load.
1928         (alpha_reorg): Update call to alpha_pad_function_end.  Expand comment.
1929
1930 2012-08-09  H.J. Lu  <hongjiu.lu@intel.com>
1931
1932         Backport from mainline
1933         2012-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
1934                     H.J. Lu  <hongjiu.lu@intel.com>
1935
1936         PR rtl-optimization/54157
1937         * combine.c (gen_lowpart_for_combine): Don't return identity
1938         for CONST or symbolic reference.
1939
1940 2012-08-06  Uros Bizjak  <ubizjak@gmail.com>
1941
1942         Backport from mainline
1943         2012-07-23  Uros Bizjak  <ubizjak@gmail.com>
1944
1945         * config/i386/i386-protos.h (ix86_lea_outperforms): Remove prototype.
1946         * config/i386/i386.c (ix86_lea_outperforms): Make static.  Make
1947         split_cost argument signed.
1948         (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
1949         (ix86_avoid_lea_for_addr): Ditto.
1950
1951         2012-07-27  Uros Bizjak  <ubizjak@gmail.com>
1952
1953         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false if
1954         the address has less than two components.
1955
1956 2012-08-02  Steve Ellcey  <sellcey@mips.com>
1957
1958         Backport from mainline
1959         2012-07-19  Steve Ellcey  <sellcey@mips.com>
1960
1961         * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
1962         MIPS16 mode.
1963
1964 2012-08-02  Uros Bizjak  <ubizjak@gmail.com>
1965
1966         Backport from mainline
1967         2012-07-24  Uros Bizjak  <ubizjak@gmail.com>
1968
1969         PR target/53961
1970         * config/i386/i386.c (ix86_legitimate_address_p): Move check for
1971         negative constant address for TARGET_X32 ...
1972         (ix86_decompose_address): ... here.  Reject constant addresses
1973         that don't satisfy x86_64_immediate_operand predicate.
1974
1975         2012-07-23  Uros Bizjak  <ubizjak@gmail.com>
1976
1977         PR target/53961
1978         * config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
1979         * config/i386/i386.c (ix86_print_operand_address): Ditto.
1980         (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
1981         addresses.  Prevent zero extensions of CONST_INT operands.
1982
1983         2012-07-22  Uros Bizjak  <ubizjak@gmail.com>
1984
1985         PR target/53961
1986         * config/i386/i386.md (*lea): New insn pattern.
1987         (*lea_1): Remove.
1988         (*lea<mode>_2): Ditto.
1989         (*lea_{3,4,5,6}_zext): Ditto.
1990         * config/i386/predicates.md (lea_address_operand): Do not reject
1991         zero-extended address operands.
1992         * config/i386/constraints.md (j): Remove address constraint.
1993         * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
1994         of an address.
1995         (ix86_print_operand_address): Handle SImode subreg of an address.
1996         (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.
1997
1998 2012-08-01  Uros Bizjak  <ubizjak@gmail.com>
1999
2000         Backport from mainline
2001         2012-03-09  Uros Bizjak  <ubizjak@gmail.com>
2002
2003         PR target/52530
2004         * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
2005         (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
2006         to set code to 'q'.
2007         * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
2008         (*movdi_internal_rex64): Use %E operand modifier for lea.
2009         (*movsi_internal): Ditto.
2010         (*lea_1): Ditto.
2011         (*lea<mode>_2): Ditto.
2012         (*lea_{3,4,5,6}_zext): Ditto.
2013         (*tls_global_dynamic_32_gnu): Ditto.
2014         (*tls_global_dynamic_64): Ditto.
2015         (*tls_dynamic_gnu2_lea_32): Ditto.
2016         (*tls_dynamic_gnu2_lea_64): Ditto.
2017         (pro_epilogue_adjust_stack_<mode>_add): Ditto.
2018
2019 2012-08-01  Uros Bizjak  <ubizjak@gmail.com>
2020
2021         Backport from mainline
2022         2012-08-01  Uros Bizjak  <ubizjak@gmail.com>
2023
2024         * config/i386/i386.c (ix86_address_subreg_operand): Reject
2025         stack pointer.
2026         (ix86_print_operand_address): Assert that parts.base and parts.index
2027         are non-NULL after call to simplify_subreg.
2028
2029 2012-07-22  Oleg Endo  <olegendo@gcc.gnu.org>
2030
2031         PR target/33135
2032         * config/sh/sh.opt (mieee): Use Var instead of Mask.  Correct
2033         description.
2034         * config/sh/sh.c (sh_option_override): Do not change
2035         flag_finite_math_only.  Set TARGET_IEEE to complement of
2036         flag_finite_math_only.
2037         * doc/invoke.texi (SH options): Add mno-ieee.  Correct
2038         description of mieee and mno-ieee behavior.
2039
2040 2012-07-20  Kirill Yukhin  <kirill.yukhin@intel.com>
2041
2042         PR target/53877
2043         * config/i386/lzcntintrin.h (_lzcnt_u32): New.
2044         (_lzcnt_u64): Ditto.
2045
2046 2012-07-20  Andrey Belevantsev  <abel@ispras.ru>
2047
2048         Backport from mainline
2049         2012-03-06  Andrey Belevantsev  <abel@ispras.ru>
2050
2051         PR rtl-optimization/52250
2052         * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
2053         to put note list into.  Unconditionally call move_bb_info.
2054         (move_bb_info): Do not assert the blocks being in the same region,
2055         just drop the note list if they are not.
2056
2057 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
2058
2059         * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
2060
2061 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
2062
2063         * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
2064         defining statement is a SSA name that occurs in abnormal PHIs.
2065
2066 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
2067
2068         * gimple-fold.c (canonicalize_constructor_val): Strip only useless type
2069         conversions.
2070
2071 2012-07-19  Richard Guenther  <rguenther@suse.de>
2072             Eric Botcazou  <ebotcazou@adacore.com>
2073
2074         * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
2075         about transition from invariant to known bits.
2076         (likely_value): Addresses with UNDEFINED components are UNDEFINED.
2077
2078 2012-07-19  Jakub Jelinek  <jakub@redhat.com>
2079
2080         PR middle-end/54017
2081         * tree-cfgcleanup.c (cleanup_omp_return): Remove.
2082         (cleanup_tree_cfg_bb): Don't call it.
2083         * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
2084         handling.
2085
2086 2012-07-19  Christian Bruel  <christian.bruel@st.com>
2087
2088         PR target/54029
2089         * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.
2090
2091 2012-07-18  Ralf Corsépius  <ralf.corsepius@rtems.org>
2092
2093         * config.gcc (v850-*-rtems*): New target.
2094         * config/v850/rtems.h: New.
2095         * config/v850/t-rtems: New.
2096
2097 2012-07-18  Nick Clifton  <nickc@redhat.com>
2098
2099         * doc/invoke.texi (ARM Options): Document -munaligned-access.
2100
2101 2012-07-15  Uros Bizjak  <ubizjak@gmail.com>
2102
2103         PR target/53961
2104
2105         Backport from mainline
2106         2012-04-25  Jakub Jelinek  <jakub@redhat.com>
2107
2108         PR target/53110
2109         * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
2110         instead expand it as zero extension.
2111
2112 2012-07-14  Uros Bizjak  <ubizjak@gmail.com>
2113
2114         * config/i386/i386.md (QImode and HImode cmove splitters): Merge
2115         QImode and HImode splitters.  Use ix86_comparison_operator.
2116         Explicitly match FLAGS_REG.
2117         (DFmode cmove splitter): Explicitly match FLAGS_REG.
2118
2119 2012-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
2120             Steven Bosscher  <steven@gcc.gnu.org>
2121             Bernd Schmidt  <bernds@codesourcery.com>
2122
2123         PR rtl-optimization/53908
2124         * df-problems.c (can_move_insns_across): When doing
2125         memory-reference book-keeping, handle call insns.
2126
2127 2012-07-10  Uros Bizjak  <ubizjak@gmail.com>
2128
2129         Backport from mainline
2130         2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
2131
2132         PR target/53811
2133         * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
2134         sibcall_insn_operand.  Move it to a temporary register if not.
2135
2136         2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
2137
2138         PR target/53853
2139         * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
2140         emit PIC sequence for fnaddr symbol reference in advance.
2141
2142 2012-07-09  Jason Merrill  <jason@redhat.com>
2143
2144         PR c++/53882
2145         * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
2146         (type_hash_eq): Likewise.
2147
2148         PR c++/53826
2149         * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
2150
2151 2012-07-07  Ulrich Weigand  <ulrich.weigand@linaro.org>
2152
2153         * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
2154         due to negative shift amount.
2155
2156 2012-07-06  Kai Tietz  <ktietz@redhat.com>
2157
2158         Backport from mainline.
2159         PR bootstrap/52947
2160         * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
2161         as "/mingw/include".
2162
2163 2012-07-06  Nick Clifton  <nickc@redhat.com>
2164
2165         * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
2166         default_encode_section_info.
2167
2168 2012-07-06  Richard Guenther  <rguenther@suse.de>
2169
2170         Backport from mainline
2171         2012-03-30  Richard Guenther  <rguenther@suse.de>
2172
2173         PR middle-end/52786
2174         * double-int.c (rshift_double): Remove not needed cast.
2175
2176         2012-03-28  Richard Guenther  <rguenther@suse.de>
2177
2178         PR middle-end/50708
2179         * double-int.h (rshift_double): Remove.
2180         * double-int.c (lshift_double): Use absu_hwi to make count
2181         positive.
2182         (rshift_double): Make static, take unsigned count argument,
2183         remove handling of negative count argument.
2184         (double_int_rshift): Dispatch to lshift_double.
2185
2186 2012-07-06  Richard Guenther  <rguenther@suse.de>
2187
2188         Backport from mainline
2189         2012-06-18  Richard Guenther  <rguenther@suse.de>
2190
2191         PR tree-optimization/53693
2192         * tree-vect-patterns.c (vect_operation_fits_smaller_type):
2193         Reject operands with more than one use.
2194
2195 2012-07-06  Richard Guenther  <rguenther@suse.de>
2196
2197         Backport from mainline
2198         2012-04-11  Richard Guenther  <rguenther@suse.de>
2199
2200         PR middle-end/52621
2201         * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
2202         consider loop nesting.
2203         (evolution_function_is_univariate_p): Properly check the remainder
2204         for chrecs.
2205
2206 2012-07-05  Pat Haugen <pthaugen@us.ibm.com>
2207
2208         Backport from mainline
2209         2012-05-24  Pat Haugen <pthaugen@us.ibm.com>
2210
2211         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
2212         rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
2213         (adjacent_mem_locations): Move some code to and call...
2214         (get_memref_parts): ...new function.
2215         (mem_locations_overlap): New function.
2216         (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
2217         (is_mem_ref): Rename to...
2218         (find_mem_ref): ...this. Return MEM rtx.
2219         (get_store_dest): Remove function.
2220         (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
2221         new parameter and adjust calls.
2222         (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
2223         mem refs overlap for true_store_to_load_dep_costly.
2224         (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
2225         passed to adjacent_mem_locations.
2226         (is_costly_group): Walk resolved dependency list.
2227         (force_new_group): Emit group ending nop for Power6/Power7.
2228         * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
2229         (group_ending_nop): New define_insn.
2230
2231 2012-07-04  Richard Guenther  <rguenther@suse.de>
2232
2233         PR middle-end/53433
2234         * gimple-fold.c (get_base_constructor): Do not return an
2235         error_mark_node DECL_INITIAL.
2236
2237 2012-07-04  Uros Bizjak  <ubizjak@gmail.com>
2238
2239         Backport from mainline
2240         2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
2241
2242         * config/i386/i386.c (ix86_option_override_internal): Fix wrong
2243         code model string in the error message.
2244
2245 2012-07-04  Tristan Gingold  <gingold@adacore.com>
2246
2247         Backport from mainline.
2248         2012-06-25  Tristan Gingold  <gingold@adacore.com>
2249
2250         * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
2251         (seh_cfa_adjust_cfa): ... that function.
2252         (seh_emit_stackalloc): Do not emit out of range values.
2253         * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
2254         UNSPEC_DEF_CFA constants.
2255         * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
2256         * config/i386/i386.c (ix86_frame_pointer_required): Required
2257         for very large frames on SEH target.
2258         (ix86_compute_frame_layout): Save area is before frame pointer
2259         on SEH target.  Handle very large frames.
2260         (ix86_expand_prologue): Likewise.
2261
2262 2012-07-04  Richard Guenther  <rguenther@suse.de>
2263
2264         * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
2265         as in free_lang_data_in_type.
2266
2267 2012-07-02  Martin Jambor  <mjambor@suse.cz>
2268
2269         Backport from mainline.
2270         2012-07-02  Martin Jambor  <mjambor@suse.cz>
2271
2272         PR middle-end/38474
2273         * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
2274         dynamic type change check.
2275
2276 2012-06-29  Eric Botcazou  <ebotcazou@adacore.com>
2277
2278         * tree-eh.c (lower_try_finally_switch): Really put the location of the
2279         last statement of the finally block onto the switch.
2280
2281 2012-06-29  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2282
2283         * configure: Regenerate.
2284
2285         Backport from mainline.
2286         2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2287
2288         * config.gcc (target_type_format_char): New. Document it. Set it for
2289         arm*-*-* .
2290         * configure.ac (gnu_unique_option): Use target_type_format_char
2291         in test.  Comment rationale.
2292
2293 2012-06-29  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2294
2295         Backport from mainline.
2296         2012-05-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2297
2298         * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
2299
2300 2012-06-28  Georg-Johann Lay  <avr@gjlay.de>
2301
2302         Backport from 2012-06-28 mainline r189049
2303
2304         PR 53595
2305         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
2306         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
2307         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
2308         avr_hard_regno_call_part_clobbered.
2309
2310 2012-06-28  Richard Guenther  <rguenther@suse.de>
2311
2312         PR middle-end/53790
2313         * expr.c (expand_expr_real_1): Verify if the type is complete
2314         before inspecting its size.
2315
2316 2012-06-27  Nick Clifton  <nickc@redhat.com>
2317
2318         * config/rx/rx.md (comparesi3_extend): Remove = modifier from
2319         input operand.
2320
2321 2012-06-26  Alexandre Oliva  <aoliva@redhat.com>
2322
2323         PR debug/53682
2324         * cselib.c (promote_debug_loc): Don't crash on NULL argument.
2325
2326 2012-06-26  Nick Clifton  <nickc@redhat.com>
2327
2328         * config/rx/rx.md (simple_return): Use the simple_return rtx.
2329
2330 2012-06-25  Jakub Jelinek  <jakub@redhat.com>
2331
2332         PR target/53759
2333         * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
2334         of x x x in the vmovlps load alternative.
2335
2336 2012-06-22  Richard Guenther  <rguenther@suse.de>
2337
2338         * gcov-iov.c: Include bconfig.h and system.h.
2339
2340 2012-06-22  Richard Guenther  <rguenther@suse.de>
2341
2342         PR gcov-profile/53744
2343         * gcov-iov.c (main): Treat "" and "prerelease" the same.
2344
2345 2012-06-22  Eric Botcazou  <ebotcazou@adacore.com>
2346
2347         * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
2348         DECL_IGNORED_P non-reg vars even if they are used.
2349
2350 2012-06-19  Jason Merrill  <jason@redhat.com>
2351
2352         PR c++/52637
2353         * dwarf2out.c (modified_type_die): Use scope_die_for.
2354         (gen_type_die_with_usage, dwarf2out_finish): Likewise.
2355         (uses_local_type_r, uses_local_type): New.
2356         (scope_die_for): Keep a type that uses a local type in local scope.
2357         Use get_context_die for namespace and type scope.
2358
2359 2012-06-19  Richard Guenther  <rguenther@suse.de>
2360
2361         PR middle-end/53470
2362         * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
2363         replace it with the first non-BLOCK context.
2364
2365 2012-06-18  Vladimir Makarov  <vmakarov@redhat.com>
2366
2367         PR rtl-optimization/53700
2368
2369         Backport from mainline
2370         2012-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2371
2372         * ira-color.c (setup_left_conflict_sizes_p): Process all
2373         conflicting objects.
2374
2375 2012-06-18  Venkataramanan Kumar <venkataramanan.kumar@amd.com>
2376
2377         Backport from mainline
2378         2012-05-09 Uros Bizjak  <ubizjak@gmail.com>
2379
2380         PR target/52908
2381         * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
2382         xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
2383         (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
2384         instead of xop_mulv2div2di3_low.
2385         (xop_p<macs>dql): Fix vec_select selector.
2386         (xop_p<macs>dqh): Ditto.
2387         (xop_mulv2div2di3_low): Remove insn_and_split pattern.
2388         (xop_mulv2div2di3_high): Ditto.
2389
2390 2012-06-17  Uros Bizjak  <ubizjak@gmail.com>
2391
2392         Backport from mainline:
2393         2012-06-17  Uros Bizjak  <ubizjak@gmail.com>
2394
2395         * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
2396
2397 2012-06-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2398
2399         Backport from mainline:
2400         2012-06-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2401
2402         * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
2403         * config/pa/pa.c (pa_attr_length_millicode_call): Use
2404         MAX_PCREL17F_OFFSET instead of fixed offset.
2405         (pa_attr_length_call): Likewise.
2406         (pa_attr_length_indirect_call): Likewise.
2407
2408 2012-06-15  Walter Lee  <walt@tilera.com>
2409
2410         Backport from mainline:
2411         2012-06-15  Walter Lee  <walt@tilera.com>
2412
2413         * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
2414
2415         2012-06-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
2416
2417         * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
2418
2419 2012-06-15  Aldy Hernandez  <aldyh@redhat.com>
2420
2421         Backport from mainline:
2422
2423         2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
2424         * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
2425         * gimple.h (block_in_transaction): Check for flag_tm.
2426
2427 2012-06-14  Aldy Hernandez  <aldyh@redhat.com>
2428
2429         PR tree-optimization/52558
2430
2431         Backport from mainline:
2432         2012-05-21  Aldy Hernandez  <aldyh@redhat.com>
2433         * gimple.h (gimple_set_in_transaction): Remove.
2434         (gimple_in_transaction): Look in BB instead.
2435         (gimple_statement_base): Remove in_transaction field.
2436         * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
2437         * trans-mem.c (compute_transaction_bits): Place transaction bit
2438         information into basic blocks.
2439
2440         2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
2441
2442         PR tree-optimization/52558
2443         * cfg.c (alloc_aux_for_edge): Fix comment.
2444         (alloc_aux_for_edge): Remove static.
2445         * basic-block.h (alloc_aux_for_edge): Protoize.
2446         * tree-ssa-loop-im.c (execute_sm_if_changed): New.
2447         (execute_sm_if_changed_flag): New.
2448         (execute_sm_if_changed_flag_set): New.
2449         (execute_sm): Do not generate data races unless requested.
2450         (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
2451         (tree_ssa_lim_finalize): Call free_aux_for_edges.
2452         * gimple.h (block_in_transaction): New.
2453         (gimple_in_transaction): Use block_in_transaction.
2454
2455 2012-06-14  Jakub Jelinek  <jakub@redhat.com>
2456
2457         Backported from mainline
2458         2012-06-12  Jakub Jelinek  <jakub@redhat.com>
2459
2460         PR rtl-optimization/53589
2461         * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
2462         discovery even when e->dest != target.  If any LABEL_REF points
2463         to e->dest label, redirect it to target's label.
2464
2465         2012-06-07  Jakub Jelinek  <jakub@redhat.com>
2466
2467         PR middle-end/53580
2468         * omp-low.c (scan_omp_1_stmt): If check_omp_nesting_restrictions
2469         returns false, replace stmt with GIMPLE_NOP.
2470         (check_omp_nesting_restrictions): Instead of issuing warnings,
2471         issue errors and return false if any errors were reported.
2472
2473 2012-06-14  Richard Guenther  <rguenther@suse.de>
2474
2475         * BASE-VER: Set to 4.7.2.
2476         * DEV-PHASE: Set to prerelease.
2477
2478 2012-06-12  Christian Bruel  <christian.bruel@st.com>
2479
2480         PR target/53621
2481         * config/sh/sh.c (sh_option_override): Don't force
2482          flag_omit_frame_pointer and maccumulate_outgoing_args.
2483         * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
2484
2485 2012-06-14  Release Manager
2486
2487         * GCC 4.7.1 released.
2488
2489 2012-06-13  Uros Bizjak  <ubizjak@gmail.com>
2490
2491         * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
2492
2493 2012-06-13  Richard Henderson  <rth@redhat.com>
2494
2495         * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
2496         iterator instead of INT.
2497
2498 2012-06-08  Richard Henderson  <rth@redhat.com>
2499
2500         PR c++/53602
2501         * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
2502         note to a clobber insn when no other insn is available.
2503
2504 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
2505
2506         PR c++/53524
2507         * doc/invoke.texi (Wenum-compare): Update documentation.
2508
2509 2012-06-04  Edmar Wienskoski  <edmar@freescale.com>
2510
2511         PR target/53559
2512         * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
2513         operands.
2514         (altivec_stvlxl): Ditto.
2515         (altivec_stvrx): Ditto.
2516         (altivec_stvrxl): Ditto.
2517
2518 2012-06-04  Aldy Hernandez  <aldyh@redhat.com>
2519
2520         PR middle-end/47530
2521         * trans-mem.c (expand_block_edges): Do not skip the first
2522         statement when resetting the BB.
2523
2524 2012-06-04  Richard Guenther  <rguenther@suse.de>
2525
2526         PR middle-end/53471
2527         * dwarf2out.c (dwarf2out_finish): If generating LTO do not
2528         create new assembler names.
2529
2530 2012-06-04  Richard Guenther  <rguenther@suse.de>
2531
2532         Backport from mainline
2533         2012-04-25  Jakub Jelinek  <jakub@redhat.com>
2534
2535         PR middle-end/52979
2536         * stor-layout.c (get_best_mode): Don't return mode with bitsize
2537         larger than maxbits.  Don't compute maxbits modulo align.
2538         Also check that unit bytes long store at bitpos / unit * unit
2539         doesn't affect bits beyond bitregion_end.
2540         * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
2541         would not fit into bitregion_start ... bitregion_end + 1 bit
2542         region.
2543         (store_split_bit_field): Decrease unit close to end of bitregion_end
2544         if access is restricted in order to avoid mutual recursion.
2545
2546 2012-06-04  Georg-Johann Lay  <avr@gjlay.de>
2547
2548         Backport from 2012-06-04 mainline r188172
2549
2550         PR target/46261
2551         * config/avr/avr-stdint.h: New file.
2552         * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
2553         newlib-stdint.h
2554
2555 2012-06-04  Jakub Jelinek  <jakub@redhat.com>
2556
2557         PR tree-optimization/53550
2558         * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
2559         is POINTER_TYPE_P, use sizetype as step type instead of type.
2560
2561 2012-06-04  Richard Guenther  <rguenther@suse.de>
2562             Eric Botcazou  <ebotcazou@adacore.com>
2563
2564         Backport from mainline
2565         2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>
2566
2567         * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
2568         Change type of BITOFFSET to signed.  Make sure the lower bound of
2569         the computed range is non-negative by adjusting OFFSET and BITPOS.
2570         (expand_assignment): Adjust call to get_bit_range.
2571
2572         2012-03-27  Eric Botcazou  <ebotcazou@adacore.com>
2573
2574         * expr.c (get_bit_range): Return the null range if the enclosing record
2575         is part of a larger bit field.
2576
2577         2012-03-20  Richard Guenther  <rguenther@suse.de>
2578
2579         * stor-layout.c (finish_bitfield_representative): Fallback
2580         to conservative maximum size if the padding up to the next
2581         field cannot be computed as a constant.
2582         (finish_bitfield_layout): If we cannot compute the distance
2583         between the start of the bitfield representative and the
2584         bitfield member start a new representative.
2585         * expr.c (get_bit_range): The distance between the start of
2586         the bitfield representative and the bitfield member is zero
2587         if the field offsets are not constants.
2588
2589         2012-03-16  Richard Guenther  <rguenther@suse.de>
2590
2591         * stor-layout.c (finish_bitfield_representative): Fall back
2592         to the conservative maximum size if we cannot compute the
2593         size of the tail padding.
2594
2595         2012-03-14  Richard Guenther  <rguenther@suse.de>
2596
2597         * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
2598         * stor-layout.c (start_bitfield_representative): New function.
2599         (finish_bitfield_representative): Likewise.
2600         (finish_bitfield_layout): Likewise.
2601         (finish_record_layout): Call finish_bitfield_layout.
2602         * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
2603         for QUAL_UNION_TYPE fields.
2604         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
2605         Stream DECL_BIT_FIELD_REPRESENTATIVE.
2606         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
2607
2608         PR middle-end/52080
2609         PR middle-end/52097
2610         PR middle-end/48124
2611         * expr.c (get_bit_range): Unconditionally extract bitrange
2612         from DECL_BIT_FIELD_REPRESENTATIVE.
2613         (expand_assignment): Adjust call to get_bit_range.
2614
2615 2012-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2616
2617         PR middle-end/53501
2618         * fold-const.c (fold_binary_loc): Refine previous change.
2619
2620 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
2621
2622         Backport from mainline
2623         2012-03-27  Chung-Lin Tang  <cltang@codesourcery.com>
2624
2625         PR target/52667
2626         * config/sh/sh.c (find_barrier): Add equality check of last_got to
2627         avoid going above orig insn.  Update comments.
2628
2629 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
2630
2631         Backport from mainline
2632         2012-03-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2633
2634         PR target/52642
2635         * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
2636         prologue for unwinder and profiler.
2637
2638 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
2639
2640         Backport from mainline
2641         2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2642
2643         * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
2644
2645 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
2646
2647         Backport from mainline
2648         2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2649
2650         * config/sh/sh.c (sh_dwarf_register_span): Don't apply
2651         DBX_REGISTER_NUMBER.
2652
2653 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
2654
2655         Backport from mainline
2656         2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2657
2658         * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
2659         operand is CONST_INT.  Take COSTS_N_INSNS into account.
2660         (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value of
2661         shiftcosts.     
2662
2663 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
2664
2665         * config/avr/avr.opt (-msp8): Document it.
2666         * doc/invoke.texi (AVR Options): Copy from trunk docu.
2667
2668 2012-05-31  Richard Guenther  <rguenther@suse.de>
2669
2670         PR middle-end/48493
2671         * expr.c (expand_assignment): Do not use movmisalign on
2672         non-memory.
2673
2674 2012-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2675
2676         PR target/52999
2677         * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
2678         (pa_section_type_flags): New.
2679         (pa_legitimate_constant_p): Revert previous change.
2680
2681 2012-05-30  Aldy Hernandez  <aldyh@redhat.com>
2682
2683         Backport from mainline
2684         2012-05-25  Aldy Hernandez  <aldyh@redhat.com>
2685
2686         PR middle-end/53008
2687         * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
2688         accessed indirectly.
2689         (ipa_tm_create_version): Same.
2690
2691 2012-05-30  Jason Merrill  <jason@redhat.com>
2692
2693         PR c++/53220
2694         * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
2695         about array compound literals.
2696
2697 2012-05-30  Richard Guenther  <rguenther@suse.de>
2698
2699         PR middle-end/53501
2700         * fold-const.c (fold_binary_loc): Make sure to call
2701         fold_plusminus_mult_expr with the original sign of operands.
2702
2703 2012-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2704
2705         * explow.c (probe_stack_range): Restore simple control flow and stop
2706         again when the probe cannot be generated if HAVE_check_stack.
2707
2708 2012-05-30  Jakub Jelinek  <jakub@redhat.com>
2709
2710         PR rtl-optimization/53519
2711         * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
2712         instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
2713
2714 2012-05-29  Richard Guenther  <rguenther@suse.de>
2715
2716         PR tree-optimization/53516
2717         * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
2718         bitfield accesses.
2719         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
2720
2721 2012-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>
2722
2723         Backport from mainline
2724         2012-05-28  Richard Guenther  <rguenther@suse.de>
2725
2726         PR tree-optimization/53438
2727         * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
2728
2729 2012-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2730
2731         Backport from mainline
2732         2012-03-10  Chung-Lin Tang  <cltang@codesourcery.com>
2733
2734         PR rtl-optimization/52528
2735         * combine.c (can_combine_p): Add setting of subst_low_luid
2736         before call to expand_field_assignment().
2737
2738 2012-05-26  Martin Jambor  <mjambor@suse.cz>
2739
2740         Backport from mainline
2741         2012-05-23  Martin Jambor  <mjambor@suse.cz>
2742
2743         * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
2744
2745 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2746
2747         PR lto/52178
2748         * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
2749         * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
2750
2751 2012-05-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2752
2753         PR target/53435
2754         * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
2755         (ix86_expand_vec_perm): Use int mode instead of float.
2756
2757 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2758
2759         PR ada/52362
2760         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
2761         gnu_ld variables to yes.
2762         * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
2763         (HAVE_GNU_AS): Likewise.
2764         * config.in: Regenerate.
2765         * configure: Likewise.
2766
2767 2012-05-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2768
2769         Backport from mainline
2770         2012-03-12  Richard Guenther  <rguenther@suse.de>
2771         * config/arm/arm.c (neon_dereference_pointer): Do not call
2772         covert during RTL expansion.
2773
2774 2012-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2775
2776         Backport from mainline
2777         2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2778
2779         PR target/53385
2780         * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
2781         relied on signed overflow behavior.
2782
2783 2012-05-24  Richard Guenther  <rguenther@suse.de>
2784
2785         PR middle-end/53460
2786         * tree-profile.c (tree_profiling): Cleanup the CFG if
2787         execute_fixup_cfg requests it.
2788
2789 2012-05-24  Jakub Jelinek  <jakub@redhat.com>
2790
2791         PR tree-optimization/53465
2792         * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
2793         vr0 into *vr, then vrp_meet that.
2794         (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
2795         have any equivalences.
2796         (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
2797         first time.
2798
2799 2012-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2800
2801         * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
2802         size handling.
2803         (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
2804         (iterative_hash_gimple_type): Adjust comment.
2805         (iterative_hash_canonical_type): Likewise.  Hash the bounds of the
2806         domain for an array type instead of the domain type itself.
2807
2808 2012-05-23  Georg-Johann Lay  <avr@gjlay.de>
2809
2810         Backport from 2012-05-23 mainline r187803
2811
2812         PR target/53448
2813         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
2814         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
2815         ASM_OUTPUT_ALIGN.
2816
2817 2012-05-23  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
2818
2819         Backport from 2012-05-03 mainline r187075
2820
2821         * config/i386/driver-i386.c (host_detect_local_cpu): Reset
2822         has_fma4 for AMD processors with both fma3 and fma4 support.
2823
2824 2012-05-22  Richard Guenther  <rguenther@suse.de>
2825
2826         PR tree-optimization/53408
2827         * tree-vect-loop.c (vectorizable_induction): Properly check
2828         the restriction that we cannot handle induction results from
2829         the inner loop outside of the outer loop.
2830
2831 2012-05-21  Jakub Jelinek  <jakub@redhat.com>
2832
2833         PR tree-optimization/53436
2834         * omp-low.c (omp_build_component_ref): New function.
2835         (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
2836
2837         PR tree-optimization/53366
2838         * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
2839         tests if complex_numbers == 2, but there are non-complex number loads
2840         too.
2841
2842         PR tree-optimization/53409
2843         * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
2844         vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
2845
2846         PR tree-optimization/53410
2847         * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
2848         instead of build_int_cst (type, 0) where vector types might be
2849         involved.
2850
2851 2012-05-21  Joseph Myers  <joseph@codesourcery.com>
2852
2853         PR c/53418
2854         * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
2855         from folded operands before wrapping another around the
2856         conditional expression.
2857
2858 2012-05-21  Dave Boutcher  <daveboutcher@gmail.com>
2859             Patrick Marlier  <patrick.marlier@gmail.com>
2860
2861         * trans-mem.c (ipa_tm_transform_clone): Transform functions with
2862         indirect calls.
2863
2864 2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2865
2866         Backport from mainline
2867         2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2868
2869         PR target/53416
2870         * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
2871         (UNSPECV_RDRAND): This.
2872         (rdrand<mode>_1): Updated.
2873
2874 2012-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2875
2876         Backport from mainline
2877         2012-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2878
2879         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2880         RDRND, F16C and FSGSBASE.
2881
2882 2012-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2883
2884         Backport from mainline
2885         2012-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2886
2887         * tree-ssa-pre.c (can_value_number_call): Delete.
2888         (compute_avail): Skip all statements with side effects.
2889         <GIMPLE_CALL>: Skip calls to internal functions.
2890
2891 2012-05-18  David S. Miller  <davem@davemloft.net>
2892
2893         Backport r185385 from mainline
2894         2012-03-14  Richard Guenther  <rguenther@suse.de>
2895
2896         PR middle-end/52584
2897         * tree-vect-generic.c (type_for_widest_vector_mode): Take
2898         element type instead of mode, use build_vector_type_for_mode
2899         instead of the langhook, build a vector of proper signedness.
2900         (expand_vector_operations_1): Adjust.
2901
2902 2012-05-18  Olivier Hainque  <hainque@adacore.com>
2903
2904         * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
2905         $(libsubdir) as libexecsubdir.
2906
2907 2012-05-16  Andrew Pinski  <apinski@cavium.com>
2908
2909         * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
2910         GIMPLE_ASSIGN.
2911
2912 2012-05-16  David S. Miller  <davem@davemloft.net>
2913
2914         * jump.c (delete_related_insns): If we remove a CALL, make sure
2915         we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
2916
2917 2012-05-16  Richard Henderson  <rth@redhat.com>
2918
2919         PR debug/52727
2920         * combine-stack-adj.c (prev_active_insn_bb): New.
2921         (next_active_insn_bb): New.
2922         (force_move_args_size_note): New.
2923         (combine_stack_adjustments_for_block): Use it.
2924
2925 2012-05-16  Olivier Hainque  <hainque@adacore.com>
2926
2927         * Makefile.in (install-no-fixedincludes): New target, former toplevel
2928         gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
2929         Add comments and improve stamp preservation across the whole sequence.
2930         (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
2931
2932 2012-05-16  Richard Guenther  <rguenther@suse.de>
2933
2934         PR tree-optimization/53364
2935         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
2936         detect a view-conversion of the decl.
2937
2938 2012-05-15  Jakub Jelinek  <jakub@redhat.com>
2939
2940         PR target/53358
2941         * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
2942         that operands[2] is either immediate, or q_regs_operand.
2943
2944 2012-05-15  Bin Cheng  <bin.cheng@arm.com>
2945
2946         Backport r187139 from mainline.
2947         2012-05-04  Bin Cheng  <bin.cheng@arm.com>
2948
2949         PR rtl-optimization/52804
2950         * reload1.c (reload_reg_reaches_end_p): Check whether successor
2951         reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
2952         of current one with type RELOAD_FOR_INPADDR_ADDRESS.
2953         Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
2954         RELOAD_FOR_OUTADDR_ADDRESS.
2955
2956 2012-05-14  Uros Bizjak  <ubizjak@gmail.com>
2957
2958         PR target/46098
2959         * config/i386/i386.c (ix86_expand_special_args_builtin): Always
2960         generate target register for "load" class builtins.
2961
2962         Revert:
2963         2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
2964
2965         PR target/46098
2966         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
2967         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
2968         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
2969         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
2970         (<sse>_movu<ssemodesuffix>): New expander.
2971         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
2972         (avx_movdqu<avxmodesuffix>): New expander.
2973         (*sse2_movdqu): Rename from sse2_movdqu.
2974         (sse2_movdqu): New expander.
2975
2976 2012-05-14  Jakub Jelinek  <jakub@redhat.com>
2977
2978         * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
2979         lineno 1 the same as lineno 0 before first start file directive.
2980         (optimize_macinfo_range): Likewise.
2981
2982         * dwarf2out.c (have_macinfo): Define.
2983         (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
2984         attribute, don't force empty compilation unit and don't emit any
2985         .debug_macinfo/.debug_macro section if macinfo_table is empty.
2986
2987 2012-05-13  Uros Bizjak  <ubizjak@gmail.com>
2988
2989         Backport from mainline
2990         2012-05-12  Uros Bizjak  <ubizjak@gmail.com>
2991
2992         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
2993         ORDERED and UNORDERED conditions.
2994
2995 2012-05-12  Eric Botcazou  <ebotcazou@adacore.com>
2996
2997         * function.c (requires_stack_frame_p): If the function can throw
2998         non-call exceptions, return true if the insn can throw internally.
2999
3000 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
3001
3002         * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
3003         DECL_ORIGINAL_TYPE if it is present.
3004
3005 2012-05-09  Georg-Johann Lay  <avr@gjlay.de>
3006
3007         Backport from 2012-05-12 mainline r187342.
3008
3009         PR target/53256
3010         * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
3011         * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
3012         * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
3013         * config/avr/avr.c (avr_asm_declare_function_name): Remove.
3014         (expand_prologue): Move initialization of cfun->machine->is_naked,
3015         is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
3016         (avr_set_current_function): ...this new static function.
3017         (TARGET_SET_CURRENT_FUNCTION): New define.
3018         (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
3019         checking attributes of current_function_decl.
3020         (avr_regs_to_save): Ditto.
3021         (signal_function_p): Rename to avr_signal_function_p.
3022         (interrupt_function_p): Rename to avr_interrupt_function_p.
3023
3024         * doc/extend.texi (Function Attributes): Better explanation of
3025         'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
3026         alphabetical order.
3027
3028 2012-05-09  Matthias Klose  <doko@ubuntu.com>
3029
3030         * gcc-ar.c (main): Don't check for execute bits for the plugin.
3031
3032 2012-05-08  Hans-Peter Nilsson  <hp@axis.com>
3033
3034         PR target/53272
3035         * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
3036         when a constant source operand matches an "I" constraint, the "no
3037         CC0 change" applies to a register-destination only, not a
3038         strict_low_part-destination.
3039
3040 2012-05-07  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3041
3042         Backport from mainline:
3043         2012-04-19  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3044
3045         * config/arm/sync.md (sync_optab): Change ior attribute to "or".
3046
3047 2012-05-07  Jakub Jelinek  <jakub@redhat.com>
3048
3049         PR tree-optimization/53239
3050         * tree-vrp.c (get_value_range): Set VR of
3051         SSA_NAME_IS_DEFAULT_DEF of DECL_BY_REFERENCE RESULT_DECL
3052         to nonnull.
3053
3054 2012-05-07  Richard Guenther  <rguenther@suse.de>
3055
3056         PR tree-optimization/53195
3057         * tree-inline.c (setup_one_parameter): Properly add referenced
3058         vars from the parameters new known value.
3059
3060 2012-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3061
3062         Backport from mainline:
3063         2012-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3064
3065         PR target/52999
3066         * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
3067         in constant pool.
3068
3069 2012-05-04  Ian Lance Taylor  <iant@google.com>
3070
3071         * tree-vect-patterns.c (vect_single_imm_use): Correct return
3072         values from false to NULL.
3073
3074 2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
3075
3076         Backport from mainline
3077         2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
3078
3079         PR target/53228
3080         * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
3081         (TARGET_CMOV): Rename from TARGET_CMOVE.
3082         (TARGET_CMOVE): New define.
3083         * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
3084         Do not set TARGET_CMOVE here.
3085
3086 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
3087
3088         Backport from mainline:
3089
3090         2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
3091
3092         PR tree-optimization/52633
3093         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
3094         vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
3095         (vect_recog_over_widening_pattern): Remove handling of code that was
3096         already detected as over-widening pattern.  Remove special handling
3097         of "unsigned" cases.  Instead, support general case of conversion
3098         of the shift result to another type.
3099
3100         2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
3101
3102         * tree-vect-patterns.c (vect_single_imm_use): New function.
3103         (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
3104         (vect_recog_over_widening_pattern): Likewise.
3105         (vect_recog_widen_shift_pattern): Likewise.
3106
3107         2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
3108
3109         PR tree-optimization/52870
3110         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
3111         presumed pattern statement is within the same loop or basic block.
3112
3113 2012-05-04  Richard Guenther  <rguenther@suse.de>
3114
3115         * common.opt (flto-report): Do not mark as Optimization.
3116
3117 2012-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3118
3119         PR target/48496
3120         * recog.c (constrain_operands): If extra constraints are present, also
3121         accept pseudo-registers with equivalent memory locations during reload.
3122
3123 2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3124
3125         Backport from the mainline
3126         2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3127
3128         PR target/53199
3129         * config/rs6000/rs6000.md (bswapdi splitters): If
3130         -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
3131         default) is used, generate an alternate sequence that does not
3132         depend on using indexed addressing.
3133
3134 2012-05-03  David S. Miller  <davem@davemloft.net>
3135
3136         PR target/52684
3137         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
3138         MEM directly into a libcall, mark it's MEM_EXPR as addressable.
3139         (sparc_emit_float_lib_cmp): Likewise.
3140
3141 2012-05-04  Martin Jambor  <mjambor@suse.cz>
3142
3143         Backport from mainline
3144         2012-05-02  Martin Jambor  <mjambor@suse.cz>
3145
3146         PR lto/52605
3147         * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
3148         of a variable when the contect is a function.
3149
3150 2012-05-03  Jakub Jelinek  <jakub@redhat.com>
3151
3152         PR plugins/53126
3153         * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
3154         append program name to it and pass that as first argument
3155         to make_relative_prefix.  Always pass standard_libexec_prefix
3156         as last argument to make_relative_prefix.  If
3157         make_relative_prefix returns NULL, fall back to
3158         standard_libexec_prefix.
3159
3160         PR debug/53174
3161         * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
3162         removed.
3163
3164         PR target/53187
3165         * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
3166         mode, return that mode.
3167
3168 2012-05-03  Richard Guenther  <rguenther@suse.de>
3169
3170         PR tree-optimization/53144
3171         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
3172         Rename to ...
3173         (vn_reference_lookup_or_insert_for_pieces): ... this.  Properly deal
3174         with SSA name values.
3175         (vn_reference_lookup_3): Adjust callers.
3176
3177 2012-05-02  Jakub Jelinek  <jakub@redhat.com>
3178
3179         PR tree-optimization/53163
3180         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
3181         return value from compute_all_dependences.
3182
3183         PR rtl-optimization/53160
3184         * ree.c (combine_reaching_defs): Handle the case where cand->insn
3185         has been modified by ree pass already.
3186
3187 2012-05-01  Uros Bizjak  <ubizjak@gmail.com>
3188
3189         Backport from mainline
3190         2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
3191
3192         PR middle-end/53136
3193         * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
3194         calls to cgraph_node_name in xstrdup.
3195         (ipa_make_edge_direct_to_target): Ditto.
3196         * tree-sra.c (convert_callers_for_node): Ditto.
3197         * lto-symtab.c (lto_cgraph_replace_node): Ditto.
3198         * ipa-cp.c (perhaps_add_new_callers): Ditto.
3199         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
3200         (cgraph_materialize_all_clones): Ditto.
3201         * ipa-inline.c (report_inline_failed_reason): Ditto.
3202         (want_early_inline_function_p): Ditto.
3203         (edge_badness): Ditto.
3204         (update_edge_key): Ditto.
3205         (flatten_function): Ditto.
3206         (ipa_inline): Ditto.
3207         (inline_always_inline_functions): Ditto.
3208         (early_inline_small_functions): Ditto.
3209
3210 2012-04-30  Andreas Tobler  <andreast@fgznet.ch>
3211
3212         Backport from mainline
3213         2012-03-21  Andreas Tobler  <andreast@fgznet.ch>
3214
3215         * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
3216         Introduce emul_name to select the right linker emulation for
3217         powerpc64-*-freebsd*.
3218         * configure: Regenerate.
3219         * config.gcc: Add bits to support powerpc64-*-freebsd*.
3220         * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
3221         * config/rs6000/freebsd64.h: New file.
3222         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3223         POWERPC_FREEBSD.
3224         (rs6000_savres_strategy): Likewise.
3225         (rs6000_savres_routine_name): Likewise.
3226         (rs6000_elf_file_end): Likewise.
3227         * config/rs6000/t-freebsd64: New file.
3228         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
3229         rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
3230
3231 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
3232
3233         Backport from mainline
3234         2012-04-27  Paolo Bonzini  <bonzini@gnu.org>
3235
3236         PR target/53138
3237         * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
3238
3239 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3240
3241         * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
3242         predicate to discriminate types.
3243
3244 2012-04-27  Richard Guenther  <rguenther@suse.de>
3245
3246         PR c/51527
3247         * convert.c (convert_to_integer): Avoid infinite recursion for
3248         target-defined built-in types.
3249
3250 2012-04-26  Hans-Peter Nilsson  <hp@axis.com>
3251
3252         PR target/53120
3253         * config/cris/cris.md ("*andhi_lowpart_v32")
3254         ("*andqi_lowpart_v32"): Change first input-only operand from
3255         a (match_operand ...) to (match_dup 0).  Drop alternatives with
3256         const_int-matching constraints for redundancy.
3257         ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto.  Drop
3258         three-operand alternative.
3259
3260 2012-04-26  Uros Bizjak  <ubizjak@gmail.com>
3261
3262         Backport from mainline
3263         2012-04-23  Uros Bizjak  <ubizjak@gmail.com>
3264
3265         * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
3266         (*addsi_2_zext): Ditto.
3267         (*add<mode>_3): Ditto.
3268         (*addsi_3_zext): Ditto.
3269         (*add<mode>_5): Ditto.
3270
3271 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
3272
3273         PR c/52880
3274         * c-typeck.c (set_nonincremental_init,
3275         set_nonincremental_init_from_string): Pass true instead of false
3276         as IMPLICIT to add_pending_init.
3277
3278 2012-04-24  Georg-Johann Lay  <avr@gjlay.de>
3279
3280         Backport from 2012-04-24 mainline r186768.
3281
3282         PR target/53065
3283         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
3284
3285 2012-04-24  Richard Guenther  <rguenther@suse.de>
3286
3287         PR tree-optimization/53085
3288         * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
3289         stores.
3290
3291 2012-04-24  Jakub Jelinek  <jakub@redhat.com>
3292
3293         PR middle-end/53084
3294         * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR
3295         of MEM_REF.
3296         (output_addressed_constants): Likewise.
3297
3298         PR middle-end/52999
3299         * varasm.c (get_section): Don't ICE for section conflicts with
3300         built-in section kinds.
3301
3302 2012-04-23  David Edelsohn  <dje.gcc@gmail.com>
3303
3304         * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
3305
3306 2012-04-23  Georg-Johann Lay  <avr@gjlay.de>
3307
3308         * doc/extend.texi (AVR Named Address Spaces): Fix typos.
3309
3310 2012-04-23  Richard Guenther  <rguenther@suse.de>
3311
3312         PR c/53060
3313         * c-typeck.c (build_binary_op): Fix typo.
3314
3315 2012-04-23  Jakub Jelinek  <jakub@redhat.com>
3316
3317         PR tree-optimizations/52891
3318         * tree-vect-patterns.c (adjust_bool_pattern): Use
3319         build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
3320         but with non-standard precision.
3321
3322 2012-04-22  Ian Lance Taylor  <iant@google.com>
3323
3324         * godump.c (go_output_typedef): Dump size of structs.
3325
3326 2012-04-20  Ulrich Weigand  <ulrich.weigand@linaro.org>
3327
3328         Backport from mainline:
3329
3330         * config/arm/arm.c (arm_print_operand): Fix invalid alignment
3331         hints for 'A' operand types.
3332
3333 2012-04-19  Georg-Johann Lay  <avr@gjlay.de>
3334
3335         Backport from 2012-04-19 mainline r186588.
3336
3337         PR target/53033
3338         * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
3339         the case *(X+const).
3340
3341 2012-04-18  Uros Bizjak  <ubizjak@gmail.com>
3342
3343         * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
3344
3345 2012-04-17  Uros Bizjak  <ubizjak@gmail.com>
3346
3347         PR target/53020
3348         * config/i386/sync.md (atomic_<code><mode>): Rename to
3349         atomic_<logic><mode>.
3350
3351 2012-04-16  Uros Bizjak  <ubizjak@gmail.com>
3352
3353         Backport from mainline
3354         2012-04-12  Uros Bizjak  <ubizjak@gmail.com>
3355
3356         PR target/52932
3357         * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
3358         argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
3359         * config/i386/sse.md (avx2_permvarv8sf): Change operand 1 to V8SI.
3360         (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
3361         * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
3362         Update builtin type to V8SF_FTYPE_V8SF_V8SI.
3363         (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
3364         gen_avx2_permvarv8sf.
3365
3366 2012-04-16  Martin Jambor  <mjambor@suse.cz>
3367
3368         Backported from mainline
3369
3370         2012-04-13  Martin Jambor  <mjambor@suse.cz>
3371         PR middle-end/52939
3372
3373         * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
3374         fold_ctor_reference returns a zero constant.
3375
3376 2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>
3377
3378         Backported from mainline
3379         2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>
3380
3381         * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
3382         and __ILP32__ for x32.
3383
3384 2012-04-13  Tom de Vries  <tom@codesourcery.com>
3385
3386         Backport from mainline r186418.
3387
3388         2012-04-13  Tom de Vries  <tom@codesourcery.com>
3389
3390         * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
3391         parameters vuse and vuse_escaped.
3392         (find_duplicate): Init vuse1, vuse2 and vuse_escaped.  Pass to
3393         gsi_advance_bw_nondebug_nonlocal.  Return if vuse_escaped and
3394         vuse1 != vuse2.
3395
3396 2012-04-13  Richard Guenther  <rguenther@suse.de>
3397
3398         PR tree-optimization/52969
3399         * tree-if-conv.c (predicate_mem_writes): Properly gimplify
3400         the condition for the COND_EXPR and handle predicate negation
3401         by swapping the COND_EXPR arms.
3402
3403 2012-04-13  Richard Guenther  <rguenther@suse.de>
3404
3405         PR c/52862
3406         * convert.c (convert_to_pointer): Remove special-casing of
3407         zero.
3408
3409 2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
3410
3411         Backport from mainline
3412         2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
3413
3414         PR target/52775
3415         * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
3416         the list of options to enable the FCFID instruction.
3417         (TARGET_EXTRA_BUILTINS): Adjust comment.
3418
3419 2012-04-12  Richard Guenther  <rguenther@suse.de>
3420
3421         PR tree-optimization/52943
3422         * tree-chrec.h (chrec_is_positive): Remove.
3423         * tree-scalar-evolution.c (chrec_is_positive): Move ...
3424         * tree-data-ref.c (chrec_is_positive): ... here.  Make static.
3425         Return false for a constant zero instead of negative.
3426         (analyze_siv_subscript_cst_affine): Handle zero difference
3427         in the initial condition explicitely.
3428
3429 2012-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3430
3431         PR middle-end/52894
3432         * varasm.c (process_pending_assemble_externals): Set
3433         pending_assemble_externals_processed true.
3434         (assemble_external): Call assemble_external_real if the pending
3435         assemble externals have been processed.
3436
3437 2012-04-09  Eric Botcazou  <ebotcazou@adacore.com>
3438
3439         PR target/52717
3440         * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
3441         the DECL generated for the special GOT helper.
3442
3443 2012-04-06  Walter Lee  <walt@tilera.com>
3444
3445         Backport from mainline
3446         2012-03-07  Walter Lee  <walt@tilera.com>
3447
3448         * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
3449         REG_CFA_* notes for the stack pointer.
3450         (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
3451         EH_RETURN_STACKADJ_RTX.
3452         * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
3453         generate REG_CFA_* notes for the stack pointer.
3454         (tilepro_expand_epilogue): Restore stack pointer by adjusting it
3455         by EH_RETURN_STACKADJ_RTX.
3456
3457 2012-04-06  Matt Turner  <mattst88@gmail.com>
3458
3459         * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
3460
3461 2012-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3462
3463         * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
3464         of the destination isn't also a FP_REGS register.
3465
3466 2012-04-03  Richard Guenther  <rguenther@suse.de>
3467
3468         Backport from mainline
3469         2012-03-02  Richard Guenther  <rguenther@suse.de>
3470
3471         PR tree-optimization/52406
3472         * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
3473         (struct indices): Add unconstrained_base member.
3474         (struct dr_alias): Remove unused vops member.
3475         (DR_UNCONSTRAINED_BASE): New define.
3476         * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
3477         add indices to allow their disambiguation.  Make DR_BASE_OBJECT
3478         be an artificial access that covers the whole indexed object,
3479         or mark it with DR_UNCONSTRAINED_BASE if we cannot do so.  Canonicalize
3480         plain decl base-objects to their MEM_REF variant.
3481         (dr_may_alias_p): When the base-object of either data reference
3482         has unknown size use only points-to information.
3483         (compute_affine_dependence): Make dumps easier to read and
3484         more verbose.
3485         * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
3486         DR_REF when looking for packed references.
3487         (vect_supportable_dr_alignment): Likewise.
3488
3489 2012-04-03  Richard Guenther  <rguenther@suse.de>
3490
3491         Backport from mainline
3492         2012-03-15  Richard Guenther  <rguenther@suse.de>
3493
3494         PR middle-end/52580
3495         * tree-data-ref.c (subscript_dependence_tester_1): Check
3496         all dimensions for non-conflicting access functions.
3497
3498 2012-04-03  Richard Guenther  <rguenther@suse.de>
3499
3500         Backport from mainline
3501         2012-03-06  Richard Guenther  <rguenther@suse.de>
3502
3503         PR middle-end/52493
3504         * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
3505
3506         2012-03-23  Richard Guenther  <rguenther@suse.de>
3507
3508         PR tree-optimization/52678
3509         * tree-vectorizer.h (struct _stmt_vec_info): Add
3510         loop_phi_evolution_part member.
3511         (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
3512         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
3513         STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
3514         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3515         Use the cached evolution part and the PHI nodes value from
3516         the loop preheader edge instead of re-analyzing the evolution.
3517
3518         2012-03-26  Richard Guenther  <rguenther@suse.de>
3519
3520         PR tree-optimization/52701
3521         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
3522         compute and set the evolution part of PHI nodes.
3523
3524         2012-03-30  Richard Guenther  <rguenther@suse.de>
3525
3526         PR tree-optimization/52754
3527         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
3528         propagate arbitrary addresses into really plain dereferences.
3529
3530 2012-04-03  Jakub Jelinek  <jakub@redhat.com>
3531
3532         PR tree-optimization/52835
3533         * tree-data-ref.c (build_rdg): Return NULL if
3534         compute_data_dependences_for_loop failed.
3535
3536 2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>
3537
3538         * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
3539         (stmt_can_make_abnormal_goto): Use it.
3540         (is_ctrl_altering_stmt): Likewise.
3541
3542 2012-03-31  Martin Jambor  <mjambor@suse.cz>
3543
3544         Backported from mainline
3545         2012-03-30  Martin Jambor  <mjambor@suse.cz>
3546
3547         * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
3548         is a builtin_stack_save in a dominating BB.
3549
3550 2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
3551
3552         * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
3553         crossing 128bit lane boundary.
3554
3555 2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
3556
3557         Backported from mainline
3558         2012-03-27  Uros Bizjak  <ubizjak@gmail.com>
3559
3560         PR target/52698
3561         * config/i386/i386-protos.h (ix86_legitimize_reload_address):
3562         New prototype.
3563         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
3564         * config/i386/i386.c: Include reload.h.
3565         (ix86_legitimize_reload_address): New function.
3566
3567 2012-03-28  Martin Jambor  <mjambor@suse.cz>
3568
3569         Backported from mainline
3570         2012-03-27  Martin Jambor  <mjambor@suse.cz>
3571
3572         PR middle-end/52693
3573         * tree-sra.c (sra_modify_assign): Do not call
3574         load_assign_lhs_subreplacements when working with an unscalarizable
3575         region.
3576
3577 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
3578
3579         PR middle-end/52691
3580         * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
3581         __builtin_va_start to __builtin_next_arg if the latter is
3582         builtin_decl_explicit_p rather than when it is not.
3583
3584         PR middle-end/52750
3585         * tree-vect-generic.c (vector_element): Perform multiplication
3586         for pos in bitsizetype type instead of idx type.
3587
3588 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
3589
3590         Backport from 2012-03-28 mainline r185910.
3591
3592         PR target/52692
3593         * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
3594         (avr_builtin_decl): New static function.
3595         (struct avr_builtin_description, avr_bdesc): Move up.
3596         Add GTY marker. Add field fndecl. Remove redundant field id.
3597         (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
3598         (avr_expand_builtin): Code cleanup because .id is removed.
3599
3600 2012-03-28  Aurelien Buhrig  <aurelien.buhrig.gcc@gmail.com>
3601
3602         PR middle-end/51893
3603         * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
3604         targets.
3605
3606 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
3607
3608         Backport from 2012-03-28 mainline r185907.
3609
3610         PR target/52737
3611         * config.gcc (tm_file): Remove avr/multilib.h.
3612
3613         * doc/invoke.texi (AVR Options): Adjust
3614         documentation of -mtiny-stack.
3615
3616         * config/avr/genmultilib.awk: Remove code to generate multilib.h.
3617         (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
3618         * config/avr/t-avr: Remove generation of multilib.h.
3619         * config/avr/t-multilib: Regenerate.
3620         * config/avr/multilib.h: Remove.
3621         * config/avr/avr.opt (-msp8): New option.
3622         (avr_sp8): New variable.
3623         * config/avr/driver-avr.c (avr_device_to_sp8): New function.
3624         * config/avr/avr.h (AVR_HAVE_SPH): New define.
3625         (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
3626         (avr_device_to_sp8): New prototype.
3627         (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
3628         (DRIVER_SELF_SPECS): New define.
3629         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
3630         __AVR_SP8__, __AVR_HAVE_SPH__.
3631         * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
3632         AVR_HAVE_8BIT_SP to decide if SP_H is present.
3633         (avr_file_start): Ditto.
3634
3635 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
3636
3637         PR target/52736
3638         * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
3639         instead of 8 in adjust_address.
3640
3641 2012-03-27  Eric Botcazou  <ebotcazou@adacore.com>
3642
3643         * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
3644         of a unit before computing the offset in units.
3645
3646 2012-03-27  Richard Guenther  <rguenther@suse.de>
3647
3648         PR middle-end/52720
3649         * fold-const.c (try_move_mult_to_index): Handle &x.array more
3650         explicitely.
3651
3652 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3653
3654         PR target/52610
3655         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
3656
3657 2012-03-24  Steven Bosscher  <steven@gcc.gnu.org>
3658
3659         PR middle-end/52640
3660         * varasm.c: Include pointer-set.h.
3661         (pending_assemble_externals_set): New pointer set.
3662         (process_pending_assemble_externals): Destroy the pointer set.
3663         (assemble_external): See if decl is in pending_assemble_externals_set,
3664         and add it to pending_assemble_externals if necessary.
3665         (init_varasm_once): Allocate pending_assemble_externals_set.
3666
3667 2012-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3668
3669         Backported from mainline
3670         2012-03-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3671
3672         PR target/50310
3673         * config/rs6000/vector.md (vector_uneq<mode>): Add support for
3674         UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
3675         (vector_ltgt<mode>): Likewise.
3676         (vector_ordered<mode>): Likewise.
3677         (vector_unordered<mode>): Likewise.
3678         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
3679
3680 2012-03-23  Joern Rennecke  <joern.rennecke@embecosm.com>
3681
3682         * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
3683         Make static.
3684
3685 2012-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3686
3687         Backported from mainline
3688         2012-03-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3689
3690         PR target/48596
3691         PR target/48806
3692         * config/sh/sh.c (sh_register_move_cost): Increase cost between
3693         GENERAL_REGS and FP_REGS for SImode.
3694
3695 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
3696
3697         PR middle-end/52547
3698         * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
3699         on any new_local_var_chain vars declared during recursing on
3700         GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
3701
3702 2012-03-22  Georg-Johann Lay  <avr@gjlay.de>
3703
3704         Backport from 2012-03-22 mainline r185692.
3705
3706         PR target/52496
3707         * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
3708         (unspecv): Add UNSPECV_MEMORY_BARRIER.
3709         (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
3710         (delay_cycles_1, delay_cycles_2): Ditto.
3711         (delay_cycles_3, delay_cycles_4): Ditto.
3712         (nopv, *nopv): Ditto.
3713         (sleep, *sleep): Ditto.
3714         (wdr, *wdr): Ditto.
3715
3716         Backport from 2012-03-21 mainline r185605.
3717
3718         PR rtl-optimization/52543
3719         PR target/52461
3720         * config/avr/avr-protos.h (avr_load_lpm): New prototype.
3721         * config/avr/avr.c (avr_mode_dependent_address_p): New function.
3722         (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
3723         (avr_load_libgcc_p): Restrict to __flash loads.
3724         (avr_out_lpm): Only handle 1-byte loads from __flash.
3725         (avr_load_lpm): New function.
3726         (avr_find_unused_d_reg): Remove.
3727         (avr_out_lpm_no_lpmx): Remove.
3728         (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
3729         * config/avr/avr.md (unspec): Add UNSPEC_LPM.
3730         (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
3731         (load_<mode>, load_<mode>_clobber): New insns.
3732         (mov<mode>): For multi-byte move from non-generic
3733         16-bit address spaces: Expand to load_<mode> resp.
3734         load_<mode>_clobber.
3735         (load<mode>_libgcc): Remove expander.
3736         (split-lpmx): Remove split.
3737
3738         Backport from 2012-03-13 mainline r185329.
3739
3740         PR target/52488
3741         * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
3742         offset (size) to a value the insns can deal with.
3743         (expand_epilogue): Ditto.
3744
3745         Backport from 2012-03-12 mainline r185256.
3746
3747         PR target/52499
3748         * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
3749         type from reg_class_t to enum reg_class.
3750         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
3751
3752         Backport from 2012-03-12 mainline r185253.
3753
3754         PR target/52148
3755         * config/avr/avr.c (avr_out_movmem): Fix typo in output template
3756         for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
3757         r184615 from 2012-02-28.
3758
3759         Backport from 2012-03-08 mainline r185105.
3760
3761         * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
3762         for constants in [-63,63].
3763
3764         Backport from 2012-03-08 mainline r185100.
3765
3766         PR target/52496
3767         * config/avr/avr.c (avr_mem_clobber): New static function.
3768         (avr_expand_delay_cycles): Add memory clobber operand to
3769         delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
3770         * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
3771         (enable_interrupt, disable_interrupt): New expander.
3772         (nopv, sleep, wdr): New expanders.
3773         (delay_cycles_1): Add memory clobber.
3774         (delay_cycles_2): Add memory clobber.
3775         (delay_cycles_3): Add memory clobber.
3776         (delay_cycles_4): Add memory clobber.
3777         (cli_sei): New insn from former "enable_interrupt",
3778         "disable_interrupt" with memory clobber.
3779         (*wdt): New insn from former "wdt" with memory clobber.
3780         (*nopv): Similar, but for "nopv".
3781         (*sleep): Similar, but for "sleep".
3782
3783         Backport from 2012-03-07 mainline r185043.
3784
3785         PR target/52484
3786         * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
3787
3788         Backport from 2012-03-07 mainline r185032.
3789
3790         PR target/52506
3791         * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
3792         to: RAMPZ, RAMPY, RAMPX, RAMPD.
3793         (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
3794
3795         Backport from 2012-03-07 mainline r185031.
3796
3797         PR target/52505
3798         * config/avr/avr.c (avr_out_xload): Don't read unintentionally
3799         from RAM.
3800         * config/avr/avr.md (xload_8): Adjust insn length.
3801
3802         Backport from 2012-03-07 mainline r185030.
3803
3804         PR target/52461
3805         * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
3806         if RAMPZ affects reading from RAM.
3807
3808         Backport from 2012-03-05 mainline r184919.
3809
3810         * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
3811
3812 2012-03-22  Georg-Johann Lay  <avr@gjlay.de>
3813
3814         Backport from mainline r185259.
3815
3816         PR other/52545
3817         * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
3818         SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
3819
3820 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
3821
3822         Backported from mainline
3823         2012-03-13  Jakub Jelinek  <jakub@redhat.com>
3824
3825         PR c/52577
3826         * c-parser.c (c_parser_postfix_expression)
3827         <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
3828
3829         * config/i386/smmintrin.h: Avoid /* within a comment.
3830         * config/i386/nmmintrin.h: Likewise.
3831
3832 2012-03-22  Richard Guenther  <rguenther@suse.de>
3833
3834         * BASE-VER: Set to 4.7.1.
3835         * DEV-PHASE: Set to prerelease.
3836
3837 2012-03-22  Release Manager
3838
3839         * GCC 4.7.0 released.
3840
3841 2012-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3842
3843         * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
3844
3845 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
3846             Andrew Pinski  <apinski@cavium.com>
3847
3848         PR middle-end/52592
3849         * builtins.c (expand_builtin_int_roundingfn_2): If expanding
3850         BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
3851         calls instead of __builtin_ir{int,ound}*.
3852
3853 2012-03-14  Jakub Jelinek  <jakub@redhat.com>
3854
3855         PR c++/52582
3856         * config/rs6000/rs6000.c (call_ABI_of_interest): Return true
3857         if c_node is NULL.
3858
3859 2012-03-13  Joseph Myers  <joseph@codesourcery.com>
3860
3861         * doc/invoke.texi (-std=c99), doc/standards.texi (C language):
3862         Refer to GCC 4.7 version of c99status.html.
3863
3864 2012-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
3865
3866         Backport from mainline
3867         2012-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3868
3869         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
3870         redefine to be NULL if the current bit-size is different from the
3871         configured bit-size.
3872
3873         * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
3874         cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
3875         set the default tuning.  Add asserts to make sure the cpu and tune
3876         indexes are defined.  Fix tests for cpu/tune index to use >= 0 to
3877         test whether the index is set, instead of > 0.
3878         (rs6000_file_start): Do not reset the default cpu if the current
3879         bit-size is different from the configured bit-size.
3880
3881 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3882
3883         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
3884         binutils reference.
3885         (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
3886         Update binutils references.
3887         (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
3888         Update binutils reference.
3889         Update Sun as/GNU ld caveat.
3890         Document binutils largefile requirement for LTO plugin.
3891         Remove reference to alternate libpthread.
3892
3893 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3894
3895         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update binutils
3896         reference.
3897         (Specific, mips-sgi-irix6): Likewise.
3898
3899 2012-03-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3900
3901         * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
3902         * configure: Regenerate.
3903
3904 2012-03-07  Richard Henderson  <rth@redhat.com>
3905
3906         * config/m68k/m68k.h (ISA_HAS_TAS): New.
3907         * config/m68k/sync.md (atomic_test_and_set): Use it.
3908         (atomic_test_and_set_1): Likewise.
3909
3910 2012-03-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
3911
3912         PR target/51417
3913         * Makefile.in: Let install-gcc-ar depend on installdirs,
3914         gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
3915         Don't double canonicalize if cross-compiling.
3916
3917 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
3918
3919         * trans-mem.c: New typedef for tm_region_p.
3920         Define vector types for tm_region_p.
3921         (tm_region_init): Replace region_worklist to a vector called
3922         bb_regions.
3923
3924 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
3925
3926         PR middle-end/52463
3927         * trans-mem.c (tm_region_init): Use last_basic_block.
3928
3929 2012-03-05  Richard Henderson  <rth@redhat.com>
3930
3931         PR tree-opt/52242
3932         Revert: 2011-11-26  Richard Henderson  <rth@redhat.com>
3933         * omp-low.c (expand_omp_atomic): Assume anything aligned to
3934         BIGGEST_ALIGNMENT is aligned.
3935
3936 2012-03-05  Oleg Endo  <olegendo@gcc.gnu.org>
3937
3938         * config/sh/sh.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
3939
3940 2012-03-05  Richard Henderson  <rth@redhat.com>
3941
3942         PR target/52481
3943         * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
3944         instead of calling negqi2 directly.
3945
3946 2012-03-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3947
3948         * config/mips/iris6.h [!USED_FOR_TARGET] (long_intmax): Declare.
3949         (INTMAX_TYPE): Use it.
3950         (UINTMAX_TYPE): Likewise.
3951         (SUBTARGET_OVERRIDE_OPTIONS): Define.
3952         (irix6_c_common_override_options): Declare.
3953         (C_COMMON_OVERRIDE_OPTIONS): Define.
3954         * config/mips/mips.c [TARGET_IRIX6] (long_intmax): Define.
3955         * config/mips/irix6-c.c: New file.
3956         * config/mips/t-irix6 (irix6-c.o): New target.
3957         * config.gcc (mips-sgi-irix6.5): Set c_target_objs,
3958         cxx_target_objs.
3959
3960 2012-03-02  Richard Henderson  <rth@redhat.com>
3961
3962         * optabs.c (expand_atomic_test_and_set): Honor
3963         atomic_test_and_set_trueval even when atomic_test_and_set
3964         optab is not in use.
3965
3966 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
3967
3968         Backport from mainline
3969         2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
3970
3971         * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
3972
3973 2012-03-02  Richard Guenther  <rguenther@suse.de>
3974
3975         * DEV-PHASE: Set to prerelease.
3976
3977 2012-03-01  Richard Earnshaw  <rearnsha@arm.com>
3978
3979         * config.gcc (obsolete): Add all ARM targets using the FPA.
3980         (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
3981         * doc/install.texi: Avoid references to obsolete ARM ports.
3982
3983 2012-03-01  Joern Rennecke  <joern.rennecke@embecosm.com>
3984
3985         * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
3986
3987 2012-03-01  Jeremy Bennett  <jeremy.bennett@embecosm.com>
3988             Joern Rennecke  <joern.rennecke@embecosm.com>
3989
3990         * doc/extend.texi: Expand and update information on interrupt
3991         attribute for Epiphany.
3992
3993 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
3994
3995         * config/sh/sh-protos.h: Update copyright notice dates.
3996         * config/sh/sh.h: Likewise.
3997         * config/sh/sh.md: Likewise.
3998         * config/sh/constraints.md: Likewise.
3999         * config/sh/predicates.md: Likewise.
4000
4001 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
4002
4003         * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
4004         * config/sh/sh.c (tertiary_reload_operand): Likewise.
4005
4006 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
4007
4008         * config/sh/constraints.md: Fix comment typo.
4009
4010 2012-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4011
4012         PR target/52408
4013         * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
4014         unsigned HOST_WIDE_INT.
4015         (zvdep_imm64): Likewise.
4016         (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
4017         (vdepi_and): Likewise.
4018         Likewise for unamed 64-bit patterns.
4019         * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
4020
4021 2012-03-01  Alexandre Oliva  <aoliva@redhat.com>
4022
4023         PR debug/52001
4024         PR rtl-optimization/52417
4025         * cselib.c (cselib_any_perm_equivs): New variable.
4026         (cselib_reset_table): Check that it's not set when not
4027         preserving constants.
4028         (cselib_add_permanent_equiv): Set it.
4029         (cselib_have_permanent_equivalences): New.
4030         (cselib_init, cselib_finish): Reset it.
4031         * cselib.h (cselib_have_permanent_equivalences): Declare.
4032         * alias.c (get_addr): Restore earlier behavior when there
4033         aren't permanent equivalences.
4034
4035 2012-03-01  Steven Bosscher  <steven@gcc.gnu.org>
4036
4037         * config/mn10300/mn10300-modes.def: Fix copyright notice.
4038         * config/v850/v850-modes.def: Fix copyright notice.
4039
4040 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
4041
4042         * doc/extend.texi (AVR Built-in Functions): Document
4043         __builtin_avr_flash_segment.
4044
4045         * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
4046         * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
4047         (*split.flash_segment): New insn-and-split.
4048         * config/avr/avr.c (avr_init_builtins): Add local variables:
4049         const_memx_void_node, const_memx_ptr_type_node,
4050         char_ftype_const_memx_ptr.
4051
4052 2012-03-01  Jakub Jelinek  <jakub@redhat.com>
4053
4054         PR tree-optimization/52445
4055         * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
4056         add ssa_name_ver, offset and size fields and change store field
4057         to bool.
4058         (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
4059         (add_or_mark_expr): Likewise.  Only consider previous stores
4060         with the same size and offset.
4061         (nt_init_block): Only look at gimple_assign_single_p stmts,
4062         doesn't look at rhs2.
4063
4064 2012-03-01  Richard Guenther  <rguenther@suse.de>
4065
4066         PR middle-end/52443
4067         * tree-cfg.c (verify_gimple_assign_unary): Allow any
4068         conversions from integral types to pointer types.
4069
4070 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
4071
4072         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
4073         defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
4074         unintentionally removed in r184616.
4075
4076 2012-03-01  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
4077
4078         * doc/invoke.texi: Document AMD bdver2 and remove mentioning
4079         3DNow from bdver1.
4080
4081 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
4082             Uros Bizjak  <ubizjak@gmail.com>
4083
4084         PR target/52437
4085         * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
4086         alternatives, add "e" constraint to the new last alternative
4087         and ! to last 3 alternatives.
4088
4089 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
4090
4091         * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
4092         DW_AT_artificial attributes at the end of the processing.
4093         (gen_array_type_die): Likewise.
4094         (gen_enumeration_type_die): Likewise.
4095         (gen_struct_or_union_type_die): Likewise.
4096         (add_gnat_descriptive_type_attribute): Do not suppress debug info for
4097         the parent type.
4098
4099 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
4100
4101         PR middle-end/52419
4102         * expr.c (expand_assignment): If doing misaligned store that doesn't
4103         cover all mode bits, perform a RMW cycle.
4104
4105         PR tree-optimization/52429
4106         * tree-parloops.c (separate_decls_in_region_debug): Return early
4107         if var is LABEL_DECL.
4108
4109 2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4110
4111         PR tree-optimization/52424
4112         * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
4113         calling dom_thread_across_edge.
4114
4115 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
4116
4117         * config/avr/avr.c: Move definition of TARGET macros to end of file.
4118
4119 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
4120
4121         * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
4122         * config/avr/avr.c (avr_output_bld): Remove unused function.
4123         (avr_out_sbxx_branch): Use "%T" to print bit position.
4124
4125 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
4126
4127         * config/avr/avr.md: Untabify.
4128
4129 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
4130
4131         * config/avr/avr.md (eqne): New code iterator.
4132         (*dec-and-branchsi): Use it in text peephole's condition.
4133         (*dec-and-branchhi): Ditto.
4134         (*dec-and-branchqi): Ditto.
4135
4136 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
4137
4138         PR target/49939
4139         * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
4140         the device does not have the skip-bug.
4141
4142 2012-02-29  Oleg Endo  <olegendo@gcc.gnu.org>
4143
4144         * doc/invoke.texi (-msoft-atomic): Add more detailed description.
4145         (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
4146         -mpretend-cmove): New.
4147
4148 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
4149
4150         PR bootstrap/52397
4151         * df.h (struct df_d): Adjust comment that hard_regs_live_count
4152         doesn't count DEBUG_INSN refs.
4153         * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
4154         for DEBUG_INSN refs.
4155
4156 2012-02-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4157
4158         Partially revert:
4159
4160         2012-02-20  Richard Guenther  <rguenther@suse.de>
4161         PR tree-optimization/52298
4162         * tree-vect-stmts.c (vectorizable_load): Properly use
4163         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
4164         outer loops.
4165
4166 2012-02-28  Aldy Hernandez  <aldyh@redhat.com>
4167
4168         PR middle-end/51752
4169         * gimple.h (gimple_in_transaction): New.
4170         (gimple_set_in_transaction): New.
4171         (struct gimple_statement_base): Add in_transaction field.
4172         * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
4173         transaction loads.
4174         (tree_ssa_lim_initialize): Compute transaction bits.
4175         * tree.h (compute_transaction_bits): Protoize.
4176         * trans-mem.c (tm_region_init): Use the heap to store BB
4177         auxilliary data.
4178         (compute_transaction_bits): New.
4179
4180 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4181
4182         * gcc.c (display_help): Document --help=common and sort entries
4183         alphabetically.
4184
4185 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4186
4187         * doc/install.texi: Document check-$LANG specific shortcuts
4188
4189 2012-02-28  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
4190
4191         PR target/51534
4192         * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
4193         and vcgtu.
4194         * config/arm/arm_neon.h: Regenerate.
4195         * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
4196         (neon_vcgeu): New insn.
4197         (neon_vcgtu): Likewise.
4198         * config/arm/neon.ml (s_8_32, u_8_32): New lists.
4199         (ops): Unsigned comparison intrinsics call a different
4200         builtin.
4201
4202 2012-02-28  Richard Guenther  <rguenther@suse.de>
4203
4204         PR target/52407
4205         * config/i386/i386.c (ix86_expand_vector_set): Fix element
4206         ordering for the VEC_CONCAT for two element vectors for
4207         V2SFmode, V2SImode and V2DImode.
4208
4209 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
4210
4211         PR target/49448
4212         * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
4213         detecting big-endian triplets.
4214
4215 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
4216
4217         * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
4218         mode if there is no type information available.
4219
4220 2012-02-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
4221
4222         PR tree-optimization/53207
4223         * doc/invoke.texi: Document as experimental and relying on graphite.
4224
4225 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
4226
4227         * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
4228         of initializer to changes from r184614.
4229
4230 2012-02-28  Richard Guenther  <rguenther@suse.de>
4231
4232         PR tree-optimization/52395
4233         * tree-sra.c (build_ref_for_offset): Also look at the base
4234         TYPE_ALIGN when figuring out the alignment of the replacement.
4235
4236 2012-02-28  Richard Guenther  <rguenther@suse.de>
4237
4238         PR tree-optimization/52402
4239         * ipa-prop.c (ipa_modify_call_arguments): Properly use
4240         mis-aligned types when creating the accesses at the call site.
4241
4242 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
4243
4244         * config/avr/builtins.def: New file.
4245         * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
4246         * config/avr/avr.c (enum avr_builtin_id): Use it.
4247         (avr_init_builtins): Use it. And use avr_bdesc.
4248         (bdesc_1arg): Remove.
4249         (bdesc_2arg): Remove.
4250         (bdesc_3arg): Remove.
4251         (struct avr_builtin_description): Add field n_args.
4252         (avr_bdesc): New static variable using builtins.def.
4253         (avr_expand_builtin): Use it.
4254         Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
4255         (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
4256         Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
4257
4258 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
4259
4260         PR target/52148
4261         * config/avr/avr.md (movmem_<mode>): Replace match_operand that
4262         match only one single hard register with respective hard reg rtx.
4263         (movmemx_<mode>): Ditto.
4264         * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
4265         insn anatomy of movmem[x]_<mode>.
4266         (avr_out_movmem): Same for printing assembler and operand usage.
4267
4268 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
4269
4270         PR target/49868
4271         PR target/52261
4272         * doc/extend.texi (AVR Named Address Spaces): No more try to fix
4273         address spaces located outside of device flash.
4274
4275         * config/avr/avr.h (base_arch_s): Remove field n_segments.
4276         (mcu_type_s): Add field n_flash.
4277         * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
4278         Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
4279         (AVR_MCU): Add N_FLASH argument.
4280         * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
4281         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
4282         macro __FLASH<n> if that address space makes sense for the device.
4283         * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
4284         outside of target flash.
4285         (avr_asm_named_section): Ditto.
4286         (avr_asm_select_section): Ditto.
4287         (avr_addr_space_convert): Ditto.
4288         (avr_emit_movmemhi): Ditto.
4289         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
4290         address space is outside of device flash.
4291         (avr_insert_attributes): Ditto.
4292         (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
4293         avr_current_arch->n_segments.
4294
4295 2012-02-27  H.J. Lu  <hongjiu.lu@intel.com>
4296
4297         PR target/52352
4298         * config/i386/i386.md (*movabs<mode>_1): Enable only for
4299         TARGET_LP64.
4300         (*movabs<mode>_2): Likewise.
4301
4302 2012-02-27  Jakub Jelinek  <jakub@redhat.com>
4303
4304         PR target/52375
4305         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
4306         s_register_operand in the test instead of REG_P.  Don't call
4307         gen_reg_rtx if it won't be used.
4308
4309         PR tree-optimization/52376
4310         * ipa-split.c (split_function): Ignore CLOBBER stmts.
4311
4312 2012-02-27  Stuart Henderson  <shenders@gcc.gnu.org>
4313
4314         * ifcvt.c (noce_get_condition): Check condition variable is not
4315         small_register_classes_for_mode_p before accepting.
4316
4317 2012-02-27  Uros Bizjak  <ubizjak@gmail.com>
4318
4319         * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
4320
4321 2012-02-27  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
4322
4323         Revert:
4324         2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
4325         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
4326         tuning parameters.
4327         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
4328
4329 2012-02-27  Oleg Endo  <olegendo@gcc.gnu.org>
4330
4331         * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
4332
4333 2012-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
4334
4335         * config/sh/predicates.md: Remove blank lines.
4336         * config/sh/sh.c: Fix typos in comments.
4337         * config/sh/constraints.md: Likewise.
4338         * config/sh/sh.md: Remove blank lines.
4339         Fix typos in comments.  Use ;; as comment characters.
4340
4341 2012-02-26  Walter Lee  <walt@tilera.com>
4342
4343         * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
4344         (replace_mov_pcrel_step2): Ditto.
4345
4346 2012-02-25  Alexandre Oliva  <aoliva@redhat.com>
4347
4348         PR debug/52001
4349         * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
4350         (get_addr): Walk canonical value's locs.  Avoid returning VALUEs
4351         and locs that reference values newer than the non-canonical value
4352         at hand.  Return the canonical value as a worst case.
4353         (memrefs_conflict_p): Walk canonical value's locs.
4354
4355         PR debug/52001
4356         * cselib.c (preserve_only_constants): Rename to...
4357         (preserve_constants_and_equivs): ... this.  Split out...
4358         (invariant_or_equiv_p): ... this.  Preserve plus expressions
4359         of other preserved expressions too.
4360         (cselib_reset_table): Adjust.
4361         * var-tracking.c (reverse_op): Use canonical value to build
4362         reverse operation.
4363
4364 2012-02-23  Kai Tietz  <ktietz@redhat.com>
4365
4366         * config/i386/i386.c (ix86_delegitimize_address): Handle
4367         UNSPEC_PCREL plus displacement.
4368
4369 2012-02-24  Georg-Johann Lay  <avr@gjlay.de>
4370
4371         PR target/52261
4372         * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
4373         to test for unusedness in st X addressing.
4374
4375 2012-02-24  Richard Guenther  <rguenther@suse.de>
4376
4377         PR middle-end/52361
4378         * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
4379         (is_gimple_reg_type): Move inline ...
4380         * gimple.h (is_gimple_reg_type): ... here.
4381
4382 2012-02-24  Richard Guenther  <rguenther@suse.de>
4383
4384         PR middle-end/52361
4385         * passes.c (execute_function_todo): When verifying SSA form
4386         verify gimple form first.
4387         * tree-ssa.c (verify_ssa): Do not verify gimple form here.
4388
4389 2012-02-24  Richard Guenther  <rguenther@suse.de>
4390
4391         PR middle-end/52355
4392         * fold-const.c (fold_addr_of_array_ref_difference): New function.
4393         (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
4394
4395 2012-02-13  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4396
4397         * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
4398
4399 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4400
4401         * tree-phinodes.c (make_phi_node): Mark static.
4402         * tree-flow.h (make_phi_node): Remove extern decl.
4403         * doc/gimple.texi (make_phi_node): Remove documentation.
4404
4405 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4406
4407         * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
4408         * tree-ssa-sccvn.c (print_scc): Ditto.
4409
4410 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4411
4412         * doc/passes.texi (Full redundancy elimination): Fix typo.
4413
4414 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4415
4416         * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
4417
4418 2012-02-23  Eric Botcazou  <ebotcazou@adacore.com>
4419
4420         PR bootstrap/52287
4421         * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
4422
4423 2012-02-23  Uros Bizjak  <ubizjak@gmail.com>
4424
4425         PR c/52290
4426         * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
4427
4428 2012-02-23  Georg-Johann Lay  <avr@gjlay.de>
4429
4430         * config/avr/avr.md (code_stdname): Add ior, xor.
4431         (xior): New code iterator.
4432         (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
4433         (*<code_stdname><mode>qi.byte1-3): Ditto.
4434
4435 2012-02-23  Jakub Jelinek  <jakub@redhat.com>
4436
4437         PR tree-optimization/52019
4438         * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
4439         CLOBBER stmts.
4440
4441 2012-02-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4442
4443         * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
4444         HAVE_INITFINI_ARRAY to work around namespace pollution in
4445         certain versions of newlib system headers.
4446         * config.in: Regenerate.
4447         * configure: Regenerate.
4448         * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
4449         instead of HAVE_INITFINI_ARRAY.
4450
4451 2012-02-22  Uros Bizjak  <ubizjak@gmail.com>
4452
4453         PR target/52330
4454         * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
4455         is not offsettable memory reference.
4456
4457 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
4458
4459         PR target/18145
4460         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
4461         setting avr_need_clear_bss_p for __gnu_lto* symbols.
4462
4463 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
4464
4465         * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
4466         * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
4467
4468 2012-02-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4469
4470         * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
4471         library on Solaris 8 even without TLS support.
4472         * configure: Regenerate.
4473
4474 2012-02-22  Richard Guenther  <rguenther@suse.de>
4475
4476         PR middle-end/52329
4477         * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
4478         for GIMPLE_DEBUG stmts.
4479
4480 2012-02-22  Martin Jambor  <mjambor@suse.cz>
4481
4482         PR middle-end/51782
4483         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
4484         according to the base object.
4485
4486 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
4487
4488         PR rtl-optimization/50063
4489         * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
4490         and 2 (8-bit SP) in operand 2.
4491         * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
4492         setup to use movhi_sp_r instead of vanilla move to write SP.
4493         Adjust REG_CFA notes to superseed unspec.
4494         (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
4495         of vanilla move.
4496         As function body might contain CLI or SEI: Use irq_state 0 (IRQ
4497         known to be off) only with TARGET_NO_INTERRUPTS. Never use
4498         irq_state 1 (IRQ known to be on) here.
4499
4500 2012-02-21  Bernd Schmidt  <bernds@codesourcery.com>
4501
4502         * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
4503         WORDS_BIG_ENDIAN.
4504         * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
4505         assign_hard_reg): Likewise.
4506
4507 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
4508
4509         * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
4510
4511 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
4512
4513         * config/avr/avr.md
4514         (*dec-and-branchhi!=-1.d.clobber): New text peephole.
4515         (*dec-and-branchhi!=-1.l.clobber): New text peephole.
4516
4517 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
4518
4519         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
4520         prototype from here to...
4521         * config/avr/avr.h: ...here.
4522
4523 2012-02-21  Richard Earnshaw  <rearnsha@arm.com>
4524
4525         PR target/52294
4526         * thumb2.md (thumb2_shiftsi3_short): Split register and
4527         immediate shifts.  For register shifts tie operands 0 and 1.
4528         (peephole2 for above): Check that register-controlled shifts
4529         have suitably tied operands.
4530
4531 2012-02-21  Quentin Neill  <quentin.neill@amd.com>
4532
4533         PR target/52137
4534         * config/i386/bdver1.md (bdver1_call, bdver1_push,
4535         bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
4536         bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
4537         bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
4538         bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
4539         bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
4540         bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
4541         bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
4542         bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
4543         bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
4544         bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
4545         bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
4546         bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
4547         bdver1_ssevector_avx256_unaligned_load,
4548         bdver1_ssevector_sse128_unaligned_load,
4549         bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
4550         bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
4551         bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
4552         bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
4553         bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
4554         bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
4555         bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
4556         bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
4557         bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
4558         bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
4559         bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
4560         bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
4561         bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
4562         bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
4563         bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
4564         bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
4565         bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
4566         bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
4567         bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
4568         bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
4569         bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
4570         bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
4571         bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
4572         bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
4573         bdver1_ssediv_double_load, bdver1_ssediv_double,
4574         bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
4575         Add "bdver2" attribute.
4576
4577 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4578
4579         * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
4580         default if possible and not specified otherwise.
4581
4582 2012-02-21  Richard Guenther  <rguenther@suse.de>
4583
4584         PR middle-end/52314
4585         * gimplify.c (create_tmp_from_val): Use the main variant type
4586         for the type of the temporary we create.
4587
4588 2012-02-21  Richard Guenther  <rguenther@suse.de>
4589
4590         PR tree-optimization/52324
4591         * gimplify.c (gimplify_expr): When re-gimplifying expressions
4592         do not gimplify a MEM_REF address operand if it is already
4593         in suitable form.
4594
4595 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4596
4597         * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
4598         TARGET_HARD_FLOAT with TARGET_HARD_DFP.
4599
4600 2012-02-21  Richard Guenther  <rguenther@suse.de>
4601
4602         * tree-vect-stmts.c (vectorizable_load): Use pre-computed
4603         nested_in_vect_loop.
4604
4605 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
4606
4607         PR tree-optimization/52318
4608         * gimple-fold.c (gimplify_and_update_call_from_tree): Add
4609         vdef also to non-pure/const call stmts in the sequence.
4610
4611 2012-02-20  David S. Miller  <davem@davemloft.net>
4612
4613         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
4614         don't use the "rd %pc" instruction on v9 for PIC register loads.
4615
4616 2012-02-20  Aldy Hernandez  <aldyh@redhat.com>
4617
4618         PR middle-end/52141
4619         * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
4620         in a transaction safe function.
4621
4622 2012-02-20  Kai Tietz  <ktietz@redhat.com>
4623
4624         PR target/52238
4625         * stor-layout.c (place_field): Handle desired_align for
4626         ms-bitfields, too.
4627
4628 2012-02-20  Richard Guenther  <rguenther@suse.de>
4629
4630         PR tree-optimization/52298
4631         * tree-vect-stmts.c (vectorizable_store): Properly use
4632         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
4633         outer loops.
4634         (vectorizable_load): Likewise.
4635         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
4636         Access DR_STEP after ensuring it is not NULL.
4637
4638 2012-02-20  Jakub Jelinek  <jakub@redhat.com>
4639
4640         PR tree-optimization/52286
4641         * fold-const.c (fold_binary_loc): For (X & C1) | C2
4642         optimization use double_int_to_tree instead of build_int_cst_wide,
4643         rewrite to use double_int vars.
4644
4645 2012-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4646
4647         PR target/50166
4648         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
4649         Define _start.
4650         Remove -e 0 from $gcc_cv_ld invocation.
4651         Only use __GLIBC_PREREQ if defined.
4652         Enable on Solaris since Solaris 8 patch.
4653         (gcc_SUN_LD_VERSION): New macro.
4654         * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
4655         gcc_SUN_LD_VERSION for version number format.
4656         * configure: Regenerate.
4657         * varasm.c (get_elf_initfini_array_priority_section): Set
4658         SECTION_NOTYPE for non-default priority.
4659         Use get_section instead of get_unnamed_section to emit
4660         .init_array/.fini_array with default priority.
4661
4662 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
4663
4664         * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
4665         (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
4666         (mips_start_unique_function, mips_output_mips16_rdhwr)
4667         (mips_code_end): New functions.
4668         (TARGET_ASM_CODE_END): Define.
4669
4670 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
4671
4672         * config/mips/mips.c (mips16_build_call_stub): Add CFI information
4673         to stubs with non-sibling calls.
4674
4675 2012-02-18  Sandra Loosemore  <sandra@codesourcery.com>
4676
4677         * doc/invoke.texi (-fira-* options): Copy-edit.
4678         (ira-* parameters): Copy-edit.
4679
4680 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
4681
4682         * doc/invoke.texi: Minor copy-edits to bring into conformance with
4683         GCC coding conventions.
4684
4685 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
4686
4687         * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
4688         when used as adjectives.
4689
4690 2012-02-16  Sandra Loosemore  <sandra@codesourcery.com>
4691
4692         * doc/invoke.texi: Clean up "that"/"which" confusion.
4693
4694 2012-02-17  Steven Bosscher  <steven@gcc.gnu.org>
4695
4696         * system.h: Poison SMALL_REGISTER_CLASSES
4697         * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
4698         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
4699
4700 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
4701
4702         PR tree-optimization/52285
4703         * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
4704         when deciding if a call is a tail call or tail recursion.
4705
4706 2012-02-16  Kai Tietz  <ktietz@redhat.com>
4707
4708         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
4709         interger-constant displacement for UNSPEC_PCREL.
4710
4711 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
4712
4713         PR rtl-optimization/52208
4714         * ira-costs.c (scan_one_insn): Don't decrease mem_cost
4715         for MEMs with REG_EQUIV, if the MEM isn't general_operand.
4716
4717         PR tree-optimization/52255
4718         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
4719         loop->header has virtual PHI, but exit_e->dest doesn't, add
4720         virtual PHI to exit_e->dest and adjust all uses after the loop.
4721
4722         PR debug/52260
4723         * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
4724         children with clone_tree_hash, not after it.
4725
4726 2012-02-16  Iain Sandoe  <iains@gcc.gnu.org>
4727
4728         * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
4729         extended identifiers.
4730
4731 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
4732
4733         PR middle-end/51929
4734         * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
4735         a same_body_alias, also test whether e->callee isn't a former
4736         or current clone of the decl this is a same body alias of.
4737
4738         PR translation/52264
4739         * cgraphunit.c (verify_cgraph_node): Fix a typo.
4740
4741 2012-02-15  Sandra Loosemore  <sandra@codesourcery.com>
4742
4743         * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
4744
4745 2012-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
4746
4747         PR target/52199
4748         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
4749         force_reg instead of copy_to_reg for better optimization.  Force
4750         non-register or memory operands into a register.
4751
4752 2012-02-15  Andrew MacLeod  <amacleod@redhat.com>
4753
4754         * extend.texi: Reserve upper bits of memory model for future use.
4755
4756 2012-01-15  Georg-Johann Lay  <avr@gjlay.de>
4757             Anatoly Sokolov <aesok@post.ru>
4758             Eric Weddington <eric.weddington@atmel.com>
4759
4760         PR target/52261
4761         * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
4762         avrxmega4, avrxmega5, avrxmega6, avrxmega7.
4763         Rewrite initializers for .macro.
4764         * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
4765         avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
4766         atxmega32d4, atxmega32x1.
4767         avrxmega4: atxmega64a3, atxmega64d3.
4768         avrxmega5: atxmega64a1, atxmega64a1u.
4769         avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
4770         atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
4771         avrxmega7: atxmega128a1, atxmega128a1u.
4772         * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
4773         ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
4774         (struct base_arch_s): Rename reserved to xmega_p.
4775         Rename reserved2 to have_rampd.
4776         (AVR_XMEGA): New define.
4777         (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
4778         (AVR_HAVE_RAMPZ): Change definition to fit xmega.
4779         * config/avr/predicates.md (io_address_operand): Take into
4780         account SFR offset.
4781         (low_io_address_operand): Ditto.
4782         (high_io_address_operand): Ditto.
4783         * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
4784         (enabled, movhi_sp_r): Use them.
4785         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
4786         cpp_define_formatted to built-in define __AVR_ARCH__.
4787         (__AVR_XMEGA__): New built-in define.
4788         (__AVR_HAVE_RAMPD__): New built-in define.
4789         (__AVR_HAVE_RAMPX__): New built-in define.
4790         (__AVR_HAVE_RAMPY__): New built-in define.
4791         (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
4792
4793         * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
4794         (avr_option_override): Initialize them.
4795         (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
4796         (avr_init_expanders): Initialize them. No more block several calls.
4797         (emit_push_sfr): New static function.
4798         (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
4799         Handle AVR_XMEGA.
4800         (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
4801         (avr_print_operand): Print addreeses as symbols for
4802         RAMPX, RAMPY, RAMPD, CCP.
4803         (output_movhi): Handle AVR_XMEGA when writing to SP.
4804         (avr_out_movhi_mr_r_xmega): New static function.
4805         (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
4806         (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
4807         __RAMPD__,  __CCP__ as needed.
4808
4809         * config/avr/multilib.h: Regenerate.
4810         * config/avr/t-multilib: Regenerate.
4811         * config/avr/avr-tables.opt: Regenerate.
4812
4813 2012-02-15  Tobias Grosser <grosser@fim.uni-passau.de>
4814
4815         PR tree-optimization/50561
4816         * graphite-flattening.c (lst_project_loop): Do not
4817         remove old scattering dimensions after flattening.
4818         (lst_do_flatten): Likewise.
4819
4820 2012-02-15  Georg-Johann Lay  <avr@gjlay.de>
4821
4822         * doc/extend.texi (AVR Built-in Functions): Remove doc for
4823         __builtin_avr_map8, __builtin_avr_map16.
4824         Document __builtin_avr_insert_bits.
4825
4826         * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
4827         (insert_bits): New insn.
4828         (adjust_len.map_bits): Rename to insert_bits.
4829         (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
4830         * avr-protos.h (avr_out_map_bits): Remove.
4831         (avr_out_insert_bits, avr_has_nibble_0xf): New.
4832         * config/avr/constraints.md (Cxf,C0f): New.
4833         * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
4834         defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
4835         New built-in define __BUILTIN_AVR_INSERT_BITS.
4836         * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
4837         (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
4838         (avr_move_bits): Rewrite.
4839         (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
4840         functions.
4841         (avr_map_op_t): New typedef.
4842         (avr_map_op): New static variable.
4843         (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
4844         (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
4845         (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
4846         (bdesc_3arg, avr_expand_triop_builtin): New.
4847         (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
4848         (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
4849         (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
4850         (avr_map_equal_p, avr_map_sig_p): Remove.
4851         (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
4852         (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
4853         (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
4854         (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
4855         (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
4856         (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
4857
4858 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
4859
4860         * config/c6x/c6x.md (reserve_cycles): New attribute.
4861         * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
4862         don't reserve functional units after the branch occurs.
4863
4864 2012-02-14  Aldy Hernandez  <aldyh@redhat.com>
4865
4866         PR middle-end/52142
4867         * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
4868         functions into non-tm_pure functions.
4869
4870 2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>
4871
4872         PR lto/52178
4873         * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
4874         (iterative_hash_canonical_type): Likewise.
4875         * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
4876         the dead edges.
4877
4878 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
4879
4880         * haifa-sched.c (prune_ready_list): Ensure that if there is a
4881         sched-group insn, it either remains alone or the entire list is pruned.
4882
4883 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
4884
4885         * doc/install.texi (Prerequisites): Fix grammar.
4886         (Configuration): Likewise.
4887
4888 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
4889
4890         * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
4891         MPC as part of GCC before describing configuring with --with-gmp etc.
4892         (Installing GCC: Configuration): --with-gmp etc. aren't needed if
4893         sources are present.
4894
4895 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
4896
4897         PR debug/51950
4898         * dwarf2out.c (clone_tree_hash): New function.
4899         (copy_decls_walk): Use it instead of clone_tree.
4900
4901 2012-02-14  Richard Guenther  <rguenther@suse.de>
4902
4903         PR tree-optimization/52244
4904         PR tree-optimization/51528
4905         * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
4906         replacements for integral types.
4907
4908 2012-02-14  Walter Lee  <walt@tilera.com>
4909
4910         * config.gcc: Handle tilegx and tilepro.
4911         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
4912         tilegx and tilepro.
4913         Add HAVE_AS_TLS check for tilegx and tilepro.
4914         * configure: Regenerate.
4915         * doc/contrib.texi: Add Mat Hostetter and self.
4916         * doc/extend.texi (TILE-Gx Built-in Functions): New node.
4917         Document instruction intrinsics and network accessing intrinsics.
4918         (TILEPro Built-in Functions): New node.  Document instruction
4919         intrinsics and network accessing intrinsics.
4920         * doc/install.texi (Specific, tilegx-*-linux*): Document it.
4921         (Specific, tilepro-*-linux*): Likewise.
4922         * doc/invoke.texi (TILE-Gx Options): New section.
4923         (TILEPro Options): New section.
4924         * doc/md.texi (TILE-Gx): New section.
4925         (TILEPro): New section.
4926         * common/config/tilegx/tilegx-common.c: New file.
4927         * common/config/tilepro/tilepro-common.c: New file.
4928         * config/tilegx/constraints.md: New file.
4929         * config/tilegx/linux.h: New file.
4930         * config/tilegx/mul-tables.c: New file.
4931         * config/tilegx/predicates.md: New file.
4932         * config/tilegx/sync.md: New file.
4933         * config/tilegx/t-tilegx: New file.
4934         * config/tilegx/tilegx-builtins.h: New file.
4935         * config/tilegx/tilegx-c.c: New file.
4936         * config/tilegx/tilegx-generic.md: New file.
4937         * config/tilegx/tilegx-modes.def: New file.
4938         * config/tilegx/tilegx-multiply.h: New file.
4939         * config/tilegx/tilegx-protos.h: New file.
4940         * config/tilegx/tilegx.c: New file.
4941         * config/tilegx/tilegx.h: New file.
4942         * config/tilegx/tilegx.md: New file.
4943         * config/tilegx/tilegx.opt: New file.
4944         * config/tilepro/constraints.md: New file.
4945         * config/tilepro/gen-mul-tables.cc: New file.
4946         * config/tilepro/linux.h: New file.
4947         * config/tilepro/mul-tables.c: New file.
4948         * config/tilepro/predicates.md: New file.
4949         * config/tilepro/t-tilepro: New file.
4950         * config/tilepro/tilepro-builtins.h: New file.
4951         * config/tilepro/tilepro-c.c: New file.
4952         * config/tilepro/tilepro-generic.md: New file.
4953         * config/tilepro/tilepro-modes.def: New file.
4954         * config/tilepro/tilepro-multiply.h: New file.
4955         * config/tilepro/tilepro-protos.h: New file.
4956         * config/tilepro/tilepro.c: New file.
4957         * config/tilepro/tilepro.h: New file.
4958         * config/tilepro/tilepro.md: New file.
4959         * config/tilepro/tilepro.opt: New file.
4960
4961 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
4962
4963         PR tree-optimization/52210
4964         * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
4965         vect_model_simple_cost with two entry vect_def_type array instead
4966         of an address of dt.
4967
4968 2012-02-14  Richard Guenther  <rguenther@suse.de>
4969
4970         PR lto/52178
4971         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
4972         Do not stream DECL_QUALIFIER.
4973         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
4974         * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
4975         (find_decls_types_r): Do not walk DECL_QUALIFIER.
4976
4977 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
4978
4979         PR c/52181
4980         * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
4981         newdecl.
4982
4983 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
4984
4985         PR bootstrap/52172
4986         * cselib.h (cselib_subst_to_values_from_insn): New prototype.
4987         * cselib.c (cselib_subst_to_values_from_insn): New function.
4988         * sched-deps.c (add_insn_mem_dependence,
4989         sched_analyze_1, sched_analyze_2): Use it.
4990
4991 2012-02-13  Jan Hubicka  <jh@suse.cz>
4992
4993         PR middle-end/52214
4994         * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
4995
4996 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
4997
4998         * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
4999         (GTM_SELF_SPECS): Define if not already defined.
5000         (driver_self_specs): Add GTM_SELF_SPECS.
5001         * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
5002         (GTM_SELF_SPECS): Define.
5003         * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
5004         * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
5005
5006 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
5007
5008         * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
5009         away if seen.
5010
5011         * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
5012
5013         PR middle-end/52230
5014         * omp-low.c (expand_omp_for): If a static schedule without chunk size
5015         has NULL region->cont, force fd.chunk_size to be integer_zero_node.
5016
5017 2012-02-13  Andrew MacLeod  <amacleod@redhat.com>
5018
5019         PR c/52190
5020         * doc/extend.texi : Fix another __atomic_compare_exchange typo.
5021
5022 2012-02-13  Richard Guenther  <rguenther@suse.de>
5023
5024         PR translation/52211
5025         * passes.c (enable_disable_pass): Fix typo.
5026
5027 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
5028
5029         PR middle-end/52209
5030         * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
5031         XOR for reduce_bit_field if type is unsigned.
5032
5033 2012-02-12  Eric Botcazou  <ebotcazou@adacore.com>
5034
5035         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
5036         disallow changes from SFmode to mode with different size in FP regs.
5037
5038 2012-02-12  Robert Millan  <rmh@gnu.org>
5039             Gerald Pfeifer <gerald@pfeifer.com>
5040
5041         * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
5042         Tweak comment.
5043
5044 2012-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
5045
5046         PR rtl-optimization/52175
5047         * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
5048         to frame-related instructions.
5049
5050 2012-02-10  Jason Merrill  <jason@redhat.com>
5051
5052         PR c++/51910
5053         * tlink.c (demangled_hash_entry): Change mangled to a VEC.
5054         (demangle_new_symbols): Fill it.
5055         (scan_linker_output): Walk it.
5056         (start_tweaking): Split out from scan_linker_output.
5057         (maybe_tweak): Update sym->chosen.
5058         * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
5059
5060 2012-02-11  Jakub Jelinek  <jakub@redhat.com>
5061
5062         PR debug/52132
5063         * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
5064
5065 2012-02-11  Uros Bizjak  <ubizjak@gmail.com>
5066
5067         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
5068         having the same mode as previous compare.
5069
5070 2012-02-10  Eric Botcazou  <ebotcazou@adacore.com>
5071
5072         * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
5073         * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
5074         (nonlocal_goto_internal): Likewise.
5075         (nonlocal_goto): Emit a use and an indirect jump directly.
5076
5077 2012-02-10  Andrew MacLeod  <amacleod@redhat.com>
5078
5079         PR c/52190
5080         * doc/extend.texi : Update comments for __atomic_compare_exchange and
5081         __atomic_{is,always}_lock_free.
5082
5083 2012-02-10  Uros Bizjak  <ubizjak@gmail.com>
5084
5085         PR target/52146
5086         * config/i386/i386.c (ix86_legitimate_address_p): Disallow
5087         negative constant address for x32.
5088
5089 2012-02-10  Richard Henderson  <rth@redhat.com>
5090
5091         * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
5092         * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
5093         for GIMPLE_TRANSACTION.  Tidy if's into a switch.
5094
5095 2012-02-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5096             Ira Rosen  <irar@il.ibm.com>
5097
5098         PR tree-optimization/50031
5099         * targhooks.c (default_builtin_vectorization_cost): Handle
5100         vec_promote_demote.
5101         * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
5102         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
5103         all types of reduction and pattern statements.
5104         (vect_estimate_min_profitable_iters): Likewise.
5105         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
5106         (vect_get_load_cost): Use vec_perm for permutations; add dump logic
5107         for explicit realigns.
5108         (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
5109         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
5110         vec_promote_demote.
5111         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
5112         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
5113         vec_perm for VSX and handle vec_promote_demote.
5114
5115 2012-02-10  Jakub Jelinek  <jakub@redhat.com>
5116
5117         PR middle-end/52177
5118         * builtins.c (fold_builtin_atomic_always_lock_free,
5119         expand_builtin_atomic_always_lock_free,
5120         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
5121         Return and/or test boolean_true_node/boolean_false_node instead of
5122         integer_one_node/integer_zero_node.
5123
5124 2012-02-10  Jan Hubicka  <jh@suse.cz>
5125
5126         PR middle-end/48600
5127         * predict.c (predict_paths_for_bb): Prevent looping.
5128         (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
5129
5130 2012-02-10  Roman Zhuykov  <zhroma@ispras.ru>
5131
5132         * config/arm/arm.c (output_move_double): In one case properly
5133         count number of instructions that will be emitted.
5134
5135 2012-02-10  Richard Guenther  <rguenther@suse.de>
5136
5137         PR translation/52193
5138         * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
5139
5140 2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
5141
5142         PR middle-end/52140
5143         * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
5144
5145 2012-02-09  Jakub Jelinek  <jakub@redhat.com>
5146
5147         PR debug/52165
5148         * var-tracking.c (emit_note_insn_var_location): If
5149         EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
5150         emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
5151         non-NOTE_DURING_CALL_P insn.
5152
5153 2012-02-09  Bin Cheng  <bin.cheng@arm.com>
5154
5155         PR middle-end/51867
5156         * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
5157
5158 2012-02-08  Magnus Granberg  <zorry@gentoo.org>
5159
5160         PR driver/48524
5161         * gcc.c (switch_matches) Support switches with separated form,
5162         -D and -U.
5163
5164 2012-02-08  Georg-Johann Lay  <avr@gjlay.de>
5165
5166         * config/avr/avr.md (SREG_ADDR): Remove constant definition.
5167         (SP_ADDR): Ditto.
5168         (RAMPZ_ADDR): Ditto.
5169         * config/avr/avr.c (avr_addr_t): New typedef.
5170         (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
5171         (avr_init_expanders): Initialize it.
5172         (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
5173         SREG_ADDR.
5174         (expand_epilogue): Ditto.
5175         (avr_print_operand): Ditto.
5176         (avr_file_start): Ditto.
5177         (avr_emit_movmemhi): Ditto.
5178
5179 2012-02-08  Richard Guenther  <rguenther@suse.de>
5180
5181         PR tree-optimization/46886
5182         * tree-flow.h (do_while_loop_p): Declare.
5183         * tree-ssa-loop-ch.c (do_while_loop_p): Export.
5184         * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
5185
5186 2012-02-08  Andrew MacLeod  <amacleod@redhat.com>
5187
5188         * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
5189         always succeed for integers larger than a native word.
5190
5191 2012-02-08  Richard Guenther  <rguenther@suse.de>
5192
5193         PR rtl-optimization/52170
5194         * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
5195         properly handle integer vector modes.
5196
5197 2012-02-08  Jakub Jelinek  <jakub@redhat.com>
5198
5199         PR gcov-profile/52150
5200         * coverage.c: Include target.h.
5201         (build_var): Call targetm.strip_name_encoding on the assembler name.
5202         Change one _ into . or $ if the target allows it.
5203         * Makefile.in (coverage.o): Depend on $(TARGET_H).
5204
5205         PR rtl-optimization/52139
5206         * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
5207         is a BARRIER after emit_insn_after_noloc, move BB_END
5208         to the last non-BARRIER insn before it.
5209
5210 2012-02-07  Richard Sandiford  <rdsandiford@googlemail.com>
5211
5212         PR middle-end/24306
5213         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
5214         (mips_gimplify_va_arg_expr): Call it instead of
5215         std_gimplify_va_arg_expr.
5216
5217 2012-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
5218
5219         * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
5220         message for -mno-pointers-to-nested-function.
5221
5222 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
5223
5224         PR middle-end/51994
5225         * expr.c (get_inner_reference): If there is an offset, add a negative
5226         bit position to it (if any).
5227
5228 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
5229
5230         PR rtl-optimization/52060
5231         * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
5232         copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
5233         before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
5234         and/or i0src_copy2 when needed.
5235
5236 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
5237
5238         * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
5239         or LTOPLUGINSONAME if have_c.
5240
5241         * config/freebsd-spec.h: Add comment about what macros can be defined
5242         in this header.
5243         (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
5244         * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
5245         here instead.
5246
5247 2012-02-07  Richard Guenther  <rguenther@suse.de>
5248
5249         * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
5250         newline in -alias dumps.
5251
5252 2012-02-07  Kai Tietz  <ktietz@redhat.com>
5253             Dave Korn  <dave.korn.cygwin@gmail.com>
5254
5255         PR target/40068
5256         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
5257         Take care that typinfo gets dllexport-attribute.
5258
5259 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
5260
5261         PR middle-end/52074
5262         * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
5263         if modifier < EXPAND_SUM call force_operand on the result.
5264
5265 2012-02-07  Joern Rennecke  <joern.rennecke@embecosm.com>
5266
5267         * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
5268         adding __forwarder_dst__ prefix if a forwarder_section attribute is
5269         present.
5270         (epiphany_function_type): Replace types for specific interrupts with
5271         EPIPHANY_FUNCTION_INTERRUPT.
5272         (EPIPHANY_INTERRUPT_P): Update.
5273         * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
5274         New static function.
5275         (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
5276         <disinterrupt>: Affects type identity.
5277         (epiphany_handle_interrupt_attribute): Handle variable number of
5278         arguments.
5279         (epiphany_compute_function_type): Update for new
5280         epiphany_function_type definition.
5281         (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
5282         handlers with a longcall forwarder.
5283         (epiphany_start_function): Handle multiple interrupt arguments and/or
5284         forwarder_section attribute.
5285
5286         * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
5287         libgloss.
5288
5289 2012-02-07  Alan Modra  <amodra@gmail.com>
5290
5291         PR target/52107
5292         * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
5293         subregs of TFmode.
5294
5295 2012-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5296
5297         PR tree-optimization/50969
5298         * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
5299         use vec_perm rather than vector_stmt.
5300         (vect_model_load_cost): Likewise.
5301         * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
5302         vec_perm to be the same as other vector statements.
5303         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
5304         cost of vec_perm for TARGET_VSX.
5305
5306 2012-02-06  Richard Guenther  <rguenther@suse.de>
5307
5308         PR tree-optimization/52115
5309         * tree-sra.c (access_has_replacements_p): New function.
5310         (sra_modify_assign): Use it to decide whether a use is uninitialized.
5311
5312 2012-02-06  Patrick Marlier  <patrick.marlier@gmail.com>
5313
5314         PR middle-end/52047
5315         * trans-mem.c (expand_call_tm): Add an assertion.
5316         * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
5317         functions.
5318
5319 2012-02-06  Richard Guenther  <rguenther@suse.de>
5320
5321         PR tree-optimization/50955
5322         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
5323         raise cost of expressions that replace an address with an
5324         expression based on a different pointer.
5325
5326 2012-02-06  Jakub Jelinek  <jakub@redhat.com>
5327
5328         PR target/52129
5329         * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
5330         CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
5331
5332 2012-02-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
5333
5334         PR c++/48680
5335         * doc/invoke.texi (C++ Dialect Options): Use @option markup for
5336         -Weffc++ and specify guidelines come from second edition.
5337
5338 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
5339
5340         * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
5341         (sibcall_value_multiple_internal, call_split, call_internal_direct)
5342         (call_direct_split, call_value_split, call_value_internal_direct)
5343         (call_value_direct_split, call_value_multiple_split): Use jal and
5344         jal_macro attributes.
5345
5346 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
5347
5348         * reload1.c (reload_regs_reach_end_p): Replace with...
5349         (reload_reg_rtx_reaches_end_p): ...this function.
5350         (new_spill_reg_store): Update commentary.
5351         (emit_input_reload_insns): Don't clear new_spill_reg_store here.
5352         (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
5353         before setting new_spill_reg_store.
5354         (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
5355         Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
5356         Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
5357         for non-spill reload registers.
5358
5359 2012-02-05  Ira Rosen  <irar@il.ibm.com>
5360
5361         PR tree-optimization/52091
5362         * tree-vectorizer.h (vect_is_simple_use): Add an argument.
5363         (vect_is_simple_use_1): Likewise.
5364         * tree-vect-loop.c (vectorizable_reduction): Update calls
5365         to vect_is_simple_use_1 and vect_is_simple_use.
5366         (vectorizable_live_operation): Likewise.
5367         * tree-vect-patterns.c (widened_name_p,
5368         vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
5369         * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
5370         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
5371         vectorizable_shift,vectorizable_operation, vectorizable_store,
5372         vectorizable_load): Likewise.
5373         (vect_is_simple_cond): Add an argument, pass it to
5374         vect_is_simple_use_1.
5375         (vectorizable_condition): Update calls to vect_is_simple_cond,
5376         vect_is_simple_use.
5377         (vect_is_simple_use): Add an argument, the statement in which
5378         OPERAND is used.  Check that if OPERAND's def stmt is a double
5379         reduction phi node, the use is a phi node too.
5380         (vect_is_simple_use_1): Add an argument, pass it to
5381         vect_is_simple_use.
5382         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
5383         to vect_is_simple_use.
5384
5385 2012-02-04  Jakub Jelinek  <jakub@redhat.com>
5386
5387         PR rtl-optimization/52095
5388         * modulo-sched.c (dump_insn_locator): New function.
5389         (loop_canon_p, sms_schedule): Use it.
5390
5391         PR rtl-optimization/52113
5392         * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
5393         even for decomposable shift/zext insns.
5394
5395 2012-02-03  Jakub Jelinek  <jakub@redhat.com>
5396             Zdenek Dvorak  <ook@ucw.cz>
5397
5398         PR rtl-optimization/52092
5399         * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
5400         on get_iv_value result.
5401
5402 2012-02-02  Andrew Pinski  <apinski@cavium.com>
5403
5404         PR middle-end/47982
5405         PR middle-end/43967
5406         * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
5407
5408 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
5409
5410         PR middle-end/48071
5411         * diagnostic.c (diagnostic_finish): Remove trailing newlines.
5412
5413 2012-02-02  Vladimir Makarov  <vmakarov@redhat.com>
5414
5415         PR rtl-optimization/49800
5416         * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
5417         (sched_finish): Call regstat_free_n_sets_and_refs.
5418
5419 2012-02-02  Jia Liu  <proljc@gmail.com>
5420
5421         * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
5422         than operand 2.
5423
5424 2012-02-02  Jan Hubicka  <jh@suse.cz>
5425             Tom de Vries  <tom@codesourcery.com>
5426
5427         PR middle-end/51998
5428         * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
5429         * varpool.c (varpool_analyze_pending_decls): Likewise.
5430
5431 2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
5432             Jayant R Sonar <jayant.sonar@kpitcummins.com>
5433
5434         * config.gcc: Add cr16-* support.
5435
5436         * doc/extend.texi: Document cr16 extensions.
5437         * doc/install.texi: Document cr16 install.
5438         * doc/invoke.texi: Document cr16 options.
5439         * doc/md.texi: Document cr16 constraints.
5440
5441         * common/config/cr16/cr16-common.c: New file.
5442         * config/cr16/cr16.c: New file.
5443         * config/cr16/cr16.h: New file.
5444         * config/cr16/cr16.md: New file.
5445         * config/cr16/cr16.opt: New file.
5446         * config/cr16/cr16-protos.h: New file.
5447         * config/cr16/predicates.md: New file.
5448         * config/cr16/constraints.md: New file.
5449         * config/cr16/t-cr16: New file.
5450
5451 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
5452
5453         PR target/52086
5454         * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
5455         that operands[2] is either immediate, or q_regs_operand.
5456
5457         PR tree-optimization/52073
5458         * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
5459         a pattern stmt for pattern uses, ignore uses outside of the loop.
5460
5461 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
5462
5463         * config/avr/avr.c: Resolve all AS1 and AS2 macros.
5464         * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
5465         (OUT_AS1, OUT_AS2): Remove.
5466
5467 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
5468
5469         PR rtl-optimization/51374
5470         * combine.c (can_combine_p): Don't allow volatile_refs_p insns
5471         to cross other volatile_refs_p insns.
5472
5473 2012-02-01  Richard Guenther  <rguenther@suse.de>
5474
5475         * doc/invoke.texi (fno-inline): Clarify documentation.
5476         (finline-small-functions): Likewise.
5477         (finline-functions): Likewise.
5478         * common.opt (finline): Adjust comment and documentation.
5479         (finline-small-functions): Clarify documentation.
5480         (finline-functions): Likewise.
5481         (finline-functions-called-once): Likewise.
5482
5483 2012-02-01  Tristan Gingold  <gingold@adacore.com>
5484
5485         * c-typeck.c (composite_type): Keep mode for pointers.
5486
5487 2012-01-31  Richard Sandiford  <rdsandiford@googlemail.com>
5488
5489         * function.h (regno_reg_rtx): Adjust comment.
5490         * reginfo.c (init_reg_modes_target): Only use the previous mode
5491         if it fits within one register.  Remove MIPS comment.
5492
5493 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
5494
5495         PR bootstrap/52058
5496         * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
5497
5498 2012-01-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5499
5500         * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
5501         to srak instruction.
5502
5503 2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
5504
5505         * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
5506
5507 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
5508
5509         PR bootstrap/52041
5510         PR bootstrap/52039
5511         PR target/51974
5512         * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
5513
5514 2012-01-31  Richard Guenther  <rguenther@suse.de>
5515
5516         PR tree-optimization/51528
5517         * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
5518         assigns.
5519
5520 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
5521
5522         PR bootstrap/52041
5523         PR bootstrap/52039
5524         PR target/51974
5525         * ree.c (add_removable_extension): Change def_map argument
5526         to unsigned *, store in def_map 1 + offset into *insn_list vector
5527         instead of pointers into the vector.
5528         (find_removable_extensions): Adjust caller.
5529
5530 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
5531
5532         * config/avr/avr.md: Resolve all AS1 and AS2 macros.
5533         Transform all "* quoted-c-code" to { c-code }.
5534         Remove redundant test for "optimize" in combine patterns.
5535         Move (include "avr-dimode.md") to end of file.
5536
5537 2012-01-30  Bin Cheng  <bin.cheng@arm.com>
5538
5539         PR target/51835
5540         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
5541         for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
5542
5543 2012-01-30  Richard Guenther  <rguenther@suse.de>
5544
5545         PR tree-optimization/52028
5546         * tree-loop-distribution.c (ldist_gen): Properly update
5547         virtual SSA form.
5548
5549 2012-01-30  Jakub Jelinek  <jakub@redhat.com>
5550
5551         PR debug/52027
5552         * dwarf2out.c (dwarf2out_switch_text_section): Don't call
5553         set_cur_line_info_table if not emitting debug info.
5554
5555         PR tree-optimization/52046
5556         * tree-vect-patterns.c (check_bool_pattern): Give up if
5557         a comparison could throw.
5558
5559         PR debug/52048
5560         * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
5561
5562 2012-01-30  Richard Guenther  <rguenther@suse.de>
5563
5564         PR tree-optimization/52045
5565         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
5566         SSA form if cfgcleanup did anything.
5567
5568 2012-01-30  Richard Guenther  <rguenther@suse.de>
5569
5570         PR tree-optimization/52045
5571         * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
5572         before computing final todo.
5573
5574 2012-01-30  Richard Guenther  <rguenther@suse.de>
5575
5576         PR tree-optimization/51528
5577         * tree-sra.c (sra_modify_assign): Re-factor in preparation
5578         for PR51528 fix.
5579
5580 2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
5581
5582         * df-problems.c (df_kill_notes): Check that the use refers
5583         to the note under examination.
5584
5585 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
5586
5587         PR target/51920
5588         * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
5589         parameter and use short-lived pseudos.
5590         (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
5591         (sparc_expand_vector_init): Const-ify local variables and adjust
5592         calls to above functions.
5593
5594 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
5595
5596         * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
5597
5598 2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>
5599
5600         * doc/invoke.texi: Make usage of "compile time" and
5601         "run time"/"runtime" consistent throughout the file.
5602
5603 2012-01-29  Uros Bizjak  <ubizjak@gmail.com>
5604
5605         * config/alpha/alpha.c (alpha_option_override): Default to
5606         full IEEE compliance mode for Go language.
5607
5608 2011-01-29  Tijl Coosemans  <tijl@coosemans.org>
5609
5610         * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
5611         (LINK_SSP_SPEC): Define.
5612
5613 2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5614
5615         PR target/51871
5616         * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
5617         stubs.
5618
5619 2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>
5620
5621         * doc/invoke.texi: Correct hyphenation of "floating point",
5622         "double precision", and related terminology throughout the file.
5623
5624 2012-01-28  Jakub Jelinek  <jakub@redhat.com>
5625
5626         PR target/52006
5627         * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
5628         arm_general_register_operand predicate for operand 2 instead of
5629         register_operand.
5630
5631 2012-01-27  Ian Lance Taylor  <iant@google.com>
5632
5633         PR go/47656
5634         * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
5635         * builtins.c (expand_builtin_init_trampoline): Add onstack
5636         parameter.  Change caller.
5637         (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
5638         * tree.c (build_common_builtin_nodes): Declare
5639         __builtin_init_heap_trampoline.
5640
5641 2012-01-27  Georg-Johann Lay  <avr@gjlay.de>
5642
5643         * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
5644         tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
5645         * config/avr/avr.c: Ditto.
5646         (avr_regnames): Remove because unused.
5647         * config/avr/avr.md (*cpse.ne): New peephole.
5648         (*cpse.eq): New peephole from former cpse peepholes.
5649
5650 2012-01-27  Michael Eager  <eager@eagercon.com>
5651
5652         * config/microblaze.c (microblaze_emit_compare): Correct
5653         test after pcmp instruction.
5654
5655 2012-01-27  Richard Guenther  <rguenther@suse.de>
5656
5657         PR tree-optimization/52020
5658         * tree-sra.c (sra_modify_assign): Do not transform clobbers.
5659
5660 2012-01-27  Richard Guenther  <rguenther@suse.de>
5661
5662         * ipa-pure-const.c (check_stmt): Clobbers do not make a
5663         function non-const/pure.
5664
5665 2012-01-27  Richard Guenther  <rguenther@suse.de>
5666
5667         PR tree-optimization/50444
5668         * tree-sra.c (build_ref_for_offset): Properly adjust the
5669         MEM_REF type for unaligned accesses.
5670
5671 2012-01-27  Richard Guenther  <rguenther@suse.de>
5672
5673         PR tree-optimization/50444
5674         * expr.c (mem_ref_refers_to_non_mem_p): New function.
5675         (expand_assignment): Use it.  Properly handle misaligned
5676         bases when expanding stores to component references.
5677         (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
5678         refactor that case.
5679
5680 2012-01-27  Andrey Belevantsev  <abel@ispras.ru>
5681
5682         PR middle-end/51389
5683         * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
5684         * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
5685         * tree-data-ref.c (find_data_references_in_loop): Make static.
5686         (compute_all_dependences): Change return type to bool.  Bail out
5687         for too many datarefs in a loop.  Move the hunk resetting the data
5688         dependences vector from ...
5689         (compute_data_dependences_for_loop): ... here.  Account for
5690         compute_all_dependences returning false.
5691         (compute_data_dependences_for_bb): Likewise.
5692         * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
5693         * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
5694
5695 2012-01-27  Richard Guenther  <rguenther@suse.de>
5696
5697         PR middle-end/51959
5698         * expr.c (store_field): Use the alias-set of the scratch memory
5699         for storing to it.
5700
5701 2012-01-27  Tom de Vries  <tom@codesourcery.com>
5702
5703         PR tree-optimization/51990
5704         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
5705         WITH_SIZE_EXPR.
5706         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
5707
5708 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
5709
5710         PR debug/52001
5711         * var-tracking.c (reverse_op): Don't add any reverse operation
5712         if V already has any constant locations.
5713
5714 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
5715
5716         * doc/invoke.texi: Correct usage of "command line" (noun)
5717         vs "command-line" (adjective) throughout.
5718
5719 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
5720
5721         * doc/invoke.texi (Language Independent Options): Move
5722         -Wcoverage-mismatch blurb from here....
5723         (Warning Options): ...to here.
5724
5725 2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>
5726
5727         * config/rs6000/rs6000.c (rs6000_option_override_internal):
5728         Set rs6000_always_hint to false for 476.
5729
5730 2012-01-27  Matthias Klose  <doko@ubuntu.com>
5731
5732         * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
5733           system root.
5734         * incpath.c (add_standard_paths): Likewise.
5735
5736 2012-01-27  Richard Henderson  <rth@redhat.com>
5737
5738         * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
5739         * config/m68k/sync.md (atomic_test_and_set): Rename from
5740         sync_test_and_setqi and adjust the operands.
5741         (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
5742         and unconditionally enable.
5743
5744 2012-01-27  Richard Henderson  <rth@redhat.com>
5745
5746         * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
5747         * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
5748         (ldstub): Rename from ldstubqi.
5749         (ldstub<I24MODE>): Remove.
5750
5751 2012-01-27  Richard Henderson  <rth@redhat.com>
5752
5753         * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
5754         * c-cppbuiltin.c (cpp_atomic_builtins): Define
5755         __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
5756         * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
5757         * doc/tm.texi: Rebuild.
5758
5759 2012-01-27  Richard Henderson  <rth@redhat.com>
5760
5761         * optabs.c (gen_atomic_test_and_set): Remove default.
5762         (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
5763
5764 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
5765
5766         PR rtl-optimization/51978
5767         * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
5768         (combine_reaching_defs): Likewise.
5769         (struct re_info): Remove.
5770         (add_removable_extension): Remove x and data arguments,
5771         add insn, insn_list and def_map.  Use the arguments directly
5772         instead of using struct re_info.
5773         (find_removable_extensions): Don't call add_removable_extension
5774         through note_stores, instead just call it with single_set
5775         result if non-NULL.
5776         (find_and_remove_re): Pass curr_cand->expr instead of
5777         PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
5778
5779 2012-01-26  Michael Matz  <matz@suse.de>
5780
5781         PR tree-optimization/46590
5782         * cfgexpand.c: Revert last change (r183305).
5783         * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
5784         regs.
5785         * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
5786         checking for emptiness.
5787
5788 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
5789
5790         PR middle-end/51895
5791         * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
5792         non-addressable non-BLKmode base correctly.
5793
5794 2012-01-26  Michael Matz  <matz@suse.de>
5795
5796         PR tree-optimization/48794
5797         * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
5798         regions referenced from RESX/EH_DISPATCH.
5799
5800 2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5801
5802         * config/s390/s390.h: Make BRANCH_COST an option.
5803         * config/s390/s390.opt: New option -mbranch-cost.
5804
5805 2012-01-26  Richard Henderson  <rth@redhat.com>
5806
5807         Revert 2012-01-24 change:
5808         * trans-mem.c (requires_barrier): Do not instrument thread local
5809         variables and emit save/restore for them.
5810
5811 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
5812
5813         PR middle-end/51986
5814         * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
5815         for pat == 0.
5816
5817 2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
5818
5819         * config/mips/mips.c (mips_small_data_pattern_1): Don't process
5820         ASM_OPERANDS.
5821
5822 2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
5823
5824         PR target/49868
5825         Rename __pgm to __flash.
5826         Rename __pgm1 to __flash1.
5827         Rename __pgm2 to __flash2.
5828         Rename __pgm3 to __flash3.
5829         Rename __pgm4 to __flash4.
5830         Rename __pgm5 to __flash5.
5831         Rename __pgmx to __memx.
5832         * doc/extend.texi (AVR Named Address Spaces)
5833         Rename address space names as indicated above.
5834         * config/avr/avr.c (avr_addrspace): Ditto.
5835
5836         * config/avr/avr-protos.h
5837         (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
5838         (avr_mem_pgm_p): Rename to avr_mem_flash_p.
5839         * config/avr/predicates.md: Ditto.
5840         * config/avr/avr.c Ditto, and
5841         (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
5842         (avr_decl_pgm_p): Rename to avr_decl_flash_p.
5843
5844         * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
5845         (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
5846         (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
5847         (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
5848         (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
5849         (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
5850         (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
5851         * config/avr/avr.c: Ditto.
5852         * config/avr/avr.md: Ditto.
5853
5854 2012-01-25  Jason Merrill  <jason@redhat.com>
5855
5856         PR c++/51992
5857         * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
5858
5859 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
5860
5861         PR tree-optimization/51987
5862         * tree-data-ref.c (get_references_in_stmt): Handle references in
5863         non-volatile GIMPLE_ASM.
5864
5865 2012-01-25  Richard Guenther  <rguenther@suse.de>
5866
5867         * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
5868         bases are dereferenced.
5869
5870 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
5871
5872         PR rtl-optimization/48374
5873         * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
5874
5875 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
5876
5877         * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
5878         compute_data_dependences_for_loop returns false.
5879         * tree-parloops.c (loop_parallel_p): Likewise.
5880
5881 2012-01-25  Richard Guenther  <rguenther@suse.de>
5882
5883         * tree.h (get_pointer_alignment_1): Declare.
5884         * builtins.c (get_pointer_alignment_1): New function.
5885         (get_pointer_alignment): Use it.
5886
5887 2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5888
5889         PR rtl-optimization/48308
5890         * combine.c (enum undo_kind): Add UNDO_LINKS.
5891         (struct undo): Add member l to other_contents and where.
5892         (do_SUBST_LINK): New.
5893         (SUBST_LINK): New.
5894         (try_combine): Handle LOG_LINKS for the dummy i1 case.
5895         (undo_all): Handle UNDO_LINKS.
5896
5897 2012-01-25  Richard Henderson  <rth@redhat.com>
5898
5899         * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
5900         mem inputs.
5901
5902 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
5903
5904         * optabs.c (gen_atomic_test_and_set): Use each argument.
5905
5906 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
5907
5908         * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
5909         (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
5910         (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
5911         (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
5912         (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
5913         TARGET_PAIRED_SINGLE_FLOAT.
5914
5915 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
5916
5917         * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
5918         (in_struct, return_val): Remove MEM documentation.
5919         * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
5920         (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
5921         (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
5922         and MEM_SCALAR.
5923         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5924         * cfgexpand.c (add_alias_set_conflicts): Likewise.
5925         * expr.c (store_field): Likewise.
5926         * function.c (assign_stack_temp_for_type): Likewise.
5927         * ifcvt.c (noce_try_cmove_arith): Likewise.
5928         * reload1.c (reload): Likewise.
5929         * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
5930         (alpha_set_memflags): Likewise.
5931         * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
5932
5933 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
5934
5935         * rtl.h (true_dependence, canon_true_dependence): Remove varies
5936         parameter.
5937         * alias.c (fixed_scalar_and_varying_struct_p): Delete.
5938         (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
5939         (true_dependence_1, true_dependence, canon_true_dependence): Remove
5940         varies parameter.
5941         * cselib.c (cselib_rtx_varies_p): Delete.
5942         (cselib_invalidate_mem): Update call to canon_true_dependence.
5943         * dse.c (record_store, check_mem_read_rtx): Likewise.
5944         (scan_reads_nospill): Likewise.
5945         * cse.c (check_dependence): Likewise.
5946         (cse_rtx_varies_p): Delete.
5947         * expr.c (safe_from_p): Update call to true_dependence.
5948         * ira.c (validate_equiv_mem_from_store): Likewise.
5949         (memref_referenced_p): Likewise.
5950         * postreload-gcse.c (find_mem_conflicts): Likewise.
5951         * sched-deps.c (sched_analyze_2): Likewise.
5952         * store-motion.c (load_kills_store): Likewise.
5953         * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
5954         * gcse.c (mems_conflict_for_gcse_p): Likewise.
5955         (compute_transp): Update call to canon_true_dependence.
5956
5957 2012-01-25  Richard Henderson  <rth@redhat.com>
5958
5959         * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
5960         (maybe_emit_atomic_test_and_set): New.
5961         (expand_sync_lock_test_and_set): Use it.
5962         (expand_atomic_test_and_set): Likewise.
5963         * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
5964         the implementation; clarify implementation defined details.
5965         * doc/md.texi (atomic_test_and_set): Document.
5966
5967 2012-01-25  Richard Henderson  <rth@redhat.com>
5968
5969         * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
5970
5971 2012-01-25  Richard Henderson  <rth@redhat.com>
5972
5973         PR target/51968
5974         * config/arm/arm.c (neon_split_vcombine): Emit deleted note
5975         to effect no-op split.
5976
5977 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
5978
5979         PR lto/51698
5980         * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
5981         (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
5982         (BT_FN_VOID_PTR_INT_SIZE): New.
5983         (BT_FN_UINT_UINT_VAR): Remove.
5984         (BT_FN_UINT32_UINT32_VAR): New.
5985         (BT_FN_DOUBLE_VPTR): Remove.
5986         (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
5987
5988         * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
5989         (_ITM_changeTransactionMode): Same.
5990         (_ITM_memmoveRtWt): Change return type to void.
5991         (_ITM_memcpyRtWt): Same.
5992         (_ITM_memsetW): Same.
5993         (_ITM_RaRD): Change types to double.
5994         (_ITM_RD): Same.
5995         (_ITM_RaWD): Same.
5996         (_ITM_RfWD): Same.
5997
5998         * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
5999
6000 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
6001             Patrick Marlier  <patrick.marlier@gmail.com>
6002
6003         * trans-mem.c (requires_barrier): Do not instrument thread local
6004         variables and emit save/restore for them.
6005
6006 2012-01-24  Jason Merrill  <jason@redhat.com>
6007
6008         PR c++/51812
6009         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
6010         output static aliases.
6011
6012 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
6013
6014         PR driver/47249
6015         * common.opt (-pie, -shared, pie, shared): Change from Common to
6016         Driver.
6017         * gcc.c (display_help): Display help for -pie and -shared.
6018
6019 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
6020
6021         PR target/49868
6022         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
6023         Remove note on size/offset limitation.
6024         (AVR Variable Attributes): Add example how to read data located
6025         with progmem.  Refer to named address spaces.
6026         * doc/invoke.texi (AVR Options): Fix typo.
6027
6028 2012-01-24  Richard Guenther  <rguenther@suse.de>
6029
6030         Forward-port to trunk
6031         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
6032
6033         PR middle-end/45678
6034         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
6035         op0 isn't sufficiently aligned and there is movmisalignM
6036         insn for mode, use it to load op0 into a temporary register.
6037
6038 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
6039
6040         PR target/51957
6041         * target.def (const_not_ok_for_debug_p): New hook.
6042         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
6043         documentation.
6044         * doc/tm.texi: Regenerated.
6045         * dwarf2out.c (const_ok_for_output_1): If
6046         targetm.const_not_ok_for_debug_p returns true, fail.
6047         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
6048         function.
6049         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
6050
6051 2012-01-23  Kai Tietz  <ktietz@redhat.com>
6052
6053         PR target/51900
6054         * config/i386/predicates.md (symbolic_operand): Allow
6055         UNSPEC_PCREL as PIC expression for lea.
6056         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
6057         * config/i386/i386.c (ix86_delegitimize_address): Handle
6058         UNSPEC_PCREL for none-MEM, too.
6059
6060 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
6061
6062         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
6063         (ipa_tm_create_version_alias): Same.
6064
6065 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
6066
6067         PR libitm/51830
6068         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
6069         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
6070
6071 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
6072             Patrick Marlier  <patrick.marlier@gmail.com>
6073             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
6074
6075         PR lto/51916
6076         * lto-wrapper.c (run_gcc): Pass the LTO section name to
6077         simple_object_start_read.
6078
6079 2012-01-23  Richard Guenther  <rguenther@suse.de>
6080
6081
6082         PR tree-optimization/51895
6083         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
6084         parameter decomposition into BLKmode components.
6085
6086 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
6087
6088         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
6089         fake variables for restrict-qualified pointers whose pointed-to type
6090         contains a placeholder.
6091
6092 2012-01-23  Richard Guenther  <rguenther@suse.de>
6093
6094         PR tree-optimization/51949
6095         * ipa-split.c (execute_split_functions): Do not split malloc functions.
6096
6097 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
6098
6099         PR rtl-optimization/51933
6100         * ree.c (transform_ifelse): Return true right away if dstreg is
6101         already wider or equal to cand->mode.
6102         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
6103         (make_defs_and_copies_lists): Remove defs_list and copies_list
6104         arguments, add state argument, just truncate state->work_list
6105         instead of always allocating and freeing the vector.  Assert that
6106         get_defs succeeds instead of returning 2.  Changed return type to bool.
6107         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
6108         have ext_src_mode, see if it has been modified already with the
6109         right kind of extension and has been extended before from the
6110         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
6111         just return true.  Remember the original mode in state->modified array.
6112         (combine_reaching_defs): Add state argument.  Don't allocate and
6113         free here def_list, copied_list and vec vectors, instead just
6114         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
6115         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
6116         Add state variable, clear vectors in it, initialize state.modified
6117         if needed.  Free all the vectors at the end and state.modified too.
6118         Don't skip a candidate if the extension expression has been modified.
6119
6120 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
6121
6122         PR target/47096
6123         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
6124          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
6125         (extra_options) interix.opt -> i386/interix.opt"
6126         (extra_objs):Add winnt-stubs.o
6127         * configure.ac: Add interix to target_os .comm on PE check.
6128         * configure: Regenerate.
6129         * config/interix3.h: Delete and move bits to..
6130         * config/interix.h: Delete and move bits to..
6131         * config/i386/i386-interix3.h: Delete and move bits to..
6132         * config/i386/i386-interix.h: ..here.
6133         (TARGET_CPU_DEFAULT): Remove redefinition.
6134         (TARGET_ASM_CONSTRUCTOR): Undefine.
6135         (SUBTARGET_SWITCHES): Define for ms-bitfields.
6136         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
6137         (PTRDIFF_TYPE): Define.
6138         (LONG_DOUBLE_TYPE_SIZE): Define.
6139         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
6140         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
6141         (TARGET_SECTION_TYPE_FLAGS): Define.
6142         (ASM_DECLARE_FUNCTION_NAME): Define.
6143         (ASM_OUTPUT_EXTERNAL): Define.
6144         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
6145         (ASM_OUTPUT_ALIGNED_BSS): Define.
6146         (PCC_BITFIELD_TYPE_MATTERS): Define.
6147         (USE_CONST_SECTION): Define.
6148         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
6149         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
6150         (SUPPORTS_ONE_ONLY): Remove.
6151         (I386_PE_STRIP_ENCODING): Define.
6152         * config/interix.opt: Delete and move bits to..
6153         * config/i386/interix.opt: ..here. New.
6154         (mpe-aligned-commons): Add.
6155         * config/i386/t-interix: Add copyright header.
6156         (winnt-stubs.o): Add rule.
6157
6158 2012-01-22  Jason Merrill  <jason@redhat.com>
6159
6160         PR c++/51832
6161         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
6162         for extra name aliases.
6163
6164 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
6165
6166         PR rtl-optimization/51924
6167         * ree.c (combine_set_extension): Improve debugging message.
6168         (combine_reaching_defs): Likewise.
6169         (get_defs): Rename confusingly named variable.
6170         (find_and_remove_re): Skip a candidate if the extension expression has
6171         been modified.
6172
6173 2012-01-21  Robert Millan  <rmh@gnu.org>
6174             Gerald Pfeifer  <gerald@pfeifer.com>
6175
6176         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
6177         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
6178
6179 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
6180
6181         PR tree-optimization/51914
6182         * tree-vect-stmts.c (vectorizable_conversion): For
6183         cvt_type && modifier == WIDEN, put temporary with cvt_type
6184         at the beginning of vec_dsts and set vec_dest to temporary
6185         with vectype_out.
6186
6187 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
6188
6189         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
6190
6191 2011-01-20  Tijl Coosemans  <tijl@coosemans.org>
6192
6193         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
6194         * config/rs6000/rs6000.c: Likewise.
6195
6196 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
6197
6198         PR target/51915
6199         * config/arm/arm.c (arm_count_output_move_double_insns): Call
6200         output_move_double on a copy of operands array.
6201
6202 2012-01-20  Cary Coutant  <ccoutant@google.com>
6203             Dodji Seketeli  <dodji@redhat.com>
6204
6205         PR debug/45682
6206         * dwarf2out.c (copy_declaration_context): Return ref to parent
6207         of declaration DIE, if necessary.
6208         (remove_child_or_replace_with_skeleton): Add new parameter; update
6209         caller.  Place skeleton DIE under parent DIE of original declaration.
6210         Move call to copy_declaration_context to here ...
6211         (break_out_comdat_types): ... from here.
6212
6213 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6214
6215         PR rtl-optimization/51856
6216         * reload.c (find_reloads_subreg_address): Set the address_reloaded
6217         flag to reloaded.
6218
6219 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6220
6221         PR target/51819
6222         * config/arm/arm.c (arm_print_operand): Correct output of alignment
6223         hints for neon loads and stores.
6224
6225 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
6226
6227         PR target/49868
6228         PR target/50887
6229         * doc/extend.texi (Named Address Spaces): Split into subsections.
6230         (AVR Named Address Spaces): New subsection.
6231         (M32C Named Address Spaces): New subsection.
6232         (RL78 Named Address Spaces): New subsection.
6233         (SPU Named Address Spaces): New subsection.
6234         (Variable Attributes): New anchor "AVR Variable Attributes".
6235         (AVR Variable Attributes): Rewrite and avoid wording
6236         "address space" in this context.
6237         * doc/invoke.texi (AVR Options): Rewrite and add documentation
6238         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
6239         (AVR Built-in Macros): New subsubsection therein.
6240         * doc/md.texi (AVR constraints): Remove "C04", "R".
6241
6242 2012-01-20  Richard Guenther  <rguenther@suse.de>
6243
6244         PR tree-optimization/51903
6245         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
6246         when removing stmts.
6247
6248 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6249
6250         PR target/50313
6251         * config/arm/arm.c (arm_load_pic_register): Use
6252         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
6253         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
6254         (arm_pic_static_addr): Likewise.
6255         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
6256         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
6257         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
6258         (pic_load_addr_unified): New.
6259
6260 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
6261
6262         PR target/51106
6263         * function.c (instantiate_virtual_regs_in_insn): Use
6264         delete_insn_and_edges when removing a wrong asm insn.
6265
6266 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
6267
6268         PR rtl-optimization/40761
6269         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
6270         Add new member loop_num.
6271         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
6272         (ira_build): Remove the parameter.
6273
6274         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
6275         (ira.c): Do not build CFG loops for one region allocation.  Remove
6276         argument from ira_build call.
6277
6278         * ira-build.c (init_loop_tree_node): New function.
6279         (create_loop_tree_nodes): Use it.  Separate the case when CFG
6280         loops are not built.
6281         (more_one_region_p): Check current_loops.
6282         (finish_loop_tree_nodes): Separate the case when CFG loops are not
6283         built.
6284         (add_loop_to_tree): Process loop equal to NULL too.
6285         (form_loop_tree): Separate the case when CFG loops are not built.
6286         Use explicitly number for the root.
6287         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
6288         an assertion.
6289         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
6290         instead of loop->num.
6291         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
6292         (mark_all_loops_for_removal): Ditto.
6293         (remove_unnecessary_regions): Separate the case when CFG loops
6294         are not built.
6295         (ira_build): Remove the parameter.  Use explicit number of regions
6296         when CFG loops are not built.
6297
6298         * ira-color.c (print_loop_title): Separate the case for the root node.
6299         Use loop_num instead of loop->num.
6300         (move_spill_restore): Use loop_num instead of loop->num.
6301
6302         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
6303         (change_loop): Ditto.
6304         (change_loop): Use loop_num instead of loop->num.
6305
6306         * ira-lives.c (process_bb_node_lives): Ditto.
6307
6308         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
6309
6310         * ira-conflicts.c (print_allocno_conflicts): Ditto.
6311
6312 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
6313
6314         PR libmudflap/40778
6315         * tree-mudflap.c (mf_artificial): New function.
6316         (execute_mudflap_function_ops, execute_mudflap_function_decls,
6317         mx_register_decls, mudflap_enqueue_decl): Use it.
6318
6319         PR target/51876
6320         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
6321         numbers in the insn pattern.
6322
6323 2012-01-19  Michael Matz  <matz@suse.de>
6324
6325         PR tree-optimization/46590
6326         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
6327         use it in remembering which conflicts we already created.
6328         (add_scope_conflicts): Adjust call to above, (de)allocate helper
6329         bitmap.
6330
6331 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
6332
6333         PR lto/51280
6334         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
6335         (merge_and_complain): Same.
6336
6337 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
6338
6339         PR bootstrap/50237
6340         * config/initfini-array.h: Guard content of the header
6341         with #ifdef HAVE_INITFINI_ARRAY.
6342         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
6343         Add initfini-array.h to tm_file here.
6344         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
6345         * config.gcc: Don't add initfini-array.h to tm_file here.
6346         * configure: Regenerated.
6347
6348 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
6349
6350         PR rtl-optimization/51505
6351         * df-problems.c (df_kill_notes): New parameter live. Update comment.
6352         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
6353         (df_note_bb_compute): Update the call to df_kill_notes.
6354
6355 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
6356
6357         * trans-mem.c (requires_barrier): Remove call to is_global_var.
6358
6359 2012-01-18  Richard Guenther  <rguenther@suse.de>
6360
6361         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
6362         of conversions to void *.
6363
6364 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6365             Richard Sandiford  <rdsandiford@googlemail.com>
6366
6367         PR middle-end/50325
6368         PR middle-end/51192
6369         * optabs.h (simplify_expand_binop): Declare.
6370         * optabs.c (simplify_expand_binop): Make global.
6371         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
6372         endian targets if the source cannot be exactly covered by word
6373         mode chunks.
6374
6375 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
6376
6377         PR bootstrap/51872
6378         * hard-reg-set.h (struct hard_reg_set_container): New type.
6379         * target.h (struct hard_reg_set_container): Forward declare.
6380         * target.def (set_up_by_prologue): New target hook.
6381         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
6382         * doc/tm.texi: Regenerated.
6383         * function.c (thread_prologue_and_epilogue_insns): Change
6384         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
6385         Call targetm.set_up_by_prologue on it.
6386         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
6387         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
6388
6389 2012-01-17  Nick Clifton  <nickc@redhat.com>
6390
6391         * config/rx/rx.c (rx_can_use_simple_return): New function.
6392         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
6393         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
6394
6395 2012-01-17  Richard Guenther  <rguenther@suse.de>
6396
6397         PR middle-end/51782
6398         * expr.c (expand_assignment): Take address-space information
6399         from the address operand of MEM_REF and TARGET_MEM_REF.
6400         (expand_expr_real_1): Likewise.
6401
6402 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6403
6404         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
6405         reload dump is requested.
6406
6407 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
6408
6409         PR other/51165
6410         * trans-mem.c (requires_barrier): Call may_be_aliased.
6411
6412 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
6413
6414         PR tree-optimization/51877
6415         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
6416         call arguments and fndecls compare equal, instead return false if they
6417         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
6418         both SSA_NAMEs that are valueized the same, or they satisfy
6419         operand_equal_p.
6420
6421 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6422
6423         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
6424         Solaris 11+.
6425         * configure: Regenerate.
6426
6427 2012-01-16  Jan Hubicka  <jh@suse.cz>
6428
6429         PR c/12245
6430         PR c++/14179
6431         * convert.c (convert_to_integer): Use fold_convert for
6432         converting an INTEGER_CST to integer type.
6433
6434 2012-01-16  Jason Merrill  <jason@redhat.com>
6435
6436         PR c++/14179
6437         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
6438
6439 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
6440
6441         PR bootstrap/51860
6442         * config/s390/s390.c (s390_chunkify_start): Don't skip
6443         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
6444         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
6445         If insn is followed by NOTE_INSN_VAR_LOCATION or
6446         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
6447         Don't use location of note insns.
6448
6449         PR tree-optimization/51865
6450         * tree-inline.c (tree_function_versioning): Call remap_decl
6451         on DECL_RESULT whenever it has VOID_TYPE_P type.
6452
6453 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
6454
6455         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
6456         for calls to locally-binding MIPS16 functions if only the return
6457         type uses float regs.
6458
6459 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
6460             Richard Sandiford  <rdsandiford@googlemail.com>
6461
6462         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
6463         (SYMBOL_32_HIGH): Likewise.
6464         (mips_output_tls_reloc_directive): Declare.
6465         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
6466         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
6467         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
6468         (mips_lo_relocs, mips_hi_relocs): Make extern.
6469         (mips16_stub_function): Move up file.
6470         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
6471         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
6472         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
6473         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
6474         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
6475         (mips_get_tp): Add MIPS16 support.
6476         (mips_legitimize_tls_address): Remove MIPS16 sorry().
6477         Generalize DTPREL and TPREL handling.
6478         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
6479         Add MIPS16 TLS support.
6480         (mips_output_tls_reloc_directive): New function.
6481         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
6482         * config/mips/predicates.md (symbolic_operand_with_high)
6483         (tls_reloc_operand): New predicates.
6484         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
6485         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
6486         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
6487         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
6488         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
6489         (*tls_get_tp_mips16_call_<mode>): Likewise.
6490
6491 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
6492
6493         PR rtl-optimization/51821
6494         * recog.c (peep2_find_free_register): Determine clobbered registers
6495         from insn pattern.
6496
6497 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
6498
6499         PR target/50925
6500         * config/avr/avr-protos.h: Revert change of 2012-01-09.
6501         * config/avr/avr.c: Likewise.
6502         * config/avr/avr.h: Likewise.
6503
6504 2012-01-13  Ian Lance Taylor  <iant@google.com>
6505
6506         PR c++/50012
6507         * tree.h (TYPE_QUALS): Add cast to int.
6508         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
6509
6510 2012-01-13  Ian Lance Taylor  <iant@google.com>
6511
6512         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
6513         comparing param_index to VEC_length result.
6514
6515 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
6516
6517         * c-decl.c: Do not include tree-mudflap.h
6518         * tree-optimize.c: Likewise.
6519         * Makefile.in: Update dependencies.
6520
6521 2012-01-13  Richard Guenther  <rguenther@suse.de>
6522
6523         PR middle-end/8081
6524         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
6525         variable-sized result always use RSO.
6526
6527 2012-01-12  DJ Delorie  <dj@redhat.com>
6528
6529         * cfgexpand.c (convert_debug_memory_address): Allow any valid
6530         pointer type, not just the default pointer type.
6531
6532 2012-01-09  Richard Henderson  <rth@redhat.com>
6533             Denis Chertykov  <chertykov@gmail.com>
6534
6535         PR target/50925
6536         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
6537         * config/avr/avr.c (avr_can_eliminate): Simplify.
6538         (avr_initial_elimination_offset): Likewise.
6539         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
6540         (expand_epilogue): Likewise.
6541         (avr_legitimize_address): Gut.
6542         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
6543         (avr_hard_regno_nregs): New.
6544         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
6545         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
6546         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
6547         add soft frame pointer.
6548         (CALL_USED_REGISTERS): Likewise.
6549         (REG_CLASS_CONTENTS): Likewise.
6550         (REGISTER_NAMES): Likewise.
6551         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
6552         (HARD_FRAME_POINTER_REGNUM): New.
6553         (FRAME_POINTER_REGNUM): Use soft frame pointer.
6554         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
6555         remove the HARD_FRAME_POINTER self-elimination.
6556
6557 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
6558
6559         PR target/51756
6560         * config/avr/avr.c (avr_encode_section_info): Test for absence of
6561         DECL_EXTERNAL when checking for initializers of progmem variables.
6562
6563 2012-01-12  Ira Rosen  <irar@il.ibm.com>
6564
6565         PR tree-optimization/51799
6566         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
6567         that the last operation is a type demotion.
6568
6569 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
6570
6571         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
6572         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
6573
6574 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
6575
6576         PR bootstrap/51796
6577         * combine.c (distribute_notes): If i3 is a noreturn call,
6578         allow old_size to be equal to args_size and make sure the
6579         noreturn call gets REG_ARGS_SIZE note.
6580         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
6581         on noreturn calls even when the delta is 0.
6582
6583 2012-01-11  Nathan Sidwell  <nathan@acm.org>
6584
6585         * gcov.c (STRING_SIZE): Remove.
6586         (generate_results): Erase annotations for source files with no
6587         coverage information.
6588         (read_line): New.
6589         (output_lines): Use it.
6590
6591 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
6592
6593         * gimple.h (gimplify_body): Remove first argument.
6594         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
6595         pointer set here, instead just pass DATA to walk_tree.
6596         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
6597         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
6598         (unvisit_body): Likewise, but with unmark_visited.
6599         (gimplify_body): Remove BODY_P argument and adjust.
6600         (gimplify_function_tree): Adjust call to gimplify_body.
6601         * omp-low.c (finalize_task_copyfn): Likewise.
6602
6603 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
6604
6605         * tree.h (build_function_decl_skip_args): Add boolean parameter.
6606         (build_function_type_skip_args): Delete.
6607         * tree.c (build_function_type_skip_args): Make static and add
6608         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
6609         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
6610         pass it to build_function_type_skip_args.
6611         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
6612         (tree_function_versioning): Likewise.
6613         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
6614         build_function_decl_skip_args.
6615         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
6616         and pass it to build_function_decl_skip_args/tree_function_versioning.
6617         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
6618         * ipa-inline-transform.c (save_inline_function_body): Likewise.
6619         * trans-mem.c (ipa_tm_create_version): Likewise.
6620         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
6621         * tree-inline.c (declare_return_variable): Remove always-true test.
6622         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
6623         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
6624         * ipa-split.c (split_function): Skip the return value for the split
6625         part if it doesn't return.
6626
6627 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6628
6629         PR tree-optimization/49642
6630         * ipa-split.c (forbidden_dominators): New variable.
6631         (check_forbidden_calls): New function.
6632         (dominated_by_forbidden): Likewise.
6633         (consider_split): Check for forbidden dominators.
6634         (execute_split_functions): Initialize and free forbidden
6635         dominators info; call check_forbidden_calls.
6636
6637 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
6638
6639         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
6640
6641 2012-01-11  Nick Clifton  <nickc@redhat.com>
6642
6643         * config/rx/rx.md (return): Define pattern.
6644
6645 2012-01-11  Richard Guenther  <rguenther@suse.de>
6646
6647         * doc/extend.texi (malloc attribute): Adjust according to
6648         implementation.
6649
6650 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
6651             Patrick Marlier  <patrick.marlier@gmail.com>
6652
6653         PR middle-end/51516
6654         * trans-mem.c (get_cg_data): Traverse aliases if requested.
6655         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
6656         (ipa_tm_note_irrevocable): Same.
6657         (ipa_tm_scan_irr_block): Same.
6658         (ipa_tm_decrement_clone_counts): Same.
6659         (ipa_tm_scan_irr_function): Same.
6660         (ipa_tm_create_version_alias): Same.
6661         (ipa_tm_create_version): Same.
6662         (ipa_tm_transform_calls_redirect): Same.
6663         (ipa_tm_transform_calls): Same.
6664         (ipa_tm_transform_transaction): Same.
6665         (ipa_tm_execute): Same.
6666
6667 2012-01-10  Richard Guenther  <rguenther@suse.de>
6668
6669         PR middle-end/51806
6670         * opts.c (common_handle_option): Handle -Werror.
6671
6672 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
6673
6674         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
6675         operand number.
6676
6677 2012-01-10  Jason Merrill  <jason@redhat.com>
6678
6679         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
6680         information.
6681
6682 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6683
6684         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
6685         supports R_386_TLS_GD_PLT reloc.
6686         (gcc_cv_as_ix86_tlsldmplt): Check if linker
6687         supports R_386_TLS_LDM_PLT reloc.
6688         * configure: Regenerate.
6689         * config.in: Regenerate.
6690
6691 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
6692
6693         PR target/49868
6694         Extend __pgmx semantics to linearize memory.
6695         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
6696         determine if code comes inline or from libgcc.
6697         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
6698         (movmem_qi, movmem_qi): Set constraint #2 to "n".
6699         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
6700         (movmemx_qi, movmemx_hi): New insns.
6701         (xload_<mode>_libgcc): Rewrite to new insn condition.
6702         (xload_<mode>): Remove insns.
6703         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
6704         cases that don't satisfy avr_xload_libgcc_p().
6705         (avr_addr_space_convert): Allow converting in any direction.
6706         (avr_addr_space_subset_p): Return always true.
6707         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
6708         (avr_emit_movmemhi): Ditto.
6709         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
6710         (avr_out_movmem): Ditto.
6711         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
6712         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
6713         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
6714         (avr_encode_section_info): Encode 'progmem' in symbol flags.
6715         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
6716
6717 2012-01-10  Richard Guenther  <rguenther@suse.de>
6718
6719         PR tree-optimization/50913
6720         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
6721         Require data-refs to be representable by Graphite with respect
6722         to any loop nest.
6723
6724 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
6725
6726         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
6727         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
6728
6729 2012-01-10  Tom de Vries  <tom@codesourcery.com>
6730
6731         PR rtl-optimization/51271
6732         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
6733         handling annulled branch.
6734
6735 2012-01-10  Richard Henderson  <rth@redhat.com>
6736
6737         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
6738         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
6739         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
6740         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
6741         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
6742         arm_expand_vec_perm_const): New.
6743         * config/arm/arm-protos.h: Update.
6744         * config/arm/neon.md (UNSPEC_VCONCAT): New.
6745         (*neon_vswp<VDQX>): New.
6746         (neon_vcombine<VDX>): Use neon_split_vcombine.
6747         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
6748         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
6749         (vec_perm<VE>): New.
6750
6751 2012-01-10  Richard Henderson  <rth@redhat.com>
6752
6753         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
6754         use it if reload_completed.
6755         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
6756         arm_output_asm_insn, arm_process_output_memory_barrier,
6757         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
6758         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
6759         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
6760         arm_process_output_sync_insn, arm_output_sync_insn,
6761         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
6762         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
6763         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
6764         (emit_unlikely_jump): New.
6765         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
6766         (arm_split_atomic_op): New.
6767         * config/arm/arm-protos.h: Update.
6768         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
6769         (struct arm_sync_generator): Remove.
6770         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
6771         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
6772         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
6773         (VUNSPEC_LL, VUNSPEC_SC): New.
6774         (sync_result, sync_memory, sync_required_value, sync_new_value,
6775         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
6776         (attr length): Don't use arm_sync_loop_insns.
6777         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
6778         (movsfcc, movdfcc): Likewise.
6779         * config/arm/constraints.md (Ua): New.
6780         * config/arm/prediates.md (mem_noofs_operand): New.
6781         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
6782         (sync_clobber, sync_t2_reqd): Remove.
6783         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
6784         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
6785         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
6786         (arm_sync_compare_and_swap<SIDI>): Remove.
6787         (arm_sync_compare_and_swap<NARROW>): Remove.
6788         (arm_sync_lock_test_and_set<SIDI>): Remove.
6789         (arm_sync_lock_test_and_set<NARROW>): Remove.
6790         (arm_sync_new_<syncop><SIDI>): Remove.
6791         (arm_sync_new_<syncop><NARROW>): Remove.
6792         (arm_sync_new_nand<SIDI>): Remove.
6793         (arm_sync_new_nand<NARROW>): Remove.
6794         (arm_sync_old_<syncop><SIDI>): Remove.
6795         (arm_sync_old_<syncop><NARROW>): Remove.
6796         (arm_sync_old_nand<SIDI>): Remove.
6797         (arm_sync_old_nand<NARROW>): Remove.
6798         (*memory_barrier): Merge arm_output_memory_barrier.
6799         (atomic_compare_and_swap<QHSD>): New.
6800         (atomic_compare_and_swap<NARROW>_1): New.
6801         (atomic_compare_and_swap<SIDI>_1): New.
6802         (atomic_exchange<QHSD>): New.
6803         (cas_cmp_operand, cas_cmp_str): New.
6804         (atomic_op_operand, atomic_op_str): New.
6805         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
6806         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
6807         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
6808         (arm_load_exclusive<NARROW>): New.
6809         (arm_load_exclusivesi, arm_load_exclusivedi): New.
6810         (arm_store_exclusive<QHSD>): New.
6811
6812 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
6813
6814         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
6815         reload patterns if -mvsx-scalar-memory.
6816
6817         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
6818         generated, even -mno-vsx-scalar-double was used.
6819         (vsx_xscvdpsp_scalar): Likewise.
6820         (vsx_xscvspdp_scalar2): Likewise.
6821
6822 2012-01-09  Tom de Vries  <tom@codesourcery.com>
6823             Andrew Pinski  <apinski@cavium.com>
6824
6825         PR debug/51471
6826         * reorg.c (fill_slots_from_thread): Don't speculate
6827         frame-related insns.
6828
6829 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
6830
6831         * sched-int.h (bb_note): Move to...
6832         * basic-block.h: ...here.
6833         * haifa-sched.c (bb_note): Move to...
6834         * cfgrtl.c: ...here.
6835         * function.c (next_block_for_reg): New function.
6836         (move_insn_for_shrink_wrap): Likewise.
6837         (prepare_shrink_wrap): Rewrite to use the above.
6838
6839 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
6840
6841         * gimple.c (is_gimple_non_addressable): Remove.
6842         * gimple.h: Remove is_gimple_non_addressable.
6843         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
6844         is_gimple_non_addressable.
6845         * trans-mem.c (expand_assign_tm): Same.
6846
6847 2012-01-09  Richard Guenther  <rguenther@suse.de>
6848
6849         PR tree-optimization/51775
6850         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
6851         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
6852
6853 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
6854
6855         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
6856         tuning parameters.
6857         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
6858
6859 2012-01-09  Richard Guenther  <rguenther@suse.de>
6860
6861         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
6862
6863 2012-01-08  Jan Hubicka  <jh@suse.cz>
6864
6865         PR tree-optimize/51680
6866         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
6867         on when known_vals needs to be computed; cleanup.
6868
6869 2012-01-08  Jan Hubicka  <jh@suse.cz>
6870
6871         PR tree-optimize/51694
6872         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
6873
6874 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
6875
6876         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
6877         for -std=c++98 and -std=c++11 too.
6878
6879 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
6880
6881         * cfgloop.c (cancel_loop): Add free() of bbs array.
6882
6883 2012-01-07  Jan Hubicka  <jh@suse.cz>
6884
6885         PR tree-optimization/51600
6886         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
6887         that benefits small functions.
6888
6889 2012-01-07  Jan Hubicka  <jh@suse.cz>
6890
6891         * ipa-inline.c (want_inline_small_function_p): Fix formating.
6892
6893 2012-01-07  Jan Hubicka  <jh@suse.cz>
6894
6895         PR tree-optimization/51680
6896         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
6897         whose inlining reduce unit size.
6898
6899 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
6900
6901         PR bootstrap/51725
6902         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
6903         Add canonical node to containing_mem chain after the non-canonical
6904         one, even if there weren't any locs to propagate.
6905         (remove_useless_values): Keep only canonical values.
6906         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
6907         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
6908         canonicalize mem_chain elements that are not discarded.
6909
6910 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
6911
6912         PR target/47333
6913         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
6914         before emitting functions.
6915
6916         PR gcov-profile/50127
6917         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
6918         clear_aux_for_blocks.
6919
6920 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
6921
6922         PR debug/51746
6923         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
6924
6925 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
6926
6927         * c-decl.c (ext_block): Moved up.
6928         (collect_all_refs, for_each_global_decl): Take ext_block into account.
6929
6930 2012-01-06  Han Shen  <shenhan@google.com>
6931
6932         Translate built-in include paths for sysroot.
6933         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
6934         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
6935
6936         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
6937         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
6938
6939         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
6940         control whether sysroot should be prepended to gxx include dir.
6941
6942         * configure: Regenerate.
6943
6944 2012-01-06  Torvald Riegel  <triegel@redhat.com>
6945
6946         PR rtl-optimization/51771
6947         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
6948         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
6949
6950 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
6951
6952         PR tree-optimization/51315
6953         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
6954         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
6955
6956 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
6957
6958         PR target/51681
6959         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
6960         for shrp pattern.  Correctly handle and fixup shift variable.
6961         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
6962
6963 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
6964
6965         PR debug/51762
6966         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
6967         note when !ACCUMULATE_OUTGOING_ARGS.
6968
6969 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
6970
6971         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
6972         condition.
6973         (extract_range_from_unary_expr_1): Avoid useless computations.
6974
6975 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
6976
6977         PR rtl-optimization/51767
6978         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
6979         of jump_block and add an extra edge for degenerated asm gotos.
6980
6981         PR middle-end/51768
6982         * stmt.c (check_unique_operand_names): Don't ICE during error
6983         reporting if i is from labels chain.
6984
6985         PR middle-end/44777
6986         * profile.c (branch_prob): Split bbs that have exit edge
6987         and need a fake entry edge too.
6988
6989 2012-01-05  Jan Hubicka  <jh@suse.cz>
6990
6991         PR middle-end/49710
6992         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
6993         unlooping loops.
6994
6995 2012-01-05  Richard Guenther  <rguenther@suse.de>
6996
6997         PR lto/50490
6998         * tree-streamer-out.c (write_ts_optimization): New function.
6999         (streamer_write_tree_body): Call it.
7000         * tree-streamer-in.c (lto_input_ts_optimization): New function.
7001         (streamer_read_tree_body): Call it.
7002         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
7003
7004 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
7005
7006         PR middle-end/51761
7007         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
7008         * gimplify.c (gimplify_cleanup_point_expr): Save and set
7009         in_cleanup_point_expr before gimplify_stmt call and restore it
7010         afterwards.
7011         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
7012         in_cleanup_point_expr is false.
7013
7014 2012-01-05  Richard Guenther  <rguenther@suse.de>
7015
7016         PR middle-end/51764
7017         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
7018         to c.opt.
7019         * toplev.c (process_options): Reject combining mudflap and LTO.
7020         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
7021
7022 2012-01-05  Richard Guenther  <rguenther@suse.de>
7023
7024         PR tree-optimization/51760
7025         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
7026         not VARYING.
7027         (bit_value_unop): Handle UNDEFINED operands.
7028         (bit_value_binop): Likewise.
7029
7030 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
7031
7032         * config/avr/avr.c (avr_replace_prefix): Remove.
7033         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
7034         (avr_asm_function_rodata_section): Ditto.
7035         (avr_asm_select_section): Ditto.
7036
7037 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7038
7039         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
7040         insertion.
7041
7042 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
7043
7044         PR bootstrap/51648
7045         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
7046         calls that have any non-fake successor edges.
7047
7048         PR debug/51746
7049         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
7050
7051 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
7052
7053         PR tree-optimization/51624
7054         * tree-sra.c (build_ref_for_model): When replicating a chain of
7055         COMPONENT_REFs, stop as soon as the offset would become negative.
7056
7057 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
7058
7059         PR debug/51695
7060         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
7061         in .debug_loc on the floor.
7062
7063 2012-01-04  Andrew Pinski  <apinski@cavium.com>
7064
7065         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
7066
7067 2012-01-04  Andrew Pinski  <apinski@cavium.com>
7068             Adam Nemet  <anemet@caviumnetworks.com>
7069
7070         * config/mips/mips.md (size): Add SI and DI.
7071         (SIZE): New mode attribute.
7072         (U): New code attribute.
7073         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
7074         (mips_lbux_<mode>): Delete.
7075         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
7076         (mips_lhx): Use gen_mips_lhx_extsi.
7077         (mips_lhx_<mode>): Delete.
7078         (mips_lwx): Delete.
7079         (mips_l<size>x): New expand.
7080         (mips_lwx_<mode>): Delete.
7081         (mips_l<GPR:size>x_<P:mode>): New pattern.
7082         (*mips_lw<u>x_<P:mode>_ext): Likewise.
7083         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
7084         * config/mips/mips.c (mips_lx_address_p): New function.
7085         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
7086         (dsp64): New availability predicate.
7087         (mips_builtins): Add an entry for __builtin_mips_ldx.
7088         * config/mips/mips.h (ISA_HAS_LBX): New define.
7089         (ISA_HAS_LBUX): Likewise.
7090         (ISA_HAS_LHX): Likewise.
7091         (ISA_HAS_LHUX): Likewise.
7092         (ISA_HAS_LWX): Likewise.
7093         (ISA_HAS_LWUX): Likewise.
7094         (ISA_HAS_LDX): Likewise.
7095         * doc/extend.texi (__builtin_mips_ldx): Document.
7096
7097 2012-01-04  Tristan Gingold  <gingold@adacore.com>
7098
7099         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
7100         when long pointers are used.
7101         * config.build (*-*-*vms*): Handle all OpenVMS targets.
7102         (alpha64-dec-*vms*, alpha*-dec-*vms*)
7103         (ia64-hp-*vms*): Remove.
7104         * config/vms/xm-vms64.h: Delete.
7105
7106 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
7107
7108         PR middle-end/51472
7109         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
7110
7111 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
7112
7113         * opts.c (finish_options): Remove duplicate sorry.
7114
7115 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
7116
7117         PR middle-end/51696
7118         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
7119         correctly.
7120
7121 2012-01-04  Richard Guenther  <rguenther@suse.de>
7122
7123         PR middle-end/51750
7124         * tree.c (size_low_cst): New function.
7125         * tree.h (size_low_cst): Declare.
7126         * fold-const.c (fold_comparison): Use it to extract the low
7127         part of the POINTER_PLUS_EXPR offset.
7128
7129 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
7130
7131         Fix clearing ZERO_REG
7132         * config/avr/avr.md (cc): Add alternative "ldi".
7133         (movqi_insn): Use it in cc attribute.
7134         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
7135         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
7136         (output_reload_insisf): Use ZERO_REG to pre-clear register.
7137
7138 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7139
7140         * configure: Regenerate.
7141
7142 2012-01-04  Richard Guenther  <rguenther@suse.de>
7143
7144         PR tree-optimization/49651
7145         * tree-ssa-structalias.c (type_can_have_subvars): New function.
7146         (var_can_have_subvars): Use it.
7147         (get_constraint_for_1): Only consider subfields if there can be any.
7148
7149 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
7150
7151         PR bootstrap/51725
7152         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
7153         to its new canonical_cselib_val and the cselib_val was in
7154         first_containing_mem chain, but the canonical_cselib_val was not,
7155         add the latter into the chain.
7156         (cselib_invalidate_mem): Compare canonical_cselib_val of
7157         addr_list chain elt with v.
7158
7159         PR pch/51722
7160         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
7161         dwarf2out_undef): Allocate e.info using ggc_strdup instead
7162         of xstrdup.
7163         (output_macinfo_op): Don't ggc_strdup fd->filename.
7164         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
7165         then ggc_strdup it.  Don't free inc->info or cur->info.
7166         (output_macinfo): Don't free ref->info or file->info.
7167
7168 2012-01-03  Ira Rosen  <irar@il.ibm.com>
7169
7170         PR tree-optimization/51269
7171         * tree-vect-loop-manip.c (set_prologue_iterations): Make
7172         first_niters a pointer.
7173         (slpeel_tree_peel_loop_to_edge): Likewise.
7174         (vect_do_peeling_for_loop_bound): Update call to
7175         slpeel_tree_peel_loop_to_edge.
7176         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
7177         here.  Remove it from the parameters list.
7178         (vect_do_peeling_for_alignment): Update calls and compute
7179         wide_prolog_niters.
7180
7181 2012-01-03  Richard Guenther  <rguenther@suse.de>
7182
7183         PR tree-optimization/51070
7184         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
7185         Properly handle calls.
7186
7187 2012-01-03  Richard Guenther  <rguenther@suse.de>
7188
7189         PR tree-optimization/51692
7190         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
7191         the LHS of allocation stmts.
7192
7193 2012-01-03  Olivier Hainque  <hainque@adacore.com>
7194
7195         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
7196
7197 2012-01-03  Olivier Hainque  <hainque@adacore.com>
7198
7199         * collect2.c (main): In AIX specific computations for vector
7200         insertions, use CONST_CAST2 to cast from char ** to const char **.
7201
7202 2012-01-03  Richard Guenther  <rguenther@suse.de>
7203
7204         PR debug/51650
7205         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
7206         the context of a limbo DIE when it does not already exist.
7207
7208 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
7209
7210         PR tree-optimization/51719
7211         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
7212         but direct call is, clear direct call's lhs and don't add fallthrough
7213         edge from dcall_bb to join_bb and PHIs.
7214
7215 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7216
7217         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
7218         the instructions emitted by the pattern.
7219         ("*TDC_insn_<mode>"): Add comment.
7220
7221 2012-01-03  Richard Guenther  <rguenther@suse.de>
7222
7223         PR middle-end/51730
7224         * fold-const.c (fold_comparison): Properly canonicalize
7225         tree offset and HOST_WIDE_INT bit position.
7226
7227 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
7228
7229         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
7230         operands for extzv pattern.
7231
7232 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
7233
7234         PR bootstrap/51725
7235         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
7236         on mem_elt first.
7237
7238 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
7239
7240         * doc/invoke.texi (-flto and related options): Copy-edit.
7241
7242 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
7243
7244         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
7245
7246 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
7247
7248         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
7249         New patterns.
7250
7251 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
7252
7253         * expr.h (move_by_pieces_ninsns): Declare.
7254         * expr.c (move_by_pieces_ninsns): Make external.
7255         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
7256         (mips_store_by_pieces_p): Likewise.
7257         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
7258         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
7259         * config/mips/mips.c (mips_move_by_pieces_p): New function.
7260         (mips_store_by_pieces_p): Likewise.
7261
7262 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
7263
7264         * passes.c (register_one_dump_file): Free full_name.
7265
7266         * reload1.c (reload): Don't allocate reg_max_ref_width here.
7267         (calculate_elim_costs_all_insns): Free offsets_at and
7268         offsets_known_at at the end and clear the pointers.
7269
7270 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
7271
7272         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
7273         this option introduced in r180739.
7274
7275 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
7276
7277         PR target/51345
7278         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
7279         (tmake_file target=avr): Add avr/t-multilib.
7280
7281         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
7282         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
7283         * config/avr/genmultilib.awk: New file.
7284         * config/avr/t-multilib: New auto-generated file.
7285         * config/avr/multilib.h: New auto-generated file.
7286         * config/avr/t-avr (AVR_MCUS): New variable.
7287         (genopt.sh): Use it.
7288         (s-mlib): Depend on t-multilib.
7289         (t-multilib, multilib.h): New dependencies.
7290         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
7291         (MULTILIB_OPTIONS): Remove.
7292         (MULTILIB_MATCHES): Remove.
7293         (MULTILIB_DIRNAMES): Remove.
7294         (MULTILIB_EXCEPTIONS): Remove:
7295         * config/avr/genopt.sh: Don't use hard coded file name;
7296         pass AVR_MCUS from t-avr instead.
7297
7298 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
7299
7300         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
7301
7302 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
7303
7304         Implement light-weight DImode support.
7305         * config/avr/avr-dimode.md: New file.
7306         * config/avr/avr.md: Include it.
7307         (adjust_len): Add plus64, compare64.
7308         (HIDI): Remove code iterator.
7309         (code_stdname): New code attribute.
7310         (rotx, rotsmode): Remove DI.
7311         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
7312         as code iterator.
7313         * config/avr/avr-protos.h (avr_have_dimode): New.
7314         (avr_out_plus64, avr_out_compare64): New.
7315         * config/avr/avr.c (avr_out_compare): Handle DImode.
7316         (avr_have_dimode): New variable definition and initialization.
7317         (avr_out_compare64, avr_out_plus64): New functions.
7318         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
7319         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
7320         (avr_compare_pattern): Skip DImode comparisons.
7321
7322 2012-01-02  Revital Eres  <revital.eres@linaro.org>
7323
7324         * ddg.c (def_has_ccmode_p): New function.
7325         (add_cross_iteration_register_deps,
7326         create_ddg_dep_from_intra_loop_link): Call it.
7327
7328 2012-01-02  Richard Guenther  <rguenther@suse.de>
7329
7330         PR other/51679
7331         * invoke.texi (fassociative-math): Remove spurious paranthesis.
7332
7333 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
7334
7335         * gcc.c (process_command): Update copyright notice dates.
7336         * gcov.c (print_version): Likewise.
7337         * gcov-dump.c (print_version): Likewise.
7338         * mips-tfile.c (main): Likewise.
7339         * mips-tdump.c (main): Likewise.
7340
7341 2012-01-01  Ira Rosen  <irar@il.ibm.com>
7342
7343         PR tree-optimization/51704
7344         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
7345         a use is inside the basic block or loop before accessing its vect info.
7346
7347 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
7348
7349         PR rtl-optimization/51069
7350         * cfgloopmanip.c (remove_path): Removing path making irreducible
7351         region unconditional makes BB part of the region.
7352
7353 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
7354
7355         PR tree-optimization/51683
7356         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
7357         calls with side-effects.
7358         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7359 \f
7360 Copyright (C) 2012 Free Software Foundation, Inc.
7361
7362 Copying and distribution of this file, with or without modification,
7363 are permitted in any medium without royalty provided the copyright
7364 notice and this notice are preserved.