Revision c596c6bb21e6e478e0b46159ef182ccce6a695cb authored by Konrad Kohbrok on 16 April 2018, 13:51:58 UTC, committed by Konrad Kohbrok on 16 April 2018, 13:51:58 UTC
1 parent 68d3953
Raw File
Makefile
include ../Makefile.include

TWEETNACL_HOME ?= $(HACL_HOME)/other_providers/tweetnacl
OPENSSL_HOME   ?= $(HACL_HOME)/other_providers/openssl
LIBSODIUM_HOME ?= $(HACL_HOME)/other_providers/libsodium/src/libsodium

# Default snapshot. Variable can be overwritten to choose a snapshot
SNAPSHOT_DIR = snapshots/hacl-c

#
# Compiler and settings
#

CC=gcc
CCOPTS = -Ofast -march=native -mtune=native -m64 -fwrapv -fomit-frame-pointer -funroll-loops --param max-unroll-times=20
CFLAGS = $(CCOPTS) -I $(OPENSSL_HOME) -I $(OPENSSL_HOME)/include -I $(OPENSSL_HOME)/crypto/ec \
	-I $(OPENSSL_HOME)/crypto/include -I $(OPENSSL_HOME)/crypto/poly1305 \
	-I $(LIBSODIUM_HOME)/include -L$(LIBSODIUM_HOME)/lib \
	-I $(TWEETNACL_HOME) -I .

CC_BASE = $(CC) $(CFLAGS) -I $(HACL_HOME)/$(SNAPSHOT_DIR) -I ./test-files $(ADDITIONAL_FILES) \
	test-files/hacl_test_utils.c $(TWEETNACL_HOME)/tweetnacl.c $(HACL_HOME)/$(SNAPSHOT_DIR)/kremlib.c $(HACL_HOME)/$(SNAPSHOT_DIR)/testlib.c

PERF_LIBS=$(OPENSSL_HOME)/libcrypto.a -lsodium -lpthread -ldl

CCOMP?=ccomp
FSTARH_CCOMP=$(HACL_HOME)/snapshots/hacl-c-compcert/FStar.c
CCOMP_OPTS=-O3 -DKRML_NOUINT128 -DKRML_NOSTRUCT_PASSING -finline-asm -D_BSD_SOURCE -D_DEFAULT_SOURCE

#
# Unit tests
#

all:
	$(MAKE) test-code         # Previously 'make -C ../code test'
	$(MAKE) test-vale         # Previously not tested
	$(MAKE) test-vale-asm     # Previously 'make compile-vale'
	$(MAKE) -C openssl-engine
	$(MAKE) unit-tests-hacl-c  # Previously 'make unit-tests' for 'hacl-c'
#	$(MAKE) unit-tests-32-hacl-c  # Previously 'make unit-tests' for 'hacl-c'

# Improvements
# $(MAKE) all-unit-tests
# $(MAKE) all-unit-tests-32
# $(MAKE) test-perf-all
# $(MAKE) test-pneutube     # Previously 'make extract-c-apps'

# Note
# 'extract-all-c' 'ct' 'verify-all' 'extract-specs' are now invoked at top-level

#
# Tests for specifications
#

test-specs:
	$(MAKE) -C ../specs clean
	$(MAKE) -C ../specs

#
# Tests for code
#

test-code:
	$(MAKE) -C ../code clean
	$(MAKE) -C ../code test

#
# Tests for Vale
#

test-vale:
	$(MAKE) -C ../secure_api krml-test-vale.exe
	$(MAKE) -C ../secure_api krml-test-hacl.exe

test-vale-asm:
	$(MAKE) -C ../secure_api/vale/asm/

#
# Tests for applications
#

test-pneutube:
	$(MAKE) -C ../apps/pneutube tube-star.exe

#
# Building snapshots
#

.snapshot-all:
	$(MAKE) -C .. snapshots-all

#
# Standalone unit-tests
#

