[PATCH] D32354: [ELF] - Set DF_STATIC_TLS flag for i386 target.
George Rimar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 26 10:05:19 PDT 2017
grimar updated this revision to Diff 96776.
grimar added a comment.
Review comments addressed. Perfomance difference seems varies.
I observed from no difference to about 2%. Each run has 25 iterations.
**Chromium**:
Before patch:
3024,298420 task-clock (msec) # 1,000 CPUs utilized ( +- 0,23% )
1 context-switches # 0,000 K/sec ( +- 11,47% )
1 cpu-migrations # 0,000 K/sec ( +- 16,67% )
168 021 page-faults # 0,056 M/sec ( +- 0,15% )
3,024534666 seconds time elapsed ( +- 0,23% )
After patch:
3028,392936 task-clock (msec) # 1,000 CPUs utilized ( +- 0,17% )
1 context-switches # 0,000 K/sec ( +- 11,47% )
1 cpu-migrations # 0,000 K/sec ( +- 11,47% )
167 843 page-faults # 0,055 M/sec ( +- 0,14% )
3,028637012 seconds time elapsed ( +- 0,17% )
3,028637012 / 3,024534666 == 1.001x
**Clang**:
Before patch:
444,407019 task-clock (msec) # 0,998 CPUs utilized ( +- 0,23% )
0 context-switches # 0,000 K/sec ( +- 46,77% )
0 cpu-migrations # 0,000 K/sec ( +- 55,28% )
54 471 page-faults # 0,123 M/sec ( +- 0,08% )
0,445156259 seconds time elapsed ( +- 0,26% )
After patch:
447,810554 task-clock (msec) # 0,999 CPUs utilized ( +- 0,24% )
0 context-switches # 0,000 K/sec ( +- 40,82% )
0 cpu-migrations # 0,000 K/sec ( +- 69,22% )
54 492 page-faults # 0,122 M/sec ( +- 0,04% )
0,448175370 seconds time elapsed ( +- 0,25% )
0,448175370 / 0,445156259 == 1.003x
**ScyllaDB**:
Before patch:
2301,014053 task-clock (msec) # 0,999 CPUs utilized ( +- 0,24% )
1 context-switches # 0,000 K/sec ( +- 21,08% )
1 cpu-migrations # 0,000 K/sec ( +- 18,09% )
288 479 page-faults # 0,125 M/sec ( +- 0,06% )
2,302234392 seconds time elapsed ( +- 0,24% )
After patch:
2347,685157 task-clock (msec) # 1,000 CPUs utilized ( +- 0,23% )
1 context-switches # 0,000 K/sec ( +- 17,46% )
1 cpu-migrations # 0,000 K/sec ( +- 18,09% )
288 911 page-faults # 0,123 M/sec ( +- 0,04% )
2,348484871 seconds time elapsed ( +- 0,23% )
2,348484871 / 2,302234392 == 1.02x
Not sure how much that is acceptable. Should we use approach from previous diff which never
affected on perfomance ?
https://reviews.llvm.org/D32354
Files:
ELF/Config.h
ELF/Relocations.cpp
ELF/SyntheticSections.cpp
ELF/Target.cpp
ELF/Target.h
test/ELF/Inputs/i386-static-tls-model1.s
test/ELF/Inputs/i386-static-tls-model2.s
test/ELF/Inputs/i386-static-tls-model3.s
test/ELF/Inputs/i386-static-tls-model4.s
test/ELF/aarch64-tls-ie.s
test/ELF/i386-static-tls-model.s
test/ELF/i386-tls-ie-shared.s
test/ELF/tls-dynamic-i686.s
test/ELF/tls-dynamic.s
test/ELF/tls-got.s
test/ELF/tls-initial-exec-local.s
test/ELF/tls-opt-iele-i686-nopic.s
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32354.96776.patch
Type: text/x-patch
Size: 24162 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170426/2a358310/attachment.bin>
More information about the llvm-commits
mailing list