-
Notifications
You must be signed in to change notification settings - Fork 962
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extension of bin2llvmir with optimization of X87 FPU stack. #715
Merged
Conversation
This file contains 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
…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
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.
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
run tc tests |
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.