# 64-bit unit tests
unit-tests:
	$(MAKE) -C $(HACL_HOME)/$(SNAPSHOT_DIR) libhacl.so
	cp $(HACL_HOME)/$(SNAPSHOT_DIR)/libhacl.so .
ifeq ($(SNAPSHOT_DIR),snapshots/hacl-c-compcert)
	$(CCOMP) $(CCOMP_OPTS) $(FSTARH_CCOMP) \
		-I $(HACL_HOME)/$(SNAPSHOT_DIR) -I $(HACL_HOME)/snapshots/kremlib -I test-files/ -I $(TWEETNACL_HOME) \
		$(TWEETNACL_HOME)/tweetnacl.c test-files/hacl_test_utils.c test-files/unit_tests.c \
		libhacl.so -o unit_tests.exe
else
	$(CC) $(CCOPTS) \
		-I $(HACL_HOME)/$(SNAPSHOT_DIR) -I $(HACL_HOME)/snapshots/kremlib -I test-files/ -I $(TWEETNACL_HOME) \
		$(TWEETNACL_HOME)/tweetnacl.c test-files/hacl_test_utils.c test-files/unit_tests.c \
		libhacl.so -o unit_tests.exe
endif
	./unit_tests.exe
	rm libhacl.so

# 32-bit unit tests
unit-tests-32:
	$(MAKE) -C $(HACL_HOME)/$(SNAPSHOT_DIR) libhacl32.so
	cp $(HACL_HOME)/$(SNAPSHOT_DIR)/libhacl32.so .
ifeq ($(SNAPSHOT_DIR),snapshots/hacl-c-compcert)
	$(CCOMP) $(CCOMP_OPTS) $(FSTARH_CCOMP) \
		-I $(HACL_HOME)/$(SNAPSHOT_DIR) -I ../snapshots/kremlib -I test-files/ -I $(TWEETNACL_HOME) \
		$(TWEETNACL_HOME)/tweetnacl.c test-files/hacl_test_utils.c test-files/unit_tests.c \
		libhacl32.so -o unit_tests32.exe
else
	$(CC) $(CFLAGS) -DKRML_NOUINT128  \
		-I $(HACL_HOME)/$(SNAPSHOT_DIR) -I ../snapshots/kremlib -I test-files/ -I $(TWEETNACL_HOME) \
		$(TWEETNACL_HOME)/tweetnacl.c test-files/hacl_test_utils.c test-files/unit_tests.c \
		libhacl32.so -o unit_tests32.exe
endif
	./unit_tests32.exe
	rm libhacl32.so

unit-tests-hacl-c:
	$(MAKE) unit-tests SNAPSHOT_DIR=snapshots/hacl-c

unit-tests-gcc:
	$(MAKE) unit-tests SNAPSHOT_DIR=snapshots/snapshot-gcc

unit-tests-gcc-unrolled:
	$(MAKE) unit-tests SNAPSHOT_DIR=snapshots/snapshot-gcc-unrolled

unit-tests-ccomp:
	$(MAKE) unit-tests CC=$(CCOMP) CCOPTS="$(CCOMP_OPTS)" ADDITIONAL_FILES=$(FSTARH_CCOMP) SNAPSHOT_DIR=snapshots/hacl-c-compcert

# # FIXME: setup tests for MSVC
# unit-tests-msvc:
# 	$(MAKE) unit-tests SNAPSHOT_DIR=snapshots/snapshot-msvc

all-unit-tests:
	$(MAKE) unit-tests-hacl-c
	$(MAKE) unit-tests-gcc
	$(MAKE) unit-tests-gcc-unrolled
	# JK: FIXME, run unit-tests from CompCert
	# $(MAKE) unit-tests-ccomp
	# $(MAKE) unit-tests-msvc


unit-tests-32-hacl-c:
	$(MAKE) unit-tests-32 SNAPSHOT_DIR=snapshots/hacl-c

