summaryrefslogtreecommitdiff
path: root/gcc/ipa-type-escape-analysis.h
diff options
context:
space:
mode:
authorErick Ochoa <erick.ochoa@theobroma-systems.com>2020-03-10 14:57:28 +0100
committerErick Ochoa <erick.ochoa@theobroma-systems.com>2020-04-28 23:35:51 +0200
commitbae5500345704fe5fa7f883a418397379fce0553 (patch)
treebe103757ed0d056588ce34ea0d8c81b23b0f6c35 /gcc/ipa-type-escape-analysis.h
parentd719ddb69b9bc56b46f28689a7dc4d31f980f702 (diff)
Adds test to count field read
Diffstat (limited to 'gcc/ipa-type-escape-analysis.h')
-rw-r--r--gcc/ipa-type-escape-analysis.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ipa-type-escape-analysis.h b/gcc/ipa-type-escape-analysis.h
new file mode 100644
index 00000000000..7dcda948189
--- /dev/null
+++ b/gcc/ipa-type-escape-analysis.h
@@ -0,0 +1,21 @@
+#ifndef GCC_IPA_TYPE_ESCAPE_ANALYSIS_H
+#define GCC_IPA_TYPE_ESCAPE_ANALYSIS_H
+#pragma once
+
+struct escaping_reason_s {
+ unsigned global_is_visible : 1;
+ unsigned parameter_is_visible : 1;
+ unsigned return_is_visible : 1;
+ unsigned type_is_casted : 1;
+};
+typedef struct escaping_reason_s escaping_reason;
+
+struct escaping_info_s { const_tree type; bool is_escaping; escaping_reason reason; };
+typedef struct escaping_info_s escaping_info;
+//TODO: Maybe change this to a std::map?
+//Can we get an idea of what conventions gcc want?
+//Maybe I should ask...
+typedef hash_map<const_tree, escaping_info> type_map;
+void calculate_escaping_types(type_map&);
+
+#endif