From f7a08d4db77eaef1f6685c3fb263bb1cb1376deb Mon Sep 17 00:00:00 2001 From: Moon Flower Date: Fri, 28 Feb 2025 01:50:25 +0330 Subject: Added a (rather useless) profiler (and also linked list speed optimizations) --- Makefile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index b73f7a6..d079677 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ FLAGS = -Wno-incompatible-library-redeclaration -nostartfiles -SIZE_FLAGS = -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -s -fno-unwind-tables -fomit-frame-pointer -fno-asynchronous-unwind-tables -fno-ident -fvisibility=hidden -march=native -Wl,--build-id=none +SIZE_FLAGS = -Wl,--undefined=main -flto -Oz -ffunction-sections -fdata-sections -Wl,--gc-sections -Wl,--strip-all -finline-hint-functions -fno-builtin -Wl,--print-gc-sections -fno-unwind-tables -fomit-frame-pointer -fno-asynchronous-unwind-tables -fno-ident -fvisibility=hidden -march=native -Wl,--build-id=none all: m4 c test @@ -12,6 +12,16 @@ c: test: ./out.bin +# useless. it don't work. +# profile: +# clang -D__MOONSHINE_PROFILER main.c -o out.bin.profile $(FLAGS) $(SIZE_FLAGS) -fprofile-generate +# echo NOTE: Let the program run completely and provide it with typical inputs. +# ./out.bin.profile +# llvm-profdata merge -output=default.profdata profile.profraw +# rm -rf profile.profraw +# clang main.c -o out.bin.release $(FLAGS) $(SIZE_FLAGS) -fprofile-use +# rm -rf profile.profdata + release: clang main.c -o out.bin.release $(FLAGS) $(SIZE_FLAGS) -- cgit v1.2.3