Вопросы по теме 'compiler-optimization'

Можно ли реализовать побитовые операторы с помощью целочисленной арифметики?
Я столкнулся с довольно своеобразной проблемой. Я работаю над компилятором для архитектуры, которая не поддерживает побитовые операции. Однако он обрабатывает знаковую 16-битную целочисленную арифметику, и мне было интересно, можно ли реализовать...
20497 просмотров

Развертка цикла и производительность кэша данных
Влияет ли развертывание цикла на производительность кэша данных? Это связано с домашним заданием, которое у меня есть, которое требует, чтобы я имитировал код на simplescalar sim-cache, чтобы проверить влияние разбиения цикла, доступа к памяти во...
1114 просмотров
schedule 16.11.2023

Как сделать CAF не CAF в Haskell?
Как мне превратить постоянную аппликативную форму в не постоянную аппликативную форму, чтобы она не сохранялась на протяжении всего срока действия программы? Я пробовал этот подход: -- | Dummy parameter to avoid creating a CAF twoTrues :: ()...
2475 просмотров
schedule 19.11.2022

Будет ли компилятор разворачивать этот цикл?
Я создаю многомерный вектор (математический вектор), в котором я разрешаю основные математические операции +,-,/,*,=. Шаблон принимает два параметра: один — это тип (int, float и т. д.), а другой — размер вектора. В настоящее время я применяю...
5511 просмотров

Как можно ускорить этот Java-код?
Я пытаюсь оценить, насколько быстро Java может выполнить простую задачу: прочитать огромный файл в память, а затем выполнить какие-то бессмысленные вычисления с данными. Учитываются все типы оптимизации. Будь то переписывание кода по-другому или...
792 просмотров

Почему поэлементное сложение в отдельных циклах намного быстрее, чем в комбинированном?
Предположим, что a1 , b1 , c1 и d1 указывают на память кучи, а мой числовой код имеет следующий основной цикл. const int n = 100000; for (int j = 0; j < n; j++) { a1[j] += b1[j]; c1[j] += d1[j]; } Этот цикл выполняется 10 000...
245946 просмотров

отчет о сбое с использованием оптимизации, отличной от -o0, после обновления xcode 4.5
Сегодня я обновился до Xcode 4.5 и больше не могу создавать функциональную сборку своего приложения. У меня не было проблем с созданием релиза с предыдущей версией Xcode. Я заметил, что он не падает, когда я запускаю его непосредственно на моем...
1070 просмотров

С++: установить логическое значение, только если оно не установлено
У меня есть код в моем приложении C++, который обычно делает это: bool myFlag = false; while (/*some finite condition unrelated to myFlag*/) { if (...) { // statements, unrelated to myFlag } else { // set myFlag to true,...
15226 просмотров

Будут ли компиляторы автоматически применять семантику перемещения в методе установки?
Я хочу знать, разрешено ли компилятору автоматически использовать конструктор перемещения для wstring в следующем методе установки (без явного вызова std::move): void SetString(std::wstring str) { m_str = str; // Will str be moved into m_str...
759 просмотров

Как быстрее всего проверить, делится ли данное число на 15?
Деление в процессоре занимает много времени, поэтому я хочу спросить, как быстрее всего проверить, делится ли число на какое-то другое число, в моем случае мне нужно проверить, делится ли число на 15. Также я просматривал Интернет и нашел забавные...
32397 просмотров

Изменение кода GCC. Как проверить добавление новых функций?
Я изучаю компиляторы и хочу внести собственные изменения в парсер и лексер GCC. Есть ли какой-либо инструмент для тестирования или какой-либо другой доступный способ, который позволяет мне изменить код gcc и соответственно протестировать его. Я...
135 просмотров

Расчет длины массива кеша Java в циклах
Допустим, у меня есть массив, который я хотел бы перебрать: int[] someArray = {1,2,3,4} for (int i = 0; i < someArray.length; i++) { // do stuff } Будет ли эта длина массива вычисляться с каждой итерацией или будет оптимизирована для...
1482 просмотров

Глобальные переменные без указателей в LLVM
Я пишу проход функции и хотел бы добавить глобальную переменную типа int на этапе инициализации для использования в фактической работе прохода. До сих пор у меня есть bool doInitialization(Module &M) { LLVMContext &c =...
1183 просмотров

Как не указывать точный порядок оценки аргумента функции помогает компилятору C & C++ генерировать оптимизированный код?
#include <iostream> int foo() { std::cout<<"foo() is called\n"; return 9; } int bar() { std::cout<<"bar() is called\n"; return 18; } int main() { std::cout<<foo()<<' '<<bar()<<'...
270 просмотров

Законно ли оптимизировать распределение памяти?
Дана программа: #include <cstdlib> #include <memory> bool test() { int* ptr = (int *)malloc(sizeof(int)); bool result = ptr != nullptr; free(ptr); return result; } bool test2() noexcept { int * ptr; try { ptr = new...
55 просмотров
schedule 19.10.2022

Есть ли способ установить Pandas с PyPy?
Я пытаюсь запустить некоторый код, используя PyPy , чтобы ускорить его. В моем коде используются кадры данных Pandas , поэтому я пытаюсь найти способ установить пакет... К сожалению, я не могу найти способ сделать это... поиск в Интернете дает...
10321 просмотров

Почему автовекторизация gcc не работает с матрицей свертки больше 3x3?
Я реализовал следующую программу для матрицы свертки #include <stdio.h> #include <time.h> #define NUM_LOOP 1000 #define N 128 //input or output dimention 1 #define M N //input or output dimention 2 #define P 5 //convolution...
430 просмотров

Почему он показывает puts при дизассемблировании, независимо от того, использую ли я printf или puts?
Я новичок в программировании и хотел спросить, почему я получаю тот же результат с другим кодом. На самом деле я читаю книгу, и пример в книге с printf (также на ассемблере). В этом случае он говорит <printf@plt> . Код ассемблера в книге...
389 просмотров

Разрешают ли ссылки const rvalue дополнительную оптимизацию для компилятора?
Модификатор const для параметра функции в C++ означает, что эта функция не может изменить значение параметра, но не гарантирует, что оно не может быть изменено кем-то другим во время выполнения функции. Таким образом, компилятор не может выполнять...
395 просмотров

Как именно sunkaddr используется в LLVM IR?
Как и для чего используется sunkaddr в LLVM IR. Я вижу, что он используется для векторизованного доступа к массиву в цикле for. Это регистр или операнд памяти?? И где я могу найти больше информации о sunkaddr.
54 просмотров
schedule 29.01.2024