Commit Graph

  • c43b7989ce Improved SCS identification phase Andrea Gussoni 2019-02-05 10:09:12 +01:00
  • 5f5bb6cae8 Serialize RegionCFG at each inflate iteration Andrea Gussoni 2019-02-05 09:56:32 +01:00
  • 4d6e8a24d3 Inflate a region only once Andrea Gussoni 2019-02-05 09:55:06 +01:00
  • 6231ba7bed Comb ignores useless conditional nodes Andrea Gussoni 2019-02-05 09:46:38 +01:00
  • 4bd6767038 Improved purgeDummies function Andrea Gussoni 2019-02-05 09:40:40 +01:00
  • 414aba5f66 Dot serialize function now const Andrea Gussoni 2019-02-05 09:36:17 +01:00
  • 54880d3a38 Fix dispatcher edge creation Andrea Gussoni 2019-02-05 09:32:09 +01:00
  • 497bd0d02e Fix exit dispatcher creation Andrea Gussoni 2019-02-04 18:34:14 +01:00
  • d900086172 EnforceCFGCombingPass: emit artificial nodes Pietro Fezzardi 2019-02-02 01:41:37 +01:00
  • c9d2ea9462 Fix tranfser function for BasicBlockViewAnalysis Pietro Fezzardi 2019-02-02 01:41:07 +01:00
  • 10fcd9bbdc Fix getters for Check BasicBlockNodes Pietro Fezzardi 2019-02-02 01:40:19 +01:00
  • 2afd5053e6 Rework exit and entry dispatcher trees Pietro Fezzardi 2019-02-01 19:22:12 +01:00
  • 7399590079 BasicBlockNode: remove usesless setter methods Pietro Fezzardi 2019-02-01 17:59:23 +01:00
  • 2c93512f90 Rework BasicBlockNode class Pietro Fezzardi 2019-02-01 15:08:53 +01:00
  • 2fa2428ef0 Fix BasicBlockViewMap Lattice comparison Pietro Fezzardi 2019-02-01 12:01:58 +01:00
  • 6d7fb09c53 Purge dummies at each inflate iteration Andrea Gussoni 2019-01-31 10:57:22 +01:00
  • 0cdb63630e Restructure ASTTree anatomy Andrea Gussoni 2019-01-30 18:32:26 +01:00
  • 9202742343 TEMP disable some functions Andrea Gussoni 2019-01-30 10:40:34 +01:00
  • 099ae4d479 First stub of flattening Pietro Fezzardi 2019-01-30 09:21:57 +01:00
  • c88ccdff43 Fix include guards Andrea Gussoni 2019-01-28 18:54:10 +01:00
  • e5187a61d9 Use new DominatorTree update features Andrea Gussoni 2019-01-28 15:13:25 +01:00
  • 20a336344e Add state variable info to dummy BasicBlockNodes Pietro Fezzardi 2019-01-25 18:36:37 +01:00
  • 9de18977ad Use only cloneNode to clone Nodes Pietro Fezzardi 2019-01-25 17:32:55 +01:00
  • 3b8400992f Fix dangling pointers to RegionCFG stack variables Pietro Fezzardi 2019-01-25 17:20:24 +01:00
  • 465380b787 Fix AST post-processing phases Andrea Gussoni 2019-01-24 15:19:08 +01:00
  • c70b6f1097 Implemented de-optimization on RegionCFGTree Andrea Gussoni 2019-01-24 15:12:40 +01:00
  • 05d736cbb1 AST serialization is now performed on file Andrea Gussoni 2019-01-24 11:09:44 +01:00
  • 7de353785e Implemented conditional node list for IfNode Andrea Gussoni 2019-01-22 16:44:13 +01:00
  • d591ae13e6 Improved serialization of graphs during inflate Andrea Gussoni 2019-01-22 15:27:36 +01:00
  • 07181ee5cf Fix continue node connection Andrea Gussoni 2019-01-22 12:40:11 +01:00
  • fb95e225e2 Implemented trivial short-circuit simplification Andrea Gussoni 2019-01-22 11:36:50 +01:00
  • 4711f65e8b Improved debug info logging Andrea Gussoni 2019-01-22 11:35:57 +01:00
  • d62bf3951b Flip IFNode nodes with empty then branches Andrea Gussoni 2019-01-22 10:38:14 +01:00
  • 1ee4eaac9e Remove useless Main.cpp for RemovePCStoresPass Andrea Gussoni 2019-01-22 10:35:45 +01:00
  • f5dc27262c Improved isEqual operator with deep comparison Andrea Gussoni 2019-01-21 18:13:15 +01:00
  • f5fcc4aa24 Completely redesign ownership model for RegionCFG Pietro Fezzardi 2019-01-24 18:42:27 +01:00
  • 6ef68f2ca2 Remove unused headers Pietro Fezzardi 2019-01-23 17:03:17 +01:00
  • 744900d4d5 RestructureCFGPass: add skeleton for flattening Pietro Fezzardi 2019-01-22 19:10:38 +01:00
  • 40d677e560 RestructureCFG: early check for isolated functions Pietro Fezzardi 2019-01-22 18:41:54 +01:00
  • 578772ddb4 Fix isDummy for ASTNode Andrea Gussoni 2019-01-22 17:23:49 +01:00
  • ea965ac743 EnforceCFGCombingPass: improve assertions Pietro Fezzardi 2019-01-22 17:20:16 +01:00
  • 14fe9cab07 Preserve collapsed CFG when cloning node Andrea Gussoni 2019-01-22 16:55:26 +01:00
  • bbfbb54eed EnforceCFGCombingPass: fix iterators and asserts Pietro Fezzardi 2019-01-22 16:24:25 +01:00
  • c967f986cd Fix BasicBlockViewMap lattice methods Pietro Fezzardi 2019-01-22 16:22:25 +01:00
  • 00169c5833 Switch to new cmake package for revamb libraries Pietro Fezzardi 2019-01-22 00:12:05 +01:00
  • d5f2bc7750 First Prototype of EnforceCFGCombingPass Pietro Fezzardi 2019-01-18 17:39:28 +01:00
  • 05a5660de2 BasicBlockViewAnalysis: add getter for results Pietro Fezzardi 2019-01-16 17:06:21 +01:00
  • 9876e514d5 Improved isEqual operator with deep comparison Andrea Gussoni 2019-01-21 18:13:15 +01:00
  • 05a5d80151 Short-circuit simplification concept Andrea Gussoni 2019-01-21 16:00:20 +01:00
  • 8f89ea0f7d Outline not reachable nodes removal Andrea Gussoni 2019-01-21 15:54:38 +01:00
  • f94bd7d99a Refresh backedges after each transformation Andrea Gussoni 2019-01-21 15:32:47 +01:00
  • a540a08c38 Added RemovePCStores pass Andrea Gussoni 2019-01-17 17:51:50 +01:00
  • 2382c5e638 Merge branch 'feature/employ-stackanalysis' Alessandro Di Federico 2019-01-18 15:38:20 +01:00
  • e594de5b3e Remove unused data members from VariableManager Pietro Fezzardi 2018-12-17 10:26:31 +01:00
  • 5069ed44c6 Change linkage of isolated functions Andrea Gussoni 2018-12-18 11:03:00 +01:00
  • ee1c8cae15 Add opt options to moderate runtime Alessandro Di Federico 2019-01-18 14:58:46 +01:00
  • 524862679a Enable PIC project-wide Alessandro Di Federico 2019-01-16 17:06:08 +01:00
  • a2b30ceb42 Update FunctionIsolation to use the new FBDP Alessandro Di Federico 2019-01-17 09:03:47 +01:00
  • 2e241acae3 Introduce SA-based ABIDetection and FBD passes Alessandro Di Federico 2019-01-16 18:25:39 +01:00
  • 7a045d0c0d Drop revamb-dump in favor of plain passes Alessandro Di Federico 2019-01-17 21:49:29 +01:00
  • 14476a354c Fix function isolation test dependencies Alessandro Di Federico 2019-01-17 17:46:47 +01:00
  • 25bf160910 Improve detection of stack alignment in SA Alessandro Di Federico 2019-01-17 09:14:01 +01:00
  • 9ad7a7dbab Minor fixes to StackAnalysis' logging Alessandro Di Federico 2019-01-17 09:13:23 +01:00
  • 05b1833ee6 Add ExternalJumpsHandlerBlock to BlockType Alessandro Di Federico 2019-01-17 08:54:39 +01:00
  • ef708e9912 Let --debug-log work without main involvement Alessandro Di Federico 2019-01-17 08:52:26 +01:00
  • 9985ff5fb6 Drop const in FunctionsSummary-related code Alessandro Di Federico 2019-01-16 18:23:04 +01:00
  • e9b4b8edf1 Use stack analysis in RDA Alessandro Di Federico 2018-12-04 08:51:53 +01:00
  • 98c99e9406 Make StackAnalysis::getClobbered const Alessandro Di Federico 2018-12-04 08:50:04 +01:00
  • bd09716534 FCI: provide a custom CFG Alessandro Di Federico 2018-12-04 08:36:13 +01:00
  • 9cbcef37d5 Disallow #if [01] Alessandro Di Federico 2019-01-17 08:35:51 +01:00
  • 13d057b478 Improved indentation Andrea Gussoni 2019-01-17 17:31:31 +01:00
  • 5245cd71e5 Added assertions Andrea Gussoni 2019-01-17 17:29:39 +01:00
  • c9ca88c12f Improved debugging information Andrea Gussoni 2019-01-17 17:27:33 +01:00
  • d6ba63aa71 Fix SCS successor node connection Andrea Gussoni 2019-01-17 17:25:11 +01:00
  • b0d3190c4c Moved the getID method to the CFG class Andrea Gussoni 2019-01-17 17:20:55 +01:00
  • 659441eb85 Introduced useless dummy simplification Andrea Gussoni 2019-01-17 17:16:43 +01:00
  • b08da2c045 Serializing CFGs to file Andrea Gussoni 2019-01-17 17:05:10 +01:00
  • 46aafe13fc Avoid absorption of nodes already in other SCS Andrea Gussoni 2019-01-16 14:56:39 +01:00
  • da299f3095 EnforceCFGCombingPass: inject dummy nodes in CFG Pietro Fezzardi 2019-01-16 12:53:08 +01:00
  • 828a1ad6de Add EnforceCFGCombingPass Pietro Fezzardi 2019-01-16 11:49:32 +01:00
  • dc430e446b RegionCFGTree.h: add missing #include<set> Pietro Fezzardi 2019-01-15 16:42:19 +01:00
  • 5805679ead RestructureCFGPass: fix use of include directory Pietro Fezzardi 2019-01-15 15:34:33 +01:00
  • 4e941de03a LivenessAnalysis: fix successor_size method Pietro Fezzardi 2019-01-15 12:54:19 +01:00
  • 68425a71ca Use consistent naming in include guards in headers Pietro Fezzardi 2019-01-15 11:17:39 +01:00
  • a478de61e5 Create a separate include directory Pietro Fezzardi 2019-01-15 11:14:20 +01:00
  • d6a4fcdfb5 Add LivenessAnalysisPass::getLiveIn() method Pietro Fezzardi 2019-01-15 10:57:36 +01:00
  • 020aeb9497 LivenessAnalysis: split in multiple files Pietro Fezzardi 2019-01-15 00:27:23 +01:00
  • d729ba21ac Moved reachability inside revng-c Andrea Gussoni 2019-01-14 16:14:00 +01:00
  • b66774bcd2 Connect the successor of an SCS only once Andrea Gussoni 2019-01-14 15:21:36 +01:00
  • 06717a6185 Import RestructureCFGPass from revamb branch Andrea Gussoni 2019-01-14 11:20:14 +01:00
  • 5fac4e9eaf Add Liveness Analysis Pietro Fezzardi 2019-01-11 19:03:52 +01:00
  • 1110587416 First implementation of the DecompilationPass Pietro Fezzardi 2019-01-05 10:23:27 +01:00
  • 034621e2ec monotone-framework.py: restore Python 3 compat Alessandro Di Federico 2019-01-09 22:31:26 +01:00
  • 1fb8b1a6ec Merge branch 'feature/improve-performance' Alessandro Di Federico 2018-12-17 08:51:45 +01:00
  • 7ead8d68cc Collect simple literals (return addresses) as JTs Alessandro Di Federico 2018-12-13 20:17:18 +01:00
  • 9ce805415b Improve Reaching Definitions Analysis Alessandro Di Federico 2018-12-11 22:14:33 +01:00
  • dbb25bef2c Apply information about CSV aliasing Pietro Fezzardi 2018-12-14 20:33:01 +01:00
  • ef2d16db15 Install headers and libraries Alessandro Di Federico 2018-12-05 11:03:22 +01:00
  • 8877946be3 Handle codeless programs Alessandro Di Federico 2018-12-13 20:02:23 +01:00
  • ac5dea43b4 Reduce exceptions thrown (e.g., due to tail calls) Alessandro Di Federico 2018-12-11 17:16:01 +01:00