- Oct 27, 2020
-
-
Xiangling Liao authored
Error on -G on AIX for all modes(preprocess, assemble, compile, link). Differential Revision: https://reviews.llvm.org/D90063
-
Sanjay Patel authored
https://alive2.llvm.org/ce/z/XjFPQJ define void @src(i64 %value) { %t0 = call i64 @llvm.ctpop.i64(i64 %value) %gt = icmp ugt i64 %t0, 63 %lt = icmp ult i64 %t0, 64 call void @use(i1 %gt, i1 %lt) ret void } define void @tgt(i64 %value) { %eq = icmp eq i64 %value, -1 %ne = icmp ne i64 %value, -1 call void @use(i1 %eq, i1 %ne) ret void } declare i64 @llvm.ctpop.i64(i64) #1 declare void @use(i1, i1)
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Louis Dionne authored
The variable declarations interleaved with logic was really difficult to read. Instead, simply have two different implementations for _WIN32 and others.
-
Kostya Kortchinsky authored
In preparation for Fuchsia support, this CL refactors the memory mapping functions. The new functions are as follows: - for Freeslots and Metadata: `void *map(size_t Size, const char *Name) const;` `void unmap(void *Ptr, size_t Size) const;` - for the Pool: `void *reservePool(size_t Size);` `void commitPool(void *Ptr, size_t Size) const;` `void decommitPool(void *Ptr, size_t Size) const;` `void unreservePool();` Note that those don't need a `Name` parameter as those are fixed per function. `{reserve,unreserve}Pool` are not `const` because they will modify platform specific class member on Fuchsia. I added a plethora of `assert()` as the initial code was not enforcing page alignment for sizes and addresses, which caused problem in the initial Fuchsia draft. All sizes should now be properly rounded up to a page. Differential Revision: https://reviews.llvm.org/D89993 -
David Blaikie authored
-
Nick Desaulniers authored
I missed this in https://reviews.llvm.org/D87956. Reviewed By: void Differential Revision: https://reviews.llvm.org/D90177
-
Stanislav Mekhanoshin authored
This fixes the bug 47945. It is legal to have a PHI with values from from the same block, but values must stay the same. In this case it is illegal to merge different values. Differential Revision: https://reviews.llvm.org/D89978
-
Kirill Bobyrev authored
Previous attempts: * 15f6bad6 * 58d0ef2d The combination results in both link- and build-time dependency which is the desired behavior.
-
Duncan P. N. Exon Smith authored
4dc5573a added `FileEntryRef` in order to help enable sharing of a `FileManager` between `CompilerInstance`s. It also added a `StringRef` with the filename on `FileInfo`. This doubled `sizeof(FileInfo)`, bloating `sizeof(SLocEntry)`, of which we have one for each (loaded and unloaded) file and macro expansion. This causes a memory regression in modules builds. Move the filename down into the `ContentCache`, which is a side data structure for `FileInfo` that does not impact `sizeof(SLocEntry)`. Once `FileEntryRef` is used for `ContentCache::OrigEntry` this can go away. Differential Revision: https://reviews.llvm.org/D89580 Radar-Id: rdar://59908826
-
Aaron Puchert authored
Fixes PR47917. Reviewed By: tstellar Differential Revision: https://reviews.llvm.org/D90100
-
Evgeny Leviant authored
This predicate is not specific to cortex-a57 and can be used in other processor models as well.
-
Joe Turner authored
Currently, this would not correctly associate a category with the related include if it was top-level (i.e. no slashes in the path). This ensures that we explicitly think about that case. Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D89608
-
Benjamin Kramer authored
ExpandModularHeadersPPCallbacks.cpp:55:15: warning: unused variable 'FileEntry' for (auto FileEntry : FilesToRecord) ^ -
Alexander Belyaev authored
https://llvm.discourse.group/t/rfc-standard-memref-cast-ops/1454/15 Differential Revision: https://reviews.llvm.org/D90033
-
Zequan Wu authored
This causing `Assertion Result && "Could not evaluate expression"' failed` at https://bugs.chromium.org/p/chromium/issues/detail?id=1142009 This reverts commit 76c00926.
-
Stanislav Mekhanoshin authored
This is the warning reported in https://reviews.llvm.org/D89599
-
Louis Dionne authored
-
Zequan Wu authored
-
Nick Desaulniers authored
Ensure we can emit symbol aliases via function attribute even when function signatures contain incomplete types. Via bugreport: https://reviews.llvm.org/D66492#2350947 Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D90073
-
Louis Dionne authored
The tests would previously fail if the `python` executable wasn't found, because we were missing the mandatory find_package.
-
Duncan P. N. Exon Smith authored
Update a few APIs to return non-const references instead of pointers, and remove associated `const_cast`s and non-null assertions. Differential Revision: https://reviews.llvm.org/D90067
-
Florian Hahn authored
Extends the tests added in a562dc82 to cover more vector variants.
-
Thomas Raoux authored
Based on discourse discussion, fix the doc string and remove examples with wrong semantic. Also fix insert_map semantic by adding missing operand for vector we are inserting into. Differential Revision: https://reviews.llvm.org/D89563
-
Joe Ellis authored
We do not need to use the implicit cast here. We can instead can rely on a comparison between two TypeSize objects instead. This algorithm will work fine with scalable vectors. Reviewed By: DavidTruby Differential Revision: https://reviews.llvm.org/D90146
-
Joe Ellis authored
The warning would fire when calling canReplaceGEPIdxWithZero on a GEP whose source element type is a scalable vector. The size of scalable vector types is not known, so this optimization cannot be performed. This patch fixes the issue by: - bailing out early in this routine if the GEP instruction's source element type is a scalable vector. - making use of getFixedSize -- this removes the dependency on the deprecated interface. Reviewed By: fpetrogalli Differential Revision: https://reviews.llvm.org/D89968
-
Joe Ellis authored
The warning would fire when calling getGEPCost for analyzing the cost of a GEP instruction. This would result in the use of the now deprecated implicit cast of TypeSize to uint64_t through the overloaded operator. This patch fixes the issue by using getKnownMinSize instead of the implicit cast. This is possible because the code is already scalable-vector aware. The semantic behaviour of the code is unchanged by this patch. Reviewed By: sdesmalen, fpetrogalli Differential Revision: https://reviews.llvm.org/D89872
-
Joe Ellis authored
The warning would fire when calling isDereferenceableAndAlignedInLoop with a scalable load. Calling isDereferenceableAndAlignedInLoop with a scalable load would result in the use of the now deprecated implicit cast of TypeSize to uint64_t through the overloaded operator. This patch fixes this issue by: - no longer considering vector loads as candidates in canVectorizeWithIfConvert. This doesn't make sense in the context of identifying scalar loads to vectorize. - making use of getFixedSize inside isDereferenceableAndAlignedInLoop -- this removes the dependency on the deprecated interface, and will trigger an assertion error if the function is ever called with a scalable type. Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D89798
-
- Oct 26, 2020
-
-
OCHyams authored
Recently there has been renewed interest in improving debug-info for variables that (partially or otherwise) live on the stack in optimised code. At the moment instcombine speculates that stack slots are probably going to be promoted to registers, and prepares the debug-info accordingly. It runs a function called LowerDbgDeclare which converts dbg.declares to a set of dbg.values after loads, and before stores and calls. Sometimes the stack location remains (e.g. for escaped locals). If any dbg.values become undef where the stack location is still valid we end up unnecessarily reducing variable location coverage due to our inability to track multiple locations simultaneously. There is a flag to disable this feature (-instcombine-lower-dbg-declare=0), which prevents this conversion at the cost of sometimes providing incorrect location info in the face of DSE, DCE, GVN, CSE etc. This has been discussed fairly extensively on PR34136. The idea of these tests is to provide examples of situations that we should consider when designing a new system, to aid discussions and eventually help evaluate the implementation. Dexter isn't ideal for observing specific optimisation behaviour. Writing an exaustive test suite would be difficult, and the resultant suite would be fragile. However, I think having some concrete executable examples is useful at least as a reference. Differential Revision: https://reviews.llvm.org/D89543
-
- Oct 27, 2020
-
-
Zequan Wu authored
To allow loading PDB file with `target symbols add` command. Differential Revision: https://reviews.llvm.org/D89812
-
Evgeny Leviant authored
Differential revision: https://reviews.llvm.org/D90150
-
Nicolas Vasilache authored
This revision allows the fusion of the producer of input tensors in the consumer under a tiling transformation (which produces subtensors). Many pieces are still missing (e.g. support init_tensors, better refactor LinalgStructuredOp interface support, try to merge implementations and reuse code) but this still allows getting started. The greedy pass itself is just for testing purposes and will be extracted in a separate test pass. Differential revision: https://reviews.llvm.org/D89491
-
Evgeny Leviant authored
Differential revision: https://reviews.llvm.org/D90152
-
Benjamin Kramer authored
SIRegisterInfo.cpp:480:19: error: unused variable 'SOffset'
-
Benjamin Kramer authored
This depends on the libc implementation. Use the string from the assertion message instead. Overly specific, but so is this entire test.
-
Benjamin Kramer authored
-
Louis Dionne authored
-
Nico Weber authored
The local variable CmpResult added in that change shadowed the type CmpResult, which confused an older gcc. Rename the variable CmpResult to APFloatCmpResult.
-