mips.c (mips16_build_call_stub): Don't use a stub for calls to locally-binding MIPS16...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
4         for calls to locally-binding MIPS16 functions if only the return
5         type uses float regs.
6
7 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
8             Richard Sandiford  <rdsandiford@googlemail.com>
9
10         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
11         (SYMBOL_32_HIGH): Likewise.
12         (mips_output_tls_reloc_directive): Declare.
13         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
14         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
15         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
16         (mips_lo_relocs, mips_hi_relocs): Make extern.
17         (mips16_stub_function): Move up file.
18         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
19         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
20         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
21         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead
22         of SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1
23         if it's false.
24         (mips_get_tp): Add MIPS16 support.
25         (mips_legitimize_tls_address): Remove MIPS16 sorry().
26         Generalize DTPREL and TPREL handling.
27         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
28         Add MIPS16 TLS support.
29         (mips_output_tls_reloc_directive): New function.
30         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
31         * config/mips/predicates.md (symbolic_operand_with_high)
32         (tls_reloc_operand): New predicates.
33         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
34         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
35         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
36         (*unshifted_high): New instruction.  Use it for MIPS16
37         high splitter.
38         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
39         (*tls_get_tp_mips16_call_<mode>): Likewise.
40
41 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
42
43         PR rtl-optimization/51821
44         * recog.c (peep2_find_free_register): Determine clobbered registers
45         from insn pattern.
46
47 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
48
49         PR target/50925
50         * config/avr/avr-protos.h: Revert change of 2012-01-09.
51         * config/avr/avr.c: Likewise.
52         * config/avr/avr.h: Likewise.
53
54 2012-01-13  Ian Lance Taylor  <iant@google.com>
55
56         PR c++/50012
57         * tree.h (TYPE_QUALS): Add cast to int.
58         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
59
60 2012-01-13  Ian Lance Taylor  <iant@google.com>
61
62         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
63         comparing param_index to VEC_length result.
64
65 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
66
67         * c-decl.c: Do not include tree-mudflap.h
68         * tree-optimize.c: Likewise.
69         * Makefile.in: Update dependencies.
70
71 2012-01-13  Richard Guenther  <rguenther@suse.de>
72
73         PR middle-end/8081
74         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
75         variable-sized result always use RSO.
76
77 2012-01-12  DJ Delorie  <dj@redhat.com>
78
79         * cfgexpand.c (convert_debug_memory_address): Allow any valid
80         pointer type, not just the default pointer type.
81
82 2012-01-09  Richard Henderson  <rth@redhat.com>
83             Denis Chertykov  <chertykov@gmail.com>
84
85         PR target/50925
86         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
87         * config/avr/avr.c (avr_can_eliminate): Simplify.
88         (avr_initial_elimination_offset): Likewise.
89         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
90         (expand_epilogue): Likewise.
91         (avr_legitimize_address): Gut.
92         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
93         (avr_hard_regno_nregs): New.
94         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
95         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
96         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
97         add soft frame pointer.
98         (CALL_USED_REGISTERS): Likewise.
99         (REG_CLASS_CONTENTS): Likewise.
100         (REGISTER_NAMES): Likewise.
101         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
102         (HARD_FRAME_POINTER_REGNUM): New.
103         (FRAME_POINTER_REGNUM): Use soft frame pointer.
104         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
105         remove the HARD_FRAME_POINTER self-elimination.
106
107 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
108
109         PR target/51756
110         * config/avr/avr.c (avr_encode_section_info): Test for absence of
111         DECL_EXTERNAL when checking for initializers of progmem variables.
112
113 2012-01-12  Ira Rosen  <irar@il.ibm.com>
114
115         PR tree-optimization/51799
116         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
117         that the last operation is a type demotion.
118
119 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
120
121         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
122         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
123
124 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
125
126         PR bootstrap/51796
127         * combine.c (distribute_notes): If i3 is a noreturn call,
128         allow old_size to be equal to args_size and make sure the
129         noreturn call gets REG_ARGS_SIZE note.
130         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
131         on noreturn calls even when the delta is 0.
132
133 2012-01-11  Nathan Sidwell  <nathan@acm.org>
134
135         * gcov.c (STRING_SIZE): Remove.
136         (generate_results): Erase annotations for source files with no
137         coverage information.
138         (read_line): New.
139         (output_lines): Use it.
140
141 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
142
143         * gimple.h (gimplify_body): Remove first argument.
144         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
145         pointer set here, instead just pass DATA to walk_tree.
146         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
147         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
148         (unvisit_body): Likewise, but with unmark_visited.
149         (gimplify_body): Remove BODY_P argument and adjust.
150         (gimplify_function_tree): Adjust call to gimplify_body.
151         * omp-low.c (finalize_task_copyfn): Likewise.
152
153 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
154
155         * tree.h (build_function_decl_skip_args): Add boolean parameter.
156         (build_function_type_skip_args): Delete.
157         * tree.c (build_function_type_skip_args): Make static and add
158         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
159         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
160         pass it to build_function_type_skip_args.
161         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
162         (tree_function_versioning): Likewise.
163         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
164         build_function_decl_skip_args.
165         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
166         and pass it to build_function_decl_skip_args/tree_function_versioning.
167         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
168         * ipa-inline-transform.c (save_inline_function_body): Likewise.
169         * trans-mem.c (ipa_tm_create_version): Likewise.
170         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
171         * tree-inline.c (declare_return_variable): Remove always-true test.
172         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
173         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
174         * ipa-split.c (split_function): Skip the return value for the split
175         part if it doesn't return.
176
177 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
178
179         PR tree-optimization/49642
180         * ipa-split.c (forbidden_dominators): New variable.
181         (check_forbidden_calls): New function.
182         (dominated_by_forbidden): Likewise.
183         (consider_split): Check for forbidden dominators.
184         (execute_split_functions): Initialize and free forbidden
185         dominators info; call check_forbidden_calls.
186
187 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
188
189         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
190
191 2012-01-11  Nick Clifton  <nickc@redhat.com>
192
193         * config/rx/rx.md (return): Define pattern.
194
195 2012-01-11  Richard Guenther  <rguenther@suse.de>
196
197         * doc/extend.texi (malloc attribute): Adjust according to
198         implementation.
199
200 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
201             Patrick Marlier  <patrick.marlier@gmail.com>
202
203         PR middle-end/51516
204         * trans-mem.c (get_cg_data): Traverse aliases if requested.
205         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
206         (ipa_tm_note_irrevocable): Same.
207         (ipa_tm_scan_irr_block): Same.
208         (ipa_tm_decrement_clone_counts): Same.
209         (ipa_tm_scan_irr_function): Same.
210         (ipa_tm_create_version_alias): Same.
211         (ipa_tm_create_version): Same.
212         (ipa_tm_transform_calls_redirect): Same.
213         (ipa_tm_transform_calls): Same.
214         (ipa_tm_transform_transaction): Same.
215         (ipa_tm_execute): Same.
216
217 2012-01-10  Richard Guenther  <rguenther@suse.de>
218
219         PR middle-end/51806
220         * opts.c (common_handle_option): Handle -Werror.
221
222 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
223
224         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
225         operand number.
226
227 2012-01-10  Jason Merrill  <jason@redhat.com>
228
229         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
230         information.
231
232 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
233
234         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
235         supports R_386_TLS_GD_PLT reloc.
236         (gcc_cv_as_ix86_tlsldmplt): Check if linker
237         supports R_386_TLS_LDM_PLT reloc.
238         * configure: Regenerate.
239         * config.in: Regenerate.
240
241 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
242
243         PR target/49868
244         Extend __pgmx semantics to linearize memory.
245         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
246         determine if code comes inline or from libgcc.
247         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
248         (movmem_qi, movmem_qi): Set constraint #2 to "n".
249         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
250         (movmemx_qi, movmemx_hi): New insns.
251         (xload_<mode>_libgcc): Rewrite to new insn condition.
252         (xload_<mode>): Remove insns.
253         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
254         cases that don't satisfy avr_xload_libgcc_p().
255         (avr_addr_space_convert): Allow converting in any direction.
256         (avr_addr_space_subset_p): Return always true.
257         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
258         (avr_emit_movmemhi): Ditto.
259         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
260         (avr_out_movmem): Ditto.
261         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
262         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
263         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
264         (avr_encode_section_info): Encode 'progmem' in symbol flags.
265         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
266
267 2012-01-10  Richard Guenther  <rguenther@suse.de>
268
269         PR tree-optimization/50913
270         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
271         Require data-refs to be representable by Graphite with respect
272         to any loop nest.
273
274 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
275
276         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
277         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
278
279 2012-01-10  Tom de Vries  <tom@codesourcery.com>
280
281         PR rtl-optimization/51271
282         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
283         handling annulled branch.
284
285 2012-01-10  Richard Henderson  <rth@redhat.com>
286
287         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
288         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
289         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
290         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
291         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
292         arm_expand_vec_perm_const): New.
293         * config/arm/arm-protos.h: Update.
294         * config/arm/neon.md (UNSPEC_VCONCAT): New.
295         (*neon_vswp<VDQX>): New.
296         (neon_vcombine<VDX>): Use neon_split_vcombine.
297         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
298         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
299         (vec_perm<VE>): New.
300
301 2012-01-10  Richard Henderson  <rth@redhat.com>
302
303         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
304         use it if reload_completed.
305         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
306         arm_output_asm_insn, arm_process_output_memory_barrier,
307         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
308         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
309         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
310         arm_process_output_sync_insn, arm_output_sync_insn,
311         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
312         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
313         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
314         (emit_unlikely_jump): New.
315         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
316         (arm_split_atomic_op): New.
317         * config/arm/arm-protos.h: Update.
318         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
319         (struct arm_sync_generator): Remove.
320         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
321         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
322         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
323         (VUNSPEC_LL, VUNSPEC_SC): New.
324         (sync_result, sync_memory, sync_required_value, sync_new_value,
325         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
326         (attr length): Don't use arm_sync_loop_insns.
327         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
328         (movsfcc, movdfcc): Likewise.
329         * config/arm/constraints.md (Ua): New.
330         * config/arm/prediates.md (mem_noofs_operand): New.
331         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
332         (sync_clobber, sync_t2_reqd): Remove.
333         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
334         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
335         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
336         (arm_sync_compare_and_swap<SIDI>): Remove.
337         (arm_sync_compare_and_swap<NARROW>): Remove.
338         (arm_sync_lock_test_and_set<SIDI>): Remove.
339         (arm_sync_lock_test_and_set<NARROW>): Remove.
340         (arm_sync_new_<syncop><SIDI>): Remove.
341         (arm_sync_new_<syncop><NARROW>): Remove.
342         (arm_sync_new_nand<SIDI>): Remove.
343         (arm_sync_new_nand<NARROW>): Remove.
344         (arm_sync_old_<syncop><SIDI>): Remove.
345         (arm_sync_old_<syncop><NARROW>): Remove.
346         (arm_sync_old_nand<SIDI>): Remove.
347         (arm_sync_old_nand<NARROW>): Remove.
348         (*memory_barrier): Merge arm_output_memory_barrier.
349         (atomic_compare_and_swap<QHSD>): New.
350         (atomic_compare_and_swap<NARROW>_1): New.
351         (atomic_compare_and_swap<SIDI>_1): New.
352         (atomic_exchange<QHSD>): New.
353         (cas_cmp_operand, cas_cmp_str): New.
354         (atomic_op_operand, atomic_op_str): New.
355         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
356         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
357         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
358         (arm_load_exclusive<NARROW>): New.
359         (arm_load_exclusivesi, arm_load_exclusivedi): New.
360         (arm_store_exclusive<QHSD>): New.
361
362 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
363
364         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
365         reload patterns if -mvsx-scalar-memory.
366
367         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
368         generated, even -mno-vsx-scalar-double was used.
369         (vsx_xscvdpsp_scalar): Likewise.
370         (vsx_xscvspdp_scalar2): Likewise.
371
372 2012-01-09  Tom de Vries  <tom@codesourcery.com>
373             Andrew Pinski  <apinski@cavium.com>
374
375         PR debug/51471
376         * reorg.c (fill_slots_from_thread): Don't speculate
377         frame-related insns.
378
379 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
380
381         * sched-int.h (bb_note): Move to...
382         * basic-block.h: ...here.
383         * haifa-sched.c (bb_note): Move to...
384         * cfgrtl.c: ...here.
385         * function.c (next_block_for_reg): New function.
386         (move_insn_for_shrink_wrap): Likewise.
387         (prepare_shrink_wrap): Rewrite to use the above.
388
389 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
390
391         * gimple.c (is_gimple_non_addressable): Remove.
392         * gimple.h: Remove is_gimple_non_addressable.
393         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
394         is_gimple_non_addressable.
395         * trans-mem.c (expand_assign_tm): Same.
396
397 2012-01-09  Richard Guenther  <rguenther@suse.de>
398
399         PR tree-optimization/51775
400         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
401         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
402
403 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
404
405         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
406         tuning parameters.
407         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
408
409 2012-01-09  Richard Guenther  <rguenther@suse.de>
410
411         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
412
413 2012-01-08  Jan Hubicka  <jh@suse.cz>
414
415         PR tree-optimize/51680
416         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
417         on when known_vals needs to be computed; cleanup.
418
419 2012-01-08  Jan Hubicka  <jh@suse.cz>
420
421         PR tree-optimize/51694
422         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
423
424 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
425
426         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
427         for -std=c++98 and -std=c++11 too.
428
429 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
430
431         * cfgloop.c (cancel_loop): Add free() of bbs array.
432
433 2012-01-07  Jan Hubicka  <jh@suse.cz>
434
435         PR tree-optimization/51600
436         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
437         that benefits small functions.
438
439 2012-01-07  Jan Hubicka  <jh@suse.cz>
440
441         * ipa-inline.c (want_inline_small_function_p): Fix formating.
442
443 2012-01-07  Jan Hubicka  <jh@suse.cz>
444
445         PR tree-optimization/51680
446         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
447         whose inlining reduce unit size.
448
449 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
450
451         PR bootstrap/51725
452         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
453         Add canonical node to containing_mem chain after the non-canonical
454         one, even if there weren't any locs to propagate.
455         (remove_useless_values): Keep only canonical values.
456         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
457         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
458         canonicalize mem_chain elements that are not discarded.
459
460 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
461
462         PR target/47333
463         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
464         before emitting functions.
465
466         PR gcov-profile/50127
467         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
468         clear_aux_for_blocks.
469
470 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
471
472         PR debug/51746
473         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
474
475 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
476
477         * c-decl.c (ext_block): Moved up.
478         (collect_all_refs, for_each_global_decl): Take ext_block into account.
479
480 2012-01-06  Han Shen  <shenhan@google.com>
481
482         Translate built-in include paths for sysroot.
483         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
484         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
485
486         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
487         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
488
489         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
490         control whether sysroot should be prepended to gxx include dir.
491
492         * configure: Regenerate.
493
494 2012-01-06  Torvald Riegel  <triegel@redhat.com>
495
496         PR rtl-optimization/51771
497         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
498         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
499
500 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
501
502         PR tree-optimization/51315
503         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
504         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
505
506 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
507
508         PR target/51681
509         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
510         for shrp pattern.  Correctly handle and fixup shift variable.
511         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
512
513 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
514
515         PR debug/51762
516         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
517         note when !ACCUMULATE_OUTGOING_ARGS.
518
519 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
520
521         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
522         condition.
523         (extract_range_from_unary_expr_1): Avoid useless computations.
524
525 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
526
527         PR rtl-optimization/51767
528         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
529         of jump_block and add an extra edge for degenerated asm gotos.
530
531         PR middle-end/51768
532         * stmt.c (check_unique_operand_names): Don't ICE during error
533         reporting if i is from labels chain.
534
535         PR middle-end/44777
536         * profile.c (branch_prob): Split bbs that have exit edge
537         and need a fake entry edge too.
538
539 2012-01-05  Jan Hubicka  <jh@suse.cz>
540
541         PR middle-end/49710
542         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
543         unlooping loops.
544
545 2012-01-05  Richard Guenther  <rguenther@suse.de>
546
547         PR lto/50490
548         * tree-streamer-out.c (write_ts_optimization): New function.
549         (streamer_write_tree_body): Call it.
550         * tree-streamer-in.c (lto_input_ts_optimization): New function.
551         (streamer_read_tree_body): Call it.
552         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
553
554 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
555
556         PR middle-end/51761
557         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
558         * gimplify.c (gimplify_cleanup_point_expr): Save and set
559         in_cleanup_point_expr before gimplify_stmt call and restore it
560         afterwards.
561         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
562         in_cleanup_point_expr is false.
563
564 2012-01-05  Richard Guenther  <rguenther@suse.de>
565
566         PR middle-end/51764
567         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
568         to c.opt.
569         * toplev.c (process_options): Reject combining mudflap and LTO.
570         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
571
572 2012-01-05  Richard Guenther  <rguenther@suse.de>
573
574         PR tree-optimization/51760
575         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
576         not VARYING.
577         (bit_value_unop): Handle UNDEFINED operands.
578         (bit_value_binop): Likewise.
579
580 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
581
582         * config/avr/avr.c (avr_replace_prefix): Remove.
583         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
584         (avr_asm_function_rodata_section): Ditto.
585         (avr_asm_select_section): Ditto.
586
587 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
588
589         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
590         insertion.
591
592 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
593
594         PR bootstrap/51648
595         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
596         calls that have any non-fake successor edges.
597
598         PR debug/51746
599         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
600
601 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
602
603         PR tree-optimization/51624
604         * tree-sra.c (build_ref_for_model): When replicating a chain of
605         COMPONENT_REFs, stop as soon as the offset would become negative.
606
607 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
608
609         PR debug/51695
610         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
611         in .debug_loc on the floor.
612
613 2012-01-04  Andrew Pinski  <apinski@cavium.com>
614
615         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
616
617 2012-01-04  Andrew Pinski  <apinski@cavium.com>
618             Adam Nemet  <anemet@caviumnetworks.com>
619
620         * config/mips/mips.md (size): Add SI and DI.
621         (SIZE): New mode attribute.
622         (U): New code attribute.
623         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
624         (mips_lbux_<mode>): Delete.
625         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
626         (mips_lhx): Use gen_mips_lhx_extsi.
627         (mips_lhx_<mode>): Delete.
628         (mips_lwx): Delete.
629         (mips_l<size>x): New expand.
630         (mips_lwx_<mode>): Delete.
631         (mips_l<GPR:size>x_<P:mode>): New pattern.
632         (*mips_lw<u>x_<P:mode>_ext): Likewise.
633         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
634         * config/mips/mips.c (mips_lx_address_p): New function.
635         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
636         (dsp64): New availability predicate.
637         (mips_builtins): Add an entry for __builtin_mips_ldx.
638         * config/mips/mips.h (ISA_HAS_LBX): New define.
639         (ISA_HAS_LBUX): Likewise.
640         (ISA_HAS_LHX): Likewise.
641         (ISA_HAS_LHUX): Likewise.
642         (ISA_HAS_LWX): Likewise.
643         (ISA_HAS_LWUX): Likewise.
644         (ISA_HAS_LDX): Likewise.
645         * doc/extend.texi (__builtin_mips_ldx): Document.
646
647 2012-01-04  Tristan Gingold  <gingold@adacore.com>
648
649         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
650         when long pointers are used.
651         * config.build (*-*-*vms*): Handle all OpenVMS targets.
652         (alpha64-dec-*vms*, alpha*-dec-*vms*)
653         (ia64-hp-*vms*): Remove.
654         * config/vms/xm-vms64.h: Delete.
655
656 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
657
658         PR middle-end/51472
659         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
660
661 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
662
663         * opts.c (finish_options): Remove duplicate sorry.
664
665 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
666
667         PR middle-end/51696
668         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
669         correctly.
670
671 2012-01-04  Richard Guenther  <rguenther@suse.de>
672
673         PR middle-end/51750
674         * tree.c (size_low_cst): New function.
675         * tree.h (size_low_cst): Declare.
676         * fold-const.c (fold_comparison): Use it to extract the low
677         part of the POINTER_PLUS_EXPR offset.
678
679 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
680
681         Fix clearing ZERO_REG
682         * config/avr/avr.md (cc): Add alternative "ldi".
683         (movqi_insn): Use it in cc attribute.
684         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
685         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
686         (output_reload_insisf): Use ZERO_REG to pre-clear register.
687
688 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
689
690         * configure: Regenerate.
691
692 2012-01-04  Richard Guenther  <rguenther@suse.de>
693
694         PR tree-optimization/49651
695         * tree-ssa-structalias.c (type_can_have_subvars): New function.
696         (var_can_have_subvars): Use it.
697         (get_constraint_for_1): Only consider subfields if there can be any.
698
699 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
700
701         PR bootstrap/51725
702         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
703         to its new canonical_cselib_val and the cselib_val was in
704         first_containing_mem chain, but the canonical_cselib_val was not,
705         add the latter into the chain.
706         (cselib_invalidate_mem): Compare canonical_cselib_val of
707         addr_list chain elt with v.
708
709         PR pch/51722
710         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
711         dwarf2out_undef): Allocate e.info using ggc_strdup instead
712         of xstrdup.
713         (output_macinfo_op): Don't ggc_strdup fd->filename.
714         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
715         then ggc_strdup it.  Don't free inc->info or cur->info.
716         (output_macinfo): Don't free ref->info or file->info.
717
718 2012-01-03  Ira Rosen  <irar@il.ibm.com>
719
720         PR tree-optimization/51269
721         * tree-vect-loop-manip.c (set_prologue_iterations): Make
722         first_niters a pointer.
723         (slpeel_tree_peel_loop_to_edge): Likewise.
724         (vect_do_peeling_for_loop_bound): Update call to
725         slpeel_tree_peel_loop_to_edge.
726         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
727         here.  Remove it from the parameters list.
728         (vect_do_peeling_for_alignment): Update calls and compute
729         wide_prolog_niters.
730
731 2012-01-03  Richard Guenther  <rguenther@suse.de>
732
733         PR tree-optimization/51070
734         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
735         Properly handle calls.
736
737 2012-01-03  Richard Guenther  <rguenther@suse.de>
738
739         PR tree-optimization/51692
740         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
741         the LHS of allocation stmts.
742
743 2012-01-03  Olivier Hainque  <hainque@adacore.com>
744
745         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
746
747 2012-01-03  Olivier Hainque  <hainque@adacore.com>
748
749         * collect2.c (main): In AIX specific computations for vector
750         insertions, use CONST_CAST2 to cast from char ** to const char **.
751
752 2012-01-03  Richard Guenther  <rguenther@suse.de>
753
754         PR debug/51650
755         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
756         the context of a limbo DIE when it does not already exist.
757
758 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
759
760         PR tree-optimization/51719
761         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
762         but direct call is, clear direct call's lhs and don't add fallthrough
763         edge from dcall_bb to join_bb and PHIs.
764
765 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
766
767         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
768         the instructions emitted by the pattern.
769         ("*TDC_insn_<mode>"): Add comment.
770
771 2012-01-03  Richard Guenther  <rguenther@suse.de>
772
773         PR middle-end/51730
774         * fold-const.c (fold_comparison): Properly canonicalize
775         tree offset and HOST_WIDE_INT bit position.
776
777 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
778
779         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
780         operands for extzv pattern.
781
782 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
783
784         PR bootstrap/51725
785         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
786         on mem_elt first.
787
788 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
789
790         * doc/invoke.texi (-flto and related options): Copy-edit.
791
792 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
793
794         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
795
796 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
797
798         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
799         New patterns.
800
801 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
802
803         * expr.h (move_by_pieces_ninsns): Declare.
804         * expr.c (move_by_pieces_ninsns): Make external.
805         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
806         (mips_store_by_pieces_p): Likewise.
807         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
808         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
809         * config/mips/mips.c (mips_move_by_pieces_p): New function.
810         (mips_store_by_pieces_p): Likewise.
811
812 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
813
814         * passes.c (register_one_dump_file): Free full_name.
815
816         * reload1.c (reload): Don't allocate reg_max_ref_width here.
817         (calculate_elim_costs_all_insns): Free offsets_at and
818         offsets_known_at at the end and clear the pointers.
819
820 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
821
822         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
823         this option introduced in r180739.
824
825 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
826
827         PR target/51345
828         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
829         (tmake_file target=avr): Add avr/t-multilib.
830
831         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
832         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
833         * config/avr/genmultilib.awk: New file.
834         * config/avr/t-multilib: New auto-generated file.
835         * config/avr/multilib.h: New auto-generated file.
836         * config/avr/t-avr (AVR_MCUS): New variable.
837         (genopt.sh): Use it.
838         (s-mlib): Depend on t-multilib.
839         (t-multilib, multilib.h): New dependencies.
840         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
841         (MULTILIB_OPTIONS): Remove.
842         (MULTILIB_MATCHES): Remove.
843         (MULTILIB_DIRNAMES): Remove.
844         (MULTILIB_EXCEPTIONS): Remove:
845         * config/avr/genopt.sh: Don't use hard coded file name;
846         pass AVR_MCUS from t-avr instead.
847
848 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
849
850         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
851
852 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
853
854         Implement light-weight DImode support.
855         * config/avr/avr-dimode.md: New file.
856         * config/avr/avr.md: Include it.
857         (adjust_len): Add plus64, compare64.
858         (HIDI): Remove code iterator.
859         (code_stdname): New code attribute.
860         (rotx, rotsmode): Remove DI.
861         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
862         as code iterator.
863         * config/avr/avr-protos.h (avr_have_dimode): New.
864         (avr_out_plus64, avr_out_compare64): New.
865         * config/avr/avr.c (avr_out_compare): Handle DImode.
866         (avr_have_dimode): New variable definition and initialization.
867         (avr_out_compare64, avr_out_plus64): New functions.
868         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
869         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
870         (avr_compare_pattern): Skip DImode comparisons.
871
872 2012-01-02  Revital Eres  <revital.eres@linaro.org>
873
874         * ddg.c (def_has_ccmode_p): New function.
875         (add_cross_iteration_register_deps,
876         create_ddg_dep_from_intra_loop_link): Call it.
877
878 2012-01-02  Richard Guenther  <rguenther@suse.de>
879
880         PR other/51679
881         * invoke.texi (fassociative-math): Remove spurious paranthesis.
882
883 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
884
885         * gcc.c (process_command): Update copyright notice dates.
886         * gcov.c (print_version): Likewise.
887         * gcov-dump.c (print_version): Likewise.
888         * mips-tfile.c (main): Likewise.
889         * mips-tdump.c (main): Likewise.
890
891 2012-01-01  Ira Rosen  <irar@il.ibm.com>
892
893         PR tree-optimization/51704
894         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
895         a use is inside the basic block or loop before accessing its vect info.
896
897 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
898
899         PR rtl-optimization/51069
900         * cfgloopmanip.c (remove_path): Removing path making irreducible
901         region unconditional makes BB part of the region.
902
903 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
904
905         PR tree-optimization/51683
906         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
907         calls with side-effects.
908         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
909 \f
910 Copyright (C) 2012 Free Software Foundation, Inc.
911
912 Copying and distribution of this file, with or without modification,
913 are permitted in any medium without royalty provided the copyright
914 notice and this notice are preserved.