- Jun 06, 2020
-
-
Louis Dionne authored
Since <unwind.h> is in the SDK, not in /usr/include, the XFAILs must be predicated on the compiler version (ideally even on the SDK version) instead of the target system version.
-
Nicolas Vasilache authored
-
Jacques Pienaar authored
This allows verifying op-indepent attributes (e.g., attributes that do not require the op to have been created) before constructing an operation. These include checking whether required attributes are defined or constraints on attributes (such as I32 attribute). This is not perfect (e.g., if one had a disjunctive constraint where one part relied on the op and the other doesn't, then this would not try and extract the op independent from the op dependent). The next step is to move these out to a trait that could be verified earlier than in the generated method. The first use case is for inferring the return type while constructing the op. At that point you don't have an Operation yet and that ends up in one having to duplicate the same checks, e.g., verify that attribute A is defined before querying A in shape function which requires that duplication. Instead this allows one to invoke a method to verify all the traits and, if this is checked first during verification, then all other traits could use attributes knowing they have been verified. It is a little bit funny to have these on the adaptor, but I see the adaptor as a place to collect information about the op before the op is constructed (e.g., avoiding stringly typed accessors, verifying what is possible to verify before the op is constructed) while being cheap to use even with constructed op (so layer of indirection between the op constructed/being constructed). And from that point of view it made sense to me. Differential Revision: https://reviews.llvm.org/D80842
-
Louis Dionne authored
On Apple platforms, linking against libSystem.dylib is sufficient, and some Apple platforms don't provide libm.dylib. On those platforms, adding -lm to CMAKE_REQUIRED_LIBRARIES causes all subsequent compile-flag checks to fail due to the missing library. Differential Revision: https://reviews.llvm.org/D81265
-
Yaxun (Sam) Liu authored
To support std::complex and some other standard C/C++ functions in HIP device code, they need to be forced to be __host__ __device__ functions by pragmas. This is done by some clang standard C++ wrapper headers which are shared between cuda-clang and hip-Clang. For these standard C++ wapper headers to work properly, specific include path order has to be enforced: clang C++ wrapper include path standard C++ include path clang include path Also, these C++ wrapper headers require device version of some standard C/C++ functions must be declared before including them. This needs to be done by including a default header which declares or defines these device functions. The default header is always included before any other headers are included by users. This patch adds the the default header and include path for HIP. Differential Revision: https://reviews.llvm.org/D81176
-
Simon Pilgrim authored
ScalarEvolutionNormalization.h - reduce ScalarEvolutionExpressions.h include to forward declaration. NFC.
-
Simon Pilgrim authored
Move implicit include dependencies down to source file.
-
Sanjay Patel authored
Motivating examples are seen in the PhaseOrdering tests based on: https://bugs.llvm.org/show_bug.cgi?id=43953#c2 - if we have intrinsics there, some pass can fold them. The intrinsics are still named "experimental" at this point, but if there is no fallout from this patch, that will be a good indicator that it is safe to finalize them. Differential Revision: https://reviews.llvm.org/D80867
-
Sanjay Patel authored
-
Nico Weber authored
-
Arthur Eubanks authored
Summary: This matches ELF. This makes the number of ASan failures under the new pass manager on Windows go from 18 to 1. Under the old pass manager, the ASan module pass was one of the very last things run, so these globals didn't get removed due to GlobalOpt. But with the NPM the ASan module pass that adds these globals are run much earlier in the pipeline and GlobalOpt ends up removing them. Reviewers: vitalybuka, hans Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81175
-
Arthur Eubanks authored
Summary: As explained in https://bugs.llvm.org/show_bug.cgi?id=46208, symbolization on Windows after inlining and around lambdas/std::functions doesn't work very well. Under the new pass manager, there is inlining at -O1. use-after-scope-capture.cpp checks that the symbolization points to the line containing "return x;", but the combination of Windows/inlining/lambdas makes the symbolization point to the line "f = [&x]() {". Mark the lambda as noinline since this test is not a test for symbolization. Reviewers: hans, dblaikie, vitalybuka Subscribers: #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D81193
-
- Jun 05, 2020
-
-
Simon Pilgrim authored
An initial patch adding combineSetCCMOVMSK to simplify MOVMSK and its vector input based on the comparison of the MOVMSK result. This first stage just adds support for some simple MOVMSK(PACKSSBW()) cases where we remove the PACKSS if we're comparing ne/eq zero (any_of patterns), allowing us to directly compare against the v8i16 source vector(s) bitcasted to v16i8, with suitable masking to take into account of which signbits are valid. Future combines could peek through further PACKSS, target shuffles, handle all_of patterns (ne/eq -1), optimize to a PTEST op, etc. Differential Revision: https://reviews.llvm.org/D81171
-
Xun Li authored
Summary: According to the comments, we want to convert the profile into two binary formats, and then into the md5text format. We seems to have ignored the intermediate files. This patch uses them to complete the full roundtrips. Reviewers: wmi, wenlei Reviewed By: wmi Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81202
-
Pete Steinfeld authored
Summary: If you create an expression with parse errors, the `parser::Expr.typedExpr` will be empty, which causes a compiler crash. The crash is caused by the check in check-do-forall.cpp that scans all expresssions to see if `DO` variables are being modified. It turned out that the problem was that I was fetching subexpressions of type `parser::Expr`, which are not guaranteed to have a non-null `typedExpr`. I fixed this by only grabbing the top-level expression from which to gather arguments as part of the DO loop analysis. This, in turn, exposed a problem where I wasn't collecting all of the actual arguments in an expression. This was caused by the fact that I wasn't recursing through the rest of the expression after finding an argument. I fixed this by recursing through the argument in the member function in `CollectActualArgumentsHelper`. Reviewers: klausler, tskeith, DavidTruby Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81101
-
Fangrui Song authored
If both a.a and b.so define foo ``` ld.bfd -u foo a.a b.so # foo is defined ld.bfd a.a b.so -u foo # foo is defined ld.bfd -u foo b.so a.a # foo is undefined (provided at runtime by b.so) ld.bfd b.so a.a -u foo # foo is undefined (provided at runtime by b.so) ``` In all cases we make foo undefined in the output. I tend to think the GNU ld behavior makes more sense. * In their model, they have to treat -u as a fake object file with an undefined symbol before all input files, otherwise the first archive would not be fetched. * Following their behavior allows us to drop a --warn-backrefs special case. Reviewed By: psmith Differential Revision: https://reviews.llvm.org/D81052
-
Zinovy Nis authored
Differential Revision: https://reviews.llvm.org/D80896
-
Jonas Devlieghere authored
Treat N_AST symbol table entries like other debug entries and don't emit them in the linked binary. Differential revision: https://reviews.llvm.org/D81205
-
Nicolas Vasilache authored
Previously only the Affine version would be folded. Differential Revision: https://reviews.llvm.org/D81261
-
Julian Lettner authored
Improve consistency when printing test results: Previously we were using different labels for group names (the header for the list of, e.g., failing tests) and summary count lines. For example, "Failing Tests"/"Unexpected Failures". This commit changes lit to label things consistently. Improve wording of labels: When talking about individual test results, the first word in "Unexpected Failures", "Expected Passes", and "Individual Timeouts" is superfluous. Some labels contain the word "Tests" and some don't. Let's simplify the names. Before: ``` Failing Tests (1): ... Expected Passes : 3 Unexpected Failures: 1 ``` After: ``` Failed Tests (1): ... Passed: 3 Failed: 1 ``` Reviewed By: ldionne Differential Revision: https://reviews.llvm.org/D77708
-
Sander de Smalen authored
Seems to break some buildbots, reverting the patch for now. This reverts commit 164f4b9d.
-
Haojian Wu authored
Reviewers: sammccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D81008
-
Kazushi (Jam) Marukawa authored
Summary: Add regression tests of asmparser, mccodeemitter, and disassembler for logical operation instructions. Also change asmparser to support CMOV instruction. And, add new EQV/MRG/NND isntructions also. Differential Revision: https://reviews.llvm.org/D81219
-
Wen-Heng (Jack) Chung authored
Summary: `mlir-rocm-runner` is introduced in this commit to execute GPU modules on ROCm platform. A small wrapper to encapsulate ROCm's HIP runtime API is also inside the commit. Due to behavior of ROCm, raw pointers inside memrefs passed to `gpu.launch` must be modified on the host side to properly capture the pointer values addressable on the GPU. LLVM MC is used to assemble AMD GCN ISA coming out from `ConvertGPUKernelToBlobPass` to binary form, and LLD is used to produce a shared ELF object which could be loaded by ROCm HIP runtime. gfx900 is the default target be used right now, although it could be altered via an option in `mlir-rocm-runner`. Future revisions may consider using ROCm Agent Enumerator to detect the right target on the system. Notice AMDGPU Code Object V2 is used in this revision. Future enhancements may upgrade to AMDGPU Code Object V3. Bitcode libraries in ROCm-Device-Libs, which implements math routines exposed in `rocdl` dialect are not yet linked, and is left as a TODO in the logic. Reviewers: herhut Subscribers: mgorny, tpr, dexonsmith, mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, csigg, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, jurahul, llvm-commits Tags: #mlir, #llvm Differential Revision: https://reviews.llvm.org/D80676
-
Sander de Smalen authored
This patch updates TargetLoweringBase::computeRegisterProperties and TargetLoweringBase::getTypeConversion to support scalable vectors, and make the right calls on how to legalise them. These changes are required to legalise both MVTs and EVTs. Reviewers: efriedma, david-arm, ctetreau Reviewed By: efriedma Tags: #llvm Differential Revision: https://reviews.llvm.org/D80640
-
serge-sans-paille authored
Differential Revision: https://reviews.llvm.org/D81228
-
serge-sans-paille authored
Differential Revision: https://reviews.llvm.org/D81231
-
serge-sans-paille authored
Differential Revision: https://reviews.llvm.org/D81233
-
serge-sans-paille authored
Differential Revision: https://reviews.llvm.org/D81232
-
serge-sans-paille authored
Differential Revision: https://reviews.llvm.org/D81226
-
serge-sans-paille authored
Differential Revision: https://reviews.llvm.org/D81234
-
Kadir Cetinkaya authored
-
Louis Dionne authored
-
Max Kazantsev authored
This reverts commit c4b5a66e. Returning along with Clang test fix
-
serge-sans-paille authored
Differential Revision: https://reviews.llvm.org/D81235
-
serge-sans-paille authored
Differential Revision: https://reviews.llvm.org/D81240
-
Kazushi (Jam) Marukawa authored
Summary: Add regression tests of asmparser, mccodeemitter, and disassembler for branch instructions. In order to support them, we enhance asmparser by adding splitting mnemonic mechanism, e.g. "bgt.l.t" into "b", "gt", and ".l.t", and parsing mechanism for AS style memory addressing. We also implment encoding and decoding mechanism for branch instructions. Differential Revision: https://reviews.llvm.org/D81215
-
Simon Pilgrim authored
These have been there since the header was added by D51491 but afaict without an implementation, all functionality is actually in DivergenceAnalysis
-
Simon Pilgrim authored
Move implicit include dependencies down to source files.
-
Simon Pilgrim authored
-