- Dec 21, 2021
-
-
Stephan Herhut authored
Using comparisons instead avoids potential overflow. Differential Revision: https://reviews.llvm.org/D116096
-
Nikita Popov authored
All callers pass in a GlobalVariable, so we can conveniently fetch the type from there.
-
Andrew Wei authored
Attempt to lower a shuffle as a permute instruction(zip/uzp/trn) for fixed length SVE. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D113376
-
Dmitry Vyukov authored
Depends on D113980. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D113981
-
Dmitry Vyukov authored
We used to use u64 as mutex id because it was some tricky identifier built from address and reuse count. Now it's just the mutex index in the report (0, 1, 2...), so use int to represent it. Depends on D112603. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D113980
-
Chuanqi Xu authored
Revert "[NFC] [C++20] [Modules] Add tests for template instantiation in transitively imported module" This reverts commit 4f103e95. The tests couldn't pass under windows.
-
Dmitry Vyukov authored
These callbacks are used for SSE vector accesses. In some computational programs these accesses dominate. Currently we do 2 uninlined 8-byte accesses to handle them. Inline and optimize them similarly to unaligned accesses. This reduces the vector access benchmark time from 8 to 3 seconds. Depends on D112603. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D114594
-
Chuanqi Xu authored
This commit adds two test about template class instantiation in transitively imported module. They are used as pre-commit tests for successive patches.
-
Fangrui Song authored
sec->repl equals sec after rL371216.
-
Simon Moll authored
Depends on D115940 for the `Binary_rv_vr_vv` pattern class op isel fragment used for divisions. Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D116035
-
Nikita Popov authored
This fixes the assertion failure reported at https://reviews.llvm.org/D114889#3198921 with a straightforward check, until the cleaner fix in D115924 can be reapplied.
-
Nikita Popov authored
Loads always have an alignment now, so this is no longer relevant.
-
Simon Moll authored
Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D115940
-
Kazu Hirata authored
-
Kazu Hirata authored
-
jacquesguan authored
Precommit tests for D115922. Differential Revision: https://reviews.llvm.org/D116013
-
Tony Tye authored
- Improve extension description. - Rename "What is DWARF?" section to better reflect what it is describing. Reviewed By: kzhuravl Differential Revision: https://reviews.llvm.org/D116077
-
Yonghong Song authored
Matteo Croce reported a bpf backend fatal error in https://github.com/llvm/llvm-project/issues/52779 A simplified case looks like: $ cat bug.c extern int do_smth(int); int test() { return __builtin_btf_type_id(*(typeof(do_smth) *)do_smth, 1); } $ clang -target bpf -O2 -g -c bug.c fatal error: error in backend: Empty type name for BTF_TYPE_ID_REMOTE reloc ... The reason for the fatal error is that the relocation is against a DISubroutineType like type 13 below: !10 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) !11 = !{} !12 = !DILocation(line: 3, column: 10, scope: !7) !13 = !DISubroutineType(types: !14) !14 = !{!10, !10} The DISubroutineType doesn't have a name and there is no way for downstream bpfloader/kernel to do proper relocation for it. But we can improve error message to be more specific for this case. The patch improved the error message to be: fatal error: error in backend: SubroutineType not supported for BTF_TYPE_ID_REMOTE reloc Differential Revision: https://reviews.llvm.org/D116063
-
Esme-Yi authored
Summary: When disassembling, symbolize a branch target operand to print a label instead of a real address. Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D114492
-
Vitaly Buka authored
-
Mircea Trofin authored
-
Xu Mingjie authored
Fix mismatched-new-delete in memprof test_new_load_store.cpp and test_terse.cpp Reviewed By: snehasish Differential Revision: https://reviews.llvm.org/D116024
-
Clemens Wasser authored
This also makes the sanitizer_stoptheworld_test cross-platform by using the STL, rather than pthread. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D115204
-
Xu Mingjie authored
[LTO] Fix incomplete optimization remarks for dead functions when PreOptModuleHook or PostInternalizeModuleHook is defined In 20a895c4, we introduce `finalizeOptimizationRemarks()` to make sure we flush the diagnostic remarks file in case the linker doesn't call the global destructors before exiting. In https://reviews.llvm.org/D73597, we add optimization remarks for removed functions for debugging or for detecting dead code. But there is a case, if PreOptModuleHook or PostInternalizeModuleHook is defined (e.g. `--plugin-opt=emit-llvm` is passed to linker), we do not call `finalizeOptimizationRemarks()`, therefore we will get an incomplete optimization remarks file. This patch make sure we flush the diagnostic remarks file when PreOptModuleHook or PostInternalizeModuleHook is defined. Reviewed By: tejohnson, MaskRay Differential Revision: https://reviews.llvm.org/D115417
-
Vitaly Buka authored
All platforms which can start the thread should stop it as well.
-
Philip Reames authored
This is a reapply of a8a51fe5, which was reverted in 1ba99e due to a failing compiler-rt test. That test was a false positive because it was checking asan failures not accounting for the fact the call could be validly optimized out. I hopefully managed to stablize that test in 9b955f. (That's a speculative fix due to disk consumption needed to build compiler-rt tests locally being absurd.) Original commit message follows.. The majority of this change is sinking logic from instcombine into MemoryLocation such that it can be generically reused. If we have a call with a single analyzable write to an argument, we can treat that as-if it were a store of unknown size. Merging the code in this was unblocks DSE in the store to dead memory code paths. In theory, it should also enable classic DSE of such calls, but the code appears to not know how to use object sizes to refine unknown access bounds (yet). In addition, this does make the isAllocRemovable path slightly stronger by reusing the libfunc and additional intrinsics bits which are already in getForDest. Differential Revision: https://reviews.llvm.org/D115904
-
Philip Reames authored
This attempts to adjust the test to still exercise the expected codepath after D115904. This test is fundementally rather fragile. Unfortunately, I have not been able to confirm this workaround either does, or does not, work. Attempting check-all with compiler-rt blows through an additional 30GB of disk space so my build config which exceeds my local disk space.
-
Shilei Tian authored
This reverts commit 75a5eaf7.
-
Vitaly Buka authored
Remove global constructor which may or may not be needed for Android, at it breaks Darwin now.
-
Tom Stellard authored
Reviewed By: lattner, kristof.beyls Differential Revision: https://reviews.llvm.org/D113427
-
Shilei Tian authored
One of the uses of `LTOCodeGenerator` is to take it as a middle+back end. Sometimes it is very helpful to access, especially get information from the optimized module. If the information can be changed in optimization, it cannot be get before the module is added to `LTOCodeGenerator`. This patch adds a function `LTOCodeGenerator::getMergedModule` to access the `MergedModule`. Reviewed By: steven_wu Differential Revision: https://reviews.llvm.org/D114201
-
Mehdi Amini authored
Differential Revision: https://reviews.llvm.org/D115956
-
Matt Arsenault authored
-
Matt Arsenault authored
These actions should only be used for adjusting the register types (and the memory type as needed to satisfy the register type). Unaligned accesses should be split as a type of lowering. This has the effect of improving the code in many cases since now we produce zextloads instead of separate loads with ands. The load/store legality rules still seem far more complicated than necessary though.
-
Sanjay Patel authored
The test would crash because a non-instruction negate op made it in here. Fixes #51506
-
Mogball authored
-
Jinsong Ji authored
jonathan2251.github.com/lbd/ is 404. Update the URL to .io one according to https://github.com/Jonathan2251/lbd/blob/master/README.md.
-
Mogball authored
Unit tests are not getting built as part of bazel runs. Reviewed By: mehdi_amini, GMNGeoffrey Differential Revision: https://reviews.llvm.org/D116046
-
Mogball authored
And incorrect command option description for `-gen-pass-decls`.
-
Sami Tolvanen authored
Control-Flow Integrity (CFI) replaces references to address-taken functions with pointers to the CFI jump table. This is a problem for low-level code, such as operating system kernels, which may need the address of an actual function body without the jump table indirection. This change adds the __builtin_function_start() builtin, which accepts an argument that can be constant-evaluated to a function, and returns the address of the function body. Link: https://github.com/ClangBuiltLinux/linux/issues/1353 Depends on D108478 Reviewed By: pcc, rjmccall Differential Revision: https://reviews.llvm.org/D108479
-