aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Selectionaux.ml
Commit message (Collapse)AuthorAgeFilesLines
* k1c -> kvx changesDavid Monniaux2020-05-261-1/+1
|
* start implementing expect as exprDavid Monniaux2020-04-071-0/+1
|
* Merge tag 'v3.6' of https://github.com/AbsInt/CompCert into ↵David Monniaux2019-09-201-0/+2
|\ | | | | | | mppa-work-upstream-merge
| * AArch64 portXavier Leroy2019-08-081-0/+2
| | | | | | | | | | This commit adds a back-end for the AArch64 architecture, namely ARMv8 in 64-bit mode.
* | helpers broke compilationDavid Monniaux2019-07-191-5/+0
| |
* | Merge branch 'master' of https://github.com/AbsInt/CompCert into ↵David Monniaux2019-07-191-3/+3
|\| | | | | | | mppa-work-upstream-merge
| * Rename option `-ffavor-branchless` into `-Obranchless`Xavier Leroy2019-07-051-3/+3
| | | | | | | | | | Easier to type, and consistent with `-Os` (optimize for smaller code / optimize for fewer conditional branches).
* | finish merging master branch (fixes problems in glpk colamd)David Monniaux2019-06-061-4/+0
| |
* | Merge branch 'master' of https://github.com/AbsInt/CompCert into mppa-workDavid Monniaux2019-06-061-0/+13
|\|
| * If-conversion optimizationXavier Leroy2019-06-061-0/+113
| | | | | | | | | | | | | | | | | | | | Extends the instruction selection pass with an if-conversion optimization: some if/then/else statements are converted into "select" operations, which in turn can be compiled down to branchless instruction sequences if the target architecture supports them. The statements that are converted are of the form if (cond) { x = a1; } else { x = a2; } if (cond) { x = a1; } if (cond) { /*skip*/; } else { x = a2; } where a1, a2 are "safe" expressions, containing no operations that can fail at run-time, such as memory loads or integer divisions. A heuristic in backend/Selectionaux.ml controls when the optimization occurs, depending on command-line flags and the complexity of the "then" and "else" branches.
* start to have whole path if-conversion?David Monniaux2019-06-041-1/+1
|
* rm old select/selectl/selectf/selectfsDavid Monniaux2019-06-031-3/+3
|
* ARM: select is not supported at type TlongXavier Leroy2019-06-011-2/+3
|
* If-conversion optimizationXavier Leroy2019-05-311-0/+108
Extends the instruction selection pass with an if-conversion optimization: some if/then/else statements are converted into "select" operations, which in turn can be compiled down to branchless instruction sequences if the target architecture supports them. The statements that are converted are of the form if (cond) { x = a1; } else { x = a2; } if (cond) { x = a1; } if (cond) { /*skip*/; } else { x = a2; } where a1, a2 are "safe" expressions, containing no operations that can fail at run-time, such as memory loads or integer divisions. A heuristic in backend/Selectionaux.ml controls when the optimization occurs, depending on command-line flags and the complexity of the "then" and "else" branches.