OSDN Git Service

PR c++/51812
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2012-01-24  Jason Merrill  <jason@redhat.com>
2
3         PR c++/51812
4         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
5         output static aliases.
6
7 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
8
9         PR driver/47249
10         * common.opt (-pie, -shared, pie, shared): Change from Common to
11         Driver.
12         * gcc.c (display_help): Display help for -pie and -shared.
13
14 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
15
16         PR target/49868
17         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
18         Remove note on size/offset limitation.
19         (AVR Variable Attributes): Add example how to read data located
20         with progmem.  Refer to named address spaces.
21         * doc/invoke.texi (AVR Options): Fix typo.
22
23 2012-01-24  Richard Guenther  <rguenther@suse.de>
24
25         Forward-port to trunk
26         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
27
28         PR middle-end/45678
29         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
30         op0 isn't sufficiently aligned and there is movmisalignM
31         insn for mode, use it to load op0 into a temporary register.
32
33 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
34
35         PR target/51957
36         * target.def (const_not_ok_for_debug_p): New hook.
37         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
38         documentation.
39         * doc/tm.texi: Regenerated.
40         * dwarf2out.c (const_ok_for_output_1): If
41         targetm.const_not_ok_for_debug_p returns true, fail.
42         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
43         function.
44         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
45
46 2012-01-23  Kai Tietz  <ktietz@redhat.com>
47
48         PR target/51900
49         * config/i386/predicates.md (symbolic_operand): Allow
50         UNSPEC_PCREL as PIC expression for lea.
51         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
52         * config/i386/i386.c (ix86_delegitimize_address): Handle
53         UNSPEC_PCREL for none-MEM, too.
54
55 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
56
57         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
58         (ipa_tm_create_version_alias): Same.
59
60 2012-01-18  Uros Bizjak  <ubizjak@gmail.com>
61
62         PR libitm/51830
63         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
64         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
65
66 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
67             Patrick Marlier  <patrick.marlier@gmail.com>
68             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
69
70         PR lto/51916
71         * lto-wrapper.c (run_gcc): Pass the LTO section name to
72         simple_object_start_read.
73
74 2012-01-23  Richard Guenther  <rguenther@suse.de>
75
76
77         PR tree-optimization/51895
78         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
79         parameter decomposition into BLKmode components.
80
81 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
82
83         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
84         fake variables for restrict-qualified pointers whose pointed-to type
85         contains a placeholder.
86
87 2012-01-23  Richard Guenther  <rguenther@suse.de>
88
89         PR tree-optimization/51949
90         * ipa-split.c (execute_split_functions): Do not split malloc functions.
91
92 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
93
94         PR rtl-optimization/51933
95         * ree.c (transform_ifelse): Return true right away if dstreg is
96         already wider or equal to cand->mode.
97         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
98         (make_defs_and_copies_lists): Remove defs_list and copies_list
99         arguments, add state argument, just truncate state->work_list
100         instead of always allocating and freeing the vector.  Assert that
101         get_defs succeeds instead of returning 2.  Changed return type to bool.
102         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
103         have ext_src_mode, see if it has been modified already with the
104         right kind of extension and has been extended before from the
105         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
106         just return true.  Remember the original mode in state->modified array.
107         (combine_reaching_defs): Add state argument.  Don't allocate and
108         free here def_list, copied_list and vec vectors, instead just
109         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
110         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
111         Add state variable, clear vectors in it, initialize state.modified
112         if needed.  Free all the vectors at the end and state.modified too.
113         Don't skip a candidate if the extension expression has been modified.
114
115 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
116
117         PR target/47096
118         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
119          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
120         (extra_options) interix.opt -> i386/interix.opt"
121         (extra_objs):Add winnt-stubs.o
122         * configure.ac: Add interix to target_os .comm on PE check.
123         * configure: Regenerate.
124         * config/interix3.h: Delete and move bits to..
125         * config/interix.h: Delete and move bits to..
126         * config/i386/i386-interix3.h: Delete and move bits to..
127         * config/i386/i386-interix.h: ..here.
128         (TARGET_CPU_DEFAULT): Remove redefinition.
129         (TARGET_ASM_CONSTRUCTOR): Undefine.
130         (SUBTARGET_SWITCHES): Define for ms-bitfields.
131         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
132         (PTRDIFF_TYPE): Define.
133         (LONG_DOUBLE_TYPE_SIZE): Define.
134         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
135         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
136         (TARGET_SECTION_TYPE_FLAGS): Define.
137         (ASM_DECLARE_FUNCTION_NAME): Define.
138         (ASM_OUTPUT_EXTERNAL): Define.
139         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
140         (ASM_OUTPUT_ALIGNED_BSS): Define.
141         (PCC_BITFIELD_TYPE_MATTERS): Define.
142         (USE_CONST_SECTION): Define.
143         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
144         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
145         (SUPPORTS_ONE_ONLY): Remove.
146         (I386_PE_STRIP_ENCODING): Define.
147         * config/interix.opt: Delete and move bits to..
148         * config/i386/interix.opt: ..here. New.
149         (mpe-aligned-commons): Add.
150         * config/i386/t-interix: Add copyright header.
151         (winnt-stubs.o): Add rule.
152
153 2012-01-22  Jason Merrill  <jason@redhat.com>
154
155         PR c++/51832
156         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
157         for extra name aliases.
158
159 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
160
161         PR rtl-optimization/51924
162         * ree.c (combine_set_extension): Improve debugging message.
163         (combine_reaching_defs): Likewise.
164         (get_defs): Rename confusingly named variable.
165         (find_and_remove_re): Skip a candidate if the extension expression has
166         been modified.
167
168 2012-01-21  Robert Millan  <rmh@gnu.org>
169             Gerald Pfeifer  <gerald@pfeifer.com>
170
171         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
172         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
173
174 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
175
176         PR tree-optimization/51914
177         * tree-vect-stmts.c (vectorizable_conversion): For
178         cvt_type && modifier == WIDEN, put temporary with cvt_type
179         at the beginning of vec_dsts and set vec_dest to temporary
180         with vectype_out.
181
182 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
183
184         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
185
186 2011-01-20  Tijl Coosemans  <tijl@coosemans.org>
187
188         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
189         * config/rs6000/rs6000.c: Likewise.
190
191 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
192
193         PR target/51915
194         * config/arm/arm.c (arm_count_output_move_double_insns): Call
195         output_move_double on a copy of operands array.
196
197 2012-01-20  Cary Coutant  <ccoutant@google.com>
198             Dodji Seketeli  <dodji@redhat.com>
199
200         PR debug/45682
201         * dwarf2out.c (copy_declaration_context): Return ref to parent
202         of declaration DIE, if necessary.
203         (remove_child_or_replace_with_skeleton): Add new parameter; update
204         caller.  Place skeleton DIE under parent DIE of original declaration.
205         Move call to copy_declaration_context to here ...
206         (break_out_comdat_types): ... from here.
207
208 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
209
210         PR rtl-optimization/51856
211         * reload.c (find_reloads_subreg_address): Set the address_reloaded
212         flag to reloaded.
213
214 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
215
216         PR target/51819
217         * config/arm/arm.c (arm_print_operand): Correct output of alignment
218         hints for neon loads and stores.
219
220 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
221
222         PR target/49868
223         PR target/50887
224         * doc/extend.texi (Named Address Spaces): Split into subsections.
225         (AVR Named Address Spaces): New subsection.
226         (M32C Named Address Spaces): New subsection.
227         (RL78 Named Address Spaces): New subsection.
228         (SPU Named Address Spaces): New subsection.
229         (Variable Attributes): New anchor "AVR Variable Attributes".
230         (AVR Variable Attributes): Rewrite and avoid wording
231         "address space" in this context.
232         * doc/invoke.texi (AVR Options): Rewrite and add documentation
233         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
234         (AVR Built-in Macros): New subsubsection therein.
235         * doc/md.texi (AVR constraints): Remove "C04", "R".
236
237 2012-01-20  Richard Guenther  <rguenther@suse.de>
238
239         PR tree-optimization/51903
240         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
241         when removing stmts.
242
243 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
244
245         PR target/50313
246         * config/arm/arm.c (arm_load_pic_register): Use
247         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
248         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
249         (arm_pic_static_addr): Likewise.
250         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
251         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
252         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
253         (pic_load_addr_unified): New.
254
255 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
256
257         PR target/51106
258         * function.c (instantiate_virtual_regs_in_insn): Use
259         delete_insn_and_edges when removing a wrong asm insn.
260
261 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
262
263         PR rtl-optimization/40761
264         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
265         Add new member loop_num.
266         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
267         (ira_build): Remove the parameter.
268
269         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
270         (ira.c): Do not build CFG loops for one region allocation.  Remove
271         argument from ira_build call.
272
273         * ira-build.c (init_loop_tree_node): New function.
274         (create_loop_tree_nodes): Use it.  Separate the case when CFG
275         loops are not built.
276         (more_one_region_p): Check current_loops.
277         (finish_loop_tree_nodes): Separate the case when CFG loops are not
278         built.
279         (add_loop_to_tree): Process loop equal to NULL too.
280         (form_loop_tree): Separate the case when CFG loops are not built.
281         Use explicitly number for the root.
282         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
283         an assertion.
284         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
285         instead of loop->num.
286         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
287         (mark_all_loops_for_removal): Ditto.
288         (remove_unnecessary_regions): Separate the case when CFG loops
289         are not built.
290         (ira_build): Remove the parameter.  Use explicit number of regions
291         when CFG loops are not built.
292
293         * ira-color.c (print_loop_title): Separate the case for the root node.
294         Use loop_num instead of loop->num.
295         (move_spill_restore): Use loop_num instead of loop->num.
296
297         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
298         (change_loop): Ditto.
299         (change_loop): Use loop_num instead of loop->num.
300
301         * ira-lives.c (process_bb_node_lives): Ditto.
302
303         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
304
305         * ira-conflicts.c (print_allocno_conflicts): Ditto.
306
307 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
308
309         PR libmudflap/40778
310         * tree-mudflap.c (mf_artificial): New function.
311         (execute_mudflap_function_ops, execute_mudflap_function_decls,
312         mx_register_decls, mudflap_enqueue_decl): Use it.
313
314         PR target/51876
315         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
316         numbers in the insn pattern.
317
318 2012-01-19  Michael Matz  <matz@suse.de>
319
320         PR tree-optimization/46590
321         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
322         use it in remembering which conflicts we already created.
323         (add_scope_conflicts): Adjust call to above, (de)allocate helper
324         bitmap.
325
326 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
327
328         PR lto/51280
329         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
330         (merge_and_complain): Same.
331
332 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
333
334         PR bootstrap/50237
335         * config/initfini-array.h: Guard content of the header
336         with #ifdef HAVE_INITFINI_ARRAY.
337         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
338         Add initfini-array.h to tm_file here.
339         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
340         * config.gcc: Don't add initfini-array.h to tm_file here.
341         * configure: Regenerated.
342
343 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
344
345         PR rtl-optimization/51505
346         * df-problems.c (df_kill_notes): New parameter live. Update comment.
347         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
348         (df_note_bb_compute): Update the call to df_kill_notes.
349
350 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
351
352         * trans-mem.c (requires_barrier): Remove call to is_global_var.
353
354 2012-01-18  Richard Guenther  <rguenther@suse.de>
355
356         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
357         of conversions to void *.
358
359 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
360             Richard Sandiford  <rdsandiford@googlemail.com>
361
362         PR middle-end/50325
363         PR middle-end/51192
364         * optabs.h (simplify_expand_binop): Declare.
365         * optabs.c (simplify_expand_binop): Make global.
366         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
367         endian targets if the source cannot be exactly covered by word
368         mode chunks.
369
370 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
371
372         PR bootstrap/51872
373         * hard-reg-set.h (struct hard_reg_set_container): New type.
374         * target.h (struct hard_reg_set_container): Forward declare.
375         * target.def (set_up_by_prologue): New target hook.
376         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
377         * doc/tm.texi: Regenerated.
378         * function.c (thread_prologue_and_epilogue_insns): Change
379         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
380         Call targetm.set_up_by_prologue on it.
381         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
382         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
383
384 2012-01-17  Nick Clifton  <nickc@redhat.com>
385
386         * config/rx/rx.c (rx_can_use_simple_return): New function.
387         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
388         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
389
390 2012-01-17  Richard Guenther  <rguenther@suse.de>
391
392         PR middle-end/51782
393         * expr.c (expand_assignment): Take address-space information
394         from the address operand of MEM_REF and TARGET_MEM_REF.
395         (expand_expr_real_1): Likewise.
396
397 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
398
399         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
400         reload dump is requested.
401
402 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
403
404         PR other/51165
405         * trans-mem.c (requires_barrier): Call may_be_aliased.
406
407 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
408
409         PR tree-optimization/51877
410         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
411         call arguments and fndecls compare equal, instead return false if they
412         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
413         both SSA_NAMEs that are valueized the same, or they satisfy
414         operand_equal_p.
415
416 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
417
418         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
419         Solaris 11+.
420         * configure: Regenerate.
421
422 2012-01-16  Jan Hubicka  <jh@suse.cz>
423
424         PR c/12245
425         PR c++/14179
426         * convert.c (convert_to_integer): Use fold_convert for
427         converting an INTEGER_CST to integer type.
428
429 2012-01-16  Jason Merrill  <jason@redhat.com>
430
431         PR c++/14179
432         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
433
434 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
435
436         PR bootstrap/51860
437         * config/s390/s390.c (s390_chunkify_start): Don't skip
438         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
439         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
440         If insn is followed by NOTE_INSN_VAR_LOCATION or
441         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
442         Don't use location of note insns.
443
444         PR tree-optimization/51865
445         * tree-inline.c (tree_function_versioning): Call remap_decl
446         on DECL_RESULT whenever it has VOID_TYPE_P type.
447
448 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
449
450         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
451         for calls to locally-binding MIPS16 functions if only the return
452         type uses float regs.
453
454 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
455             Richard Sandiford  <rdsandiford@googlemail.com>
456
457         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
458         (SYMBOL_32_HIGH): Likewise.
459         (mips_output_tls_reloc_directive): Declare.
460         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
461         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
462         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
463         (mips_lo_relocs, mips_hi_relocs): Make extern.
464         (mips16_stub_function): Move up file.
465         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
466         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
467         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
468         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
469         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
470         (mips_get_tp): Add MIPS16 support.
471         (mips_legitimize_tls_address): Remove MIPS16 sorry().
472         Generalize DTPREL and TPREL handling.
473         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
474         Add MIPS16 TLS support.
475         (mips_output_tls_reloc_directive): New function.
476         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
477         * config/mips/predicates.md (symbolic_operand_with_high)
478         (tls_reloc_operand): New predicates.
479         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
480         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
481         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
482         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
483         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
484         (*tls_get_tp_mips16_call_<mode>): Likewise.
485
486 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
487
488         PR rtl-optimization/51821
489         * recog.c (peep2_find_free_register): Determine clobbered registers
490         from insn pattern.
491
492 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
493
494         PR target/50925
495         * config/avr/avr-protos.h: Revert change of 2012-01-09.
496         * config/avr/avr.c: Likewise.
497         * config/avr/avr.h: Likewise.
498
499 2012-01-13  Ian Lance Taylor  <iant@google.com>
500
501         PR c++/50012
502         * tree.h (TYPE_QUALS): Add cast to int.
503         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
504
505 2012-01-13  Ian Lance Taylor  <iant@google.com>
506
507         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
508         comparing param_index to VEC_length result.
509
510 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
511
512         * c-decl.c: Do not include tree-mudflap.h
513         * tree-optimize.c: Likewise.
514         * Makefile.in: Update dependencies.
515
516 2012-01-13  Richard Guenther  <rguenther@suse.de>
517
518         PR middle-end/8081
519         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
520         variable-sized result always use RSO.
521
522 2012-01-12  DJ Delorie  <dj@redhat.com>
523
524         * cfgexpand.c (convert_debug_memory_address): Allow any valid
525         pointer type, not just the default pointer type.
526
527 2012-01-09  Richard Henderson  <rth@redhat.com>
528             Denis Chertykov  <chertykov@gmail.com>
529
530         PR target/50925
531         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
532         * config/avr/avr.c (avr_can_eliminate): Simplify.
533         (avr_initial_elimination_offset): Likewise.
534         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
535         (expand_epilogue): Likewise.
536         (avr_legitimize_address): Gut.
537         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
538         (avr_hard_regno_nregs): New.
539         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
540         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
541         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
542         add soft frame pointer.
543         (CALL_USED_REGISTERS): Likewise.
544         (REG_CLASS_CONTENTS): Likewise.
545         (REGISTER_NAMES): Likewise.
546         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
547         (HARD_FRAME_POINTER_REGNUM): New.
548         (FRAME_POINTER_REGNUM): Use soft frame pointer.
549         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
550         remove the HARD_FRAME_POINTER self-elimination.
551
552 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
553
554         PR target/51756
555         * config/avr/avr.c (avr_encode_section_info): Test for absence of
556         DECL_EXTERNAL when checking for initializers of progmem variables.
557
558 2012-01-12  Ira Rosen  <irar@il.ibm.com>
559
560         PR tree-optimization/51799
561         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
562         that the last operation is a type demotion.
563
564 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
565
566         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
567         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
568
569 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
570
571         PR bootstrap/51796
572         * combine.c (distribute_notes): If i3 is a noreturn call,
573         allow old_size to be equal to args_size and make sure the
574         noreturn call gets REG_ARGS_SIZE note.
575         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
576         on noreturn calls even when the delta is 0.
577
578 2012-01-11  Nathan Sidwell  <nathan@acm.org>
579
580         * gcov.c (STRING_SIZE): Remove.
581         (generate_results): Erase annotations for source files with no
582         coverage information.
583         (read_line): New.
584         (output_lines): Use it.
585
586 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
587
588         * gimple.h (gimplify_body): Remove first argument.
589         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
590         pointer set here, instead just pass DATA to walk_tree.
591         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
592         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
593         (unvisit_body): Likewise, but with unmark_visited.
594         (gimplify_body): Remove BODY_P argument and adjust.
595         (gimplify_function_tree): Adjust call to gimplify_body.
596         * omp-low.c (finalize_task_copyfn): Likewise.
597
598 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
599
600         * tree.h (build_function_decl_skip_args): Add boolean parameter.
601         (build_function_type_skip_args): Delete.
602         * tree.c (build_function_type_skip_args): Make static and add
603         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
604         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
605         pass it to build_function_type_skip_args.
606         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
607         (tree_function_versioning): Likewise.
608         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
609         build_function_decl_skip_args.
610         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
611         and pass it to build_function_decl_skip_args/tree_function_versioning.
612         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
613         * ipa-inline-transform.c (save_inline_function_body): Likewise.
614         * trans-mem.c (ipa_tm_create_version): Likewise.
615         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
616         * tree-inline.c (declare_return_variable): Remove always-true test.
617         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
618         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
619         * ipa-split.c (split_function): Skip the return value for the split
620         part if it doesn't return.
621
622 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
623
624         PR tree-optimization/49642
625         * ipa-split.c (forbidden_dominators): New variable.
626         (check_forbidden_calls): New function.
627         (dominated_by_forbidden): Likewise.
628         (consider_split): Check for forbidden dominators.
629         (execute_split_functions): Initialize and free forbidden
630         dominators info; call check_forbidden_calls.
631
632 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
633
634         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
635
636 2012-01-11  Nick Clifton  <nickc@redhat.com>
637
638         * config/rx/rx.md (return): Define pattern.
639
640 2012-01-11  Richard Guenther  <rguenther@suse.de>
641
642         * doc/extend.texi (malloc attribute): Adjust according to
643         implementation.
644
645 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
646             Patrick Marlier  <patrick.marlier@gmail.com>
647
648         PR middle-end/51516
649         * trans-mem.c (get_cg_data): Traverse aliases if requested.
650         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
651         (ipa_tm_note_irrevocable): Same.
652         (ipa_tm_scan_irr_block): Same.
653         (ipa_tm_decrement_clone_counts): Same.
654         (ipa_tm_scan_irr_function): Same.
655         (ipa_tm_create_version_alias): Same.
656         (ipa_tm_create_version): Same.
657         (ipa_tm_transform_calls_redirect): Same.
658         (ipa_tm_transform_calls): Same.
659         (ipa_tm_transform_transaction): Same.
660         (ipa_tm_execute): Same.
661
662 2012-01-10  Richard Guenther  <rguenther@suse.de>
663
664         PR middle-end/51806
665         * opts.c (common_handle_option): Handle -Werror.
666
667 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
668
669         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
670         operand number.
671
672 2012-01-10  Jason Merrill  <jason@redhat.com>
673
674         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
675         information.
676
677 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
678
679         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
680         supports R_386_TLS_GD_PLT reloc.
681         (gcc_cv_as_ix86_tlsldmplt): Check if linker
682         supports R_386_TLS_LDM_PLT reloc.
683         * configure: Regenerate.
684         * config.in: Regenerate.
685
686 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
687
688         PR target/49868
689         Extend __pgmx semantics to linearize memory.
690         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
691         determine if code comes inline or from libgcc.
692         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
693         (movmem_qi, movmem_qi): Set constraint #2 to "n".
694         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
695         (movmemx_qi, movmemx_hi): New insns.
696         (xload_<mode>_libgcc): Rewrite to new insn condition.
697         (xload_<mode>): Remove insns.
698         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
699         cases that don't satisfy avr_xload_libgcc_p().
700         (avr_addr_space_convert): Allow converting in any direction.
701         (avr_addr_space_subset_p): Return always true.
702         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
703         (avr_emit_movmemhi): Ditto.
704         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
705         (avr_out_movmem): Ditto.
706         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
707         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
708         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
709         (avr_encode_section_info): Encode 'progmem' in symbol flags.
710         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
711
712 2012-01-10  Richard Guenther  <rguenther@suse.de>
713
714         PR tree-optimization/50913
715         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
716         Require data-refs to be representable by Graphite with respect
717         to any loop nest.
718
719 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
720
721         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
722         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
723
724 2012-01-10  Tom de Vries  <tom@codesourcery.com>
725
726         PR rtl-optimization/51271
727         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
728         handling annulled branch.
729
730 2012-01-10  Richard Henderson  <rth@redhat.com>
731
732         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
733         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
734         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
735         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
736         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
737         arm_expand_vec_perm_const): New.
738         * config/arm/arm-protos.h: Update.
739         * config/arm/neon.md (UNSPEC_VCONCAT): New.
740         (*neon_vswp<VDQX>): New.
741         (neon_vcombine<VDX>): Use neon_split_vcombine.
742         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
743         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
744         (vec_perm<VE>): New.
745
746 2012-01-10  Richard Henderson  <rth@redhat.com>
747
748         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
749         use it if reload_completed.
750         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
751         arm_output_asm_insn, arm_process_output_memory_barrier,
752         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
753         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
754         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
755         arm_process_output_sync_insn, arm_output_sync_insn,
756         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
757         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
758         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
759         (emit_unlikely_jump): New.
760         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
761         (arm_split_atomic_op): New.
762         * config/arm/arm-protos.h: Update.
763         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
764         (struct arm_sync_generator): Remove.
765         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
766         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
767         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
768         (VUNSPEC_LL, VUNSPEC_SC): New.
769         (sync_result, sync_memory, sync_required_value, sync_new_value,
770         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
771         (attr length): Don't use arm_sync_loop_insns.
772         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
773         (movsfcc, movdfcc): Likewise.
774         * config/arm/constraints.md (Ua): New.
775         * config/arm/prediates.md (mem_noofs_operand): New.
776         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
777         (sync_clobber, sync_t2_reqd): Remove.
778         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
779         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
780         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
781         (arm_sync_compare_and_swap<SIDI>): Remove.
782         (arm_sync_compare_and_swap<NARROW>): Remove.
783         (arm_sync_lock_test_and_set<SIDI>): Remove.
784         (arm_sync_lock_test_and_set<NARROW>): Remove.
785         (arm_sync_new_<syncop><SIDI>): Remove.
786         (arm_sync_new_<syncop><NARROW>): Remove.
787         (arm_sync_new_nand<SIDI>): Remove.
788         (arm_sync_new_nand<NARROW>): Remove.
789         (arm_sync_old_<syncop><SIDI>): Remove.
790         (arm_sync_old_<syncop><NARROW>): Remove.
791         (arm_sync_old_nand<SIDI>): Remove.
792         (arm_sync_old_nand<NARROW>): Remove.
793         (*memory_barrier): Merge arm_output_memory_barrier.
794         (atomic_compare_and_swap<QHSD>): New.
795         (atomic_compare_and_swap<NARROW>_1): New.
796         (atomic_compare_and_swap<SIDI>_1): New.
797         (atomic_exchange<QHSD>): New.
798         (cas_cmp_operand, cas_cmp_str): New.
799         (atomic_op_operand, atomic_op_str): New.
800         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
801         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
802         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
803         (arm_load_exclusive<NARROW>): New.
804         (arm_load_exclusivesi, arm_load_exclusivedi): New.
805         (arm_store_exclusive<QHSD>): New.
806
807 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
808
809         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
810         reload patterns if -mvsx-scalar-memory.
811
812         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
813         generated, even -mno-vsx-scalar-double was used.
814         (vsx_xscvdpsp_scalar): Likewise.
815         (vsx_xscvspdp_scalar2): Likewise.
816
817 2012-01-09  Tom de Vries  <tom@codesourcery.com>
818             Andrew Pinski  <apinski@cavium.com>
819
820         PR debug/51471
821         * reorg.c (fill_slots_from_thread): Don't speculate
822         frame-related insns.
823
824 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
825
826         * sched-int.h (bb_note): Move to...
827         * basic-block.h: ...here.
828         * haifa-sched.c (bb_note): Move to...
829         * cfgrtl.c: ...here.
830         * function.c (next_block_for_reg): New function.
831         (move_insn_for_shrink_wrap): Likewise.
832         (prepare_shrink_wrap): Rewrite to use the above.
833
834 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
835
836         * gimple.c (is_gimple_non_addressable): Remove.
837         * gimple.h: Remove is_gimple_non_addressable.
838         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
839         is_gimple_non_addressable.
840         * trans-mem.c (expand_assign_tm): Same.
841
842 2012-01-09  Richard Guenther  <rguenther@suse.de>
843
844         PR tree-optimization/51775
845         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
846         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
847
848 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
849
850         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
851         tuning parameters.
852         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
853
854 2012-01-09  Richard Guenther  <rguenther@suse.de>
855
856         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
857
858 2012-01-08  Jan Hubicka  <jh@suse.cz>
859
860         PR tree-optimize/51680
861         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
862         on when known_vals needs to be computed; cleanup.
863
864 2012-01-08  Jan Hubicka  <jh@suse.cz>
865
866         PR tree-optimize/51694
867         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
868
869 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
870
871         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
872         for -std=c++98 and -std=c++11 too.
873
874 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
875
876         * cfgloop.c (cancel_loop): Add free() of bbs array.
877
878 2012-01-07  Jan Hubicka  <jh@suse.cz>
879
880         PR tree-optimization/51600
881         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
882         that benefits small functions.
883
884 2012-01-07  Jan Hubicka  <jh@suse.cz>
885
886         * ipa-inline.c (want_inline_small_function_p): Fix formating.
887
888 2012-01-07  Jan Hubicka  <jh@suse.cz>
889
890         PR tree-optimization/51680
891         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
892         whose inlining reduce unit size.
893
894 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
895
896         PR bootstrap/51725
897         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
898         Add canonical node to containing_mem chain after the non-canonical
899         one, even if there weren't any locs to propagate.
900         (remove_useless_values): Keep only canonical values.
901         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
902         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
903         canonicalize mem_chain elements that are not discarded.
904
905 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
906
907         PR target/47333
908         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
909         before emitting functions.
910
911         PR gcov-profile/50127
912         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
913         clear_aux_for_blocks.
914
915 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
916
917         PR debug/51746
918         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
919
920 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
921
922         * c-decl.c (ext_block): Moved up.
923         (collect_all_refs, for_each_global_decl): Take ext_block into account.
924
925 2012-01-06  Han Shen  <shenhan@google.com>
926
927         Translate built-in include paths for sysroot.
928         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
929         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
930
931         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
932         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
933
934         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
935         control whether sysroot should be prepended to gxx include dir.
936
937         * configure: Regenerate.
938
939 2012-01-06  Torvald Riegel  <triegel@redhat.com>
940
941         PR rtl-optimization/51771
942         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
943         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
944
945 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
946
947         PR tree-optimization/51315
948         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
949         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
950
951 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
952
953         PR target/51681
954         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
955         for shrp pattern.  Correctly handle and fixup shift variable.
956         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
957
958 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
959
960         PR debug/51762
961         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
962         note when !ACCUMULATE_OUTGOING_ARGS.
963
964 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
965
966         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
967         condition.
968         (extract_range_from_unary_expr_1): Avoid useless computations.
969
970 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
971
972         PR rtl-optimization/51767
973         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
974         of jump_block and add an extra edge for degenerated asm gotos.
975
976         PR middle-end/51768
977         * stmt.c (check_unique_operand_names): Don't ICE during error
978         reporting if i is from labels chain.
979
980         PR middle-end/44777
981         * profile.c (branch_prob): Split bbs that have exit edge
982         and need a fake entry edge too.
983
984 2012-01-05  Jan Hubicka  <jh@suse.cz>
985
986         PR middle-end/49710
987         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
988         unlooping loops.
989
990 2012-01-05  Richard Guenther  <rguenther@suse.de>
991
992         PR lto/50490
993         * tree-streamer-out.c (write_ts_optimization): New function.
994         (streamer_write_tree_body): Call it.
995         * tree-streamer-in.c (lto_input_ts_optimization): New function.
996         (streamer_read_tree_body): Call it.
997         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
998
999 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
1000
1001         PR middle-end/51761
1002         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
1003         * gimplify.c (gimplify_cleanup_point_expr): Save and set
1004         in_cleanup_point_expr before gimplify_stmt call and restore it
1005         afterwards.
1006         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
1007         in_cleanup_point_expr is false.
1008
1009 2012-01-05  Richard Guenther  <rguenther@suse.de>
1010
1011         PR middle-end/51764
1012         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
1013         to c.opt.
1014         * toplev.c (process_options): Reject combining mudflap and LTO.
1015         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
1016
1017 2012-01-05  Richard Guenther  <rguenther@suse.de>
1018
1019         PR tree-optimization/51760
1020         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
1021         not VARYING.
1022         (bit_value_unop): Handle UNDEFINED operands.
1023         (bit_value_binop): Likewise.
1024
1025 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
1026
1027         * config/avr/avr.c (avr_replace_prefix): Remove.
1028         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
1029         (avr_asm_function_rodata_section): Ditto.
1030         (avr_asm_select_section): Ditto.
1031
1032 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1033
1034         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
1035         insertion.
1036
1037 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
1038
1039         PR bootstrap/51648
1040         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
1041         calls that have any non-fake successor edges.
1042
1043         PR debug/51746
1044         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
1045
1046 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
1047
1048         PR tree-optimization/51624
1049         * tree-sra.c (build_ref_for_model): When replicating a chain of
1050         COMPONENT_REFs, stop as soon as the offset would become negative.
1051
1052 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
1053
1054         PR debug/51695
1055         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
1056         in .debug_loc on the floor.
1057
1058 2012-01-04  Andrew Pinski  <apinski@cavium.com>
1059
1060         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
1061
1062 2012-01-04  Andrew Pinski  <apinski@cavium.com>
1063             Adam Nemet  <anemet@caviumnetworks.com>
1064
1065         * config/mips/mips.md (size): Add SI and DI.
1066         (SIZE): New mode attribute.
1067         (U): New code attribute.
1068         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
1069         (mips_lbux_<mode>): Delete.
1070         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
1071         (mips_lhx): Use gen_mips_lhx_extsi.
1072         (mips_lhx_<mode>): Delete.
1073         (mips_lwx): Delete.
1074         (mips_l<size>x): New expand.
1075         (mips_lwx_<mode>): Delete.
1076         (mips_l<GPR:size>x_<P:mode>): New pattern.
1077         (*mips_lw<u>x_<P:mode>_ext): Likewise.
1078         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
1079         * config/mips/mips.c (mips_lx_address_p): New function.
1080         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
1081         (dsp64): New availability predicate.
1082         (mips_builtins): Add an entry for __builtin_mips_ldx.
1083         * config/mips/mips.h (ISA_HAS_LBX): New define.
1084         (ISA_HAS_LBUX): Likewise.
1085         (ISA_HAS_LHX): Likewise.
1086         (ISA_HAS_LHUX): Likewise.
1087         (ISA_HAS_LWX): Likewise.
1088         (ISA_HAS_LWUX): Likewise.
1089         (ISA_HAS_LDX): Likewise.
1090         * doc/extend.texi (__builtin_mips_ldx): Document.
1091
1092 2012-01-04  Tristan Gingold  <gingold@adacore.com>
1093
1094         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
1095         when long pointers are used.
1096         * config.build (*-*-*vms*): Handle all OpenVMS targets.
1097         (alpha64-dec-*vms*, alpha*-dec-*vms*)
1098         (ia64-hp-*vms*): Remove.
1099         * config/vms/xm-vms64.h: Delete.
1100
1101 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
1102
1103         PR middle-end/51472
1104         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
1105
1106 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
1107
1108         * opts.c (finish_options): Remove duplicate sorry.
1109
1110 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
1111
1112         PR middle-end/51696
1113         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
1114         correctly.
1115
1116 2012-01-04  Richard Guenther  <rguenther@suse.de>
1117
1118         PR middle-end/51750
1119         * tree.c (size_low_cst): New function.
1120         * tree.h (size_low_cst): Declare.
1121         * fold-const.c (fold_comparison): Use it to extract the low
1122         part of the POINTER_PLUS_EXPR offset.
1123
1124 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
1125
1126         Fix clearing ZERO_REG
1127         * config/avr/avr.md (cc): Add alternative "ldi".
1128         (movqi_insn): Use it in cc attribute.
1129         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
1130         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
1131         (output_reload_insisf): Use ZERO_REG to pre-clear register.
1132
1133 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1134
1135         * configure: Regenerate.
1136
1137 2012-01-04  Richard Guenther  <rguenther@suse.de>
1138
1139         PR tree-optimization/49651
1140         * tree-ssa-structalias.c (type_can_have_subvars): New function.
1141         (var_can_have_subvars): Use it.
1142         (get_constraint_for_1): Only consider subfields if there can be any.
1143
1144 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
1145
1146         PR bootstrap/51725
1147         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
1148         to its new canonical_cselib_val and the cselib_val was in
1149         first_containing_mem chain, but the canonical_cselib_val was not,
1150         add the latter into the chain.
1151         (cselib_invalidate_mem): Compare canonical_cselib_val of
1152         addr_list chain elt with v.
1153
1154         PR pch/51722
1155         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
1156         dwarf2out_undef): Allocate e.info using ggc_strdup instead
1157         of xstrdup.
1158         (output_macinfo_op): Don't ggc_strdup fd->filename.
1159         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
1160         then ggc_strdup it.  Don't free inc->info or cur->info.
1161         (output_macinfo): Don't free ref->info or file->info.
1162
1163 2012-01-03  Ira Rosen  <irar@il.ibm.com>
1164
1165         PR tree-optimization/51269
1166         * tree-vect-loop-manip.c (set_prologue_iterations): Make
1167         first_niters a pointer.
1168         (slpeel_tree_peel_loop_to_edge): Likewise.
1169         (vect_do_peeling_for_loop_bound): Update call to
1170         slpeel_tree_peel_loop_to_edge.
1171         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
1172         here.  Remove it from the parameters list.
1173         (vect_do_peeling_for_alignment): Update calls and compute
1174         wide_prolog_niters.
1175
1176 2012-01-03  Richard Guenther  <rguenther@suse.de>
1177
1178         PR tree-optimization/51070
1179         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
1180         Properly handle calls.
1181
1182 2012-01-03  Richard Guenther  <rguenther@suse.de>
1183
1184         PR tree-optimization/51692
1185         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
1186         the LHS of allocation stmts.
1187
1188 2012-01-03  Olivier Hainque  <hainque@adacore.com>
1189
1190         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
1191
1192 2012-01-03  Olivier Hainque  <hainque@adacore.com>
1193
1194         * collect2.c (main): In AIX specific computations for vector
1195         insertions, use CONST_CAST2 to cast from char ** to const char **.
1196
1197 2012-01-03  Richard Guenther  <rguenther@suse.de>
1198
1199         PR debug/51650
1200         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
1201         the context of a limbo DIE when it does not already exist.
1202
1203 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
1204
1205         PR tree-optimization/51719
1206         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
1207         but direct call is, clear direct call's lhs and don't add fallthrough
1208         edge from dcall_bb to join_bb and PHIs.
1209
1210 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1211
1212         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
1213         the instructions emitted by the pattern.
1214         ("*TDC_insn_<mode>"): Add comment.
1215
1216 2012-01-03  Richard Guenther  <rguenther@suse.de>
1217
1218         PR middle-end/51730
1219         * fold-const.c (fold_comparison): Properly canonicalize
1220         tree offset and HOST_WIDE_INT bit position.
1221
1222 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
1223
1224         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
1225         operands for extzv pattern.
1226
1227 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
1228
1229         PR bootstrap/51725
1230         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
1231         on mem_elt first.
1232
1233 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
1234
1235         * doc/invoke.texi (-flto and related options): Copy-edit.
1236
1237 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1238
1239         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
1240
1241 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
1242
1243         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
1244         New patterns.
1245
1246 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1247
1248         * expr.h (move_by_pieces_ninsns): Declare.
1249         * expr.c (move_by_pieces_ninsns): Make external.
1250         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
1251         (mips_store_by_pieces_p): Likewise.
1252         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
1253         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
1254         * config/mips/mips.c (mips_move_by_pieces_p): New function.
1255         (mips_store_by_pieces_p): Likewise.
1256
1257 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
1258
1259         * passes.c (register_one_dump_file): Free full_name.
1260
1261         * reload1.c (reload): Don't allocate reg_max_ref_width here.
1262         (calculate_elim_costs_all_insns): Free offsets_at and
1263         offsets_known_at at the end and clear the pointers.
1264
1265 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
1266
1267         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
1268         this option introduced in r180739.
1269
1270 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
1271
1272         PR target/51345
1273         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
1274         (tmake_file target=avr): Add avr/t-multilib.
1275
1276         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
1277         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
1278         * config/avr/genmultilib.awk: New file.
1279         * config/avr/t-multilib: New auto-generated file.
1280         * config/avr/multilib.h: New auto-generated file.
1281         * config/avr/t-avr (AVR_MCUS): New variable.
1282         (genopt.sh): Use it.
1283         (s-mlib): Depend on t-multilib.
1284         (t-multilib, multilib.h): New dependencies.
1285         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
1286         (MULTILIB_OPTIONS): Remove.
1287         (MULTILIB_MATCHES): Remove.
1288         (MULTILIB_DIRNAMES): Remove.
1289         (MULTILIB_EXCEPTIONS): Remove:
1290         * config/avr/genopt.sh: Don't use hard coded file name;
1291         pass AVR_MCUS from t-avr instead.
1292
1293 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
1294
1295         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
1296
1297 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
1298
1299         Implement light-weight DImode support.
1300         * config/avr/avr-dimode.md: New file.
1301         * config/avr/avr.md: Include it.
1302         (adjust_len): Add plus64, compare64.
1303         (HIDI): Remove code iterator.
1304         (code_stdname): New code attribute.
1305         (rotx, rotsmode): Remove DI.
1306         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
1307         as code iterator.
1308         * config/avr/avr-protos.h (avr_have_dimode): New.
1309         (avr_out_plus64, avr_out_compare64): New.
1310         * config/avr/avr.c (avr_out_compare): Handle DImode.
1311         (avr_have_dimode): New variable definition and initialization.
1312         (avr_out_compare64, avr_out_plus64): New functions.
1313         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
1314         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
1315         (avr_compare_pattern): Skip DImode comparisons.
1316
1317 2012-01-02  Revital Eres  <revital.eres@linaro.org>
1318
1319         * ddg.c (def_has_ccmode_p): New function.
1320         (add_cross_iteration_register_deps,
1321         create_ddg_dep_from_intra_loop_link): Call it.
1322
1323 2012-01-02  Richard Guenther  <rguenther@suse.de>
1324
1325         PR other/51679
1326         * invoke.texi (fassociative-math): Remove spurious paranthesis.
1327
1328 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
1329
1330         * gcc.c (process_command): Update copyright notice dates.
1331         * gcov.c (print_version): Likewise.
1332         * gcov-dump.c (print_version): Likewise.
1333         * mips-tfile.c (main): Likewise.
1334         * mips-tdump.c (main): Likewise.
1335
1336 2012-01-01  Ira Rosen  <irar@il.ibm.com>
1337
1338         PR tree-optimization/51704
1339         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
1340         a use is inside the basic block or loop before accessing its vect info.
1341
1342 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
1343
1344         PR rtl-optimization/51069
1345         * cfgloopmanip.c (remove_path): Removing path making irreducible
1346         region unconditional makes BB part of the region.
1347
1348 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
1349
1350         PR tree-optimization/51683
1351         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
1352         calls with side-effects.
1353         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1354 \f
1355 Copyright (C) 2012 Free Software Foundation, Inc.
1356
1357 Copying and distribution of this file, with or without modification,
1358 are permitted in any medium without royalty provided the copyright
1359 notice and this notice are preserved.