Важная информация

User Tag List

Страница 17 из 18 ПерваяПервая ... 131415161718 ПоследняяПоследняя
Показано с 161 по 170 из 180

Тема: 32-разрядный процессор, полностью совместимый с архитектурой PDP-11.

  1. #161
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,001
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    не разводить флуд.
    Флуд - были Ваши рассуждения - что компилятор С++ лучше, когда компилятора нет.

  2. #162
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Последний раз редактировалось shurik-ua; 24.08.2018 в 20:02.

  3. #163
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Флуд - были Ваши рассуждения - что компилятор С++ лучше
    Читайте внимательнее - речь изначально шла о том, что стандарт C++ включает в себя синтаксически улучшенный вариант языка C, поэтому некоторым (включая меня) удобнее писать C-программы на этом "правильном C". Т.е. речь не про то, что у C++ компилятор лучше, а про то, что синтаксис удобнее. Что же до генерации кода, то по определению - для любого алгоритма существует единственное оптимальное отображение в процессорный код, поэтому чем ближе результат компиляции некого конкретного алгоритма любым компилятором с любого языка к такому оптимальному процессорному коду - тем лучше компилятор. От компилируемого языка это зависит лишь в той степени, насколько просто реализовать для этого конкретного языка оптимальную компиляцию.

    Моя практика реальной разработки компилятора для С-подмножества C++ однозначно говорит за то, что для C-подмножества C++ это ничуть не сложнее, чем для ванильного C.

  4. #164
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,001
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Моя практика реальной разработки компилятора для С-подмножества C++ однозначно говорит за то, что для C-подмножества C++ это ничуть не сложнее,
    Цитата Сообщение от Patron Посмотреть сообщение
    потому что разработка эффективного оптимизирующего кросс-компилятора C++ для PDP-11 на базе LLVM застряла на полдороге.
    Да да, видно

  5. #165
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Да да, видно
    Об том и речь. Нет разницы, какой вариант C компилируется, "ванильный" или "правильный" - архитектура LLVM настолько заточена под современные реалии, что сделать на базе LLVM нормальный кросс-компилятор для PDP-11 весьма непросто.

    Для примера. Самый простенький и невинный (по затратам на преодоление) затык с LLVM возникает из-за того, что весь движок LLVM построен в априорном предположении, будто индексная адресация выгоднее автоинкрементной.

    Чтобы заставить LLVM использовать автоинкрементную адресацию в нулевом базовом блоке - нужно изменить относительно немного кода компилятора и результат компиляции такой:

    Код:
    extern "C" void post_5ac( int x, int *pi16 )
    {
        *pi16++ = x;
        *pi16++ = x;
        *pi16++ = x;
    }
    Код:
    	.globl	post_5ac                ; -- Begin function post_5ac
    post_5ac:                               ; @post_5ac
    ; BB#0:                                 ; %entry
    	Mov	R0, (R1)+
    	Mov	R0, (R1)+
    	Mov	R0, (R1)
    	Return
                                            ; -- End function

    Но чтобы заставить LLVM использовать автоинкрементную адресацию в нескольких базовых блоках подряд - нужно полностью переделать весьма большой кусок компилятора, на что у меня пока запала нет. А без этого результат плачевен:

    Код:
    extern "C" int post_6a( int x, int *pi16 )
    {
        x |= *pi16++;
        x |= *pi16++;
        x |= *pi16++;
    
        if( !x )
        {
            x += *pi16++;
            x += *pi16++;
            x += *pi16++;
        }
        else
        {
            x -= *pi16++;
            x -= *pi16++;
            x -= *pi16++;
        }
    
        return x;
    }
    Код:
    	.globl	post_6a                 ; -- Begin function post_6a
    post_6a:                                ; @post_6a
    ; BB#0:                                 ; %entry
    	Mov	R1, R2
    	BiS	(R2)+, R0
    	BiS	(R2)+, R0
    	BiS	(R2)+, R0
    	Tst	R0
    	BEq	.LBB0_2
    ; BB#1:                                 ; %if.else
    	SUB	(R2), R0
    	SUB	8(R1), R0
    	SUB	10(R1), R0
    	Br	.LBB0_3
    .LBB0_2:                                ; %if.then
    	ADD	(R2), R0
    	ADD	8(R1), R0
    	ADD	10(R1), R0
    .LBB0_3:                                ; %if.end
    	Return
                                            ; -- End function
    Последний раз редактировалось Patron; 24.08.2018 в 21:06.

  6. #166
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,001
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    сделать на базе LLVM нормальный кросс-компилятор для PDP-11 весьма непросто
    Негодный инструмент - плачевный результат.

  7. #166
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #167
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Негодный инструмент - плачевный результат.
    Это лучшее, что есть на сегодня среди открытых компиляторных архитектур.
    Последний раз редактировалось Patron; 25.08.2018 в 11:02.

  9. Этот пользователь поблагодарил Patron за это полезное сообщение:

    Oleg N. Cher (20.01.2024)

  10. #168
    Guru Аватар для MiX
    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,065
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    74
    Поблагодарили
    62 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    что стандарт C++ включает в себя синтаксически улучшенный вариант языка C
    Напомнило первоапрельскую шутку.

  11. #169
    Banned
    Регистрация
    31.01.2017
    Адрес
    г. Санкт-Петербург
    Сообщений
    673
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А зачем эмулировать если можно сделать реплику ?

  12. #170
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    371
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Daniil Chislov 86 Посмотреть сообщение
    А зачем эмулировать если можно сделать реплику ?
    например : эмулятор можно заставить работать на очень большой скорости, но по правилам оригинала (натива), т.о. компилятор macro-11 (запущенный на эмуляторе) собирает исполняемые файлы в нативной среде за пару секунд, а реплика? Будет работать 1 в 1 с оригиналом? Это можно и от хорошего эмулятора получить.
    Последний раз редактировалось hobot; 27.08.2018 в 22:39.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

Страница 17 из 18 ПерваяПервая ... 131415161718 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Fuzebox - полностью открытая 8-битная игровая приставка
    от CityAceE в разделе Зарубежные компьютеры
    Ответов: 22
    Последнее: 09.03.2017, 15:35
  2. MSX и EPSON-совместимый принтер
    от ipkin в разделе MSX
    Ответов: 3
    Последнее: 01.12.2011, 19:23
  3. Ответов: 5
    Последнее: 20.06.2011, 03:18
  4. Собрал комп полностью своими руками
    от scooby-do в разделе Зарубежные компьютеры
    Ответов: 14
    Последнее: 27.06.2009, 11:25
  5. Куплю ZX совместимый компьютер.
    от billgilbert81 в разделе Барахолка (архив)
    Ответов: 19
    Последнее: 05.12.2008, 20:33

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •