Создайте общую версию кода C из максимально возможного количества кода.
Это может показаться пустой тратой времени, если вы хотите, чтобы окончательная реализация была в сборке с ручной оптимизацией, но на самом деле это не так.
При оптимизации для новой цели вы можете переписать ключевые разделы в сборке, но, имея версию C, вы, во-первых, очень быстро сможете запустить и выполнить работу с каждой новой целью, а во-вторых, сможете получить читаемую справочную реализацию для сравнения с оптимизация, которая сделает вашу жизнь намного, намного проще.
Более того, осознайте, что нет необходимости в всем , чтобы быть сборкой, оптимизированной вручную, только в тех фрагментах кода, на которых тратится больше всего времени / которые занимают больше всего места. Писать весь большой проект в сборке - это почти наверняка напрасная трата усилий. Остальные могут просто оставаться общими C. Но вы не будете знать, на чем следует сосредоточиться, пока ваша версия C не будет запущена и вы не сможете ее профилировать. Вы можете догадаться, но вы не будете знать.