unit-tests-32-gcc:
	$(MAKE) unit-tests-32 SNAPSHOT_DIR=snapshots/snapshot-gcc

unit-tests-32-gcc-unrolled:
	$(MAKE) unit-tests-32 SNAPSHOT_DIR=snapshots/snapshot-gcc-unrolled

unit-tests-32-ccomp:
	$(MAKE) unit-tests-32 CC=$(CCOMP) CCOPTS="$(CCOMP_OPTS)" ADDITIONAL_FILES=$(FSTARH_CCOMP) SNAPSHOT_DIR=snapshots/hacl-c-compcert

# # FIXME: setup tests for MSVC
# unit-tests-32-msvc:
# 	$(MAKE) unit-tests-32 SNAPSHOT_DIR=snapshots/snapshot-msvc

all-unit-tests-32:
	$(MAKE) unit-tests-32-hacl-c
	$(MAKE) unit-tests-32-gcc
	$(MAKE) unit-tests-32-gcc-unrolled
	# JK: FIXME, run unit-tests from CompCert
	# $(MAKE) unit-tests-32-ccomp
	# $(MAKE) unit-tests-32-msvc

#
# Targets for all primitives
#

test-unit-all: test-unit-poly1305 test-unit-chacha20 test-unit-chacha20-vec128 test-unit-salsa20 test-unit-curve25519 test-unit-secretbox test-unit-box test-unit-aead test-unit-ed25519 # test-unit-sha512

test-perf-all: test-perf-poly1305 test-perf-chacha20 test-perf-salsa20 test-perf-curve25519 test-perf-secretbox test-perf-box test-perf-aead test-perf-ed25519 # test-perf-chacha20-vec128 test-perf-sha512

test-all-%: .snapshot-all
	$(MAKE) CC="$(GCC) $(GCC_OPTS)" SNAPSHOT_DIR="snapshots/hacl-c" test-$*.exe && ./test-$*.exe
	@rm test-$*.exe
	$(MAKE) CC="$(GCC) $(GCC_OPTS)" SNAPSHOT_DIR="snapshots/snapshot-gcc" test-$*.exe && ./test-$*.exe
	@rm test-$*.exe
	$(MAKE) CC="$(GCC) $(GCC_OPTS)" SNAPSHOT_DIR="snapshots/snapshot-gcc-unrolled" test-$*.exe && ./test-$*.exe
	@rm test-$*.exe
	$(MAKE) CC="ccomp" CCOPTS="$(CCOMP_OPTS)" ADDITIONAL_FILES=$(FSTARH_CCOMP) SNAPSHOT_DIR="snapshots/hacl-c-compcert" test-$*.exe && ./test-$*.exe
	@rm test-$*.exe
#	$(MAKE) CC="$(MSVC) $(MSVC_OPTS)" SNAPSHOT_DIR="snapshots/snapshot-msvc" test-poly.exe; ./test-$*.exe

test-all-perf: $(addprefix test-all-, poly1305 chacha20 chacha20-vec128 salsa20 curve25519 secretbox box aead ed25519 sha512)

#
# Tests for Poly1305
#

test-poly1305.exe:
	$(CC_BASE) $(HACL_HOME)/$(SNAPSHOT_DIR)/Poly1305_64.c test-files/test-poly.c -o test-poly1305.exe \
		$(PERF_LIBS)

test-unit-poly1305: test-poly1305.exe
	./test-poly1305.exe unit-test

test-perf-poly1305: test-poly1305.exe
	./test-poly1305.exe perf

#
# Tests for Salsa20
#

test-salsa20.exe:
	$(CC_BASE) $(HACL_HOME)/$(SNAPSHOT_DIR)/Salsa20.c test-files/test-salsa.c -o test-salsa20.exe $(PERF_LIBS)

test-unit-salsa20: test-salsa20.exe
	./test-salsa20.exe unit-test

test-perf-salsa20: test-salsa20.exe
	./test-salsa20.exe perf

#
# Tests for Chacha20
#

test-chacha20.exe:
	$(CC_BASE) $(HACL_HOME)/$(SNAPSHOT_DIR)/Chacha20.c test-files/test-chacha.c -o test-chacha20.exe $(PERF_LIBS)

test-unit-chacha20: test-chacha20.exe
	./test-chacha20.exe unit-test

test-perf-chacha20: test-chacha20.exe
	./test-chacha20.exe perf

#
# Tests for Chacha20 (Vectorized over 128bit)
#

define EMPTY_SCRIPT
#!/bin/bash
echo No vectors with CompCert
endef
export EMPTY_SCRIPT

test-chacha20-vec128.exe:
ifeq ($(CC),ccomp)
	@echo "Skipping tests for vectorized chacha20 as CompCert does not support it"
	@echo "$$EMPTY_SCRIPT" > test-chacha20-vec128.exe
	@chmod +x test-chacha20-vec128.exe
else
	$(CC_BASE) -lpthread $(LIBDL) $(LIBWINSOCK) \
	$(HACL_HOME)/$(SNAPSHOT_DIR)/Chacha20_Vec128.c test-files/test-chacha-vec128.c -o test-chacha20-vec128.exe $(PERF_LIBS)
endif

test-unit-chacha20-vec128: test-chacha20-vec128.exe
ifeq ($(CC),ccomp)
	@echo "No performance tests for vectorized chacha20 with CompCert"
else
	./test-chacha20-vec128.exe unit-test
endif

test-perf-chacha20-vec128: test-chacha20-vec128.exe
ifeq ($(CC),ccomp)
	@echo "No unit tests for vectorized chacha20 with CompCert"
else
	./test-chacha20-vec128.exe perf
endif

#
# Tests for Curve25519 (64bit)
#

test-curve25519.exe:
	$(CC_BASE) -lpthread $(LIBDL) $(HACL_HOME)/$(SNAPSHOT_DIR)/Curve25519.c test-files/test-curve.c -o test-curve25519.exe $(PERF_LIBS)

test-unit-curve25519: test-curve25519.exe
	./test-curve25519.exe unit-test

test-perf-curve25519: test-curve25519.exe
	./test-curve25519.exe perf

#
# Tests for SHA2_512
#

test-sha512.exe:
	$(CC_BASE) -lpthread $(LIBDL) $(HACL_HOME)/$(SNAPSHOT_DIR)/SHA2_512.c test-files/test-sha512.c -o test-sha512.exe $(PERF_LIBS)

test-unit-sha512: test-sha512.exe
	./test-sha512.exe unit-test

test-perf-sha512: test-sha512.exe
	./test-sha512.exe perf

#
# Tests for Ed25519
#

test-ed25519.exe:
	$(CC_BASE) -lpthread $(LIBDL) $(HACL_HOME)/$(SNAPSHOT_DIR)/SHA2_512.c $(HACL_HOME)/$(SNAPSHOT_DIR)/Ed25519.c test-files/test-ed25519.c -o test-ed25519.exe $(PERF_LIBS)

test-unit-ed25519: test-ed25519.exe
	./test-ed25519.exe unit-test

test-perf-ed25519: test-ed25519.exe
	./test-ed25519.exe perf

#
# Tests for the SecretBox API
#

test-secretbox.exe:
	$(CC) $(CFLAGS) -c $(HACL_HOME)/$(SNAPSHOT_DIR)/Salsa20.c     -o Salsa20.o
	$(CC) $(CFLAGS) -c $(HACL_HOME)/$(SNAPSHOT_DIR)/Poly1305_64.c -o Poly1305_64.o
	$(CC) $(CFLAGS) -c $(HACL_HOME)/$(SNAPSHOT_DIR)/Curve25519.c  -o Curve25519.o
	$(CC_BASE) Salsa20.o Poly1305_64.o Curve25519.o \
		$(HACL_HOME)/$(SNAPSHOT_DIR)/Hacl_Policies.c $(HACL_HOME)/$(SNAPSHOT_DIR)/NaCl.c test-files/test-secretbox.c -o test-secretbox.exe $(PERF_LIBS)

