Вы возвращаете адрес локальной переменной, выделенной в стеке. Когда ваша функция вернется, хранилище для всех локальных переменных (например, wc
) освобождается и может быть немедленно перезаписано чем-то другим.
Чтобы исправить это, вы можете передать размер буфера на GetWC
, но тогда у вас есть тот же интерфейс, что и mbstowcs
. Или вы могли бы выделить новый буфер внутри GetWC
и вернуть указатель на него, оставив его вызывающему, чтобы освободить буфер.
Исходная страница предлагает детали о получении gcc для автоматической векторизации циклов, включая несколько примеров:
http://gcc.gnu.org/projects/tree-ssa/vectorization.html
, В то время как примеры являются большими, оказывается, что синтаксис для вызова тех опций с последним GCC, кажется, изменился немного, видел теперь:
, Таким образом, следующие опции будут работать на x86 микросхемы с SSE2, давая журнал циклов, которые были векторизованы:
gcc -O2 -ftree-vectorize -msse2 -ftree-vectorizer-verbose=5
Примечание, что-msse является также возможностью, но это только векторизует циклы с помощью плаваний, не, удваивается или ints.
Существует простой проход (промежуточное представление GCC) pass_vectorize
. Этот проход включает автоматическую векторизацию на уровне gimple.
Для включения автовекторизации (GCC V4.4.0) нам необходимо выполнить следующие шаги:
UNITS_PER_SIMD_WORD
. -modes.def
. Этот файл должен находиться в каталоге, в котором находятся другие файлы, содержащие описания компьютеров. (Согласно сценарию конфигурации. Если вы можете изменить сценарий, вы можете поместить файл в любой каталог, в котором он должен находиться). Режимы, которые должны учитываться при векторизации в соответствии с целевой архитектурой. Например, 4 слова будут составлять вектор, или восемь полуслов образуют вектор, или два двойных слова образуют вектор. Подробности этого нужно упомянуть в файле
. Например:
VECTOR_MODES (INT, 8); / * V8QI V4HI V2SI /
VECTOR_MODES (INT, 16); / V16QI V8HI V4SI V2DI /
VECTOR_MODES (FLOAT, 8); / V4HF V2SF * /
Создайте порт. Векторизацию можно включить с помощью параметров командной строки -O2 -ftree-vectorize
.