This is an archive of the discontinued LLVM Phabricator instance.

[LNT] Support for different DataSet usage in Polybench for "lnt runtest nt"
Needs RevisionPublic

Authored by post.kadirselcuk on Jun 19 2017, 1:24 PM.
Tokens
"Orange Medal" token, awarded by post.kadirselcuk.

Details

Summary

Polybech supports five datasets (mini, small, standard, large and extralarge) whereas LNT nt test supports selection of only two dataset (small and large).
Added support for all five datasets of Polybench in LLVM test suite for nt test.

Depends on [D34363]

Diff Detail

Repository
rL LLVM

Event Timeline

cs14mtech11017 created this revision.Jun 19 2017, 1:24 PM
cs14mtech11017 retitled this revision from [lnt] Support for different DataSet usage in Polybench with nt test to [LNT] Support for different DataSet usage in Polybench for "lnt runtest nt".Jun 19 2017, 1:36 PM
cs14mtech11017 edited the summary of this revision. (Show Details)
Meinersbur resigned from this revision.Jun 22 2017, 12:56 PM

I think nt.py is deprecated, and meant to be replaced by test_suite.py.

Maybe someone who already contributed to lnt should be necessary for acceptance.

I think nt.py is deprecated, and meant to be replaced by test_suite.py.

Maybe someone who already contributed to lnt should be necessary for acceptance.

A few of the most active developers on test-suite and lnt at least think it's better to use the (new) CMake+lit-based system to drive the test-suite rather than the (old) Makefile-based system. 'nt.py' in LNT is a layer around the Makefile-based system, "test_suite.py" is a layer around the CMake+lit-based system. I guess you could say that makes nt.py "deprecated".

Anyway, on the patch itself here: I don't really like adding ever more separate command line options for specifying different data sizes available in a test suite. Wouldn't it be better to introduce a command line argument spelled e.g. "--datasize=mini|small|standard|large|extra_large"? We could then also hopefully deprecate "--small", "--large", "--spec-with-ref", etc., making them aliases for the new command line option for backwards compatibility. Note that I haven't thought about what the best name would be for this option. Maybe "inputsize" is more in line with common terminology across benchmarks? Although it may be hard to guess from the "inputsize" exactly what it means without further explanation either...

Also, please in the future upload diffs with more context, see http://llvm.org/docs/Phabricator.html#requesting-a-review-via-the-web-interface.

grosser edited edge metadata.Jun 23 2017, 3:08 AM

Thanks Kristof for jumping in. I think your comments are clearly pointing out the right direction. @cs14mtech11017 , I suggest you follow these suggestions.

MatzeB edited edge metadata.Jun 23 2017, 11:19 AM
  • Indeed, active test-suite development is done in the cmake build (test_suite.py in lnt). You may still change nt.py but landing features exclusively there would be bad.
  • It seems the llvm test-suite today only checks for SMALL_PROBLEM_SIZE, occasionally LARGE_PROBLEM_SIZE and for SPEC you can choose the size manually. Do you plan to change the test-suite for the new sizes? We should probably do further discussions there.
  • Do you plan to set any rules/expectations on those new sizes? (Something like "mini" finished in half the time than "small")
  • Out of interest: Why do you need finer control over the problem sizes?
cmatthews requested changes to this revision.Jun 23 2017, 1:01 PM

It makes more sense to me to be using the --make-param flag to pass a test specific configuration options. If you want to add all these size classes, all the tests should support them, or have them mapped back to nearest size the tests can handle.

This revision now requires changes to proceed.Jun 23 2017, 1:01 PM

I think nt.py is deprecated, and meant to be replaced by test_suite.py.

Maybe someone who already contributed to lnt should be necessary for acceptance.

Ok. I will look into test_suite.py and update the patch.

I think nt.py is deprecated, and meant to be replaced by test_suite.py.

Maybe someone who already contributed to lnt should be necessary for acceptance.

A few of the most active developers on test-suite and lnt at least think it's better to use the (new) CMake+lit-based system to drive the test-suite rather than the (old) Makefile-based system. 'nt.py' in LNT is a layer around the Makefile-based system, "test_suite.py" is a layer around the CMake+lit-based system. I guess you could say that makes nt.py "deprecated".

Anyway, on the patch itself here: I don't really like adding ever more separate command line options for specifying different data sizes available in a test suite. Wouldn't it be better to introduce a command line argument spelled e.g. "--datasize=mini|small|standard|large|extra_large"? We could then also hopefully deprecate "--small", "--large", "--spec-with-ref", etc., making them aliases for the new command line option for backwards compatibility. Note that I haven't thought about what the best name would be for this option. Maybe "inputsize" is more in line with common terminology across benchmarks? Although it may be hard to guess from the "inputsize" exactly what it means without further explanation either...

I agree with you. I was planning to add such a flag for all the sizes "--datasize=mini|small|standard|large|extra_large". Did not do it for compatibility. Thanks for the suggestion about aliasing for backward compatibility. If we agree on adding such an option, I think "--testdatasize" will be appropriate. And I would argue about using a common flag like this one for all for all data sizes instead of using "--make-param" flag as pointed out by @cmatthews.

Also, please in the future upload diffs with more context, see http://llvm.org/docs/Phabricator.html#requesting-a-review-via-the-web-interface.

Ohh I missed that.

  • Indeed, active test-suite development is done in the cmake build (test_suite.py in lnt). You may still change nt.py but landing features exclusively there would be bad.

Thanks for letting me know. Will update for both.

  • It seems the llvm test-suite today only checks for SMALL_PROBLEM_SIZE, occasionally LARGE_PROBLEM_SIZE and for SPEC you can choose the size manually. Do you plan to change the test-suite for the new sizes? We should probably do further discussions there.

I added these options only for Polybench. Have not inspected the other benchmarks. I would like to discuss how we can map these sizes for other benchmarks? One we agree upon something, I can make the changes for the test-suite.

  • Do you plan to set any rules/expectations on those new sizes? (Something like "mini" finished in half the time than "small")

I have not thought about it yet.

  • Out of interest: Why do you need finer control over the problem sizes?

I am working with Polybench, which supports multiple input dataset sizes. I did these changes for my experiments and thought it would be better to upload the changes for the community.

It makes more sense to me to be using the --make-param flag to pass a test specific configuration options. If you want to add all these size classes, all the tests should support them, or have them mapped back to nearest size the tests can handle.

I feel having a common flag for test data sizes is better than having to pass them as test specific flag. As you suggested, we can map them back to nearest data sizes for the other tests. I was working with Polybench, so did not look into other tests. Will proceed with it if everyone agrees on adding a flag like "--testdatasizes=mini|small|medium|large|extra_large" and aliasing --small and --large for backward compatibility.

It makes more sense to me to be using the --make-param flag to pass a test specific configuration options. If you want to add all these size classes, all the tests should support them, or have them mapped back to nearest size the tests can handle.

I feel having a common flag for test data sizes is better than having to pass them as test specific flag. As you suggested, we can map them back to nearest data sizes for the other tests. I was working with Polybench, so did not look into other tests. Will proceed with it if everyone agrees on adding a flag like "--testdatasizes=mini|small|medium|large|extra_large" and aliasing --small and --large for backward compatibility.

Look at SPEC for example: It has 3 different sizes: test, train and ref. You can describe them roughly as:

  • test: "As fast as posisble, not useful as a benchmark but they touch enough code paths so that they can give you a quick way to test for correctness"
  • train: "Somewhat realistic but smaller inputs, useful to produce data for PGO optimizations. The important aspect here is that the data is different enough from ref, so we don't overfit the code because training and reference data were the same"
  • ref: "Larger inputs running for a longer time producing stable numbers".

So there is some semantics and intended uses here that is captured fine with "test", "train" and "ref". Mapping this to some generic terms like "small", "medium", "large" that just map to sizes would be a loss IMO.

It makes more sense to me to be using the --make-param flag to pass a test specific configuration options. If you want to add all these size classes, all the tests should support them, or have them mapped back to nearest size the tests can handle.

I feel having a common flag for test data sizes is better than having to pass them as test specific flag. As you suggested, we can map them back to nearest data sizes for the other tests. I was working with Polybench, so did not look into other tests. Will proceed with it if everyone agrees on adding a flag like "--testdatasizes=mini|small|medium|large|extra_large" and aliasing --small and --large for backward compatibility.

Look at SPEC for example: It has 3 different sizes: test, train and ref. You can describe them roughly as:

  • test: "As fast as posisble, not useful as a benchmark but they touch enough code paths so that they can give you a quick way to test for correctness"
  • train: "Somewhat realistic but smaller inputs, useful to produce data for PGO optimizations. The important aspect here is that the data is different enough from ref, so we don't overfit the code because training and reference data were the same"
  • ref: "Larger inputs running for a longer time producing stable numbers".

So there is some semantics and intended uses here that is captured fine with "test", "train" and "ref". Mapping this to some generic terms like "small", "medium", "large" that just map to sizes would be a loss IMO.

Right, that's a fair point.

FWIW, "lnt runtest test-suite" doesn't have --small or --large or --spec-with-ref command line options; but it does have a --test-size option, seemingly with the same intention as the "--testdatasizes" command line option under discussion here.
That being said, that "--test-size" option currently doesn't seem to actually be doing anything...

I can see that in different circumstances, you'd either want the generic flag vs the SPEC-specific flags. For example:

  • Assuming you want to run as many of the programs in the test-suite (with externals plugged in) as possible, you'd probably want to use the generic flag that maps to "small", "medium", "large" to control for how long the benchmark runs. Or how much memory it could end up using. Or maybe some other aspect of program scalability. I don't think I've seen small vs large defined anywhere particularly well...
  • If you're only going to run the SPEC benchmarks, you'd probably want to be able to state to run "test", "train" or "ref", rather than "small", etc.
  • Of course if you want to retain the original terms and meanings for data size used during benchmarking for SPEC, you can also argue you could want that for other benchmarks like Polybench.

So, in summary, I'm not sure what the conclusion here should be.
If we had a reasonable definition of what "small" or "large" meant, or intended to mean, that would make this decision easier.
For now, I think it's fine for --small and --large to map to traditional "small" and "large" semantics for the test-suite.
Maybe we should refrain from introducing further command line options in LNT for all possible benchmark-specific sizes and indeed set them using --cmake-define/--make-param, to avoid a further explosion of lnt runtest command line options?

