lra-constraints.c (process_alt_operand): Calculate scratch_p and use it.
2013-10-02 Vladimir Makarov <vmakarov@redhat.com>
* lra-constraints.c (process_alt_operand): Calculate scratch_p and
use it. Use smaller increase for scratch. Don't increase reject
for early clobber scratch.
* lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
setting eliminated regs except setting fp from hfp.
(lra_eliminate): Check lra_insn_recog_data on NULL.
re PR target/58587 (Bootstrap error with ada with -mcpu=power7)
2013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/58587
* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
setting -mvsx-timode by default until the underlying problem is
fixed.
(RS6000_CPU, power7 defaults): Likewise.
Chris Manghane [Wed, 2 Oct 2013 19:22:07 +0000 (19:22 +0000)]
compiler: Use backend interface for numeric expressions.
* go-gcc.cc: Include "real.h" and "realmpfr.h".
(Backend::integer_constant_expression): New function.
(Backend::float_constant_expression): New function.
(Backend::complex_constant_expression): New function.
Teresa Johnson [Wed, 2 Oct 2013 19:18:17 +0000 (19:18 +0000)]
This patch fixes an issue where expansion of an ORIF expression arbitrarily...
This patch fixes an issue where expansion of an ORIF expression arbitrarily
applied the probability that the entire condition was true to just the
first condition. When the ORIF true probability was 100%, this resulted
in the second condition's jump being given a count of zero (since the
first condition's jump got 100% of the count), leading to incorrect function
splitting when it had a non-zero probability in reality. Since there
currently isn't better information about which condition resulted
in the ORIF being true, apply a 50-50 probability that it is the first
vs. second condition that caused the entire expression to be true,
so that neither condition's true label ends up as a 0-count bb.
An equivalent fix is made for ANDIF expansion.
2013-10-02 Teresa Johnson <tejohnson@google.com>
* dojump.c (do_jump_1): Divide probability between
both conditions of a TRUTH_ORIF_EXPR.
Andrew MacLeod [Wed, 2 Oct 2013 15:29:35 +0000 (15:29 +0000)]
tree-flow.h: Remove some prototypes.
2013-10-02 Andrew MacLeod <amacleod@redhat.com>
* tree-flow.h: Remove some prototypes.
* gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
* tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
* tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
propagate_tree_value*): Move from here to...
* tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
propagate_tree_value*): Relocate here.
* tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
* gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
* gimple-fold.c: Remove gimple-fold.h from include list.
* tree-vrp.c: Remove gimple-fold.h from include list.
* tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
* tree-ssa-ccp.c: Remove gimple-fold.h from include list.
* tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
* tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
* sese.c: Add tree-ssa-propagate.h to include list.
Richard Biener [Wed, 2 Oct 2013 13:46:32 +0000 (13:46 +0000)]
tree-loop-distribution.c: Include tree-vectorizer.h for find_loop_location.
2013-10-02 Richard Biener <rguenther@suse.de>
* tree-loop-distribution.c: Include tree-vectorizer.h for
find_loop_location.
(enum partition_kind): Remove PKIND_REDUCTION.
(struct partition_s): Remove has_writes member, add reduction_p
member.
(partition_alloc): Adjust.
(partition_builtin_p): Likewise.
(partition_has_writes): Remove.
(partition_reduction_p): New function.
(partition_merge_into): Likewise.
(generate_code_for_partition): Commonize builtin partition
handling tail.
(rdg_cannot_recompute_vertex_p): Remove.
(already_processed_vertex_p): Likewise.
(rdg_flag_vertex): Do not set has_writes.
(classify_partition): Adjust.
(rdg_build_partitions): Do not set has_writes, treat all
partitions as useful.
(distribute_loop): Record number of library calls generated.
Adjust.
(tree_loop_distribution): Report number of loops and library
calls generated as opt-info.
Andrew Macleod [Wed, 2 Oct 2013 13:19:52 +0000 (13:19 +0000)]
tree-flow.h: Include new .h files.
* tree-flow.h: Include new .h files. Move prototypes.
* tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
* tree-dfa.h: New File. Add prototypes from tree-flow.h.
(get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
* tree-pretty-print.h: Add prototypes from tree-flow.h.
* tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
* tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
* tree.h (get_ref_base_and_extent): Move prototype out.
* tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
tree-dfa.h.
* gimple-low.h: New File. Add prototypes from tree-flow.h.
* gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
* tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
* tree-scalar-evolution.c: Include tree.h.
* sese.c: Include tree.h.
* dumpfile.c: Move gimple-pretty-print.h include after tree.h.
* dwarf2out.c: Include tree-dfa.h.
* tree-chrec.c: Include tree.h.
* tree-data-ref.c: Include tree.h.
Andrew Macleod [Wed, 2 Oct 2013 13:19:29 +0000 (13:19 +0000)]
tree-flow.h: Include new .h files.
* tree-flow.h: Include new .h files. Move prototypes.
* tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
* tree-dfa.h: New File. Add prototypes from tree-flow.h.
(get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
* tree-pretty-print.h: Add prototypes from tree-flow.h.
* tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
* tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
* tree.h (get_ref_base_and_extent): Move prototype out.
* tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
tree-dfa.h.
* gimple-low.h: New File. Add prototypes from tree-flow.h.
* gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
* tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
* tree-scalar-evolution.c: Include tree.h.
* sese.c: Include tree.h.
* dumpfile.c: Move gimple-pretty-print.h include after tree.h.
* dwarf2out.c: Include tree-dfa.h.
* tree-chrec.c: Include tree.h.
* tree-data-ref.c: Include tree.h.
* gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
declaration.
(backtrace_base_for_ref): Call get_unwidened with 'base_in' if
'base_in' represent a conversion and legal_cast_p_1 holds; set
'base_in' with the returned value from get_unwidened.
Jeff Law [Tue, 1 Oct 2013 21:40:28 +0000 (15:40 -0600)]
tree-ssa-threadupdate.c (struct redirection_data): Delete outgoing_edge and intermediate_edge fields.
* tree-ssa-threadupdate.c (struct redirection_data): Delete
outgoing_edge and intermediate_edge fields. Instead store the path.
(redirection_data::hash): Hash on the last edge's destination index.
(redirection_data::equal): Check the entire thread path.
(lookup_redirectio_data): Corresponding changes.
(create_edge_and_update_destination_phis): Likewise.
(thread_single_edge): Likewise.
Joern Rennecke [Tue, 1 Oct 2013 20:11:58 +0000 (20:11 +0000)]
arc.md: Expand adc_0 comment stating the intended purpose and why it isn't ready.
* config/arc/arc.md: Expand adc_0 comment stating the intended
purpose and why it isn't ready.
Replace commented out call_value_via_label_mixed with a
plain comment about bl_s.
Co-Authored-By: Diego Novillo <dnovillo@google.com>
From-SVN: r203085
Joern Rennecke [Tue, 1 Oct 2013 18:40:27 +0000 (18:40 +0000)]
simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
* config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
(UNSPEC_ARC_SIMD_VLD32WL): Likewise.
(vld32wh_insn, vld32wl_insn): Delete commented-out old
versions of these patterns.
Joern Rennecke [Tue, 1 Oct 2013 16:34:40 +0000 (17:34 +0100)]
Configuration bits for ARC port:
toplevel:
2013-02-25 Simon Cook <simon.cook@embecosm.com>
Changes to build configuration to allow big endian ARC ELF toolchain
* configure.ac: Also add target-libgloss to noconfigdirs for arceb-*-*.
* configure: Regenerate.
gcc:
2013-04-03 Joern Rennecke <joern.rennecke@embecosm.com>
Brendan Kehoe <brendan@zen.org>
Simon Cook <simon.cook@embecosm.com>
* config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
* acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Also check for
_Unwind_SjLj_Register when deciding if to set enable_sjlj_exceptions.
* configure: Regenerate.
Uros Bizjak [Tue, 1 Oct 2013 15:02:22 +0000 (17:02 +0200)]
install.texi (Host/target specific installation notes for GCC): Put @anchor before @heading.
* doc/install.texi (Host/target specific installation notes for GCC):
Put @anchor before @heading.
* doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
Use @email for email addresses.
Jeff Law [Tue, 1 Oct 2013 13:42:16 +0000 (07:42 -0600)]
tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to a vec.
* tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
a vec. Only delete the path if we create one without successfully
registering a jump thread.
* tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
as a pointer.
* tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
(paths): New vector of jump threading paths.
(THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
(THREAD_PATH): New accessor macro for the entire thread path.
(lookup_redirection_data): Get intermediate and final outgoing edge
from the thread path.
(create_edge_and_update_destination_phis): Copy the threading path.
(ssa_fix_duplicate_block_edges): Get edges and block types from the
jump threading path.
(ssa_redirect_edges): Get edges and block types from the jump threading
path. Free the path vector.
(thread_block): Get edges from the jump threading path. Look at the
entire path to see if we thread to a loop exit. If we cancel a jump
thread request, then free the path vector.
(thread_single_edge): Get edges and block types from the jump threading
path. Free the path vector.
(thread_through_loop_header): Get edges and block types from the jump
threading path. Free the path vector.
(mark_threaded_blocks): Iterate over the vector of paths and store
the path on the appropriate edge. Get edges and block types from the
jump threading path.
(mark_threaded_blocks): Get edges and block types from the jump
threading path. Free the path vector.
(thread_through_all_blocks): Use the vector of paths rather than
a vector of 3-edge sets.
(register_jump_thread): Accept pointer to a path vector rather
than the path vector itself. Store the path vector for later use.
Simplify.
Jakub Jelinek [Tue, 1 Oct 2013 13:33:02 +0000 (15:33 +0200)]
re PR target/58574 (Wrong code due to s390x machine reorg pass)
2013-10-01 Jakub Jelinek <jakub@redhat.com>
Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR target/58574
* config/s390/s390.c (s390_split_branches): Modify check for table
jump insns.
(s390_chunkify_start): Rearrange table jump insn check in order to
deal with compare and branch insns correctly.
2013-10-01 Jakub Jelinek <jakub@redhat.com>
PR target/58574
* gcc.c-torture/execute/pr58574.c: New testcase.
Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
From-SVN: r203060
Nick Clifton [Tue, 1 Oct 2013 09:18:30 +0000 (09:18 +0000)]
target-supports.exp (check_effective_target_ptr32plus): Fail for MSP430.
* lib/target-supports.exp (check_effective_target_ptr32plus): Fail
for MSP430.
* gcc.c-torture/compile/20010327-1.c: Only run the test for
ptr32plus targets.
* gcc.c-torture/compile/pr41181.c: Likewise.
* gcc.c-torture/compile/calls.c: Likewise.
* gcc.c-torture/compile/990617-1.c: Likewise.
* gcc.c-torture/compile/pr55955.c: Only run the test for
int32plus targets.
* gcc.c-torture/compile/limits-externdecl.c: Likewise.
Richard Biener [Tue, 1 Oct 2013 07:41:10 +0000 (07:41 +0000)]
re PR tree-optimization/58553 (New fail in PASS->FAIL: gcc.c-torture/execute/memcpy-2.c execution on arm and aarch64)
2013-10-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/58553
* tree-loop-distribution.c (struct partition_s): Add niter member.
(classify_partition): Populate niter member for the partition
and properly identify whether the relevant store happens before
or after the loop exit.
(generate_memset_builtin): Use niter member from the partition.
(generate_memcpy_builtin): Likewise.
Jakub Jelinek [Mon, 30 Sep 2013 20:15:20 +0000 (22:15 +0200)]
re PR middle-end/58564 (possible wrong code bug at -O0)
PR middle-end/58564
* fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
optimization, punt if sign_bit_p looked through any zero extension.
Teresa Johnson [Mon, 30 Sep 2013 20:09:25 +0000 (20:09 +0000)]
tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges): Update redirected out edge count in joiner case.
* tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
Update redirected out edge count in joiner case.
(ssa_redirect_edges): Common the joiner and non-joiner cases
so that joiner case gets profile updates.
* testsuite/gcc.dg/tree-ssa/ssa-dom-thread-3.c (expand_one_var):
Update for additional dump message.
Nick Clifton [Mon, 30 Sep 2013 08:58:53 +0000 (08:58 +0000)]
msp430.c (msp430x_names): New array.
* config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
that use the MSP430X ISA.
(msp430_option_override): Scan -mmcu command line option for any
MCU name that supports the MSP430X ISA.
* config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
-mmcu options which enable the MSP430X ISA.
Jan Hubicka [Sun, 29 Sep 2013 09:26:29 +0000 (11:26 +0200)]
x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for generic.
* x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for generic.
(X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
(X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
(X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
(X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
(X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.