58 lines
1.8 KiB
Diff
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
|
|
|