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