2013-02-20 Richard Biener <rguenther@suse.de>
* tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
* tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
not return anything.
(rename_ssa_copies): Do not remove unused locals.
* tree-ssa-ccp.c (do_ssa_ccp): Likewise.
* tree-ssanames.c (pass_release_ssa_names): Remove unused
locals first.
* passes.c (execute_function_todo): Do not schedule unused locals
removal if cleanup_tree_cfg did something.
* tree-ssa-live.c (remove_unused_locals): Dump statistics
about the number of removed locals.
* gcc.dg/tree-ssa/forwprop-8.c: Adjust.
From-SVN: r196174
2013-02-20 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/55334
* ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
restricted pointers to arrays.
From-SVN: r196171
2013-02-20 Richard Biener <rguenther@suse.de>
Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/56396
* tree-ssa-ccp.c (n_const_val): New static variable.
(get_value): Return NULL for SSA names we don't have a lattice
entry for.
(ccp_initialize): Initialize n_const_val.
* tree-ssa-copy.c (n_copy_of): New static variable.
(init_copy_prop): Initialize n_copy_of.
(get_value): Return NULL_TREE for SSA names we don't have a
lattice entry for.
* gcc.dg/pr56396.c: New testcase.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r196170
2013-02-20 Richard Biener <rguenther@suse.de>
* genpreds.c (write_lookup_constraint): Do not compare first
letter of the constraint again.
From-SVN: r196167
2013-02-20 Richard Biener <rguenther@suse.de>
* tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
and ceil_log2.
(get_use_iv_cost): Terminate hashtable walk when coming across
an empty entry.
From-SVN: r196166
Add support for the CLZ insn
* config/microblaze/microblaze.c: microblaze_has_clz = 0
Add version check for v8.10.a to enable microblaze_has_clz
* config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as
combined version and TARGET_PATTERN_COMPARE check
* config/microblaze/microblaze.md: New clzsi2 instruction
From-SVN: r196158
2012-02-19 Andrey Belevantsev <abel@ispras.ru>
PR middle-end/55889
* sel-sched.c: Include ira.h.
(implicit_clobber_conflict_p): New function.
(moveup_expr): Use it.
* Makefile.in (sel-sched.o): Depend on ira.h.
From-SVN: r196137
PR tree-optimization/56350
* tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
if haven't found reduction or nested cycle operand, rather than
asserting we must find it.
* gcc.dg/pr56350.c: New test.
From-SVN: r196134
PR tree-optimization/56381
* tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
to fold_build3.
* g++.dg/opt/pr56381.C: New test.
From-SVN: r196133
PR pch/54117
* c-opts.c (c_common_post_options): If debug info is enabled
and non-dwarf*, refuse to load PCH files and when writing PCH
file warn.
* lib/dg-pch.exp (pch-init, pch-finish,
check_effective_target_pch_supported_debug): New procs.
(dg-flags-pch): If $pch_unsupported, make tests UNSUPPORTED.
Likewise if $pch_unsupported_debug and $flags include -g.
Skip FAILs about missing *.gch file if $pch_unsupported_debug
and dg-require-effective-target pch_unsupported_debug.
* g++.dg/pch/pch.exp: Call pch-init and pch-finish.
* objc.dg/pch/pch.exp: Likewise.
* gcc.dg/pch/pch.exp: Likewise.
* gcc.dg/pch/valid-1.c: Add dg-require-effective-target
pch_unsupported_debug.
* gcc.dg/pch/valid-1.hs: Likewise.
* gcc.dg/pch/valid-1b.c: Likewise.
* gcc.dg/pch/valid-1b.hs: Likewise.
Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>
From-SVN: r196124
PR target/56214
* config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
and HImode, require all displacements to be an integer multiple of the
mode size.
* config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
only allow QImode and HImode when reload is in progress and strict is
true. Likewise for symbolic addresses. Use base14_operand to check
displacements in REG+BASE addresses.
From-SVN: r196122
2013-02-18 Richard Biener <rguenther@suse.de>
PR middle-end/56350
* cfghooks.c (merge_blocks): If we merge a latch into another
block adjust references to it.
* cfgloop.c (flow_loops_find): Reset latch before recomputing it.
(verify_loop_structure): Verify that a recorded latch is in fact
a latch.
* gcc.dg/torture/pr56350.c: New testcase.
From-SVN: r196118
2013-02-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/56321
* tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
order SSA name release and virtual operand unlinking.
* gcc.dg/torture/pr56321.c: New testcase.
From-SVN: r196117
* config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
* config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
* config/microblaze/microblaze.c (microblaze_option_override):
Bail out early for PIC modes when target does not support PIC.
* gcc.dg/20020312-2.c: Define MicroBlaze PIC register
From-SVN: r196104
* config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
Replace with a microblaze version.
(microblaze_trampoline_init): Adapt for microblaze.
* gcc/config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
microblaze.
From-SVN: r196103
gcc/
* asan.c (get_mem_refs_of_builtin_call): White space and style
cleanup.
(instrument_mem_region_access): Do not forget to always put
instrumentation of the of 'base' and 'base + len' in a "if (len !=
0) statement, even for cases where either 'base' or 'base + len'
are not instrumented -- because they have been previously
instrumented. Simplify the logic by putting all the statements
instrument 'base + len' inside a sequence, and then insert that
sequence right before the current insertion point. Then, to
instrument 'base + len', just get an iterator on that statement.
And do not forget to update the pointer to iterator the function
received as argument.
gcc/testsuite/
* c-c++-common/asan/no-redundant-instrumentation-4.c: New test file.
* c-c++-common/asan/no-redundant-instrumentation-5.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-6.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-7.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-8.c: Likewise.
* c-c++-common/asan/pr56330.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-1.c (test1):
Ensure the size argument of __builtin_memcpy is a constant.
Co-Authored-By: Dodji Seketeli <dodji@redhat.com>
From-SVN: r196102
The mmap() call which reserves the arena should have MAP_NORESERVE
flag as in typical cases this memory will never be (fully) needed.
This matters in environments which do not do Linux style memory
overcommit, such as OpenIndiana/OpenSolaris/Solaris.
The MAP_NORESERVE flag does not exist on all operating systems
(for example FreeBSD). Therefore we define it to zero value in
case it does not exist.
Fixes issue 21.
From-SVN: r196088
PR target/55431
* config/rs6000/linux-unwind.h (ppc_linux_aux_vector): Delete.
(ppc_fallback_frame_state): Always set up save locations for fp
and altivec. Don't bother with non-callee-saved regs, r0-r13
except for r2 on ppc64, fr0-fr13, v0-v19, vscr.
From-SVN: r196077
2012-02-15 Greta Yorsh <Greta.Yorsh@arm.com>
* gcc.target/arm/interrupt-1.c: Fix for thumb mode.
* gcc.target/arm/interrupt-2.c: Likewise.
From-SVN: r196076