Как отмечают другие ответы, единственное ухудшение производительности, с которым вы можете столкнуться, это наличие одной и той же строки кэша в коде L1 и в данных L1, что приведет к потере некоторого пространства (и даже это не будет реальной проблемой, поскольку кэши заполняются в зависимости от того, что им нужно. Насколько я помню, нет никаких ограничений на наличие строки кэша в обоих кэшах).
Есть один момент, который игнорирует другой. Если вы планируете модифицировать данные, близкие к коду, вы, скорее всего, будете запускать сценарии самоизменяющегося кода, которые налагают очень серьезные штрафы.
Самомодифицирующийся код (SMC) сбрасывает весь конвейер вплоть до сохранения команды, предполагая, что любая из инструкций, которые выполняются спекулятивно, может быть неправильной из-за модификации. Глубокий конвейер большинства современных процессоров x86 означает, что каждая такая очистка влечет за собой штраф за много циклов, в которых ни одна инструкция не завершается.
Если вы убедитесь, что у вас нет магазинов рядом с сегментом кода, все будет в порядке.