From d069446ebc7ab5d722aa35dd131b9d77292e70e0 Mon Sep 17 00:00:00 2001 From: fanfuqiang Date: Tue, 4 Sep 2018 23:46:48 +0800 Subject: [PATCH] change pass compare --- .gitignore | 1 - src/rap_plugin/rap_opt_alias.c | 4 +++- src/rap_plugin/rap_plugin.so | Bin 1676056 -> 1676264 bytes 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index cf9995a..50569bd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ tags *.o *.out *.s -*.S *.dump *.swp *.so diff --git a/src/rap_plugin/rap_opt_alias.c b/src/rap_plugin/rap_opt_alias.c index 9bd9d0f..c7afa52 100644 --- a/src/rap_plugin/rap_opt_alias.c +++ b/src/rap_plugin/rap_opt_alias.c @@ -4,7 +4,9 @@ Supply the API for RAP */ #include +#include #include "rap.h" +#include "tree-pass.h" //#include "../include/pointer-set.h" /* There are many optimization methrod can do for RAP. @@ -48,7 +50,7 @@ rap_try_call_ipa_pta (void* gcc_data, void* user_data) //gcc_assert (current_pass); if (current_pass && - ((void*)current_pass == (void*)&pass_ipa_pta)) + (! strcmp (((struct opt_pass *)current_pass)->name, "pta"))) { *(bool*)gcc_data = true; init = true; diff --git a/src/rap_plugin/rap_plugin.so b/src/rap_plugin/rap_plugin.so index c0cfe3bc84a9fddc25b96e2efc70327b86785745..c07ecfb5b9d0cd218e1b67af0a3cddc8ef5e9132 100755 GIT binary patch delta 25190 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

+ghZ;pYLahFa@8bw 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