Пример LLVM (ГПУ) (1157521)
Текст из файла
i = m - 1;
// %sub = sub nsw i32 %2, 1 ; %sub %t1 = sub nsw i32 %m, 1 ;
// store i32 %sub, i32* %i, align 4
j = n;
// %3 = load i32* %n.addr, align 4
// store i32 %3, i32* %j, align 4
v = a[n];
// %4 = load i32* %n.addr, align 4
// %idxprom = sext i32 %4 to i64
// %5 = load i32** %a.addr, align 8
// %arrayidx = getelementptr inbounds i32* %5, i64 %idxprom
// %6 = load i32* %arrayidx, align 4
// store i32 %6, i32* %v, align 4
while (1) {
// br label %while.body
//while.body: ; preds = %if.end, %if.end13
do
// br label %do.body
//do.body: ; preds = %do.cond, %while.body
i = i + 1;
// %7 = load i32* %i, align 4
// %add = add nsw i32 %7, 1
// store i32 %add, i32* %i, align 4
while (a[i] < v);
// br label %do.cond
//do.cond: ; preds = %do.body
// %8 = load i32* %i, align 4
// %idxprom1 = sext i32 %8 to i64
// %9 = load i32** %a.addr, align 8
// %arrayidx2 = getelementptr inbounds i32* %9, i64 %idxprom1
// %10 = load i32* %arrayidx2, align 4
// %11 = load i32* %v, align 4
// %cmp3 = icmp slt i32 %10, %11
// br i1 %cmp3, label %do.body, label %do.end
do
//do.end: ; preds = %do.cond
// br label %do.body4
//do.body4: ; preds = %do.cond6, %do.end
j = j - 1;
// %12 = load i32* %j, align 4
// %sub5 = sub nsw i32 %12, 1
// store i32 %sub5, i32* %j, align 4
while (a[j] > v);
//do.cond6: ; preds = %do.body4
// %13 = load i32* %j, align 4
// %idxprom7 = sext i32 %13 to i64
// %14 = load i32** %a.addr, align 8
// %arrayidx8 = getelementptr inbounds i32* %14, i64 %idxprom7
// %15 = load i32* %arrayidx8, align 4
// %16 = load i32* %v, align 4
// %cmp9 = icmp sgt i32 %15, %16
// br i1 %cmp9, label %do.body4, label %do.end10
if (i >= j)
//do.end10: ; preds = %do.cond6
// %17 = load i32* %i, align 4
// %18 = load i32* %j, align 4
// %cmp11 = icmp sge i32 %17, %18
// br i1 %cmp11, label %if.then12, label %if.end13
break;
//if.then12: ; preds = %do.end10
// br label %while.end
/* Обмен a[i], a[j] */
x = a[i];
//if.end13: ; preds = %do.end10
// %19 = load i32* %i, align 4
// %idxprom14 = sext i32 %19 to i64
// %20 = load i32** %a.addr, align 8
// %arrayidx15 = getelementptr inbounds i32* %20, i64 %idxprom14
// %21 = load i32* %arrayidx15, align 4
// store i32 %21, i32* %x, align 4
a[i] = a[j];
// %22 = load i32* %j, align 4
// %idxprom16 = sext i32 %22 to i64
// %23 = load i32** %a.addr, align 8
// %arrayidx17 = getelementptr inbounds i32* %23, i64 %idxprom16
// %24 = load i32* %arrayidx17, align 4
// %25 = load i32* %i, align 4
// %idxprom18 = sext i32 %25 to i64
// %26 = load i32** %a.addr, align 8
// %arrayidx19 = getelementptr inbounds i32* %26, i64 %idxprom18
// store i32 %24, i32* %arrayidx19, align 4
a[j] = x;
// %27 = load i32* %x, align 4
// %28 = load i32* %j, align 4
// %idxprom20 = sext i32 %28 to i64
// %29 = load i32** %a.addr, align 8
// %arrayidx21 = getelementptr inbounds i32* %29, i64 %idxprom20
// store i32 %27, i32* %arrayidx21, align 4
}
// br label %while.body
/* Обмен a[i], a[n] */
x = a[i];
//while.end: ; preds = %if.then12
// %30 = load i32* %i, align 4
// %idxprom22 = sext i32 %30 to i64
// %31 = load i32** %a.addr, align 8
// %arrayidx23 = getelementptr inbounds i32* %31, i64 %idxprom22
// %32 = load i32* %arrayidx23, align 4
// store i32 %32, i32* %x, align 4
a[i] = a[n];
// %33 = load i32* %n.addr, align 4
// %idxprom24 = sext i32 %33 to i64
// %34 = load i32** %a.addr, align 8
// %arrayidx25 = getelementptr inbounds i32* %34, i64 %idxprom24
// %35 = load i32* %arrayidx25, align 4
// %36 = load i32* %i, align 4
// %idxprom26 = sext i32 %36 to i64
// %37 = load i32** %a.addr, align 8
// %arrayidx27 = getelementptr inbounds i32* %37, i64 %idxprom26
// store i32 %35, i32* %arrayidx27, align 4
a[n] = x;
// %38 = load i32* %x, align 4
// %39 = load i32* %n.addr, align 4
// %idxprom28 = sext i32 %39 to i64
// %40 = load i32** %a.addr, align 8
// %arrayidx29 = getelementptr inbounds i32* %40, i64 %idxprom28
// store i32 %38, i32* %arrayidx29, align 4
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.