test-unit-secretbox: test-secretbox.exe
	./test-secretbox.exe unit-test

test-perf-secretbox: test-secretbox.exe
	./test-secretbox.exe perf

#
# Test for the Box API
#

test-box.exe:
	$(CC) $(CFLAGS) -c $(HACL_HOME)/$(SNAPSHOT_DIR)/Salsa20.c     -o Salsa20.o
	$(CC) $(CFLAGS) -c $(HACL_HOME)/$(SNAPSHOT_DIR)/Poly1305_64.c -o Poly1305_64.o
	$(CC) $(CFLAGS) -c $(HACL_HOME)/$(SNAPSHOT_DIR)/Curve25519.c  -o Curve25519.o
	$(CC_BASE) Salsa20.o Poly1305_64.o Curve25519.o \
		$(HACL_HOME)/$(SNAPSHOT_DIR)/Hacl_Policies.c $(HACL_HOME)/$(SNAPSHOT_DIR)/NaCl.c test-files/test-box.c -o test-box.exe $(PERF_LIBS)

test-unit-box: test-box.exe
	./test-box.exe unit-test

test-perf-box: test-box.exe
	./test-box.exe perf

#
# Tests for the AEAD API
#

test-aead.exe:
	$(CC) $(CFLAGS) -c $(HACL_HOME)/$(SNAPSHOT_DIR)/Chacha20.c         -o Chacha20.o
	$(CC) $(CFLAGS) -c $(HACL_HOME)/$(SNAPSHOT_DIR)/AEAD_Poly1305_64.c -o AEAD_Poly1305_64.o
	$(CC_BASE) -lpthread $(LIBDL) $(LIBWINSOCK) Chacha20.o AEAD_Poly1305_64.o \
		$(HACL_HOME)/$(SNAPSHOT_DIR)/Hacl_Policies.c $(HACL_HOME)/$(SNAPSHOT_DIR)/Chacha20Poly1305.c test-files/test-aead.c -o test-aead.exe $(PERF_LIBS)

test-unit-aead: test-aead.exe
	./test-aead.exe unit-test

test-perf-aead: test-aead.exe
	./test-aead.exe perf

#
# Additionnal targets
#

clean:
	rm -rf *~ *.o *.exe


# lib:
# 	$(CC) $(CFLAGS) \
# 	  Salsa20.c -c -o Salsa20.o
# 	$(CC) $(CFLAGS) \
# 	  Chacha20.c -c -o Chacha20.o
# 	$(CC) $(CFLAGS) \
# 	  Poly1305_64.c -c -o Poly1305_64.o
# 	$(CC) $(CFLAGS) \
# 	  AEAD_Poly1305_64.c -c -o AEAD_Poly1305_64.o
# 	$(CC) $(CFLAGS) \
# 	  SHA2_512.c -c -o SHA2_512.o
# 	$(CC) $(CFLAGS) \
# 	  Ed25519.c -c -o Ed25519.o
# 	$(CC) $(CFLAGS) \
# 	  Curve25519.c -c -o Curve25519.o
# 	$(CC) $(CFLAGS) \
# 	  Chacha20Poly1305.c -c -o Chacha20Poly1305.o
# 	$(CC) -shared  $(CFLAGS) \
# 	  Salsa20.o Poly1305_64.o Chacha20.o AEAD_Poly1305_64.o Chacha20Poly1305.o SHA2_512.o Ed25519.o Curve25519.o kremlib.c Hacl_Policies.c NaCl.c \
# 	  -o libhacl.so

