tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and TI_CHREC_KNOWN.
2019-07-02 Richard Biener <rguenther@suse.de> * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and TI_CHREC_KNOWN. * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known): Define here. * tree.c (build_common_tree_nodes): Initialize them. * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known): Make declarations comments. * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know, chrec_known): Remove definitions. (initialize_scalar_evolutions_analyzer): Remove. (scev_initialize): Do not call initialize_scalar_evolutions_analyzer. * tree-streamer.c (preload_common_nodes): Do not preload TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN. From-SVN: r272928
This commit is contained in:
parent
30ca9fbe90
commit
2e2c9da012
7 changed files with 40 additions and 38 deletions
|
@ -1,3 +1,19 @@
|
|||
2019-07-02 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
|
||||
TI_CHREC_KNOWN.
|
||||
* tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
|
||||
Define here.
|
||||
* tree.c (build_common_tree_nodes): Initialize them.
|
||||
* tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
|
||||
Make declarations comments.
|
||||
* tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
|
||||
chrec_known): Remove definitions.
|
||||
(initialize_scalar_evolutions_analyzer): Remove.
|
||||
(scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
|
||||
* tree-streamer.c (preload_common_nodes): Do not preload
|
||||
TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
|
||||
|
||||
2019-07-02 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
|
||||
|
|
|
@ -23,11 +23,14 @@ along with GCC; see the file COPYING3. If not see
|
|||
|
||||
/* The following trees are unique elements. Thus the comparison of another
|
||||
element to these elements should be done on the pointer to these trees,
|
||||
and not on their value. */
|
||||
and not on their value.
|
||||
|
||||
extern tree chrec_not_analyzed_yet;
|
||||
extern GTY(()) tree chrec_dont_know;
|
||||
extern GTY(()) tree chrec_known;
|
||||
extern tree chrec_not_analyzed_yet;
|
||||
extern tree chrec_dont_know;
|
||||
extern tree chrec_known;
|
||||
|
||||
chrec_not_analyzed_yet is NULL_TREE and the others are defined
|
||||
in global_trees[]. */
|
||||
|
||||
/* After having added an automatically generated element, please
|
||||
include it in the following function. */
|
||||
|
|
|
@ -758,6 +758,9 @@ enum tree_index {
|
|||
TI_CURRENT_TARGET_PRAGMA,
|
||||
TI_CURRENT_OPTIMIZE_PRAGMA,
|
||||
|
||||
TI_CHREC_DONT_KNOW,
|
||||
TI_CHREC_KNOWN,
|
||||
|
||||
TI_MAX
|
||||
};
|
||||
|
||||
|
|
|
@ -304,21 +304,6 @@ struct GTY((for_user)) scev_info_str {
|
|||
static unsigned nb_set_scev = 0;
|
||||
static unsigned nb_get_scev = 0;
|
||||
|
||||
/* The following trees are unique elements. Thus the comparison of
|
||||
another element to these elements should be done on the pointer to
|
||||
these trees, and not on their value. */
|
||||
|
||||
/* The SSA_NAMEs that are not yet analyzed are qualified with NULL_TREE. */
|
||||
tree chrec_not_analyzed_yet;
|
||||
|
||||
/* Reserved to the cases where the analyzer has detected an
|
||||
undecidable property at compile time. */
|
||||
tree chrec_dont_know;
|
||||
|
||||
/* When the analyzer has detected that a property will never
|
||||
happen, then it qualifies it with chrec_known. */
|
||||
tree chrec_known;
|
||||
|
||||
struct scev_info_hasher : ggc_ptr_hash<scev_info_str>
|
||||
{
|
||||
static hashval_t hash (scev_info_str *i);
|
||||
|
@ -3056,23 +3041,6 @@ gather_stats_on_scev_database (void)
|
|||
}
|
||||
|
||||
|
||||
|
||||
/* Initializer. */
|
||||
|
||||
static void
|
||||
initialize_scalar_evolutions_analyzer (void)
|
||||
{
|
||||
/* The elements below are unique. */
|
||||
if (chrec_dont_know == NULL_TREE)
|
||||
{
|
||||
chrec_not_analyzed_yet = NULL_TREE;
|
||||
chrec_dont_know = make_node (SCEV_NOT_KNOWN);
|
||||
chrec_known = make_node (SCEV_KNOWN);
|
||||
TREE_TYPE (chrec_dont_know) = void_type_node;
|
||||
TREE_TYPE (chrec_known) = void_type_node;
|
||||
}
|
||||
}
|
||||
|
||||
/* Initialize the analysis of scalar evolutions for LOOPS. */
|
||||
|
||||
void
|
||||
|
@ -3084,8 +3052,6 @@ scev_initialize (void)
|
|||
|
||||
scalar_evolution_info = hash_table<scev_info_hasher>::create_ggc (100);
|
||||
|
||||
initialize_scalar_evolutions_analyzer ();
|
||||
|
||||
FOR_EACH_LOOP (loop, 0)
|
||||
{
|
||||
loop->nb_iterations = NULL_TREE;
|
||||
|
|
|
@ -377,6 +377,9 @@ preload_common_nodes (struct streamer_tree_cache_d *cache)
|
|||
&& i != TI_TARGET_OPTION_CURRENT
|
||||
&& i != TI_CURRENT_TARGET_PRAGMA
|
||||
&& i != TI_CURRENT_OPTIMIZE_PRAGMA
|
||||
/* SCEV state shouldn't reach the IL. */
|
||||
&& i != TI_CHREC_DONT_KNOW
|
||||
&& i != TI_CHREC_KNOWN
|
||||
/* Skip va_list* related nodes if offloading. For native LTO
|
||||
we want them to be merged for the stdarg pass, for offloading
|
||||
they might not be identical between host and offloading target. */
|
||||
|
|
|
@ -10641,6 +10641,12 @@ build_common_tree_nodes (bool signed_char)
|
|||
|
||||
va_list_type_node = t;
|
||||
}
|
||||
|
||||
/* SCEV analyzer global shared trees. */
|
||||
chrec_dont_know = make_node (SCEV_NOT_KNOWN);
|
||||
TREE_TYPE (chrec_dont_know) = void_type_node;
|
||||
chrec_known = make_node (SCEV_KNOWN);
|
||||
TREE_TYPE (chrec_known) = void_type_node;
|
||||
}
|
||||
|
||||
/* Modify DECL for given flags.
|
||||
|
|
|
@ -4083,6 +4083,11 @@ tree_strip_any_location_wrapper (tree exp)
|
|||
#define current_target_pragma global_trees[TI_CURRENT_TARGET_PRAGMA]
|
||||
#define current_optimize_pragma global_trees[TI_CURRENT_OPTIMIZE_PRAGMA]
|
||||
|
||||
/* SCEV analyzer global shared trees. */
|
||||
#define chrec_not_analyzed_yet NULL_TREE
|
||||
#define chrec_dont_know global_trees[TI_CHREC_DONT_KNOW]
|
||||
#define chrec_known global_trees[TI_CHREC_KNOWN]
|
||||
|
||||
#define char_type_node integer_types[itk_char]
|
||||
#define signed_char_type_node integer_types[itk_signed_char]
|
||||
#define unsigned_char_type_node integer_types[itk_unsigned_char]
|
||||
|
|
Loading…
Add table
Reference in a new issue