- Mar 04, 2020
-
-
shafik authored
Currently dsymutil when generating accelerator tables will attempt to strip the template parameters from names for subroutines. For some overload operators which contain < in their names e.g. operator< the current method ends up stripping the operator name as well, we just end up with the name operator in the table for each case. Differential Revision: https://reviews.llvm.org/D75545
-
Martijn Vels authored
Summary: This is a recommit of https://reviews.llvm.org/D73223 where the added function accidentally ended up inside an idef block. This change splits the copy constructor up inlining short initialization, and explicitly outlining long initialization into __init_copy_ctor_external() which is the externally instantiated slow path. For unstable ABI, this has the following changes: remove basic_string(const basic_string&) remove basic_string(const basic_string&, const Allocator&) add __init_copy_ctor_external(const value_type*, size_type) Quick local benchmark for Copy: Master ``` --------------------------------------------------------------- Benchmark Time CPU Iterations --------------------------------------------------------------- BM_StringCopy_Empty 3.50 ns 3.51 ns 199326720 BM_StringCopy_Small 3.50 ns 3.51 ns 199510016 BM_StringCopy_Large 15.7 ns 15.7 ns 45230080 BM_StringCopy_Huge 1503 ns 1503 ns 464896 ``` With this change ``` --------------------------------------------------------------- Benchmark Time CPU Iterations --------------------------------------------------------------- BM_StringCopy_Empty 1.99 ns 2.00 ns 356471808 BM_StringCopy_Small 3.29 ns 3.30 ns 203425792 BM_StringCopy_Large 13.3 ns 13.3 ns 52948992 BM_StringCopy_Huge 1472 ns 1472 ns 475136 ``` Subscribers: libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D75639
-
Petr Hosek authored
This change has two components. The moves the generated file for a namespace to the directory named after the namespace in a file named 'index.<format>'. This greatly improves the browsing experience since the index page is shown by default for a directory. The second improves the markdown output by adding the links to the referenced pages for children objects and the link back to the source code. Patch By: Clayton Differential Revision: https://reviews.llvm.org/D72954
-
Craig Topper authored
[X86] Disable commuting for the first source operand of zero masked scalar fma intrinsic instructions. I believe this is the correct fix for D75506 rather than disabling all commuting. We can still commute the remaining two sources. Differential Revision:m https://reviews.llvm.org/D75526
-
Kostya Kortchinsky authored
Summary: For the 32b primary, whenever we created a region, we would fill it all at once (eg: create all the transfer batches for all the blocks in that region). This wasn't ideal as all the potential blocks in a newly created region might not be consummed right away, and it was using extra memory (and release cycles) to keep all those free blocks. So now we keep track of the current region for a given class, and how filled it is, carving out at most `MaxNumBatches` worth of blocks at a time. Additionally, lower `MaxNumBatches` on Android from 8 to 4. This lowers the randomness of blocks, which isn't ideal for security, but keeps things more clumped up for PSS/RSS accounting purposes. Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D75551
-
Matt Arsenault authored
Use default operand of 0 instead.
-
Frank Laub authored
Summary: Expose expandAffineMap so that it can be used by lowerings defined outside of MLIR core. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D75589
-
Nikita Popov authored
InstSimplify can fold icmps of gep where the base pointers are the same and the offsets are constant. It does so by constructing a constant expression icmp and assumes that it gets folded -- but this doesn't actually happen, because GEP expressions can usually only be folded by the target-dependent constant folding layer. As such, we need to explicitly invoke it here. Differential Revision: https://reviews.llvm.org/D75407
-
Lei Zhang authored
This commit adds timestamp query commands in Vulkan runner's compute pipeline to gain insights into how long it takes to run the compute shader. This commit also adds timing from CPU side for VkQueueSubmit and vkQueueWaitIdle. Differential Revision: https://reviews.llvm.org/D75531
-
Muhammad Omair Javaid authored
This reverts commit e91e1df6.
-
Eric Fiselier authored
-
Matt Arsenault authored
Create a wider source vector, and unmerge with dead defs like the legalizer. The legalization handling for G_EXTRACT is incomplete, and it's preferrable to keep everything in 32-bit pieces. We should probably start moving these functions into utils, since we have a growing number of places that do almost the same thing.
-
Matt Arsenault authored
Since this is still largely relying on the DAG argument type lowering code, this has inherited the problem where i16 vectors have a different ABI on targets with and without legal i16. Switch to using a target with legal i16, so the i16 vector argument tests are more useful.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Alexey Bataev authored
If the destroy clause is appplied, the previously allocated memory for the dependency object must be destroyed.
-
Richard Smith authored
TreeTransform if the 'dependent' flag would change.
-
Frank Laub authored
Summary: Looks like a refactor that was never completed. This change removes some unused and ambiguous definitions. Reviewed By: bondhugula, nicolasvasilache, rriddle Differential Revision: https://reviews.llvm.org/D75586
-
Louis Dionne authored
Explained in https://reviews.llvm.org/D70117#inline-688897.
-
Raphael Isemann authored
-
Zola Bridges authored
SLH had two functions named isDataInvariant and isDataInvariantLoad that checked whether the passed instruction was data invariant. For some instructions, if the EFLAGS were dead then they were considered data invariant, otherwise they were not considered data invariant. In this patch, I extracted that EFLAGS liveness check and made it explicit at every call to isDataInvariant and isDataInvariantLoad. This makes the isDataInvariant function behave more generally and preserves the liveness check behavior that SLH would like to have. Tested via llvm-lit llvm/test/CodeGen/X86/speculative-load-hardening* This is the first step in making these two data invariance checks available for non-SLH passes. The second step is to move the passes from SLH to X86InstrInfo.cpp. I'll follow up with a patch that does that. Differential Revision: https://reviews.llvm.org/D70283
-
Eric Fiselier authored
-
Lang Hames authored
This output can be useful in tracking down initialization failures in the JIT.
-
Fangrui Song authored
https://bugs.llvm.org/show_bug.cgi?id=43403 The new order makes it easy to compare the two tools' --all. Reviewed By: grimar, rupprecht Differential Revision: https://reviews.llvm.org/D75592
-
Lei Zhang authored
This commit updates SPIR-V dialect to support integer signedness by relaxing various checks for signless to just normal integers. The hack for spv.Bitcast can now be removed. Differential Revision: https://reviews.llvm.org/D75611
-
Fangrui Song authored
This is GNU objdump's behavior and it is reasonable to match. Reviewed By: grimar Differential Revision: https://reviews.llvm.org/D75588
-
Lei Zhang authored
A previous commit added support for integer signedness in C++ IntegerType. This change introduces ODS definitions for integer types and integer (element) attributes w.r.t. signedness. This commit also updates various existing definitions' descriptions to mention signless where suitable to make it more clear. Positive and non-negative integer attributes are removed to avoid the explosion of subclasses. Instead, one should use more atmoic constraints together with Confined to model that. For example, `Confined<..., [IntPositive]>`. Differential Revision: https://reviews.llvm.org/D75610
-
Alexey Bataev authored
Added codegen for 'depend' clause in depobj directive. The depend clause is emitted as kmp_depend_info <deps>[<number_of_items_in_clause> + 1]. The first element in this array is reserved for storing the number of elements in this array: <deps>[0].base_addr = <number_of_items_in_clause>; This extra element is required to implement 'update' and 'destroy' clauses. It is required to know the size of array to destroy it correctly and to update depency kind.
-
Martijn Vels authored
This reverts commit 8cf76e91. We are investigating why this causes compilation issues under -O3
-
Sam Clegg authored
This also changes to default style to match the host. Reviewed By: ruiu Differential Revision: https://reviews.llvm.org/D75577
-
Louis Dionne authored
-
Wei Mi authored
https://reviews.llvm.org/D42848 only handled CFA related cfi directives but didn't handle CSR related cfi. The patch adds the CSR part. Basically it reuses the framework created in D42848. For each basicblock, the patch tracks which CSR set have been saved at its CFG predecessors's exits, and compare the CSR set with the set at its previous basicblock's exit (The previous block is the block laid before the current block). If the saved CSR set at its previous basicblock's exit is larger, .cfi_restore will be inserted. The patch also generates proper .cfi_restore in epilogue to make sure the saved CSR set is consistent for the incoming edges of each block. Differential Revision: https://reviews.llvm.org/D74303
-
Guozhi Wei authored
As the test case shows if there is an ExtractValueInst in the Ret block, function dupRetToEnableTailCallOpts can't duplicate it into the block containing call. So later no tail call is generated in CodeGen. This patch adds the ExtractValueInst handling code in function dupRetToEnableTailCallOpts and FoldReturnIntoUncondBranch, and later tail call can be generated for this case. Differential Revision: https://reviews.llvm.org/D74242
-
Raphael Isemann authored
-
Lei Zhang authored
Also make the getResourceLimits() method more explicit about its return type. Differential Revision: https://reviews.llvm.org/D75484
-
Eric Fiselier authored
They need to appear before any member functions are ODR used, because they change the visibility of many of these functions and otherwise they could end up with hidden visibility in the DSO.
-
Louis Dionne authored
The new implementation introduced in 5b1e5b43 broke the bot running GCC 5.
-
Fangrui Song authored
In many cases, llvm-nm or llvm-readelf is more suitable.
-
David Green authored
This teaches Loop Strength Reduction the details about masked load and store address operands, so that it can have a better time optimising them as it would for normal loads and stores. Differential Revision: https://reviews.llvm.org/D75371
-
Raphael Isemann authored
-