Size: a a a

Compiler Development

2020 February 10

VK

Vladimir Kazanov in Compiler Development
Alexander Tchitchigin
Что поделать? Чего (не) знаю, то и предлагаю. 🤷‍♀️
Ну, статический анализ - область большая, можно для начала поинтересоваться, что ииенно человеку нужно:-)
источник

VK

Vladimir Kazanov in Compiler Development
А вы сразу флеммингом по голове.... ;-)
источник

AT

Alexander Tchitchigin in Compiler Development
Vladimir Kazanov
Ну, статический анализ - область большая, можно для начала поинтересоваться, что ииенно человеку нужно:-)
Вот мне и кажется, что книжка покрывает базово все основные ветви, а дальше можно углубляться по желанию и необходимости.
источник

VK

Vladimir Kazanov in Compiler Development
Oleg Stotsky
Порекомендуйте, плиз, книгу по статическому анализу для начинающего.
Поищите static program analysis от Moeller. Это небольшая бесплатная вводная книга, по интернету pdf бродит.
источник

VK

Vladimir Kazanov in Compiler Development
Alexander Tchitchigin
Вот мне и кажется, что книжка покрывает базово все основные ветви, а дальше можно углубляться по желанию и необходимости.
Ну, мне она показалась слишком брутальной в роли введения, у Меллера проще, да и бесплатно. У него еще неплохие лекции где-то есть в видео и слайдах.
источник

AT

Alexander Tchitchigin in Compiler Development
Vladimir Kazanov
Ну, мне она показалась слишком брутальной в роли введения, у Меллера проще, да и бесплатно. У него еще неплохие лекции где-то есть в видео и слайдах.
По хардкору вообще можно http://concrete-semantics.org/ 😃
источник

AT

Alexander Tchitchigin in Compiler Development
С другой стороны есть же прекрасная вводная https://plum-umd.github.io/abstracting-definitional-interpreters/
Правда, там трансформеры монад, что без Хаскеля вообще мозголомно...
источник

N

Nikolay in Compiler Development
Зачем в java используется выравние объектов , что бы размер их стал кратен 8 байтам ?
источник

AK

Andrei Kurosh in Compiler Development
это не фишка java, это архитектура процессоров такая
источник

N

Nikolay in Compiler Development
А зачем? В чем суть ?
источник

AK

Andrei Kurosh in Compiler Development
доступ к выровненным данным быстрее
источник

N

Nikolay in Compiler Development
А почему ? Что бы попадало на кэш линию ?
источник

AK

Andrei Kurosh in Compiler Development
The CPU accesses memory by a single memory word at a time. As long as the memory word size is at least as large as the largest primitive data type supported by the computer, aligned accesses will always access a single memory word. This may not be true for misaligned data accesses.
источник

E

EgorBo in Compiler Development
Nikolay
А почему ? Что бы попадало на кэш линию ?
оно всегда попадет, просто при выравнивании меньше шанс что ты вступишь ногой в кэшлайн баундери и тебя накажут злым пенальти
источник

AK

Andrei Kurosh in Compiler Development
источник

N

Nikolay in Compiler Development
Ну не совсем понятно. Вот лежит у меня там 2 переменные по байту . Итого 2 байта. Зачем выравнивать.
источник

VK

Vladimir Kazanov in Compiler Development
доступ к переменным всегда по адресу, кратном 8 байтам (для 64-битных процессоров). В  х86 при доступ к  некратным адресам будет медленней (или сильно медленней, если надо вытащить данные на границей кеш-линий). В некоторых архитектурах это вообще прерывание вызовет.
источник

IN

Ilya Neganov in Compiler Development
Ну справедливости ради, именно для байтовых доступов разницы нет почти на всех микроархитектурах. Для байтов, скорее, наоборот, выгоднее паковать в один кэшлайн. А вот для всего, что больше - уже да, пересечение границы линейки кэша - это минимум перф, максимум исключение
источник

E

EgorBo in Compiler Development
последние пару раз когда оптимизировал алгоритмы через симды, не увидел почти никакого буста от выравнивания векторов + aligned load вмето unaligned -_- ну может пару процентов, в пределах погрешности
источник

IN

Ilya Neganov in Compiler Development
Именно байты имеет смысл выравнивать на 8-16-32 если они используются для атомарных доступов. Вот тут да, можно много выгадать
источник