Changes

Summary

  1. [PDB] Make pdb::DbiModuleDescriptor destructor trivial (details)
  2. AMDGPU/SI: make ~SIScheduleBlockCreator trivial (details)
  3. [Support] Optimize SHA1 implementation (details)
  4. [Attributor] Use must-be-executed-context in align deduction (details)
  5. [yaml2obj/obj2yaml] - Add support for SHT_LLVM_LINKER_OPTIONS sections. (details)
  6. [llvm-readelf/llvm-readobj][test] - Convert elf-linker-options.ll to use (details)
  7. [VFABI] Remove unused variables in testcase, fix buildbot (details)
  8. [X86] Update stale comment. NFC (details)
  9. [X86] Add fptosi test to fp-intrinsics.ll (details)
Commit 644de3b96e735aa91a2c0568e65f02c5b537fea0 by i
[PDB] Make pdb::DbiModuleDescriptor destructor trivial
The file was modifiedllvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h
The file was modifiedllvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp
Commit 3c4f8bb108b2a362db7d723fe9646a3d236fe60e by i
AMDGPU/SI: make ~SIScheduleBlockCreator trivial
The file was modifiedllvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIMachineScheduler.h
Commit 43ff63477256d584cf506dba0c222c28231b0ccc by maskray
[Support] Optimize SHA1 implementation
* Add inline to the helper functions because gcc-9 won't inline all of
them without the hint. I've avoided `__attribute__((always_inline))`
because gcc and clang will inline without it, and improves
compatibility.
* Replace the byte-by-byte copy in update() with endian::readbe32()
since perf reports that 1/2 of the time is spent copying into the
buffer before this patch.
When lld uses --build-id=sha1 it spends 30-45% of CPU in SHA1 depending
on the binary (not wall-time since it is parallel). This patch speeds up
SHA1 by a factor of 2 on clang-8 and 3 on gcc-6. This leads to a >10%
improvement in overall linking time.
lld-speed-test benchmarks run on an Intel i9-9900k with Turbo disabled
on CPU 0 compiled with clang-9. Stats recorded with `perf stat -r 5`.
All inputs are using `--build-id=sha1`.
| Input | Before (seconds) | After (seconds) |
| --- | --- | --- |
| chrome | 2.14 | 1.82 (-15%) |
| chrome-icf | 2.56 | 2.29 (-10%) |
| clang | 0.65 | 0.53 (-18%) |
| clang-fsds | 0.69 | 0.58 (-16%) |
| clang-gdb-index | 21.71 | 19.3 (-11%) |
| gold | 0.42 | 0.34 (-19%) |
| gold-fsds | 0.431 | 0.355 (-17%) |
| linux-kernel | 0.625 | 0.575 (-8%) |
| llvm-as | 0.045 | 0.039 (-14%) |
| llvm-as-fsds | 0.035 | 0.039 (-11%) |
| mozilla | 11.3 | 9.8  (-13%) |
| mozilla-gc | 11.84 | 10.36 (-12%) |
| mozilla-O0 | 8.2 | 5.84 (-28%) |
| scylla | 5.59 | 4.52 (-19%) |
Reviewed By: ruiu, MaskRay
Differential Revision: https://reviews.llvm.org/D69295
The file was modifiedllvm/lib/Support/SHA1.cpp
The file was modifiedllvm/unittests/Support/raw_sha1_ostream_test.cpp
Commit 88b04ef8327cdd45bd1e973ec98be5d71e7b8383 by uenoku.tokotoko
[Attributor] Use must-be-executed-context in align deduction
Summary: This patch introduces align attribute deduction for callsite
argument, function argument, function returned and floating value based
on must-be-executed-context.
Reviewers: jdoerfert, sstefan1
Reviewed By: jdoerfert
Subscribers: hiraditya, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69797
The file was modifiedllvm/test/Transforms/FunctionAttrs/arg_nocapture.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/dereferenceable.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/arg_returned.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/nofree-attributor.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/internal-noalias.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/nosync.ll
The file was modifiedllvm/test/Transforms/InferFunctionAttrs/dereferenceable.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/FunctionAttrs/align.ll
Commit dd101539dac5e464042c04b72090741317d48c23 by grimar
[yaml2obj/obj2yaml] - Add support for SHT_LLVM_LINKER_OPTIONS sections.
SHT_LLVM_LINKER_OPTIONS section contains pairs of null-terminated
strings. This patch adds support for them.
Differential revision: https://reviews.llvm.org/D69895
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/include/llvm/ObjectYAML/ELFYAML.h
The file was addedllvm/test/tools/obj2yaml/linker-options.yaml
The file was addedllvm/test/tools/yaml2obj/linker-options.yaml
Commit e80e9b975218c2bd6ca4de8b1035103e43442d7c by grimar
[llvm-readelf/llvm-readobj][test] - Convert elf-linker-options.ll to use
YAML.
This converts elf-linker-options.ll to use yaml2obj instead of llc,
improves and cleanups it a bit.
This opens a road to add an additional tests for checking the broken
cases.
Differential revision: https://reviews.llvm.org/D70004
The file was removedllvm/test/tools/llvm-readobj/elf-linker-options.ll
The file was addedllvm/test/tools/llvm-readobj/elf-linker-options.test
Commit c8e4b536771e2ebb4702da3de0a7e4238b433bbf by mikael.holmen
[VFABI] Remove unused variables in testcase, fix buildbot
E.g. the buildbot at

http://lab.llvm.org:8011/builders/ppc64le-lld-multistage-test/builds/7259/steps/build-stage2-unified-tree/logs/stdio
failed with
/home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/unittests/Transforms/Utils/VFABIUtils.cpp:50:22:
error: unused variable 'FnAttrs' [-Werror,-Wunused-variable]
const AttributeSet FnAttrs = Attrs.getFnAttributes();
                    ^ 1 error generated.
The file was modifiedllvm/unittests/Transforms/Utils/VFABIUtils.cpp
Commit ff1504da6fa9977a20e2e3ba11a157cf9acf3bad by craig.topper
[X86] Update stale comment. NFC
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 22a535e91a795e52c8b8c01ad04e3577e9f7ae5b by craig.topper
[X86] Add fptosi test to fp-intrinsics.ll
The file was modifiedllvm/test/CodeGen/X86/fp-intrinsics.ll