- 28 6月, 2022 1 次提交
-
-
由 Krasimir Georgiev 提交于
This adapts llvm-wrapper for https://github.com/llvm/llvm-project/commit/dacfa24f75c328ae30b710ecadaa18e4ba10cdc6, which removed ASanGlobalsMetadataAnalysis.
-
- 20 4月, 2022 2 次提交
-
-
由 Nikita Popov 提交于
-
由 Nikita Popov 提交于
-
- 11 4月, 2022 1 次提交
-
-
由 Luqman Aden 提交于
Respect -Z verify-llvm-ir and other flags that add extra passes when combined with -C no-prepopulate-passes in the new LLVM Pass Manager.
-
- 14 1月, 2022 1 次提交
-
-
由 Amanieu d'Antras 提交于
This was originally introduced in #10916 as a way to remove all landing pads when performing LTO. However this is no longer necessary today since rustc properly marks all functions and call-sites as nounwind where appropriate. In fact this is incorrect in the presence of `extern "C-unwind"` which must create a landing pad when compiled with `-C panic=abort` so that foreign exceptions are caught and properly turned into aborts.
-
- 13 12月, 2021 2 次提交
-
-
由 Axel Cohen 提交于
-
由 Axel Cohen 提交于
-
- 11 11月, 2021 1 次提交
-
-
由 Krasimir Georgiev 提交于
This happened later in the stream than the other changes, but the fix is overlapping. Fix taken from a55c4ec1cee7683d9095327d9d33e7137ec25292 in LLVM.
-
- 09 11月, 2021 2 次提交
-
-
由 Augie Fackler 提交于
-
由 Augie Fackler 提交于
Now AddressSanitizerOptions is a struct, but at least the change was tiny. r? nikic
-
- 06 11月, 2021 1 次提交
-
-
由 Tomasz Miąsko 提交于
In https://reviews.llvm.org/D71059 LLVM 11, the time trace profiler was extended to support multiple threads. `timeTraceProfilerInitialize` creates a thread local profiler instance. When a thread finishes `timeTraceProfilerFinishThread` moves a thread local instance into a global collection of instances. Finally when all codegen work is complete `timeTraceProfilerWrite` writes data from the current thread local instance and the instances in global collection of instances. Previously, the profiler was intialized on a single thread only. Since this thread performs no code generation on its own, the resulting profile was empty. Update LLVM codegen to initialize & finish time trace profiler on each code generation thread.
-
- 23 10月, 2021 2 次提交
-
-
由 Josh Stone 提交于
-
由 Josh Stone 提交于
-
- 18 10月, 2021 1 次提交
-
-
由 Krasimir Georgiev 提交于
No functional changes intended. The LLVM commit https://github.com/llvm/llvm-project/commit/89b57061f7b769e9ea9bf6ed686e284f3e55affe moved TargetRegistry.(h|cpp) from Support to MC. This adapts RustWrapper accordingly.
-
- 12 10月, 2021 1 次提交
-
-
由 Javier Blazquez 提交于
This change adds a new compiler flag that can help reduce the size of ELF binaries that contain many functions. By default, when enabling function sections (which is the default for most targets), the LLVM backend will generate different section names for each function. For example, a function "func" would generate a section called ".text.func". Normally this is fine because the linker will merge all those sections into a single one in the binary. However, starting with LLVM 12 (llvm/llvm-project@ee5d1a0), the backend will also generate unique section names for exception handling, resulting in thousands of ".gcc_except_table.*" sections ending up in the final binary because some linkers don't currently merge or strip these EH sections. This can bloat the ELF headers and string table significantly in binaries that contain many functions. The new option is analogous to Clang's -fno-unique-section-names, and instructs LLVM to generate the same ".text" and ".gcc_except_table" section for each function, resulting in smaller object files and potentially a smaller final binary.
-
- 07 10月, 2021 1 次提交
-
-
由 Michael Benfield 提交于
This largely involves implementing the options debug-info-for-profiling and profile-sample-use and forwarding them on to LLVM. AutoFDO can be used on x86-64 Linux like this: rustc -O -Cdebug-info-for-profiling main.rs -o main perf record -b ./main create_llvm_prof --binary=main --out=code.prof rustc -O -Cprofile-sample-use=code.prof main.rs -o main2 Now `main2` will have feedback directed optimization applied to it. The create_llvm_prof tool can be obtained from this github repository: https://github.com/google/autofdo Fixes #64892.
-
- 28 9月, 2021 1 次提交
-
-
由 Augie Fackler 提交于
thinLTOResolvePrevailingInModule became thinLTOFinalizeInModule and gained the ability to propagate noRecurse and noUnwind function attributes. I ran codegen tests with it both on and off, as the upstream patch uses it in both modes, and the tests pass both ways. Given that, it seemed reasonable to go ahead and let the propagation be enabled in rustc, and see what happens. See https://reviews.llvm.org/D36850 for more examples of how the new version of the function gets used.
-
- 25 9月, 2021 1 次提交
-
-
由 Nikita Popov 提交于
Unlike the pre-link piplines, the LTO pipelines do support O0, and using them is required to avoid leaving behind undefined references for the linker.
-
- 17 9月, 2021 3 次提交
-
-
由 Yilin Chen 提交于
Signed-off-by: NYilin Chen <sticnarf@gmail.com>
-
-
由 Augie Fackler 提交于
-
- 16 9月, 2021 1 次提交
-
-
由 Augie Fackler 提交于
Change ab41eef9aca3 in LLVM split MemorySanitizerPass into MemorySanitizerPass for functions and ModuleMemorySanitizerPass for modules. There's a related change for ThreadSanitizerPass, and in here since we're using a ModulePassManager I only add the module flavor of the pass on LLVM 14. r? @nikic cc @nagisa
-
- 20 8月, 2021 1 次提交
-
-
由 Augie Fackler 提交于
These API changes appear to have all taken place in https://reviews.llvm.org/D105007, which moved HWAddressSanitizerPass and AddressSanitizerPass to only accept their options type as a ctor argument instead of the sequence of bools etc. This required a couple of parameter additions, which I made match the default prior to the mentioned upstream LLVM change. This patch restores rustc to building (though not quite passing all tests, I've mailed other patches for those issues) against LLVM HEAD.
-
- 07 8月, 2021 1 次提交
-
-
由 Augie Fackler 提交于
This is the first build break of the LLVM 14 cycle, and was caused by https://reviews.llvm.org/D107025. Mercifully an easy fix.
-
- 18 5月, 2021 1 次提交
-
-
由 Augie Fackler 提交于
In https://reviews.llvm.org/D102093 lots of things stopped taking the DebugLogging boolean parameter. Mercifully we appear to always set DebugPassManager to false, so I don't think we're losing anything by not passing this parameter.
-
- 08 5月, 2021 3 次提交
-
-
由 Nikita Popov 提交于
And report an error if parsing the additional pass pipeline fails. Threading through the error accounts for most of the changes here.
-
由 Nikita Popov 提交于
-
由 Nikita Popov 提交于
Don't use "passes" for this purpose, explicitly insert it into the correct place in the pipeline instead.
-
- 30 4月, 2021 1 次提交
-
-
由 Fangrui Song 提交于
The former is deprecated. OF_None has been available in LLVM since 2018-06.
-
- 09 4月, 2021 1 次提交
-
-
由 Matt Ickstadt 提交于
-
- 23 3月, 2021 2 次提交
-
-
由 Augie Fackler 提交于
-
由 Josh Stone 提交于
-
- 20 3月, 2021 1 次提交
-
-
由 Augie Fackler 提交于
-
- 17 3月, 2021 1 次提交
-
-
由 Augie Fackler 提交于
This changed in 54fb3ca96e261f7107cb1b5778c34cb0e0808be6 - I'm not entirely sure it's correct that we're leaving config empty, but the one case in LLVM that looked similar did that.
-
- 12 3月, 2021 2 次提交
-
-
由 Hiroki Noda 提交于
This patch avoids undefined behavior by linking different object files. Also this would it could be propagated properly to LTO. See https://reviews.llvm.org/D52322 and https://reviews.llvm.org/D52323. This patch is based on https://github.com/rust-lang/rust/pull/74002
-
由 Hiroki Noda 提交于
now we can pass this flag since https://reviews.llvm.org/D93002 has been merged.
-
- 04 3月, 2021 1 次提交
-
-
由 Nikita Popov 提交于
This works around a design defect in the LLVM 12 pass builder implementation. In LLVM 13, the PreLink ThinLTO pipeline properly respects the OptimizerLastEPCallbacks.
-
- 28 2月, 2021 1 次提交
-
-
由 Nikita Popov 提交于
-
- 08 2月, 2021 1 次提交
-
-
由 Tri Vo 提交于
-
- 16 12月, 2020 1 次提交
-
-
由 David Wood 提交于
This commit modifies the FFI bindings to LLVM required for Split DWARF support in rustc. In particular: - `addPassesToEmitFile`'s wrapper, `LLVMRustWriteOutputFile` now takes a `DwoPath` `const char*`. When disabled, `nullptr` should be provided which will preserve existing behaviour. When enabled, the path to the `.dwo` file should be provided. - `createCompileUnit`'s wrapper, `LLVMRustDIBuilderCreateCompileUnit` now has two additional arguments, for the `DWOId` and to enable `SplitDebugInlining`. `DWOId` should always be zero. - `createTargetMachine`'s wrapper, `LLVMRustCreateTargetMachine` has an additional argument which should be provided the path to the `.dwo` when enabled. Signed-off-by: NDavid Wood <david@davidtw.co>
-