Я решил свою проблему. Я использовал height: 1px;
для родителя. И height: 100%;
работает хорошо для ребенка сейчас. Я думаю, что в моем случае flex-grow: 1;
ведет себя так же, как и min-height: 100%;
, поэтому height: 1px;
помог мне решить мою проблему.
:host {
flex-grow: 1;
height: 1px; /* Required to make the child 100% of the flex-grow: 1 */
}
.jobs-table {
height: 100%;
}
LLVM обычно лучше, чем GCC на x86, но я не нашел никаких тестов для MIPS. Поскольку вы задаете этот вопрос, я предполагаю, что у вас есть доступ к машине MIPS, так почему бы вам не скомпилировать код Computer Language Benchmarks Game C с GCC и LLVM и посмотреть, что быстрее. Я предполагаю, что GCC будет, поскольку бэкэнд MIPS относительно новый, но код намного чище, и я ожидаю, что LLVM в конечном итоге победит.
Я не знаю о mips, я пробовал ARM, и код llvm был примерно на 10-20% медленнее, чем текущий gcc. Рассматриваемые тесты были основаны на zlib. декомпрессия сама по себе и компрессия затем декомпрессия. использовали как clang, так и llvm-gcc. Я предпочел clang, потому что -m32 действительно работает на 64-битном хосте. Для рассматриваемого теста я обнаружил, что НЕ использование -O2 (или -O3) дает самый быстрый код. соединил модули байт-кода в один большой модуль и выполнил одну опцию со стандартной оптимизацией, чтобы получить максимально быстрый код. llc был по умолчанию -O2, и это помогало производительности.
РЕДАКТИРОВАТЬ:
Интересный тест между gcc и llvm / clang для mips.
void dummy ( unsigned int );
void dowait ( void )
{
unsigned int ra;
for(ra=0x80000;ra;ra--) dummy(ra);
}
gcc произвел:
9d006034 <dowait>:
9d006034: 27bdffe8 addiu sp,sp,-24
9d006038: afb00010 sw s0,16(sp)
9d00603c: afbf0014 sw ra,20(sp)
9d006040: 3c100008 lui s0,0x8
9d006044: 02002021 move a0,s0
9d006048: 0f40180a jal 9d006028 <dummy>
9d00604c: 2610ffff addiu s0,s0,-1
9d006050: 1600fffd bnez s0,9d006048 <dowait+0x14>
9d006054: 02002021 move a0,s0
9d006058: 8fbf0014 lw ra,20(sp)
9d00605c: 8fb00010 lw s0,16(sp)
9d006060: 03e00008 jr ra
9d006064: 27bd0018 addiu sp,sp,24
И llvm после сборки
9d006034 <dowait>:
9d006034: 27bdffe8 addiu sp,sp,-24
9d006038: afbf0014 sw ra,20(sp)
9d00603c: afb00010 sw s0,16(sp)
9d006040: 3c020008 lui v0,0x8
9d006044: 34440000 ori a0,v0,0x0
9d006048: 2490ffff addiu s0,a0,-1
9d00604c: 0f40180a jal 9d006028 <dummy>
9d006050: 00000000 nop
9d006054: 00102021 addu a0,zero,s0
9d006058: 1600fffb bnez s0,9d006048 <dowait+0x14>
9d00605c: 00000000 nop
9d006060: 8fb00010 lw s0,16(sp)
9d006064: 8fbf0014 lw ra,20(sp)
9d006068: 27bd0018 addiu sp,sp,24
9d00606c: 03e00008 jr ra
9d006070: 00000000 nop
я говорю после сборки, потому что я видел, как gnu-as делает такие вещи
.globl PUT32
PUT32:
sw $a1,0($a0)
jr $ra
nop
и переупорядочивает сборку для меня:
9d00601c <PUT32>:
9d00601c: 03e00008 jr ra
9d006020: ac850000 sw a1,0(a0)
9d006024: 00000000 nop
Разница между кодом, созданным llvm и gcc, заключается в том, что инструкции, помещаемые в слот отложенного перехода. Я использовал clang и llc для вывода сборки, а затем использовал binutils, gnu as, чтобы создать двоичный файл. Так что любопытно, что для моего кода, собранного вручную:
ori $sp,$sp,0x2000
jal notmain
nop
он оптимизирован для меня:
9d006004: 0f401820 jal 9d006080 <notmain>
9d006008: 37bd2000 ori sp,sp,0x2000
9d00600c: 00000000 nop
, но сгенерированный код LLC
addiu $16, $4, -1
jal dummy
nop
не был
9d006048: 2490ffff addiu s0,a0,-1
9d00604c: 0f40180a jal 9d006028 <dummy>
9d006050: 00000000 nop