Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d177a68
Add floating-point solving support (in-process z3 solver)
ChengyuSong Jul 23, 2026
482bae3
tests: make fp_arith.c and fcmp.c lit-testable
ChengyuSong Jul 23, 2026
ed2f7eb
tests: drop redundant KO_CC=clang-18 from FP tests
ChengyuSong Jul 23, 2026
519965b
tests: remove stale commented KO_CC=clang-14 lines from lit.cfg
ChengyuSong Jul 23, 2026
dc5bdbc
Model FP predicate/rounding libcalls; fix FP->int cast boundary
ChengyuSong Jul 23, 2026
c2f44ff
tests: add fastgen RUN blocks and RGD-path harness (afltest)
ChengyuSong Jul 23, 2026
fad8664
rgd: floating-point support in the out-of-process solver path
ChengyuSong Jul 23, 2026
6ab3b69
tests: restore fp challenges to direct-comparison (i2s-solvable) form
ChengyuSong Jul 23, 2026
b1f9660
i2s: heuristically solve direct FP comparisons (solve_fcmp)
ChengyuSong Jul 23, 2026
6370aa5
i2s: invert single FP arith-with-constant in solve_fcmp
ChengyuSong Jul 24, 2026
4ca66ec
feat(fp): invert exp/log/pow transcendentals with i2s
ChengyuSong Jul 24, 2026
be611e2
jigsaw: add floating-point support (JIT + gradient descent)
ChengyuSong Jul 24, 2026
1e07625
jigsaw: extend in-solver i2s heuristic to floating-point comparisons
ChengyuSong Jul 24, 2026
6ca2846
i2s: anchor FP solve_fcmp candidates to the operand's Read offset
ChengyuSong Jul 24, 2026
068b1db
Close out jigsaw FP distance rescale + solve_icmp offset anchor
ChengyuSong Jul 24, 2026
ab770de
jigsaw: fix two unsound-SAT bugs (over-width shift/div0, signed compare)
ChengyuSong Jul 24, 2026
246cbe2
driver: add smttest, a standalone SMT-LIB2 front-end for the jigsaw s…
ChengyuSong Jul 24, 2026
6d5436e
jigsaw: iterate i2s to a fixpoint with lateral moves for byte-assembly
ChengyuSong Jul 24, 2026
e26bd31
jigsaw: fix Grad::clear() no-op and val_sum() overflow
ChengyuSong Jul 24, 2026
1d179f4
jigsaw: clean finite-difference probes in partial_derivative
ChengyuSong Jul 24, 2026
31f5195
jigsaw: skip irrelevant bytes + backtrack overshoot in gradient descent
ChengyuSong Jul 24, 2026
2c0fbd7
jigsaw: fix signed/unsigned JIT-function-reuse collision (unsound SAT)
ChengyuSong Jul 25, 2026
f5c901f
jigsaw: raise default budget to 10000 and macro-guard search diagnostics
ChengyuSong Jul 25, 2026
d4230ff
jigsaw: decorrelate restart PRNG across parallel workers
ChengyuSong Jul 26, 2026
c93b2a0
jigsaw: rounding-mode-correct FP arithmetic (SMT-LIB directed rounding)
ChengyuSong Jul 26, 2026
0636374
fp: capture constrained-FP rounding modes in real-symex instrumentation
ChengyuSong Jul 26, 2026
4bd0fb7
test(fp): lit test for directed-rounding capture + solver rounding model
ChengyuSong Jul 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions compiler/ko_clang.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,9 +259,11 @@ static void add_taint_pass() {
alloc_printf("-taint-abilist=%s/zlib_abilist.txt", obj_path);
}

if (getenv("KO_TRACE_FP")) {
// Floating-point tracing is on by default (ClTraceFP defaults to true).
// KO_NO_TRACE_FP explicitly disables it.
if (getenv("KO_NO_TRACE_FP")) {
cc_params[cc_par_cnt++] = "-mllvm";
cc_params[cc_par_cnt++] = "-taint-trace-float-pointer";
cc_params[cc_par_cnt++] = "-taint-trace-float-pointer=false";
}

if (getenv("KO_NO_TRACE_BOUND")) {
Expand Down
29 changes: 29 additions & 0 deletions driver/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,35 @@ target_link_libraries(FGTest PRIVATE
)
install (TARGETS FGTest DESTINATION ${SYMSAN_BIN_DIR})

## standalone driver for testing the RGD (out-of-process) solver path
add_executable(AFLTest afltest.cpp)
set_target_properties(AFLTest PROPERTIES OUTPUT_NAME "afltest" CXX_STANDARD 17)
target_include_directories(AFLTest PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../runtime
)
target_link_libraries(AFLTest PRIVATE
launcher
rgd-parser
rgd-solver
${Z3_LIBRARY}
rt
)
install (TARGETS AFLTest DESTINATION ${SYMSAN_BIN_DIR})

## standalone SMT-LIB2 front-end for the RGD jigsaw solver (bridges smtlib2 ->
## rgd::SearchTask directly, no target execution / launcher / parser needed)
add_executable(SMTTest smttest.cpp)
set_target_properties(SMTTest PROPERTIES OUTPUT_NAME "smttest" CXX_STANDARD 17)
target_include_directories(SMTTest PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../runtime
)
target_link_libraries(SMTTest PRIVATE
rgd-solver
${Z3_LIBRARY}
rt
)
install (TARGETS SMTTest DESTINATION ${SYMSAN_BIN_DIR})

if (DEFINED AFLPP_PATH)
add_subdirectory(aflpp)
endif()
Expand Down
Loading
Loading