[PATCH] D54889: Fiber support for thread sanitizer

Dmitry Vyukov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 18 08:02:01 PST 2018


dvyukov added a comment.

FTR, here is current code:

  00000000004b2c50 <__tsan_read2>:
    4b2c50:       48 b8 f8 ff ff ff ff    movabs $0xffff87fffffffff8,%rax
    4b2c57:       87 ff ff 
    4b2c5a:       48 ba 00 00 00 00 00    movabs $0x40000000000,%rdx
    4b2c61:       04 00 00 
    4b2c64:       53                      push   %rbx
    4b2c65:       48 21 f8                and    %rdi,%rax
    4b2c68:       48 8b 74 24 08          mov    0x8(%rsp),%rsi
    4b2c6d:       48 31 d0                xor    %rdx,%rax
    4b2c70:       48 83 3c 85 00 00 00    cmpq   $0xffffffffffffffff,0x0(,%rax,4)
    4b2c77:       00 ff 
    4b2c79:       0f 84 9d 00 00 00       je       4b2d1c <__tsan_read2+0xcc>
    4b2c7f:       49 c7 c0 c0 04 fc ff    mov    $0xfffffffffffc04c0,%r8
    4b2c86:       64 49 8b 08             mov    %fs:(%r8),%rcx
    4b2c8a:       48 85 c9                test   %rcx,%rcx
    4b2c8d:       0f 88 89 00 00 00       js       4b2d1c <__tsan_read2+0xcc>
  ...
    4b2cf6:       64 f3 41 0f 7e 50 08    movq   %fs:0x8(%r8),%xmm2
  ...
    4b2d36:       64 49 89 10             mov    %rdx,%fs:(%r8)

Here is new code:

  00000000004b8460 <__tsan_read2>:
    4b8460:       48 b8 f8 ff ff ff ff    movabs $0xffff87fffffffff8,%rax
    4b8467:       87 ff ff 
    4b846a:       48 ba 00 00 00 00 00    movabs $0x40000000000,%rdx
    4b8471:       04 00 00 
    4b8474:       53                      push   %rbx
    4b8475:       48 21 f8                and    %rdi,%rax
    4b8478:       48 8b 74 24 08          mov    0x8(%rsp),%rsi
    4b847d:       48 31 d0                xor    %rdx,%rax
    4b8480:       48 83 3c 85 00 00 00    cmpq   $0xffffffffffffffff,0x0(,%rax,4)
    4b8487:       00 ff 
    4b8489:       0f 84 9f 00 00 00       je       4b852e <__tsan_read2+0xce>
    4b848f:       48 c7 c2 f8 ff ff ff    mov    $0xfffffffffffffff8,%rdx
    4b8496:       64 4c 8b 02             mov    %fs:(%rdx),%r8
    4b849a:       49 8b 08                mov    (%r8),%rcx
    4b849d:       48 85 c9                test   %rcx,%rcx
    4b84a0:       0f 88 88 00 00 00       js       4b852e <__tsan_read2+0xce>
  ...
    4b8509:       f3 41 0f 7e 50 08       movq   0x8(%r8),%xmm2
  ...
    4b8546:       49 89 10                mov    %rdx,(%r8)

The additional indirection is "mov    (%r8),%rcx".


Repository:
  rCRT Compiler Runtime

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D54889/new/

https://reviews.llvm.org/D54889





More information about the llvm-commits mailing list