pin-gcc-client/0003-Pin-gcc-client-Init-a-SimpleIPAPASS.patch
2023-03-07 11:17:54 +08:00

58 lines
1.8 KiB
Diff

From afcc34cc338c59a66132f152e1bdd5e841ab7eca Mon Sep 17 00:00:00 2001
From: d00573793 <dingguangya1@huawei.com>
Date: Tue, 28 Feb 2023 21:10:06 +0800
Subject: [PATCH 3/6] [Pin-gcc-client] Init a SimpleIPAPASS
diff --git a/include/PluginClient/PluginClient.h b/include/PluginClient/PluginClient.h
index 89d7573..2b5648c 100644
--- a/include/PluginClient/PluginClient.h
+++ b/include/PluginClient/PluginClient.h
@@ -117,6 +117,7 @@ enum RefPassName {
PASS_PHIOPT,
PASS_SSA,
PASS_LOOP,
+ PASS_MAC,
};
enum PassPosition {
diff --git a/lib/gccPlugin/gccPlugin.cpp b/lib/gccPlugin/gccPlugin.cpp
index 103d709..1877651 100755
--- a/lib/gccPlugin/gccPlugin.cpp
+++ b/lib/gccPlugin/gccPlugin.cpp
@@ -159,11 +159,11 @@ public:
SimpleIPAPass(pass_data passData, unsigned int indx): simple_ipa_opt_pass(passData, g), index(indx)
{
}
- /* unsigned int execute(function *fun) override
+ unsigned int execute(function *fun) override
{
ManagerSetupCallback(index, fun);
return 0;
- } */
+ }
private:
unsigned int index;
@@ -193,6 +193,7 @@ static std::map<RefPassName, string> g_refPassName {
{PASS_PHIOPT, "phiopt"},
{PASS_SSA, "ssa"},
{PASS_LOOP, "loop"},
+ {PASS_MAC, "materialize-all-clones"},
};
void RegisterPassManagerSetup(unsigned int index, const ManagerSetupData& setupData, const string& pluginName)
@@ -231,6 +232,9 @@ void RegisterPassManagerSetup(unsigned int index, const ManagerSetupData& setupD
passData.type = GIMPLE_PASS;
passInfo.pass = new GimplePass(passData, index);
break;
+ case PASS_MAC:
+ passData.type = SIMPLE_IPA_PASS;
+ passInfo.pass = new SimpleIPAPass(passData, index);
default:
passInfo.pass = new GimplePass(passData, index);
break;
--
2.33.0