diff --git a/.clang-tidy b/.clang-tidy index b261324..fde73d1 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,6 +1,6 @@ --- -Checks: 'clang-diagnostic-*,clang-analyzer-*,-*,clang-analyzer-*,cert-*,-cert-err58-cpp,concurrency-*,llvm-*,performance-*,-readability-identifier-length*,readability-*' -WarningsAsErrors: 'clang-diagnostic-*,clang-analyzer-*,-*,clang-analyzer-*,cert-*,-cert-err58-cpp,concurrency-*,llvm-*,performance-*,readability-*' +Checks: '-*,clang-diagnostic-*,clang-analyzer-*,cert-*,-cert-err58-cpp,concurrency-*,llvm-*,performance-*,readability-*,-readability-identifier-length*' +WarningsAsErrors: '-*,clang-diagnostic-*,clang-analyzer-*,cert-*,-cert-err58-cpp,concurrency-*,llvm-*,performance-*,readability-*,-readability-identifier-length*' HeaderFilterRegex: '' AnalyzeTemporaryDtors: false FormatStyle: file diff --git a/builder b/builder index 7af4757..f8dba56 100755 --- a/builder +++ b/builder @@ -35,7 +35,8 @@ BUILD_DIR=$ROOT_DIR/build ME=$(cd "$(dirname "$0")/." >/dev/null 2>&1 ; pwd -P) CMAKEARGS_DEBUG=" -DCMAKE_BUILD_TYPE=Debug -DSERENE_WITH_MLIR_CL_OPTION=ON" -CMAKEARGS="-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DSERENE_CCACHE_DIR=$HOME/.ccache" +# Verbose -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON +CMAKEARGS=" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DSERENE_CCACHE_DIR=$HOME/.ccache" # The scan-build utility scans the build for bugs checkout the man page scanbuild="scan-build --force-analyze-debug-code --use-analyzer=$(which clang)" diff --git a/dev.org b/dev.org index f223d74..b2da925 100644 --- a/dev.org +++ b/dev.org @@ -68,6 +68,8 @@ Then here is the list or parsers that we have considered - [[https://www.hboehm.info/gc/][Boehm GC]] ** JIT - [[https://asmjit.com/][Machine code generator for C++]] +- https://www.youtube.com/watch?v=hILdR8XRvdQ&t=1511s + ** Optimizations - [[https://sunfishcode.github.io/blog/2018/10/22/Canonicalization.html][Canonicalization]] @@ -116,6 +118,10 @@ Imagine a type that is a subset of a Coll, and when we pass a Coll to its type constructor in destructs the input and construct the type base on the data that it needs only and leave the rest untouched +** Hot function optimization +it would be nice for the JIT to add instrumentation to the compiled +functions and detect hot functions similar to how javascript jits do it +and recompile those functions with more optimization passes * TODOs