- Oct 07, 2020
-
-
Alex Zinenko authored
Add basic support for registering diagnostic handlers with the context (actually, the diagnostic engine contained in the context) and processing diagnostic messages from the C API. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D88736
-
Martin Storsjö authored
-
Roman Lebedev authored
In some cases, we can negate instruction if only one of it's operands negates. Previously, we assumed that constants would have been canonicalized to RHS already, but that isn't guaranteed to happen, because of InstCombine worklist visitation order, as the added test (previously-hanging) shows. So if we only need to negate a single operand, we should ensure ourselves that we try constant operand first. Do that by re-doing the complexity sorting ourselves, when we actually care about it. Fixes https://bugs.llvm.org/show_bug.cgi?id=47752
-
Rodrigo Dominguez authored
Summary: This implements a workaround for a hardware bug in gfx8 and gfx9, where register usage is not estimated correctly for image_store and image_gather4 instructions when D16 is used. Change-Id: I4e30744da6796acac53a9b5ad37ac1c2035c8899 Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81172
-
Simon Pilgrim authored
-
Simon Pilgrim authored
To help make the diffs in D88569 clearer
-
Florian Hahn authored
-
Jay Foad authored
We were already doing this for integer constants. This patch implements the same thing for floating point constants. Differential Revision: https://reviews.llvm.org/D88570
-
Max Kazantsev authored
-
Tres Popp authored
-
Haojian Wu authored
With this patch, we don't treat `using ns::X` as a first-class declaration like `using Z = ns::Y`, reference to X that goes through this using-decl is considered a direct reference (without the Underlying bit). Fix the workaround in https://reviews.llvm.org/D87225 and https://reviews.llvm.org/D74054. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D88472
-
Haojian Wu authored
-
Haojian Wu authored
suppress spurious "typecheck_cond_expect_scalar" diagnostic. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D84322
-
Rainer Orth authored
`LLVM-Unit :: Support/./SupportTests/ConvertUTFTest.ConvertUTF16LittleEndianToUTF8String` `FAIL`s on Solaris/sparcv9: In `llvm/lib/Support/ConvertUTFWrapper.cpp` (`convertUTF16ToUTF8String`) the `SrcBytes` arg is reinterpreted/accessed as `UTF16` (`unsigned short`, which requires 2-byte alignment on strict-alignment targets like Sparc) without anything guaranteeing the alignment, so the access yields a `SIGBUS`. This patch avoids this by enforcing the required alignment in the callers. Tested on `sparcv9-sun-solaris2.11`. Differential Revision: https://reviews.llvm.org/D88824
-
Max Kazantsev authored
-
Jonas Devlieghere authored
Restore unix signal table to its original glory and mark it as not to be clang-formatted.
-
Roman Lebedev authored
[SROA] rewritePartition()/findCommonType(): if uses have conflicting type, try getTypePartition() before falling back to largest integral use type (PR47592) And another step towards transformss not introducing inttoptr and/or ptrtoint casts that weren't there already. In this case, when load/store uses have conflicting types, instead of falling back to the iN, we can try to use allocated sub-type. As disscussed, this isn't the best idea overall (we shouldn't rely on allocated type), but it works fine as a temporary measure. I've measured, and @ `-O3` as of vanilla llvm test-suite + RawSpeed, this results in +0.05% more bitcasts, -5.51% less inttoptr and -1.05% less ptrtoint (at the end of middle-end opt pipeline) See https://bugs.llvm.org/show_bug.cgi?id=47592 Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D88788
-
Yonghong Song authored
This patch fixed two issues related with relocation globals. In LLVM, if a global, e.g. with name "g", is created and conflict with another global with the same name, LLVM will rename the global, e.g., with a new name "g.2". Since relocation global name has special meaning, we do not want llvm to change it, so internally we have logic to check whether duplication happens or not. If happens, just reuse the previous global. The first bug is related to non-btf-id relocation (BPFAbstractMemberAccess.cpp). Commit 54d9f743 ("BPF: move AbstractMemberAccess and PreserveDIType passes to EP_EarlyAsPossible") changed ModulePass to FunctionPass, i.e., handling each function at a time. But still just one BPFAbstractMemberAccess object is created so module level de-duplication still possible. Commit 40251fee ("[BPF][NewPM] Make BPFTargetMachine properly adjust NPM optimizer pipeline") made a change to create a BPFAbstractMemberAccess object per function so module level de-duplication is not possible any more without going through all module globals. This patch simply changed the map which holds reloc globals as class static, so it will be available to all BPFAbstractMemberAccess objects for different functions. The second bug is related to btf-id relocation (BPFPreserveDIType.cpp). Before Commit 54d9f743, the pass is a ModulePass, so we have a local variable, incremented for each instance, and works fine. But after Commit 54d9f743, the pass becomes a FunctionPass. Local variable won't work properly since different functions will start with the same initial value. Fix the issue by change the local count variable as static, so it will be truely unique across the whole module compilation. Differential Revision: https://reviews.llvm.org/D88942
-
Max Kazantsev authored
-
Johannes Doerfert authored
This reapplies D88384 with the minor modification that an assertion was changed to a regular conditional and graceful exit from ASTContext::mergeTypes.
-
Chen Zheng authored
we now get noAlias result for a call instruction and other load/store/call instructions if we query mayAlias. This is not right as call instruction is not with mayloadorstore, but it may alter the memory. This patch fixes this wrong alias query. Differential Revision: https://reviews.llvm.org/D87490
-
Chen Zheng authored
This patch can make pass recognize Powerpc related memory intrinsics. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D88373
-
Chen Zheng authored
Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D88374
-
Bill Wendling authored
Tail duplication of a block with an INLINEASM_BR may result in a PHI node on the indirect branch. This is okay, but it also introduces a copy for that PHI node *after* the INLINEASM_BR, which is not okay. See: https://github.com/ClangBuiltLinux/linux/issues/1125 Differential Revision: https://reviews.llvm.org/D88823
-
Valentin Clement authored
This patch fix the device_num and device_type clauses used in the init clause. device_num was not spelled correctly in the parser and was to restrictive with scalarIntConstantExpr instead of scalarIntExpr. device_type is now taking a list of ScalarIntExpr. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D88571
-
Johannes Doerfert authored
Use same logic existing in other places to deal with base case GEPs. Add the original Attributor talk example.
-
Johannes Doerfert authored
The old function attribute deduction pass ignores reads of constant memory and we need to copy this behavior to replace the pass completely. First step are constant globals. TBAA can also describe constant accesses and there are other possibilities. We might want to consider asking the alias analyses that are available but for now this is simpler and cheaper.
-
Johannes Doerfert authored
If the function is not assumed `noreturn` we should not wait for an update to mark the call site as "may-return". This has two kinds of consequences: - We have less iterations in many tests. - We have less deductions based on "known information" (since we ask earlier, point 1, and therefore assumed information is not "known" yet). The latter is an artifact that we might want to tackle properly at some point but which is not easily fixable right now. -
Jonas Devlieghere authored
This changes the logic in GetXcodeSDK to find an SDK with xcrun. The code now executes the following steps: 1. If DEVELOPER_DIR is set in the environment, it invokes xcrun with the given developer dir. If this fails we stop and don't fall back. 2. If the shlib dir is set and exists,it invokes xcrun with the developer dir corresponding to the shlib dir. If this fails we fall back to 3. 3. We run xcrun without a developer dir. The new behavior introduced in this patch is that we fall back to running xcrun without a developer dir if running it based on the shlib dir failed. A situation where this matters is when you're running lldb from an Xcode that has no SDKs and that is not xcode-selected. Based on lldb's shlib dir pointing into this Xcode installation, it will do an xcrun with the developer set to the Xcode without any SDKs which will fail. With this patch, when that happens, we'll fall back to trying the xcode-selected Xcode by running xcrun without a developer dir. Differential revision: https://reviews.llvm.org/D88866 -
Nico Weber authored
-
Ahmed S. Taei authored
Differential Revision: https://reviews.llvm.org/D88869
-
Dave Airlie authored
The sysexists change broke clang building out of tree against llvm. https://reviews.llvm.org/D88467
-
Lang Hames authored
Report a fatal error if an IMAGE_REL_AMD64_ADDR32NB cannot be applied due to an out-of-range target. Previously we emitted a diagnostic to llvm::errs and continued. Patch by Dale Martin. Thanks Dale!
-
Duncan P. N. Exon Smith authored
The section on SmallVector has a note about preferring SmallVectorImpl for APIs but doesn't mention ArrayRef. Although ArrayRef is discussed elsewhere, let's re-emphasize here. Differential Revision: https://reviews.llvm.org/D49881
-
Jianzhou Zhao authored
After D88686, munmap uses MADV_DONTNEED to ensure zero-out before the next access. Because the entire shadow space is created by MAP_PRIVATE and MAP_ANONYMOUS, the first access is also on zero-filled values. So it is fine to not zero-out data, but use madvise(MADV_DONTNEED) at mmap. This reduces runtime overhead. Reviewed-by: morehouse Differential Revision: https://reviews.llvm.org/D88755
-
Petr Hosek authored
TSan relies on C++ headers, so when libc++ is being built as part of the runtimes build, include an explicit dependency on cxx-headers which is the same approach that's already used for other sanitizers. Differential Revision: https://reviews.llvm.org/D88912
-
Chris Palmer authored
Differential Revision: https://reviews.llvm.org/D88864
-
Aart Bik authored
Setting up input data for benchmarks and integration tests can be tedious in pure MLIR. With more sparse tensor work planned, this convenience library simplifies reading sparse matrices in the popular Matrix Market Exchange Format (see https://math.nist.gov/MatrixMarket). Note that this library is *not* part of core MLIR. It is merely intended as a convenience library for benchmarking and integration testing. Reviewed By: penpornk Differential Revision: https://reviews.llvm.org/D88856
-
Mehdi Amini authored
-
Alexandre Ganea authored
This reverts b3418cb4 and d12ae042 This breaks some external bots, see discussion in https://reviews.llvm.org/D84380 In the meanwhile, please use `cmake -DLLVM_LIT_TOOLS_DIR="C:/Program Files/Git/usr/bin"` or add it to %PATH%.
-