Created
February 14, 2022 22:50
-
-
Save nickdesaulniers/7f143bae821d86603294bf00b8bd5074 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- slab.before.clang.txt 2022-02-14 14:40:46.324688583 -0800 | |
+++ slab.after.clang.txt 2022-02-14 14:40:27.824562293 -0800 | |
@@ -8,61 +8,51 @@ | |
push %r15 | |
push %r14 | |
push %rbx | |
- sub $0x10,%rsp | |
- mov %gs:0x28,%rax | |
- mov %rax,0x8(%rsp) | |
test %rdi,%rdi | |
- je <kmem_cache_free+0x55> | |
+ je <kmem_cache_free+0x36> | |
mov %rsi,%r14 | |
mov %rdi,%rbx | |
- mov 0x28(%rsp),%rsi | |
+ mov 0x18(%rsp),%rsi | |
mov 0x58(%rdi),%rcx | |
xchg %ax,%ax | |
- movq $0x0,(%rsp) | |
pushf | |
- pop (%rsp) | |
- mov (%rsp),%r15 | |
+ pop %r15 | |
cli | |
xchg %ax,%ax | |
mov %rbx,%rdi | |
mov %r14,%rsi | |
- call <kmem_cache_free+0x4b> | |
+ call <kmem_cache_free+0x2c> | |
test $0x200,%r15d | |
- je <kmem_cache_free+0x55> | |
+ je <kmem_cache_free+0x36> | |
sti | |
- mov %gs:0x28,%rax | |
- cmp 0x8(%rsp),%rax | |
- jne <kmem_cache_free+0x6f> | |
- add $0x10,%rsp | |
pop %rbx | |
pop %r14 | |
pop %r15 | |
ret | |
- call <kmem_cache_free+0x74> | |
- mov %gs:0x0(%rip),%eax # <kmem_cache_free+0x7b> | |
+ mov %gs:0x0(%rip),%eax # <kmem_cache_free+0x43> | |
mov %eax,%eax | |
- bt %rax,0x0(%rip) # <kmem_cache_free+0x85> | |
- jae <kmem_cache_free+0x2d> | |
- incl %gs:0x0(%rip) # <kmem_cache_free+0x8e> | |
- mov 0x0(%rip),%rax # <kmem_cache_free+0x95> | |
+ bt %rax,0x0(%rip) # <kmem_cache_free+0x4d> | |
+ jae <kmem_cache_free+0x1b> | |
+ incl %gs:0x0(%rip) # <kmem_cache_free+0x56> | |
+ mov 0x0(%rip),%rax # <kmem_cache_free+0x5d> | |
test %rax,%rax | |
- je <kmem_cache_free+0xa6> | |
+ je <kmem_cache_free+0x6e> | |
mov 0x8(%rax),%rdi | |
mov %r14,%rdx | |
- call <kmem_cache_free+0xa6> | |
- decl %gs:0x0(%rip) # <kmem_cache_free+0xad> | |
- jne <kmem_cache_free+0x2d> | |
- call <kmem_cache_free+0xb8> | |
- jmp <kmem_cache_free+0x2d> | |
+ call <kmem_cache_free+0x6e> | |
+ decl %gs:0x0(%rip) # <kmem_cache_free+0x75> | |
+ jne <kmem_cache_free+0x1b> | |
+ call <kmem_cache_free+0x7c> | |
+ jmp <kmem_cache_free+0x1b> | |
cmpq $0x0,0x50(%rbx) | |
- jne <kmem_cache_free+0x40> | |
+ jne <kmem_cache_free+0x21> | |
testl $0x80800,0x20(%rbx) | |
- jne <kmem_cache_free+0x40> | |
+ jne <kmem_cache_free+0x21> | |
movslq 0x74(%rbx),%rdx | |
mov %r14,%rdi | |
xor %esi,%esi | |
- call <kmem_cache_free+0xe3> | |
- jmp <kmem_cache_free+0x40> | |
+ call <kmem_cache_free+0x9c> | |
+ jmp <kmem_cache_free+0x21> | |
Disassembly of section .init.text: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# test clang before + after | |
make LLVM=1 -j72 defconfig | |
<manually enable CONFIG_SLAB=y via menuconfig> | |
make LLVM=1 -j72 mm/slab.o | |
objdump --no-show-raw-insn --no-addresses mm/slab.o --disassemble=kmem_cache_free > slab.before.clang.txt | |
b4 am https://lore.kernel.org/llvm/20220210223134.233757-1-morbo@google.com/ -o - | git am | |
make LLVM=1 -j72 mm/slab.o | |
objdump --no-show-raw-insn --no-addresses mm/slab.o --disassemble=kmem_cache_free > slab.after.clang.txt | |
make -j72 defconfig | |
<manually enable CONFIG_SLAB=y via menuconfig> | |
make -j72 mm/slab.o | |
objdump --no-show-raw-insn --no-addresses mm/slab.o --disassemble=kmem_cache_free > slab.after.gcc.txt | |
git reset --hard HEAD~ | |
# no output | |
diff -u slab.before.gcc.txt slab.after.gcc.txt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment