From afcc34cc338c59a66132f152e1bdd5e841ab7eca Mon Sep 17 00:00:00 2001 From: d00573793 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 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