45 Commits

Author SHA1 Message Date
vanhauser-thc
88cbaeb3e1 LLVM 17 bug workaround 2023-12-29 10:03:02 +01:00
hexcoder-
934a02f7f6 fix for issue #1916, iLLVM crash in split-floatingpoint-compares 2023-12-28 21:53:40 +01:00
vanhauser-thc
a46d27fad5 nits 2023-07-10 18:29:21 +02:00
vanhauser-thc
edd352612d code format 2023-06-24 09:30:09 +02:00
Dongjia "toka" Zhang
0616f368c8
fixing laf 2023-06-24 00:21:45 +02:00
vanhauser-thc
029e039cbc code format 2023-05-21 17:49:14 +02:00
vanhauser-thc
2f128e0dbd Revert "Merge pull request #1665 from devnexen/llvm_inst_mem_leaks"
This reverts commit e5f8c7a6129e42d1798fac1131c912b2eca8159c, reversing
changes made to e6a05382b83817b245da51bcba16be5df56eb283.
2023-03-06 10:13:35 +01:00
David CARLIER
bc61c90fb6 llvm instrumentation trying to delete all static data
at module end of pass with llvm_shutdown and is concurrent safe.
2023-03-04 14:46:38 +00:00
vanhauser-thc
53c19a807c code indent 2023-02-04 14:09:50 +01:00
David Carlier
afd2ea90df LLVM plugin 16+ support proposal.
- Lifting the standard to C++17.
- Beyond the cosmetic changes, it boils down to BasicBlock::getInstList being
  no longer available (and reading the header it is no accident).
2023-01-20 22:12:35 +00:00
vanhauser-thc
b847e0f414 clang format 14 2022-07-12 09:04:54 +02:00
vanhauser-thc
05080f32ee fixes 2022-07-07 11:10:12 +02:00
vanhauser-thc
e6f27c2645 add missing laf compare split predicates 2022-07-07 00:34:30 +02:00
vanhauser-thc
3d1be62c96 merge fixes 2022-03-17 16:39:40 +01:00
vanhauser-thc
f70760896c Revert "Merge branch 'newpm2' into dev"
This reverts commit fee1acf7e6096533f1aa8cd74035bed21c90fdf6, reversing
changes made to 675d17d737ee5dee88766d9c181567771592c94c.
2022-03-01 19:21:31 +01:00
vanhauser-thc
92db443635 Revert "remove new llvm pass manager :("
This reverts commit 55ed2a443c5c61baba37415d4087164454d8a2a8.
2022-02-20 19:51:43 +01:00
vanhauser-thc
75ac9c013c better instrumentlist filename detection 2021-12-14 10:15:09 +01:00
yuawn
5b9397f3dd code format 2021-12-11 10:20:40 +00:00
hexcoder-
82f1cf0735 add support for special values NotaNumber, MinusZero 2021-12-10 22:58:44 +01:00
vanhauser-thc
22827e8070 unify LLVM_VERSION_... usage 2021-12-01 11:38:55 +01:00
vanhauser-thc
55ed2a443c remove new llvm pass manager :( 2021-11-26 15:30:46 +01:00
vanhauser-thc
a0cc3dc101 llvm new passmanager fixes 2021-11-23 19:09:44 +01:00
hexcoder-
0e9b208949 Merge branch 'dev_newpm' into dev 2021-11-22 16:51:06 +01:00
vanhauser-thc
9325a4fcbb http->https 2021-11-06 10:28:22 +01:00
vanhauser-thc
bb8a4d71da format and remove warning 2021-10-18 20:53:54 +02:00
hexcoder-
1f2fa22dad make new pass manager interface compiler version dependent (>=7) 2021-10-16 14:37:54 +02:00
hexcoder-
c49b308794 switch PreservedAnalyses from none to all 2021-10-16 12:56:31 +02:00
hexcoder-
379c580658 converted split-switches-pass to new pass manager 2021-10-12 23:40:05 +02:00
hexcoder-
8e66289809 adapt compiler driver to laod new pass manager passes 2021-10-12 19:04:35 +02:00
hexcoder-
d0fc985e22 prototype compiles 2021-10-12 00:00:05 +02:00
vanhauser-thc
1fcb52957e fix frida 2021-06-24 09:59:00 +02:00
hexcoder-
35c23be973 adapt for LLVM 3.8.0 2021-06-11 21:34:56 +02:00
vanhauser-thc
581593ccab code format 2021-06-11 11:05:57 +02:00
Michael Rodler
0978c08f4b
split-comparison llvm pass refactor for smaller compilation times (and a small bug fix) (#964)
* Refactored split compare pass to be more efficient in LTO usage and allow splitting to other minimum bitwidths.

Efficiency: avoid looping over the whole llvm module N times, when once is also enough.

Bitwidth: Previously, due to fallthrough in switch-case, all comparisons were split to 8-bit, which might not be desirable e.g., 16 or 32 bit might be enough. So now all comparison are split until they are smaller or equal to the target bitwidth, which is controlled through the `AFL_LLVM_LAF_SPLIT_COMPARES_BITW` environment variable.

* fixed miscompilation due to incorrectly trying to split a signed comparison operator

* minor formatting updates and use IRBuilder when inserting multiple instructions

* added @hexcoder-'s test-int_cases.c to make test

* Avoid recursion; switch to smallvector in splitAndSimplify; use switch case for icmp type;

* Fixed issue when splitting < where the inverse comparison was not further split

* some cleanup
2021-06-11 11:02:29 +02:00
hexcoder-
a4cb2414d5 Revert "add test cases for splitting integer comparisons"
This reverts commit e0aa411647e1a525a3a0488d929ec71611388d54.
2021-06-09 21:29:41 +02:00
hexcoder-
e0aa411647 add test cases for splitting integer comparisons 2021-06-09 20:26:37 +02:00
vanhauser-thc
7b907e45ad we do not support 80 + 128 bit FP in laf 2021-03-05 19:55:29 +01:00
vanhauser-thc
41ad23041b remove warnings 2021-03-05 14:58:37 +01:00
vanhauser-thc
0ad56167c5 fix scan-build issues 2021-02-07 07:51:29 +01:00
van Hauser
d367b033a2 add missing FCMP_UEQ to split-compares-pass.so.cc 2021-01-04 23:08:46 +01:00
hexcoder-
7f4b3a460a more code cleanup (instrumentation) 2021-01-04 22:23:04 +01:00
van Hauser
f7d8643dc4 update clang-format to 11 2020-11-30 22:08:26 +01:00
van Hauser
abac876b3a better warn if skipping large dict 2020-10-29 10:45:32 +01:00
van Hauser
383cd487a2 small improvements to Marcel's patch, fix laf-intel + redqueen crashes 2020-09-29 15:02:57 +02:00
vanhauser-thc
996986bed5 first batch of changes 2020-09-05 12:11:48 +02:00