-
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
Merged
Changes from 59 commits
Commits
Show all changes
110 commits
Select commit
Hold shift + click to select a range
28ccac1
capstone2llvmir/x86: Add support of x87 FISTPP instruction and unit t…
JurajHolub d507fba
capstone2llvmir/x86: Add support of x87 FCMOVEcc instructions and uni…
JurajHolub 701c661
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub 0efe91a
capstone2llvmir/x86: Add tests for x87 FPREM instructions.
JurajHolub fef24e5
capstone2llvmir/x86: Add support of x87 F2XM1, FYL2X, FYL2xP1 instruc…
JurajHolub 1d522ac
capstone2llvmir/x86: Add support of x87 FFREE instructions and unit t…
JurajHolub 3dd9ca6
capstone2llvmir/x86: Add support of x87 FNSTCW instructions and unit …
JurajHolub 4859af8
bin2llvmir/optimizations/x87_fpu: Add test for x87 fpu analysis and f…
JurajHolub 15af108
bin2llvmir/optimizations/x87_fpu: Fix test for x87 fpu analysis.
JurajHolub e683ee7
capstone2llvmir/x86.cpp: remove extra new lines
PeterMatula adee5c6
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula 21997de
capstone2llvmir/x86: Fix indention of new tests + comments.
JurajHolub b9d7e44
bin2llvmir/optimizations/x87_fpu: Create tests for different calling …
JurajHolub cc2aa2d
capstone2llvmir/x86: Unit tests and translation of all FPU capstone i…
JurajHolub 4f4f626
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub 55899e1
Merge branch 'master' into x87_fpu_analysis
JurajHolub 8963b7d
config: Include "watcom" calling convention.
JurajHolub c9beb9d
bin2llvmir/optimizations/x87_fpu: Tests for x87 FPU analyze.
JurajHolub aa32882
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for functions …
JurajHolub 291c55f
bin2llvmir/optimizations/x87_fpu: Tests for FPU register stack usage …
JurajHolub 13adddf
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for nested blo…
JurajHolub d4efe2e
bin2llvmir/optimizations/x87_fpu: Fix nested blocks analyze tests.
JurajHolub cb86706
bin2llvmir/optimizations/x87_fpu: Implement linear equation solver of…
JurajHolub c375846
bin2llvmir/optimizations/x87_fpu: FPU TOP optimization implemented fo…
JurajHolub 537691f
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub ec68227
capstone2llvmir/x86: Add support of x87 FNSTCW instructions and unit …
JurajHolub 4fc1c05
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula 60b8252
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub b3d7cf0
Merge branch 'master' into x87_fpu_analysis
JurajHolub 0201f2b
deps/eigen: Include third party library Eigen to cmake of project. Li…
JurajHolub 1fd9073
bin2llvmir/optimization/x87_fpu: Rewrite optimization with new Eigen …
JurajHolub be2bccf
tests/bin2llvmir: Refactor CMakeLists.txt
JurajHolub a9879e7
bin2llvmir/optimization/x87_fpu: Fix bux for X86-16bit calling conven…
JurajHolub 6d42194
bin2llvmir/optimizations/x87_fpu: Fix and improve FPU stack optimizat…
JurajHolub 73c6728
bin2llvmir/optimizations/x87_fpu: Fix major bug of overdetermined lin…
JurajHolub 39c24d3
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub 3f54011
capstone2llvmir/x86: Add support of x87 FNSTCW instructions and unit …
JurajHolub 5620549
bin2llvmir/optimizations/x87_fpu: Add test for x87 fpu analysis and f…
JurajHolub 111c952
bin2llvmir/optimizations/x87_fpu: Fix test for x87 fpu analysis.
JurajHolub 3a953ab
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula ac1c053
bin2llvmir/optimizations/x87_fpu: Create tests for different calling …
JurajHolub c6d17e0
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub 8de8460
bin2llvmir/optimizations/x87_fpu: Tests for x87 FPU analyze.
JurajHolub 11c14d4
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for functions …
JurajHolub 117d0b9
bin2llvmir/optimizations/x87_fpu: Tests for FPU register stack usage …
JurajHolub d351ef8
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for nested blo…
JurajHolub 4082a3c
bin2llvmir/optimizations/x87_fpu: Fix nested blocks analyze tests.
JurajHolub 798b2c6
bin2llvmir/optimizations/x87_fpu: Implement linear equation solver of…
JurajHolub c1ee4b5
bin2llvmir/optimizations/x87_fpu: FPU TOP optimization implemented fo…
JurajHolub 29c0a18
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub 32bb195
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula e503a8a
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub 1a99125
deps/eigen: Include third party library Eigen to cmake of project. Li…
JurajHolub 5b8c593
bin2llvmir/optimization/x87_fpu: Rewrite optimization with new Eigen …
JurajHolub 6319379
tests/bin2llvmir: Refactor CMakeLists.txt
JurajHolub 5b59804
bin2llvmir/optimization/x87_fpu: Fix bux for X86-16bit calling conven…
JurajHolub 453e893
bin2llvmir/optimizations/x87_fpu: Fix and improve FPU stack optimizat…
JurajHolub 9b9f69b
bin2llvmir/optimizations/x87_fpu: Fix major bug of overdetermined lin…
JurajHolub 600b87a
Merge remote-tracking branch 'origin/x87_fpu_analysis' into x87_fpu_a…
JurajHolub e288168
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub 6960703
capstone2llvmir/x86: Add support of x87 FNSTCW instructions and unit …
JurajHolub 0600fb3
bin2llvmir/optimizations/x87_fpu: Add test for x87 fpu analysis and f…
JurajHolub 73d71fb
bin2llvmir/optimizations/x87_fpu: Fix test for x87 fpu analysis.
JurajHolub d7500ef
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula 2379b9e
bin2llvmir/optimizations/x87_fpu: Create tests for different calling …
JurajHolub 70ea0e4
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub 00cbc4c
bin2llvmir/optimizations/x87_fpu: Tests for x87 FPU analyze.
JurajHolub b623069
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for functions …
JurajHolub a9238f6
bin2llvmir/optimizations/x87_fpu: Tests for FPU register stack usage …
JurajHolub 7e2c210
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for nested blo…
JurajHolub 3dd7cfe
bin2llvmir/optimizations/x87_fpu: Fix nested blocks analyze tests.
JurajHolub 448fa14
bin2llvmir/optimizations/x87_fpu: Implement linear equation solver of…
JurajHolub f86d61f
bin2llvmir/optimizations/x87_fpu: FPU TOP optimization implemented fo…
JurajHolub bfb09d1
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub 8309b66
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula a34c8fa
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub 3f31ebe
deps/eigen: Include third party library Eigen to cmake of project. Li…
JurajHolub a6f1869
bin2llvmir/optimization/x87_fpu: Rewrite optimization with new Eigen …
JurajHolub 37e5fa1
tests/bin2llvmir: Refactor CMakeLists.txt
JurajHolub 01f5c9e
bin2llvmir/optimization/x87_fpu: Fix bux for X86-16bit calling conven…
JurajHolub 1046cd5
bin2llvmir/optimizations/x87_fpu: Fix and improve FPU stack optimizat…
JurajHolub 69e27b7
bin2llvmir/optimizations/x87_fpu: Fix major bug of overdetermined lin…
JurajHolub b3f2cc2
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub e277138
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula cb42ca1
bin2llvmir/optimizations/x87_fpu: Create tests for different calling …
JurajHolub 89fad4f
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub 614da9d
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula f1bfe04
bin2llvmir/optimization/x87_fpu: Fix bux for X86-16bit calling conven…
JurajHolub 0d8eb65
bin2llvmir/optimizations/x87_fpu: Fix and improve FPU stack optimizat…
JurajHolub ecc7fd2
src/capstone2llvmir/x86: Fix and remove duplicities caused by my inco…
JurajHolub 8dc8d65
src/bin2llvmir/x87_fpu: Fix bug - remove forgotten declaration.
JurajHolub 08c4d19
src/bin2llvmir/x87_fpu: Fix bug - make analyze more accurate: fix som…
JurajHolub 9286671
tests/bin2llvmir/optimizations/x87_fpu: Rewrite actual and include ne…
JurajHolub a79edaa
src/bin2llvmir/optimizations/x87_fpu: Fix bugs revealed by integratio…
JurajHolub 65f63a5
Merge remote-tracking branch 'origin/x87_fpu_analysis' into x87_fpu_a…
JurajHolub fa3468a
src/capstoce2llvmir/x86: Fix merge conflict.
JurajHolub 0391552
deps/eigen: Remove Eigen library from deps and moves it into external…
JurajHolub e70d143
tests/bin2llvmir/optimizations/x87_fpu: Remove tests to 16bit archite…
JurajHolub bc097dc
src/bin2llvmir/optimizations/x87_fpu: Improve and optimize performanc…
JurajHolub ea2c64e
Merge branch 'master' into x87_fpu_analysis
JurajHolub c79dceb
bin2llvmir/optimization/x87_fpu: Set max performance ceil.
JurajHolub 60c0ce0
Merge branch 'master' of https://github.com/avast/retdec into x87_exp…
JurajHolub 208bcbf
Add External Eigen to cmake/deps.
JurajHolub 4a68a7f
deps/eigen: Update CMake build.
JurajHolub 0f83fd0
deps/eigen: Update CMake build.
JurajHolub 4788944
bin2llvmir/x87_fpu: Update analyze and tests -> remove FPU TAGS becau…
JurajHolub db3137b
Merge branch 'master' of https://github.com/avast/retdec into x87-exp…
JurajHolub 6e7831d
deps/eigen: Fix eigen INTERFACE_INCLUDE_DIRECTORIES which was prefixe…
JurajHolub 5e65cfc
Merge remote-tracking branch 'origin/x87_fpu_analysis' into x87_fpu_a…
JurajHolub 69bf9da
Merge branch 'master' into x87_fpu_analysis
PeterMatula File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
|
||
add_library(eigen INTERFACE) | ||
target_include_directories(eigen | ||
SYSTEM INTERFACE | ||
${CMAKE_CURRENT_LIST_DIR}/include | ||
) | ||
target_compile_definitions(eigen | ||
INTERFACE | ||
EIGNEN_HAS_STDSTRING=1 | ||
EIGNEN_HAS_CXX11_RVALUE_REFS=1 | ||
) |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
## Eigen | ||
|
||
A clone of only the needed sources (headers) of [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page). | ||
Upstream commit: `6601abce868e3284b4829a4fbf91eefaa0d704af` | ||
|
||
## License | ||
|
||
Eigen is [Free Software](http://www.gnu.org/philosophy/free-sw.html). Starting from the 3.1.1 version, it is licensed under the [MPL2](http://www.mozilla.org/MPL/2.0), which is a simple weak copyleft license. Common questions about the MPL2 are answered in the official [MPL2 FAQ](http://www.mozilla.org/MPL/2.0/FAQ.html). |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
// This file is part of Eigen, a lightweight C++ template library | ||
// for linear algebra. | ||
// | ||
// This Source Code Form is subject to the terms of the Mozilla | ||
// Public License v. 2.0. If a copy of the MPL was not distributed | ||
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
|
||
#ifndef EIGEN_CHOLESKY_MODULE_H | ||
#define EIGEN_CHOLESKY_MODULE_H | ||
|
||
#include "Core" | ||
#include "Jacobi" | ||
|
||
#include "src/Core/util/DisableStupidWarnings.h" | ||
|
||
/** \defgroup Cholesky_Module Cholesky module | ||
* | ||
* | ||
* | ||
* This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices. | ||
* Those decompositions are also accessible via the following methods: | ||
* - MatrixBase::llt() | ||
* - MatrixBase::ldlt() | ||
* - SelfAdjointView::llt() | ||
* - SelfAdjointView::ldlt() | ||
* | ||
* \code | ||
* #include <Eigen/Cholesky> | ||
* \endcode | ||
*/ | ||
|
||
#include "src/Cholesky/LLT.h" | ||
#include "src/Cholesky/LDLT.h" | ||
#ifdef EIGEN_USE_LAPACKE | ||
#ifdef EIGEN_USE_MKL | ||
#include "mkl_lapacke.h" | ||
#else | ||
#include "src/misc/lapacke.h" | ||
#endif | ||
#include "src/Cholesky/LLT_LAPACKE.h" | ||
#endif | ||
|
||
#include "src/Core/util/ReenableStupidWarnings.h" | ||
|
||
#endif // EIGEN_CHOLESKY_MODULE_H | ||
/* vim: set filetype=cpp et sw=2 ts=2 ai: */ |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
// This file is part of Eigen, a lightweight C++ template library | ||
// for linear algebra. | ||
// | ||
// This Source Code Form is subject to the terms of the Mozilla | ||
// Public License v. 2.0. If a copy of the MPL was not distributed | ||
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
|
||
#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H | ||
#define EIGEN_CHOLMODSUPPORT_MODULE_H | ||
|
||
#include "SparseCore" | ||
|
||
#include "src/Core/util/DisableStupidWarnings.h" | ||
|
||
extern "C" { | ||
#include <cholmod.h> | ||
} | ||
|
||
/** \ingroup Support_modules | ||
* \defgroup CholmodSupport_Module CholmodSupport module | ||
* | ||
* This module provides an interface to the Cholmod library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package. | ||
* It provides the two following main factorization classes: | ||
* - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization. | ||
* - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial). | ||
* | ||
* For the sake of completeness, this module also propose the two following classes: | ||
* - class CholmodSimplicialLLT | ||
* - class CholmodSimplicialLDLT | ||
* Note that these classes does not bring any particular advantage compared to the built-in | ||
* SimplicialLLT and SimplicialLDLT factorization classes. | ||
* | ||
* \code | ||
* #include <Eigen/CholmodSupport> | ||
* \endcode | ||
* | ||
* In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies. | ||
* The dependencies depend on how cholmod has been compiled. | ||
* For a cmake based project, you can use our FindCholmod.cmake module to help you in this task. | ||
* | ||
*/ | ||
|
||
#include "src/CholmodSupport/CholmodSupport.h" | ||
|
||
#include "src/Core/util/ReenableStupidWarnings.h" | ||
|
||
#endif // EIGEN_CHOLMODSUPPORT_MODULE_H | ||
|
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just so we don't forget: We should discuss with @PeterMatula whether it would be possible to use an external project and download the sources of Eigen when building RetDec so we don't need to have all the 3rd-party sources in our repo. We do this for many of our dependencies.