post.kadirselcuk requested changes to this revision.Jul 10 2021, 5:40 PM
post.kadirselcuk commandeered this revision.Jul 10 2021, 5:44 PM
post.kadirselcuk edited reviewers, added: cs14mtech11017; removed: post.kadirselcuk.
post.kadirselcuk added parent revisions: D105768: [OpenMP] Create and use `__kmpc_is_generic_main_thread`, D105767: [OpenMP] Simplify variable sharing and increase shared memory size, D105766: [libc] update benchmark distributions, D105765: Prepare Compiler-RT for GnuInstallDirs, matching libcxx, document all, D105764: [InstCombine] Fold lshr/ashr(or(neg(x),x),bw-1) --> zext/sext(icmp_ne(x,0)) (PR50816), D105763: [Attributes] Make type attribute handling more generic (NFCI), D105762: [X86] Teach X86FloatingPoint's handleCall to only erase the FP stack if there is a regmask operand that clobbers the FP stack., D105761: [lld][AMDGPU] Handle R_AMDGPU_REL16 relocation., D105760: [AMDGPU] Handle s_branch to another section., D105759: Implement P2361 Unevaluated string literals, D105758: Hold mutex lock while notify_all is called at notify_all_at_thread_exit, D105757: [SystemZ] Bugfix for the 'N' code for inline asm operand., D105756: [clang] C++98 implicit moves are back with a vengeance, D105755: [WebAssembly] Custom combines for f32x4.demote_zero_f64x2, D105754: [PowerPC] Fix L[D|W]ARX Implementation, D105753: [libcxx][ranges] Add `ranges::common_view`., D105751: GlobalISel: Introduce GenericMachineInstr classes and derivatives for idiomatic LLVM RTTI., D105748: [mlir] Fix broadcasting check with 1 values, D105747: [DWARF] Support emitting AdvanceLineAddrAbs, D105746: [DWARF] Introduce RefHandler to parse external refs in frame data, D105745: [compiler-rt][hwasan][fuchsia] Define shadow bound globals, D105744: [NFC][compiler-rt][hwasan] Move shadow bound variables to hwasan.cpp, D105743: [AIX] Emit version string in .file directive, D105742: [AMDGPU] Make some VOP1 instructions rematerializable, D105741: [trace] Introduce Hierarchical Trace Representation (HTR) and add `thread trace export ctf` command for Intel PT trace visualization, D105740: Remove `LIBC_INSTALL_PREFIX`, D105739: Mips/GlobalISel: Use more standard call lowering infrastructure, D105738: Mips: Mark special case calling convention handling as custom, D105737: Implement delimited escape sequences., D105736: [libcxx] [test] Fix spurious failures in the thread join test on Windows, D105735: [compiler-rt][hwasan][Fuchsia] Do not emit FindDynamicShadowStart for Fuchsia, D105734: [clang-tidy] performance-unnecessary-copy-initialization: Do not remove comments on new lines., D105733: [OpaquePtr] Require matching signature in getCalledFunction(), D105732: [lldb] Update logic to close inherited file descriptors., D105731: [mlir][sparse] add restrictive versions of division support, D105730: [SLP] match logical and/or as reduction candidates, D105728: [clang][Codegen] Directly lower `(*((volatile int *)(0))) = 0;` into a `call void @llvm.trap()`, D105727: [clang-tidy] performance-unnecessary-copy-initialization: Disable structured bindings., D105726: [asan][clang] Add flag to outline instrumentation, D105725: [compiler-rt][hwasan] Refactor kAliasRegionStart usage, D105723: [LSR] Do not hoist IV if it is not post increment case. PR43678, D105721: [amdgpu] Add scope metadata support for noalias kernel arguments., D105720: [AsmParser] Add support to LOCAL directive., D105719: sanitizer_common: split LibIgnore into fast/slow paths, D105718: sanitizer_common: sanitize time functions, D105717: [trace] [intel pt] Create a "thread trace dump stats" command, D105716: sanitizer_common: add thread safety annotations, D105715: [OpenMP] Minor improvement in task allocation, D105714: WIP/RFC: Generic MachineInstr convenience wrappers., D105713: sanitizer_common: add simpler ThreadRegistry ctor, D105711: [OpaquePtr][Inline] Use byval type instead of pointee type, D105710: [OpaquePointers][ThreadSanitizer] Cleanup calls to PointerType::getElementType(), D105709: [AMDGPU][GlobalISel] Insert an and with exec before s_cbranch_vccnz if necessary, D105708: [analyzer][NFC] Display the correct function name even in crash dumps, D105706: [mlir] support collapsed loops in OpenMP-to-LLVM translation, D105703: [hwasan] Use stack safety analysis., D105702: [mlir] factor math-to-llvm out of standard-to-llvm, D105701: [clang-format] test revision (NOT FOR COMMIT) to demonstrate east/west const fixer capability, D105700: [LoopSimplify] Convert loop with multiple latches to nested loop using dominator tree, D105699: [libomptarget][devicertl] Remove branches around setting parallelLevel, D105698: [lldb/Target] Fix event handling during process launch, D105696: [AArch64][GlobalISel] Optimise lowering for some vector types for min/max, D105695: [clang][tooling] Accept Clang invocations with multiple jobs, D105694: [InstrRef][FastISel] Emit DBG_INSTR_REF from fast-isel when using instruction-referencing, D105693: [analyzer][solver][NFC] Refactor how we detect (dis)equalities, D105692: [analyzer][solver][NFC] Introduce ConstraintAssignor, D105690: [RISCV] Rename assembler mnemonic of unordered floating-point reductions for v1.0-rc change, D105687: [Debug-Info] [llvm-dwarfdump] Don't use DW_FORM_data4/8 to encode the constants for DW_AT_data_member_location., D105686: [ARM] Move add(VMLALVA(A, X, Y), B) to VMLALVA(add(A, B), X, Y), D105685: [RISCV][RVV] Precommit a test case for D105684, D105684: [RegisterCoalescer] Make resolveConflicts aware of earlyclobber, D105683: [AMDGPU] Allow frontends to disable null export for pixel shaders, D105682: [AMDGPU] Handle functions in llvm's global ctors and dtors list, D105681: [clangd] Add platform triple (host & target) to version info, D105680: [ARM] Lower v16i8 -> i64 VMLA reductions., D105679: [clangd] Add CMake option to (not) link in clang-tidy checks, D105677: [mlir-tblgen] Fix failed matching when binds same operand of an op in different depth, D105676: [AArch64][GlobalISel] Relax oneuse restriction for PTR_ADD chain combining to check addressing legality., D105673: [SelectionDAG] Fix the representation of ISD::STEP_VECTOR., D105672: [SimpleLoopUnswitch] Don't non-trivially unswitch loops with catchswitch exits, D105671: [Intrinsics][ObjC] Mark objc_retain and friends as thisreturn., D105668: [compiler-rt][hwasan][fuchsia] Implement InitializeOsSupport, D105666: [PowerPC] [Altivec] Use signed comparison for vec_all_* and vec_any_* interfaces that compare vector bool types with vector signed types, D105665: [mlir][tosa] Added shape propagation for TOSA pool operations., D105664: [compiler-rt][hwasan][fuchsia] Implement TagMemoryAligned for fuchsia, D105662: Fix incorrect DWARF 5 file name 0 when using -no-integrated-as, D105661: [PowerPC] Add frame index alignment check if the the addressing mode is DS/DQ-Form, and fall back to X-Form if necessary., D105660: [PowerPC][AIX] Add warning when alignment is incompatible with XL, D105659: [PowerPC][AIX] Support ByVals with greater alignment then pointer size, D105657: [InstrRef][X86] Drop debug instruction numbers from x87 instructions, D105655: [LLDB][GUI] Add Process Attach form, D105652: [AMDGPU] Move perfhint analysis, D105651: [AMDGPU] Tune perfhint analysis to account access width, D105649: [LLDB] Move Trace-specific classes into separate library, D105648: [OpenMP] Support OpenMP 5.1 attributes, D105645: [mlir][tosa] Added shape inference for tosa convolution operations, D105644: [libomptarget][nfc][devicertl] Split execution params, D105643: [libc] Don't pass -fpie/-ffreestanding on Windows, D105641: [lld-macho] Have ICF operate on all sections at once, D105637: [clang][Analyzer] Add symbol uninterestingness to bug report..Jul 10 2021, 5:55 PM
post.kadirselcuk awarded a token.
post.kadirselcuk changed the repository for this revision from rL LLVM to rZORG LLVM Github Zorg.Jul 10 2021, 10:06 PM
post.kadirselcuk added projects: Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project.
MyDeveloperDay removed a project: Restricted Project.Jul 11 2021, 9:14 AM
efriedma removed parent revisions: D105330: [llvm-nm] Switch command line parsing from llvm::cl to OptTable, D105395: [IRBuilder] Add type argument to CreateMaskedLoad/Gather, D105643: [libc] Don't pass -fpie/-ffreestanding on Windows, D105644: [libomptarget][nfc][devicertl] Split execution params, D105645: [mlir][tosa] Added shape inference for tosa convolution operations, D105648: [OpenMP] Support OpenMP 5.1 attributes, D105649: [LLDB] Move Trace-specific classes into separate library, D105651: [AMDGPU] Tune perfhint analysis to account access width, D105652: [AMDGPU] Move perfhint analysis, D105655: [LLDB][GUI] Add Process Attach form, D105657: [InstrRef][X86] Drop debug instruction numbers from x87 instructions, D105659: [PowerPC][AIX] Support ByVals with greater alignment then pointer size, D105660: [PowerPC][AIX] Add warning when alignment is incompatible with XL, D105661: [PowerPC] Add frame index alignment check if the the addressing mode is DS/DQ-Form, and fall back to X-Form if necessary., D105664: [compiler-rt][hwasan][fuchsia] Implement TagMemoryAligned for fuchsia, D105665: [mlir][tosa] Added shape propagation for TOSA pool operations., D105666: [PowerPC] [Altivec] Use signed comparison for vec_all_* and vec_any_* interfaces that compare vector bool types with vector signed types, D105668: [compiler-rt][hwasan][fuchsia] Implement InitializeOsSupport, D105672: [SimpleLoopUnswitch] Don't non-trivially unswitch loops with catchswitch exits, D105676: [AArch64][GlobalISel] Relax oneuse restriction for PTR_ADD chain combining to check addressing legality., D105677: [mlir-tblgen] Fix failed matching when binds same operand of an op in different depth, D105679: [clangd] Add CMake option to (not) link in clang-tidy checks, D105681: [clangd] Add platform triple (host & target) to version info, D105682: [AMDGPU] Handle functions in llvm's global ctors and dtors list, D105683: [AMDGPU] Allow frontends to disable null export for pixel shaders, D105687: [Debug-Info] [llvm-dwarfdump] Don't use DW_FORM_data4/8 to encode the constants for DW_AT_data_member_location., D105690: [RISCV] Rename assembler mnemonic of unordered floating-point reductions for v1.0-rc change, D105694: [InstrRef][FastISel] Emit DBG_INSTR_REF from fast-isel when using instruction-referencing, D105695: [clang][tooling] Accept Clang invocations with multiple jobs, D105696: [AArch64][GlobalISel] Optimise lowering for some vector types for min/max, D105698: [lldb/Target] Fix event handling during process launch, D105699: [libomptarget][devicertl] Remove branches around setting parallelLevel, D105700: [LoopSimplify] Convert loop with multiple latches to nested loop using dominator tree, D105701: [clang-format] test revision (NOT FOR COMMIT) to demonstrate east/west const fixer capability, D105702: [mlir] factor math-to-llvm out of standard-to-llvm, D105703: [hwasan] Use stack safety analysis., D105710: [OpaquePointers][ThreadSanitizer] Cleanup calls to PointerType::getElementType(), D105711: [OpaquePtr][Inline] Use byval type instead of pointee type, D105713: sanitizer_common: add simpler ThreadRegistry ctor, D105714: WIP/RFC: Generic MachineInstr convenience wrappers., D105715: [OpenMP] Minor improvement in task allocation, D105716: sanitizer_common: add thread safety annotations, D105717: [trace] [intel pt] Create a "thread trace dump stats" command, D105718: sanitizer_common: sanitize time functions, D105719: sanitizer_common: split LibIgnore into fast/slow paths, D105720: [AsmParser] Add support to LOCAL directive., D105721: [amdgpu] Add scope metadata support for noalias kernel arguments., D105723: [LSR] Do not hoist IV if it is not post increment case. PR43678, D105725: [compiler-rt][hwasan] Refactor kAliasRegionStart usage, D105726: [asan][clang] Add flag to outline instrumentation, D105727: [clang-tidy] performance-unnecessary-copy-initialization: Disable structured bindings., D105728: [clang][Codegen] Directly lower `(*((volatile int *)(0))) = 0;` into a `call void @llvm.trap()`, D105730: [SLP] match logical and/or as reduction candidates, D105731: [mlir][sparse] add restrictive versions of division support, D105732: [lldb] Update logic to close inherited file descriptors., D105733: [OpaquePtr] Require matching signature in getCalledFunction(), D105734: [clang-tidy] performance-unnecessary-copy-initialization: Do not remove comments on new lines., D105735: [compiler-rt][hwasan][Fuchsia] Do not emit FindDynamicShadowStart for Fuchsia, D105736: [libcxx] [test] Fix spurious failures in the thread join test on Windows, D105737: Implement delimited escape sequences., D105738: Mips: Mark special case calling convention handling as custom, D105739: Mips/GlobalISel: Use more standard call lowering infrastructure, D105740: Remove `LIBC_INSTALL_PREFIX`, D105741: [trace] Introduce Hierarchical Trace Representation (HTR) and add `thread trace export ctf` command for Intel PT trace visualization, D105742: [AMDGPU] Make some VOP1 instructions rematerializable, D105743: [AIX] Emit version string in .file directive, D105744: [NFC][compiler-rt][hwasan] Move shadow bound variables to hwasan.cpp, D105745: [compiler-rt][hwasan][fuchsia] Define shadow bound globals, D105746: [DWARF] Introduce RefHandler to parse external refs in frame data, D105747: [DWARF] Support emitting AdvanceLineAddrAbs, D105748: [mlir] Fix broadcasting check with 1 values, D105751: GlobalISel: Introduce GenericMachineInstr classes and derivatives for idiomatic LLVM RTTI., D105755: [WebAssembly] Custom combines for f32x4.demote_zero_f64x2, D105756: [clang] C++98 implicit moves are back with a vengeance, D105757: [SystemZ] Bugfix for the 'N' code for inline asm operand., D105758: Hold mutex lock while notify_all is called at notify_all_at_thread_exit, D105760: [AMDGPU] Handle s_branch to another section., D105761: [lld][AMDGPU] Handle R_AMDGPU_REL16 relocation., D105763: [Attributes] Make type attribute handling more generic (NFCI), D105764: [InstCombine] Fold lshr/ashr(or(neg(x),x),bw-1) --> zext/sext(icmp_ne(x,0)) (PR50816), D105765: Prepare Compiler-RT for GnuInstallDirs, matching libcxx, document all, D105766: [libc] update benchmark distributions, D105767: [OpenMP] Simplify variable sharing and increase shared memory size, D105768: [OpenMP] Create and use `__kmpc_is_generic_main_thread`.Jul 17 2021, 3:02 PM