This patch: * removes the "default" opt level, on the basis that it has no definition and is referred to nowhere in the compiler. * renames the "fastest" level to "none". The resulting set of transformations is unchanged. * renames the "best" level to "speed_and_size". The resulting set of transformations is unchanged. * adds a new level, "speed". This is the same as "speed_and_size" except that it omits transformations aimed only at reducing code size. Currently it omits only the insn shrinking pass.
19 lines
500 B
Plaintext
19 lines
500 B
Plaintext
test shrink
|
|
set opt_level=speed_and_size
|
|
target x86_64
|
|
|
|
function %test_multiple_uses(i32 [%rdi]) -> i32 {
|
|
ebb0(v0: i32 [%rdi]):
|
|
[Op1rcmp_ib#7083,%rflags] v3 = ifcmp_imm v0, 0
|
|
[Op2seti_abcd#490,%rax] v1 = trueif eq v3
|
|
[RexOp2urm_noflags#4b6,%rax] v2 = bint.i32 v1
|
|
[Op1brib#70] brif eq v3, ebb1
|
|
[Op1jmpb#eb] jump ebb2
|
|
|
|
ebb2:
|
|
[Op1ret#c3] return v2
|
|
|
|
ebb1:
|
|
[Op2trap#40b] trap user0
|
|
}
|