- Nov 27, 2020
-
-
Roman Lebedev authored
-
Louis Dionne authored
We don't actually update the ABI lists at every release -- it's too much work, since we'd technically have to do it even for minor releases. Furthermore, I don't think anybody uses those (I certainly don't rely on them for anything). Instead, it is better to rely on the ABI list changelog and the canonical ABI list that we always keep up to date. If one wants to know what symbols were shipped in a specific release, that can be discovered easily using Git, which is a superior tool than keeping textual copies of old versions.
-
Louis Dionne authored
-
Adam Czachorowski authored
Differential Revision: https://reviews.llvm.org/D92186
-
Simon Pilgrim authored
Rename prefix from X32 to X86 as we typically use X32 for gnux32 triples
-
Arthur Eubanks authored
Reviewed By: yonghong-song Differential Revision: https://reviews.llvm.org/D91990
-
Nikita Popov authored
Currently, we have some confusion in the codebase regarding the meaning of LocationSize::unknown(): Some parts (including most of BasicAA) assume that LocationSize::unknown() only allows accesses after the base pointer. Some parts (various callers of AA) assume that LocationSize::unknown() allows accesses both before and after the base pointer (but within the underlying object). This patch splits up LocationSize::unknown() into LocationSize::afterPointer() and LocationSize::beforeOrAfterPointer() to make this completely unambiguous. I tried my best to determine which one is appropriate for all the existing uses. The test changes in cs-cs.ll in particular illustrate a previously clearly incorrect AA result: We were effectively assuming that argmemonly functions were only allowed to access their arguments after the passed pointer, but not before it. I'm pretty sure that this was not intentional, and it's certainly not specified by LangRef that way. Differential Revis...
-
Fangrui Song authored
Similar to D92113. Currently `clang -fstack-size-section -fno-unique-section-names` sets the linked-to symbol to the first `.text`, which is: * incorrect for COMDAT sections * inferior for non-COMDAT sections in -ffunction-sections mode (poor --gc-sections: .stack_sizes cannot be separately discarded) Note, if the section symbol can be referenced in more places (if the function begin symbol does not apply), we probably should consider defining a different BeginSymbol for sections with ",unique" linkage. Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D92151
-
Zarko Todorovski authored
This patch enables passing non variadic vector type parameters on the caller and callee side and vector return on AIX that are passed in vector registers only. So far, support is enabled for only the AIX extended Altivec ABI Calling convention. Reviewed By: sfertile, DiggerLin Differential Revision: https://reviews.llvm.org/D86476
-
Raphael Isemann authored
The test case isn't using the AST matchers for all checks as there doesn't seem to be support for matching TemplateTypeParmDecl default arguments. Otherwise this is simply importing the default arguments. Also updates several LLDB tests that now as intended omit the default template arguments of several std templates. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D92103
-
Louis Dionne authored
Using sysctl requires including headers that are considered internal on Linux, like <sys/sysctl.h> & friends. Instead, sysconf is defined by POSIX (and we have a fallback for Windows), so all the systems we support should be happy with just sysconf. Differential Revision: https://reviews.llvm.org/D92135
-
Louis Dionne authored
I'm not 100% sure what the issue actually is since I can't reproduce it locally, however what I explain in the comment is my best attempt to explain what's going on. Differential Revision: https://reviews.llvm.org/D92131
-
Stephan Herhut authored
The rewrite logic has an optimization to drop a cast operation after rewriting block arguments if the cast operation has no users. This is unsafe as there might be a pending rewrite that replaced the cast operation itself and hence would trigger a second free. Instead, do not remove the casts and leave it up to a later canonicalization to do so. Differential Revision: https://reviews.llvm.org/D92184
-
Alex Richardson authored
FreeBSD's locale data uses the same U+2027 separator as Glibc 2.27 and newer. Reviewed By: #libc, emaste, ldionne Differential Revision: https://reviews.llvm.org/D91165
-
- Nov 26, 2020
-
-
Simon Pilgrim authored
-
David Green authored
This strips out a lot of the code that should no longer be needed from the MVETailPredictionPass, leaving the important part - find active lane mask instructions and convert them to VCTP operations. Differential Revision: https://reviews.llvm.org/D91866
-
Simon Pilgrim authored
Revert rG12d59b69 "[DAG] Legalize umin(x,y) -> sub(x,usubsat(x,y)) and umax(x,y) -> add(x,usubsat(y,x)) iff usubsat is legal" This reverts commit 12d59b69. Prematurely pushed this to trunk
-
Simon Pilgrim authored
[DAG] Legalize umin(x,y) -> sub(x,usubsat(x,y)) and umax(x,y) -> add(x,usubsat(y,x)) iff usubsat is legal If usubsat() is legal, this is likely to result in smaller codegen expansion than the default cmp+select codegen expansion. Allows us to move the x86-specific lowering to the generic expansion code.
-
Benjamin Kramer authored
-
Jan Svoboda authored
Depends on D83697 Original patch by Daniel Grumberg. Differential Revision: https://reviews.llvm.org/D83698
-
Robert Lougher authored
A crash/assertion failure in the greedy register allocator was tracked down to a debug instr being passed to LiveIntervals::getInstructionIndex. Normally this should not occur as debug instructions are collected and removed by LiveDebugVariables before RA, and reinserted afterwards. However, when a function has no debug info, LiveDebugVariables simply strips any debug values that are present as they're not needed (this situation will occur when a function with debug info is inlined into a nodebug function). The problem is, it only removes DBG_VALUE instructions, leaving DBG_LABELs (the cause of the crash). This patch updates the LiveDebugVariables nodebug path to remove all debug instructions. The test case verifies that DBG_VALUE/DBG_LABEL instructions are present, and that they are stripped. When -experimental-debug-variable-locations is enabled, certain variable locations are represented by DBG_INSTR_REF instead of DBG_VALUE. The test case verifies that a DBG_INSTR_REF is emitted by the option, and that it is also stripped. Differential Revision: https://reviews.llvm.org/D92127
-
Raphael Isemann authored
Same idea as in D92103 and D92106, but I realised after creating those reviews that there are also TemplateTemplateParmDecls that can have default arguments, so here's hopefully the last patch for default template arguments. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D92119
-
Florian Hahn authored
Update VPReplicateRecipe to inherit from VPValue. This still does not update scalarizeInstruction to set the result for the VPValue of VPReplicateRecipe, because this first requires tracking scalar values in VPTransformState. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D91500
-
Stephan Herhut authored
This change is required so that bufferization can properly identify the linalg.yield as a terminator with an associated parent op. Differential Revision: https://reviews.llvm.org/D92173
-
David Stenberg authored
When bailing out in rewriteLoopExitValues() you could be left with PHI nodes in the DeadInsts vector. Those would be not handled by the use of RecursivelyDeleteTriviallyDeadInstructions() in IndVarSimplify. This resulted in the IndVarSimplify pass returning an incorrect modified status. This was caught by the expensive check introduced in D86589. This patches changes IndVarSimplify so that it deletes those PHI nodes, using RecursivelyDeleteDeadPHINode(). This fixes PR47486. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D91153
-
Sjoerd Meijer authored
The cost-model is not getting the cost right for a mul with <2 x i64> operands, i.e. we don't have a MUL.2d, and this is precommitting some tests before adjusting this.
-
Kazushi (Jam) Marukawa authored
Add comprehensive stackframe regression tests as a preparation of VEFrameLowering.cpp optimizations. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D92170
-
Stephan Herhut authored
This enables partial bufferization that includes function signatures. To test this, this change also makes the func-bufferize partial and adds a dedicated finalizing-bufferize pass. Differential Revision: https://reviews.llvm.org/D92032
-
Aleksandr Platonov authored
In some cases system includes extractions is not enough, we also need target specific defines. The problems appears when clang default target is not the same as toolchain's one (GCC cross-compiler, MinGW on Windows). After this patch `query-driver` also extracts target and adds `--target=<extracted target>` compile option. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D92012
-
Simon Pilgrim authored
Add 32-bit tests and test i8/i16/i32/i64/i128 like we do for abs.ll
-
Florian Hahn authored
Add a basic implementation of getGatherScatterOpCost to BasicTTIImpl. The implementation estimates the cost of scalarizing the loads/stores, the cost of packing/extracting the individual lanes and the cost of only selecting enabled lanes. This more accurately reflects the current cost on targets like AArch64. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D91984
-
Hafiz Abid Qadeer authored
I am working on a baremetal riscv toolchain using LLVM runtime and LLD linker. Baremetal.cpp provides most of the things needed for such toolchain. So I have modified it to also handle riscv64/32-unknown-elf targets alongside arm-none-eabi. Currently, targets like riscv64-unknown-elf are handled by RISCVToolChain which mostly expects a gcc toolchain to be present. If you dont want the dependency on gcc-toolchain/libgloss or want to use LLD, then RISCVToolChain is not a good fit. So in the toolchain selection code, I have made this dependency of RISCVToolChain on gcc toolchain explicit. It is created if gcc-toolchain option is present. Otherwise Baremetal toolchain is created. I will be happy to hear if there is a better way to choose between these two toolchains. Reviewed By: jroelofs Differential Revision: https://reviews.llvm.org/D91442
-
Marek Kurdej authored
This will fix remaining failures on gcc-9 buildbot: http://lab.llvm.org:8011/#/builders/101. gcc-8 and gcc-9 do not support constexpr destructors nor constexpr allocation. Fix gcc warnings: -Wconversion, -Wpragmas.
-
Kerry McLaughlin authored
Updated the affected scalable_of_scalable tests in sve-gep.ll, as isConstantSplatValue now returns true in DAGCombiner::visitMUL and folds `(mul x, 1) -> x` Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D91363
-
Max Kazantsev authored
This reverts commit f690986f. Compile time then and again...
-
Simon Pilgrim authored
Differential Revision: https://reviews.llvm.org/D91339
-
Max Kazantsev authored
Reverted because the compile time impact is still too high. isKnownViaNonRecursiveReasoning is used twice, we can do it just once. Differential Revision: https://reviews.llvm.org/D92152
-
Max Kazantsev authored
This reverts commit 3d4c0460. Compile time impact is still high. Need to understand why. Differential Revision: https://reviews.llvm.org/D92153
-
Georgii Rymar authored
We report an error for unknown `DT_PLTREL` values. This switches the error to warning. Differential revision: https://reviews.llvm.org/D92087
-
Max Kazantsev authored
Previously we tried to using isKnownPredicateAt, but it makes an extra query to isKnownPredicate, which has negative impact on compile time. Let's try to use more lightweight isBasicBlockEntryGuardedByCond. Differential Revision: https://reviews.llvm.org/D92152
-