# lib-test: lib
# 	$(CC)  $(CFLAGS) \
# 	  -I $(OPENSSL_HOME)/crypto/include -I $(OPENSSL_HOME)/crypto/poly1305 \
# 	  hacl_test_utils.c \
# 	  -I $(TWEETNACL_HOME) $(TWEETNACL_HOME)/tweetnacl.c \
# 	  testlib.c test-poly.c -o test-poly.exe \
# 	  -lsodium $(OPENSSL_HOME)/libcrypto.a libhacl.so
# 	$(CC)  $(CFLAGS) \
# 	  hacl_test_utils.c \
# 	  -I $(TWEETNACL_HOME) $(TWEETNACL_HOME)/tweetnacl.c \
# 	  testlib.c test-salsa.c -o test-salsa.exe \
# 	  -lsodium $(OPENSSL_HOME)/libcrypto.a libhacl.so
# 	$(CC)  $(CFLAGS) \
# 	  -I $(OPENSSL_HOME)/include -I $(OPENSSL_HOME)/crypto/poly1305 -I ../../other_providers/tweetnacl \
# 	  hacl_test_utils.c \
# 	  ../../other_providers/tweetnacl/tweetnacl.c testlib.c test-chacha.c -o test-chacha.exe \
# 	   $(OPENSSL_HOME)/libcrypto.a -lsodium -lpthread $(LIBDL) libhacl.so
# 	$(CC)  $(CFLAGS) \
# 	  hacl_test_utils.c \
# 	  -I $(TWEETNACL_HOME) $(TWEETNACL_HOME)/tweetnacl.c \
# 	  testlib.c test-secretbox.c -o test-secretbox.exe \
# 	  -lsodium $(OPENSSL_HOME)/libcrypto.a libhacl.so
# 	$(CC)  $(CFLAGS) \
# 	  testlib.c hacl_test_utils.c test-aead.c -o test-aead.exe \
# 	  -lsodium  $(OPENSSL_HOME)/libcrypto.a $(OPENSSL_HOME)/libssl.a -lpthread $(LIBDL) libhacl.so
# 	$(CC)  $(CFLAGS) \
# 	  -I $(OPENSSL_HOME) -I $(OPENSSL_HOME)/include -I $(OPENSSL_HOME)/crypto/ec \
# 	  hacl_test_utils.c \
# 	  -I $(TWEETNACL_HOME) $(TWEETNACL_HOME)/tweetnacl.c \
# 	  testlib.c test-curve.c -o test-curve.exe \
# 	  $(OPENSSL_HOME)/libcrypto.a $(OPENSSL_HOME)/libssl.a -lsodium -lpthread $(LIBDL) libhacl.so
# 	$(CC)  $(CFLAGS) \
# 	  hacl_test_utils.c \
# 	  -I $(TWEETNACL_HOME) $(TWEETNACL_HOME)/tweetnacl.c \
# 	  testlib.c test-box.c -o test-box.exe -lsodium  libhacl.so
# 	./test-chacha.exe
# 	./test-salsa.exe
# 	./test-poly.exe
# 	./test-secretbox.exe
# 	./test-aead.exe
# 	./test-curve.exe
# 	./test-box.exe


# test-snapshot-hacl-c:
# 	$(MAKE) -C .. snapshots/snapshot-hacl
# 	$(MAKE) -C ../snapshots/snapshot-hacl CC="$(GCC) $(GCC_OPTS)" test

# test-snapshot-ccomp:
# 	$(MAKE) -C .. snapshots/hacl-c-compcert
# 	$(MAKE) -C ../snapshots/hacl-c-compcert CC=ccomp CCOPTS="-O3 -DKRML_NOUINT128 -DKRML_NOSTRUCT_PASSING -finline-asm -D_BSD_SOURCE -D_DEFAULT_SOURCE" test

