Extension of bin2llvmir with optimization of X87 FPU stack.#715
Merged
PeterMatula merged 110 commits intoavast:masterfrom May 28, 2020
Merged
Extension of bin2llvmir with optimization of X87 FPU stack.#715PeterMatula merged 110 commits intoavast:masterfrom
PeterMatula merged 110 commits intoavast:masterfrom
Conversation
…ests of new supported instruction.
…t test of new supported instructions.
…est of new supported instructions.
…tions and unit test of new supported instructions.
…est of new supported instructions.
…test of new supported instructions.
…ix register indexing bug.
…conventions and different architectures of x86. Tests for architectures x86-16, x86-32, x86-64. Tests for calling conventions cdecl, pascal, fastcall, stdcall, thiscall.
…nstruction to llvmir. FBLD, FBSTP, FNCLEX, FLDCW, FLDENV, FRSTOR, FNSAVE, FNSTENV, FNSTCW, FXSAVE, FXSAVE64, FXRSTOR, FXRSTOR64, FPTAN, FPATAN, FSCALE, FXTRACT, FXAM.
Tests for calling conventions: - x86-16: cdecl, pascal, fastcall, watcom, unknown - x86-32: cdecl, stdcall, pascal, fastcall, thiscall, watcom, unknown - x86-64
…with floating point return value (definitions and calls). Analyzed calling conventions: - x86-16: cdecl, pascal, fastcall, watcom, unknown - x86-32: cdecl, stdcall, pascal, fastcall, thiscall, watcom, unknown - x86-64
…with branches and loops.
…cks (branches, loops).
… basic block TOP tracking. Include OpenCV lib.
…r simple and nested BasicBlocks, floating-point return values of functions. TODO: Import OpenCV library to Cmake build. Implement special calling conventions for 32bit architecture.
…est of new supported instructions.
…test of new supported instructions.
# Conflicts: # src/capstone2llvmir/x86/x86.cpp # src/config/calling_convention.cpp # tests/capstone2llvmir/x86_tests.cpp
…brary is used to math computation with matricies for X86 FPU analyze optimization.
…est of new supported instructions.
…tion. Optimization now validate value of FPU top at the end of every terminating block and detects unsupported states.
…rrect merge commit
…e bugs when TOP is changed but not stored etc.
…w tests - fix bugs revealed by integration tests analyze.
…n testing and improve performance of this optimization.
…nalysis # Conflicts: # include/retdec/bin2llvmir/optimizations/x87_fpu/x87_fpu.h # src/bin2llvmir/optimizations/x87_fpu/x87_fpu.cpp # tests/bin2llvmir/optimizations/x87_fpu/x87_fpu_test.cpp
Contributor
Author
|
Actual state fixes previous bugs but the Eigen library is still included in the sources. As soon as possible, I change it to project dependency to install. |
…cture because this feature has depreaced due to unacceptable performance lack.
…e of algorithm. Replace SVD decomposition for QR decomosition due to performance increase. Fix includes for eigen library that is now external project. Optimize matrix rank calculation.
Collaborator
|
Run TeamCity builds. |
…erimental � Conflicts: � LICENSE-THIRD-PARTY � cmake/deps.cmake � include/retdec/bin2llvmir/optimizations/x87_fpu/x87_fpu.h � src/bin2llvmir/CMakeLists.txt � src/bin2llvmir/optimizations/x87_fpu/x87_fpu.cpp
…se RetDec do not use them anymore.
…d in the build directory.
…nalysis # Conflicts: # cmake/deps.cmake
Collaborator
|
run tc tests |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reimplementation of current FPU stack analysis. The new design supports dependencies of CFG for functions and BasicBlocks. Optimization uses 3rd party library Eigen for calculation with matrices. The new component also includes a set of unit tests.