diff --git a/include/inc-deep/deep.hpp b/include/inc-deep/deep.hpp index 1ab8fdfe95c4b25fb5dadfedc4a0a36b762e0aed..52a49bf53cab54babecf2d4cbe61bd79f5fe8018 100644 --- a/include/inc-deep/deep.hpp +++ b/include/inc-deep/deep.hpp @@ -17,10 +17,10 @@ namespace IRDB_SDK aeRida }; - using RegisterIDSet_t = set<RegisterID_t>; - using DeadRegisterMap_t = map<Instruction_t*,RegisterIDSet_t*>; - using StaticGlobalSet_t = InstructionSet_t; - using RangeSentinalSet_t = InstructionSet_t; + using RegisterIDSet_t = set<RegisterID_t>; + using DeadRegisterMap_t = map<Instruction_t*,RegisterIDSet_t>; + using StaticGlobalStartMap_t = map<Instruction_t*, VirtualOffset_t>; + using RangeSentinelSet_t = InstructionSet_t; class DeepAnalysis_t { @@ -29,11 +29,11 @@ namespace IRDB_SDK DeepAnalysis_t(const DeepAnalysis_t& copy) = delete; public: - unique_ptr<DeadRegisterMap_t> getDeadRegisters() const = 0; - unique_ptr<StaticGlobalSet_t> getStaticGlobalRanges() const = 0; - unique_ptr<SentinalSet_t > getRangeSentials() const = 0; + virtual unique_ptr<DeadRegisterMap_t > getDeadRegisters() const = 0; + virtual unique_ptr<StaticGlobalStartMap_t > getStaticGlobalRanges() const = 0; + virtual unique_ptr<RangeSentinelSet_t > getRangeSentinels() const = 0; // factories - unique_ptr<DeepAnalysis_t> factory(FileIR_t* firp, const AnalysisEngine_t& ae=aeSTARS, vector<string> options={}); + static unique_ptr<DeepAnalysis_t> factory(FileIR_t* firp, const AnalysisEngine_t& ae=aeSTARS, const vector<string>& options={}); }; } diff --git a/include/inc-transform/transform.hpp b/include/inc-transform/transform.hpp index 1e0b8d8f21d0f31cc300cd093d00ac4edee39a44..2df6d8f2da5fc5c8297ca40d6524acfdde9cb0c9 100644 --- a/include/inc-transform/transform.hpp +++ b/include/inc-transform/transform.hpp @@ -33,6 +33,7 @@ namespace IRDB_SDK FileIR_t* getFileIR(); + const FileIR_t* getFileIR() const; private: diff --git a/include/irdb-util b/include/irdb-util index 2468876e3415097aa3743727436ef1411659d543..b52c5de7f1bfd486acfbf2f22d1817c013e9a353 100644 --- a/include/irdb-util +++ b/include/irdb-util @@ -1,26 +1,6 @@ -/* - * Copyright (c) 2014 - Zephyr Software LLC - * - * This file may be used and modified for non-commercial purposes as long as - * all copyright, permission, and nonwarranty notices are preserved. - * Redistribution is prohibited without prior written consent from Zephyr - * Software. - * - * Please contact the authors for restrictions applying to commercial use. - * - * THIS SOURCE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF - * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * Author: Zephyr Software - * e-mail: jwd@zephyr-software.com - * URL : http://www.zephyr-software.com/ - * - */ +#include <irdb-core> #ifndef IRDB_SDK_util - -#include <irdb-core> #define IRDB_SDK_util /* Building a CFG depends on core functionality */