# test-snapshot-gcc:
# 	$(MAKE) -C .. snapshots/snapshot-gcc
# 	$(MAKE) -C ../snapshots/snapshot-gcc CC="$(GCC) -fno-tree-vectorize $(ENABLE_LTO)" CCOPTS="-Ofast -march=native -mtune=native -m64 -fwrapv -fomit-frame-pointer -funroll-loops " test

# test-snapshot-gcc-unrolled:
# 	$(MAKE) -C .. snapshots/snapshot-gcc-unrolled
# 	$(MAKE) -C ../snapshots/snapshot-gcc-unrolled CC="$(GCC) -fno-tree-vectorize $(ENABLE_LTO)" CCOPTS="-Ofast -march=native -mtune=native -m64 -fwrapv -fomit-frame-pointer -funroll-loops " test

#
# Performance tests
#

# echo-perf-ccomp:
# 	$(shell (echo -e "Benchmarking results with ccomp -O3 -DKRML_NOUINT128 -DKRML_NOSTRUCT_PASSING -finline-asm -D_BSD_SOURCE -D_DEFAULT_SOURCE\n\nAlgorithm       HACL(cy/b)      LibSodium(cy/b) OpenSSL(cy/b)   TweetNaCl(cy/b) HACL(us/b)      LibSodium(us/b) OpenSSL(us/b)   TweetNaCl(us/b) \n"; cat $(HACL_HOME)/snapshot-ccomp/bench.txt) > benchmark-compcert.txt)

# perf-ccomp:
# 	-$(MAKE) -B -C $(HACL_HOME)/snapshots/hacl-c-compcert CC=ccomp CCOPTS="-O3 -DKRML_NOUINT128 -DKRML_NOSTRUCT_PASSING -finline-asm -D_BSD_SOURCE -D_DEFAULT_SOURCE" perf
# 	$(MAKE) -B echo-perf-ccomp

# echo-perf-gcc:
# 	$(shell (echo -e "Benchmarking results with $(GCC) -fno-tree-vectorize $(ENABLE_LTO) -Ofast -march=native -mtune=native -m64 -fwrapv -fomit-frame-pointer -funroll-loops\n\nAlgorithm       HACL(cy/b)      LibSodium(cy/b) OpenSSL(cy/b)   TweetNaCl(cy/b) HACL(us/b)      LibSodium(us/b) OpenSSL(us/b)   TweetNaCl(us/b) \n"; cat snapshot-gcc/bench.txt) > benchmark-gcc.txt)

# perf-gcc:
# 	$(MAKE) -B -C snapshot-gcc CC="$(GCC) -fno-tree-vectorize $(ENABLE_LTO)" CCOPTS="-Ofast -march=native -mtune=native -m64 -fwrapv -fomit-frame-pointer -funroll-loops " perf
# 	$(MAKE) -B echo-perf-gcc

# echo-gcc-unrolled:
# 	$(shell (echo -e "Benchmarking results with $(GCC) -fno-tree-vectorize $(ENABLE_LTO) -Ofast -march=native -mtune=native -m64 -fwrapv -fomit-frame-pointer -funroll-loops with KreMLin loop unrolling\n\nAlgorithm       HACL(cy/b)      LibSodium(cy/b) OpenSSL(cy/b)   TweetNaCl(cy/b) HACL(us/b)      LibSodium(us/b) OpenSSL(us/b)   TweetNaCl(us/b) \n"; cat snapshot-gcc-unrolled/bench.txt) > benchmark-gcc-unrolled.txt)

# perf-gcc-unrolled:
# 	$(MAKE) -B -C snapshot-gcc-unrolled CC="$(GCC) -fno-tree-vectorize $(ENABLE_LTO)" CCOPTS="-Ofast -march=native -mtune=native -m64 -fwrapv -fomit-frame-pointer -funroll-loops " perf
# 	$(MAKE) -B echo-gcc-unrolled

# all-perf:
# 	$(MAKE) perf-gcc
# 	$(MAKE) perf-gcc-unrolled
# 	$(MAKE) perf-ccomp
back to top