mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
gcc-plugins: remove support for GCC 4.9 and older
The minimum GCC version has been bumped to 5.1, so we can get rid of all the compatibility code for anything older than that. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20210922182632.633394-1-ardb@kernel.org
This commit is contained in:
parent
f02003c860
commit
4c78c7271f
@ -27,9 +27,7 @@
|
|||||||
#include "except.h"
|
#include "except.h"
|
||||||
#include "function.h"
|
#include "function.h"
|
||||||
#include "toplev.h"
|
#include "toplev.h"
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
#include "expr.h"
|
#include "expr.h"
|
||||||
#endif
|
|
||||||
#include "basic-block.h"
|
#include "basic-block.h"
|
||||||
#include "intl.h"
|
#include "intl.h"
|
||||||
#include "ggc.h"
|
#include "ggc.h"
|
||||||
@ -39,11 +37,7 @@
|
|||||||
#include "params.h"
|
#include "params.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BUILDING_GCC_VERSION <= 4009
|
|
||||||
#include "pointer-set.h"
|
|
||||||
#else
|
|
||||||
#include "hash-map.h"
|
#include "hash-map.h"
|
||||||
#endif
|
|
||||||
|
|
||||||
#if BUILDING_GCC_VERSION >= 7000
|
#if BUILDING_GCC_VERSION >= 7000
|
||||||
#include "memmodel.h"
|
#include "memmodel.h"
|
||||||
@ -99,9 +93,7 @@
|
|||||||
#include "gimple-ssa.h"
|
#include "gimple-ssa.h"
|
||||||
#include "ssa-iterators.h"
|
#include "ssa-iterators.h"
|
||||||
|
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
#include "builtins.h"
|
#include "builtins.h"
|
||||||
#endif
|
|
||||||
|
|
||||||
/* missing from basic_block.h... */
|
/* missing from basic_block.h... */
|
||||||
void debug_dominance_info(enum cdi_direction dir);
|
void debug_dominance_info(enum cdi_direction dir);
|
||||||
@ -152,125 +144,6 @@ struct register_pass_info NAME##_pass_info = { \
|
|||||||
#define TODO_dump_func 0
|
#define TODO_dump_func 0
|
||||||
#define TODO_dump_cgraph 0
|
#define TODO_dump_cgraph 0
|
||||||
|
|
||||||
#if BUILDING_GCC_VERSION <= 4009
|
|
||||||
#define TODO_verify_il 0
|
|
||||||
#define AVAIL_INTERPOSABLE AVAIL_OVERWRITABLE
|
|
||||||
|
|
||||||
#define section_name_prefix LTO_SECTION_NAME_PREFIX
|
|
||||||
#define fatal_error(loc, gmsgid, ...) fatal_error((gmsgid), __VA_ARGS__)
|
|
||||||
|
|
||||||
rtx emit_move_insn(rtx x, rtx y);
|
|
||||||
|
|
||||||
typedef struct rtx_def rtx_insn;
|
|
||||||
|
|
||||||
static inline const char *get_decl_section_name(const_tree decl)
|
|
||||||
{
|
|
||||||
if (DECL_SECTION_NAME(decl) == NULL_TREE)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return TREE_STRING_POINTER(DECL_SECTION_NAME(decl));
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void set_decl_section_name(tree node, const char *value)
|
|
||||||
{
|
|
||||||
if (value)
|
|
||||||
DECL_SECTION_NAME(node) = build_string(strlen(value) + 1, value);
|
|
||||||
else
|
|
||||||
DECL_SECTION_NAME(node) = NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if BUILDING_GCC_VERSION == 4009
|
|
||||||
typedef struct gimple_statement_asm gasm;
|
|
||||||
typedef struct gimple_statement_base gassign;
|
|
||||||
typedef struct gimple_statement_call gcall;
|
|
||||||
typedef struct gimple_statement_base gcond;
|
|
||||||
typedef struct gimple_statement_base gdebug;
|
|
||||||
typedef struct gimple_statement_base ggoto;
|
|
||||||
typedef struct gimple_statement_phi gphi;
|
|
||||||
typedef struct gimple_statement_base greturn;
|
|
||||||
|
|
||||||
static inline gasm *as_a_gasm(gimple stmt)
|
|
||||||
{
|
|
||||||
return as_a<gasm>(stmt);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const gasm *as_a_const_gasm(const_gimple stmt)
|
|
||||||
{
|
|
||||||
return as_a<const gasm>(stmt);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline gassign *as_a_gassign(gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const gassign *as_a_const_gassign(const_gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline gcall *as_a_gcall(gimple stmt)
|
|
||||||
{
|
|
||||||
return as_a<gcall>(stmt);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const gcall *as_a_const_gcall(const_gimple stmt)
|
|
||||||
{
|
|
||||||
return as_a<const gcall>(stmt);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline gcond *as_a_gcond(gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const gcond *as_a_const_gcond(const_gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline gdebug *as_a_gdebug(gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline ggoto *as_a_ggoto(gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const ggoto *as_a_const_ggoto(const_gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline gphi *as_a_gphi(gimple stmt)
|
|
||||||
{
|
|
||||||
return as_a<gphi>(stmt);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const gphi *as_a_const_gphi(const_gimple stmt)
|
|
||||||
{
|
|
||||||
return as_a<const gphi>(stmt);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline greturn *as_a_greturn(gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const greturn *as_a_const_greturn(const_gimple stmt)
|
|
||||||
{
|
|
||||||
return stmt;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define TODO_ggc_collect 0
|
#define TODO_ggc_collect 0
|
||||||
#define NODE_SYMBOL(node) (node)
|
#define NODE_SYMBOL(node) (node)
|
||||||
#define NODE_DECL(node) (node)->decl
|
#define NODE_DECL(node) (node)->decl
|
||||||
@ -282,7 +155,7 @@ static inline opt_pass *get_pass_for_id(int id)
|
|||||||
return g->get_passes()->get_pass_for_id(id);
|
return g->get_passes()->get_pass_for_id(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if BUILDING_GCC_VERSION >= 5000 && BUILDING_GCC_VERSION < 6000
|
#if BUILDING_GCC_VERSION < 6000
|
||||||
/* gimple related */
|
/* gimple related */
|
||||||
template <>
|
template <>
|
||||||
template <>
|
template <>
|
||||||
@ -292,7 +165,6 @@ inline bool is_a_helper<const gassign *>::test(const_gimple gs)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
#define TODO_verify_ssa TODO_verify_il
|
#define TODO_verify_ssa TODO_verify_il
|
||||||
#define TODO_verify_flow TODO_verify_il
|
#define TODO_verify_flow TODO_verify_il
|
||||||
#define TODO_verify_stmts TODO_verify_il
|
#define TODO_verify_stmts TODO_verify_il
|
||||||
@ -533,7 +405,6 @@ static inline void ipa_remove_stmt_references(symtab_node *referring_node, gimpl
|
|||||||
{
|
{
|
||||||
referring_node->remove_stmt_references(stmt);
|
referring_node->remove_stmt_references(stmt);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if BUILDING_GCC_VERSION < 6000
|
#if BUILDING_GCC_VERSION < 6000
|
||||||
#define get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, preversep, pvolatilep, keep_aligning) \
|
#define get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, preversep, pvolatilep, keep_aligning) \
|
||||||
|
@ -78,17 +78,6 @@ static const pass_data _PASS_NAME_PASS_DATA = {
|
|||||||
.type = GIMPLE_PASS,
|
.type = GIMPLE_PASS,
|
||||||
.name = _PASS_NAME_NAME,
|
.name = _PASS_NAME_NAME,
|
||||||
.optinfo_flags = OPTGROUP_NONE,
|
.optinfo_flags = OPTGROUP_NONE,
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
#elif BUILDING_GCC_VERSION == 4009
|
|
||||||
.has_gate = _HAS_GATE,
|
|
||||||
.has_execute = _HAS_EXECUTE,
|
|
||||||
#else
|
|
||||||
.gate = _GATE,
|
|
||||||
.execute = _EXECUTE,
|
|
||||||
.sub = NULL,
|
|
||||||
.next = NULL,
|
|
||||||
.static_pass_number = 0,
|
|
||||||
#endif
|
|
||||||
.tv_id = TV_NONE,
|
.tv_id = TV_NONE,
|
||||||
.properties_required = PROPERTIES_REQUIRED,
|
.properties_required = PROPERTIES_REQUIRED,
|
||||||
.properties_provided = PROPERTIES_PROVIDED,
|
.properties_provided = PROPERTIES_PROVIDED,
|
||||||
@ -102,21 +91,13 @@ public:
|
|||||||
_PASS_NAME_PASS() : gimple_opt_pass(_PASS_NAME_PASS_DATA, g) {}
|
_PASS_NAME_PASS() : gimple_opt_pass(_PASS_NAME_PASS_DATA, g) {}
|
||||||
|
|
||||||
#ifndef NO_GATE
|
#ifndef NO_GATE
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
virtual bool gate(function *) { return _GATE(); }
|
virtual bool gate(function *) { return _GATE(); }
|
||||||
#else
|
|
||||||
virtual bool gate(void) { return _GATE(); }
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
virtual opt_pass * clone () { return new _PASS_NAME_PASS(); }
|
virtual opt_pass * clone () { return new _PASS_NAME_PASS(); }
|
||||||
|
|
||||||
#ifndef NO_EXECUTE
|
#ifndef NO_EXECUTE
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
virtual unsigned int execute(function *) { return _EXECUTE(); }
|
virtual unsigned int execute(function *) { return _EXECUTE(); }
|
||||||
#else
|
|
||||||
virtual unsigned int execute(void) { return _EXECUTE(); }
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,17 +146,6 @@ static const pass_data _PASS_NAME_PASS_DATA = {
|
|||||||
.type = IPA_PASS,
|
.type = IPA_PASS,
|
||||||
.name = _PASS_NAME_NAME,
|
.name = _PASS_NAME_NAME,
|
||||||
.optinfo_flags = OPTGROUP_NONE,
|
.optinfo_flags = OPTGROUP_NONE,
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
#elif BUILDING_GCC_VERSION == 4009
|
|
||||||
.has_gate = _HAS_GATE,
|
|
||||||
.has_execute = _HAS_EXECUTE,
|
|
||||||
#else
|
|
||||||
.gate = _GATE,
|
|
||||||
.execute = _EXECUTE,
|
|
||||||
.sub = NULL,
|
|
||||||
.next = NULL,
|
|
||||||
.static_pass_number = 0,
|
|
||||||
#endif
|
|
||||||
.tv_id = TV_NONE,
|
.tv_id = TV_NONE,
|
||||||
.properties_required = PROPERTIES_REQUIRED,
|
.properties_required = PROPERTIES_REQUIRED,
|
||||||
.properties_provided = PROPERTIES_PROVIDED,
|
.properties_provided = PROPERTIES_PROVIDED,
|
||||||
@ -180,20 +169,12 @@ public:
|
|||||||
_VARIABLE_TRANSFORM) {}
|
_VARIABLE_TRANSFORM) {}
|
||||||
|
|
||||||
#ifndef NO_GATE
|
#ifndef NO_GATE
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
virtual bool gate(function *) { return _GATE(); }
|
virtual bool gate(function *) { return _GATE(); }
|
||||||
#else
|
|
||||||
virtual bool gate(void) { return _GATE(); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
|
virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
|
||||||
|
|
||||||
#ifndef NO_EXECUTE
|
#ifndef NO_EXECUTE
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
virtual unsigned int execute(function *) { return _EXECUTE(); }
|
virtual unsigned int execute(function *) { return _EXECUTE(); }
|
||||||
#else
|
|
||||||
virtual unsigned int execute(void) { return _EXECUTE(); }
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -78,17 +78,6 @@ static const pass_data _PASS_NAME_PASS_DATA = {
|
|||||||
.type = RTL_PASS,
|
.type = RTL_PASS,
|
||||||
.name = _PASS_NAME_NAME,
|
.name = _PASS_NAME_NAME,
|
||||||
.optinfo_flags = OPTGROUP_NONE,
|
.optinfo_flags = OPTGROUP_NONE,
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
#elif BUILDING_GCC_VERSION == 4009
|
|
||||||
.has_gate = _HAS_GATE,
|
|
||||||
.has_execute = _HAS_EXECUTE,
|
|
||||||
#else
|
|
||||||
.gate = _GATE,
|
|
||||||
.execute = _EXECUTE,
|
|
||||||
.sub = NULL,
|
|
||||||
.next = NULL,
|
|
||||||
.static_pass_number = 0,
|
|
||||||
#endif
|
|
||||||
.tv_id = TV_NONE,
|
.tv_id = TV_NONE,
|
||||||
.properties_required = PROPERTIES_REQUIRED,
|
.properties_required = PROPERTIES_REQUIRED,
|
||||||
.properties_provided = PROPERTIES_PROVIDED,
|
.properties_provided = PROPERTIES_PROVIDED,
|
||||||
@ -102,21 +91,13 @@ public:
|
|||||||
_PASS_NAME_PASS() : rtl_opt_pass(_PASS_NAME_PASS_DATA, g) {}
|
_PASS_NAME_PASS() : rtl_opt_pass(_PASS_NAME_PASS_DATA, g) {}
|
||||||
|
|
||||||
#ifndef NO_GATE
|
#ifndef NO_GATE
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
virtual bool gate(function *) { return _GATE(); }
|
virtual bool gate(function *) { return _GATE(); }
|
||||||
#else
|
|
||||||
virtual bool gate(void) { return _GATE(); }
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
|
virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
|
||||||
|
|
||||||
#ifndef NO_EXECUTE
|
#ifndef NO_EXECUTE
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
virtual unsigned int execute(function *) { return _EXECUTE(); }
|
virtual unsigned int execute(function *) { return _EXECUTE(); }
|
||||||
#else
|
|
||||||
virtual unsigned int execute(void) { return _EXECUTE(); }
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -78,17 +78,6 @@ static const pass_data _PASS_NAME_PASS_DATA = {
|
|||||||
.type = SIMPLE_IPA_PASS,
|
.type = SIMPLE_IPA_PASS,
|
||||||
.name = _PASS_NAME_NAME,
|
.name = _PASS_NAME_NAME,
|
||||||
.optinfo_flags = OPTGROUP_NONE,
|
.optinfo_flags = OPTGROUP_NONE,
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
#elif BUILDING_GCC_VERSION == 4009
|
|
||||||
.has_gate = _HAS_GATE,
|
|
||||||
.has_execute = _HAS_EXECUTE,
|
|
||||||
#else
|
|
||||||
.gate = _GATE,
|
|
||||||
.execute = _EXECUTE,
|
|
||||||
.sub = NULL,
|
|
||||||
.next = NULL,
|
|
||||||
.static_pass_number = 0,
|
|
||||||
#endif
|
|
||||||
.tv_id = TV_NONE,
|
.tv_id = TV_NONE,
|
||||||
.properties_required = PROPERTIES_REQUIRED,
|
.properties_required = PROPERTIES_REQUIRED,
|
||||||
.properties_provided = PROPERTIES_PROVIDED,
|
.properties_provided = PROPERTIES_PROVIDED,
|
||||||
@ -102,21 +91,13 @@ public:
|
|||||||
_PASS_NAME_PASS() : simple_ipa_opt_pass(_PASS_NAME_PASS_DATA, g) {}
|
_PASS_NAME_PASS() : simple_ipa_opt_pass(_PASS_NAME_PASS_DATA, g) {}
|
||||||
|
|
||||||
#ifndef NO_GATE
|
#ifndef NO_GATE
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
virtual bool gate(function *) { return _GATE(); }
|
virtual bool gate(function *) { return _GATE(); }
|
||||||
#else
|
|
||||||
virtual bool gate(void) { return _GATE(); }
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
|
virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
|
||||||
|
|
||||||
#ifndef NO_EXECUTE
|
#ifndef NO_EXECUTE
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
virtual unsigned int execute(function *) { return _EXECUTE(); }
|
virtual unsigned int execute(function *) { return _EXECUTE(); }
|
||||||
#else
|
|
||||||
virtual unsigned int execute(void) { return _EXECUTE(); }
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -103,10 +103,8 @@ static void finish_type(void *event_data, void *data)
|
|||||||
if (type == NULL_TREE || type == error_mark_node)
|
if (type == NULL_TREE || type == error_mark_node)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#if BUILDING_GCC_VERSION >= 5000
|
|
||||||
if (TREE_CODE(type) == ENUMERAL_TYPE)
|
if (TREE_CODE(type) == ENUMERAL_TYPE)
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (TYPE_USERSPACE(type))
|
if (TYPE_USERSPACE(type))
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user