- Mar 19, 2020
-
-
Fred Riss authored
The comment in the test wrongfully claimed that we support hardware breakpoints on darwin for arm64, but we never did.
-
Fred Riss authored
The test checks that we correctly set the right number of breakpoints when breaking into an `always_inline` function. The line of this funstion selected for this test was the return statement, but with recent compiler, this return statement doesn't necessarily exist after inlining, even at O0. Switch the breakpoint to a different line of the inline function.
-
Fred Riss authored
The test runs `platform select host`, so it make no sense to run it when remote debugging.
-
Chen Zheng authored
And also refactor legacy MIR level isFMAFasterThanFMulAndFAdd. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D76265
-
Rob Suderman authored
Summary: Utility to perform CallOp Dialect conversion, specifically handling cases where an argument type has changed and the corresponding CallOp needs to be updated. Differential Revision: https://reviews.llvm.org/D76326
-
Geoffrey Martin-Noble authored
Summary: With the move towards dialect registration that does not depend only use static initialization, we are running into more cases where the dialects are registered by different methods. For example, TensorFlow still uses static initialization to register all MLIR core dialects, which prevents explicit registration of any of them when linking it in. We ran into this issue in https://github.com/google/iree/pull/982. To address potential issues with conflicts from non-standard allocators passed to registerDialectAllocator, made this method private. Now all dialects can only be registered with their constructor. Similarly deduplicates DialectHooks for consistency and makes their registration follow the same pattern. Differential Revision: https://reviews.llvm.org/D76329
-
Davide Italiano authored
I'm going to modify this function to account for lazily allocated class names in the Obj-C runtime, but first I need to understand what it does.
-
Yaxun (Sam) Liu authored
-
Lei Zhang authored
This commit merges the DRR pattern for std.constant to spv.constant conversion into the C++ OpConversionPattern. This allows us to have remove the DRR pattern file. Along the way, this commit enhanced std.constant to spv.constant conversion to consider type conversions, which means converting the underlying attributes if necessary. Differential Revision: https://reviews.llvm.org/D76246
-
Lei Zhang authored
Previously we have a few patterns that were written with DRR. DRR at the moment does not work nicely with dialect conversion framework. It generates normal RewritePatterns, while the dialect conversion framework requires ConversionPatterns to take into consideration the type conversion. So this commit starts to change existing DRR patterns for standard ops to OpConversionPattern to incorporate the SPIR-V type conversion. All patterns are converted except the one for constant ops, which will happen in a subsequent commit. Differential Revision: https://reviews.llvm.org/D76245
-
Lei Zhang authored
Non-32-bit scalar types requires special hardware support that may not exist on all Vulkan-capable GPUs. This is reflected as non-32-bit scalar types require special capabilities or extensions to be used. This commit makes SPIRVTypeConverter target environment aware so that it can properly convert standard types to what is accepted on the target environment. Right now if a scalar type bitwidth is not supported in the target environment, we use 32-bit unconditionally. This requires Vulkan runtime to also feed in data with a matched bitwidth and layout, especially for interface types. The Vulkan runtime can do that by inspecting the SPIR-V module. Longer term, we might want to introduce a way to control how such case are handled and explicitly fail if wanted. Differential Revision: https://reviews.llvm.org/D76244
-
Lei Zhang authored
Types should be checked with the type hierarchy. This should result in better responsibility division and API surface. Differential Revision: https://reviews.llvm.org/D76243
-
Lei Zhang authored
This commit unifies target environment queries into a new wrapper class spirv::TargetEnv and shares across various places needing the functionality. We still create multiple instances of TargetEnv though given the parent components (type converters, passes, conversion targets) have different lifetimes. In the meantime, LowerABIAttributesPass is updated to take into consideration the target environment, which requires updates to tests to provide that. Differential Revision: https://reviews.llvm.org/D76242
-
Lei Zhang authored
Previously we only consider the version/extension/capability requirement on the op itself. This commit updates SPIRVConversionTarget to also take into consideration the values' types when deciding op legality. Differential Revision: https://reviews.llvm.org/D75876
-
Lei Zhang authored
Previously in SPIRVTypeConverter, we always convert memref types to StorageBuffer regardless of their memory spaces. This commit fixes that to let the conversion to look into memory space properly. For this purpose, a mapping between SPIR-V storage class and memref memory space is introduced. The mapping is arbitary decided at the moment and the hope is that we can leverage string memory space later to be more clear. Now spv.interface_var_abi cannot contain storage class unless it's attached to a scalar value, where we need the storage class as side channel information. Verifications and tests are properly adjusted. Differential Revision: https://reviews.llvm.org/D76241
-
Craig Topper authored
Gather/scatter don't access one memory location, they access multiple disjoint locations. So using a fixed size isn't accurate. But we don't have a way to represent the true behavior so just use UnknownSize. Previously we "split" the memory VT and use that size for the MMO of each half. But the memory VT is scalar so splitting usually just returned the original scalar VT, but on 32-bit X86 if the scalar VT was i64 it probably returned i32? Differential Revision: https://reviews.llvm.org/D76388
-
Sanjay Patel authored
-
Richard Smith authored
members regardless of whether they're the last member of the union.
-
Vedant Kumar authored
-
Nathan James authored
Summary: Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=45039 | readability-identifier-naming doesn't rename using namespace correctly. ]] Reviewers: aaron.ballman, gribozavr2, JonasToth, hokein, alexfh Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75220
-
Jonas Devlieghere authored
Expose two methods to find the current toolchain and the current command line tools directory. These are used by Swift to find the resource directory.
-
Jonas Devlieghere authored
-
Louis Dionne authored
This commit adds a new keyword in lit called ALLOW_RETRIES. This keyword takes a single integer as an argument, and it allows the test to fail that number of times before it first succeeds. This work attempts to make the existing test_retry_attempts more flexible by allowing by-test customization, as well as eliminate libc++'s FLAKY_TEST custom logic. Differential Revision: https://reviews.llvm.org/D76288
-
Alexey Bataev authored
If the ancestor device modifier is used and the value of the device clause is evaluated to 1, the ancestor device shall be used for the execution. Since the reverse offloading is not supported yet, the target construct execution is always initiated from the host, not from the device. So, if the ancestor modifier is specified, just execute target region on the host.
-
Simon Pilgrim authored
-
Eric Schweitz authored
Reviewers: rriddle, ftynse Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D76333
-
Davide Italiano authored
Discussed offline with Jason.
-
Florian Hahn authored
The latest improvements to VPValue printing make this mapping clear when printing the operand. Printing the mapping separately is not required any longer. Reviewers: rengolin, hsaito, Ayal, gilr Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D76375
-
Hanhan Wang authored
Summary: Although bool and int1 are the same sometimes, using bool constant matches the semantic better. In any cases, we don't have to care the type of conditions if we remove the intial value. The type is determined automatically by the returned type of logical operations. Differential Revision: https://reviews.llvm.org/D76338
-
Alex Cameron authored
Summary: Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=27702 I wasn't sure how this type of thing is usually tested. So any advice would be appreciated. `check-llvm`, `check-clang` and `check-clang-tools` are clean for me. **C++98** ``` tetsuo@garland-c-16-sgp1-01:~/dev/llvm-project/test$ cat compile_commands.json [ { "directory": "/home/tetsuo/dev/llvm-project/test", "command": "/usr/bin/c++ -std=gnu++98 -o CMakeFiles/test.dir/test.cpp.o -c /home/tetsuo/dev/llvm-project/test/test.cpp", "file": "/home/tetsuo/dev/llvm-project/test/test.cpp" } ] tetsuo@garland-c-16-sgp1-01:~/dev/llvm-project/test$ ../build/bin/clang-tidy --checks=misc-unconventional-assign-operator test.cpp 3053 warnings generated. /home/tetsuo/dev/llvm-project/test/test.cpp:7:3: warning: operator=() should take 'Foo const&' or 'Foo' [misc-unconventional-assign-operator] Foo &operator=(Foo &Other) { ^ Suppressed 3052 warnings (30...
-
Florian Hahn authored
Now that printing VPValues uses the underlying IR value name, if available, recording the underlying value here improves printing. Reviewers: rengolin, hsaito, Ayal, gilr Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D76374
-
Sanjay Patel authored
-
Sanjay Patel authored
This is copied from the suggested text by @regehr in: https://bugs.llvm.org/show_bug.cgi?id=20895 The way forward was not clear for several years, but now that we have 'freeze' and Alive2, the behavior should be documented. Also see comments in D76332.
-
Yunlian Jiang authored
Differential Revision: https://reviews.llvm.org/D48680
-
Simon Pilgrim authored
-
Eli Friedman authored
The existence of the class is more confusing than helpful, I think; the commonality is mostly just "GEP is legal", which can be queried using APIs on GetElementPtrInst. Differential Revision: https://reviews.llvm.org/D75660
-
Petr Hosek authored
This tool is used for generating and manipulating GSYM files. Differential Revision: https://reviews.llvm.org/D76204
-
Sanjay Patel authored
-
Craig Topper authored
[SelectionDAGBuilder][FPEnv] Take into account SelectionDAG continuous CSE when setting the nofpexcept flag for constrained intrinsics SelectionDAG CSEs nodes based on their result type and operands, but not their flags. The flags are expected to be intersected when they are CSEd. In SelectionDAGBuilder, for FP nodes we manage both the fast math flags and the nofpexcept flag after the nodes have already been CSEd when they were created with getNode. The management of the fastmath flags before the constrained nodes prevents the nofpexcept management from working correctly. This commit moves the FMF handling for constrained intrinsics into their visitor and disables the common FMF handling for these nodes. Differential Revision: https://reviews.llvm.org/D75224
-
River Riddle authored
Summary: The usage story in for NDEBUG isn't fleshed out yet, so this revision ensures that none of the diagnostic code exists in the binary. Differential Revision: https://reviews.llvm.org/D76372
-