diff options
author | Maxim Kuvyrkov <maxim@codesourcery.com> | 2010-07-27 19:48:15 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <mkuvyrkov@gcc.gnu.org> | 2010-07-27 19:48:15 +0000 |
commit | cad9aa150ba3ff8c1dc34bf428fc7146dce463b0 (patch) | |
tree | ef6e287dda7baf7be12f1fb62bf64d66c6a8211d /gcc/basic-block.h | |
parent | 9b9ee6d392b6f4f50bacb299e8e1350b1173add8 (diff) | |
download | gcc-cad9aa150ba3ff8c1dc34bf428fc7146dce463b0.zip gcc-cad9aa150ba3ff8c1dc34bf428fc7146dce463b0.tar.gz gcc-cad9aa150ba3ff8c1dc34bf428fc7146dce463b0.tar.bz2 |
re PR target/42495 (redundant memory load)
PR target/42495
PR middle-end/42574
* basic-block.h (get_dominated_to_depth): Declare.
* dominance.c (get_dominated_to_depth): New function, use
get_all_dominated_blocks as a base.
(get_all_dominated_blocks): Use get_dominated_to_depth.
* gcse.c (occr_t, VEC (occr_t, heap)): Define.
(hoist_exprs): Remove.
(alloc_code_hoist_mem, free_code_hoist_mem): Update.
(compute_code_hoist_vbeinout): Add debug print outs.
(hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
* params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
quadratic behavior.
* params.h (MAX_HOIST_DEPTH): New macro.
* doc/invoke.texi (max-hoist-depth): Document.
From-SVN: r162597
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r-- | gcc/basic-block.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 135c0c2..1bf192d 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -854,6 +854,8 @@ extern VEC (basic_block, heap) *get_dominated_by (enum cdi_direction, basic_bloc extern VEC (basic_block, heap) *get_dominated_by_region (enum cdi_direction, basic_block *, unsigned); +extern VEC (basic_block, heap) *get_dominated_to_depth (enum cdi_direction, + basic_block, int); extern VEC (basic_block, heap) *get_all_dominated_blocks (enum cdi_direction, basic_block); extern void add_to_dominance_info (enum cdi_direction, basic_block); |